Chartjs.Callbacks
- Package
- purescript-chartjs
- Repository
- philippedev101/purescript-chartjs
Callback types and overlays for Chart.js event handling.
#Callbacks Source
type Callbacks = { animationOnComplete :: Maybe (EffectFn1 Foreign Unit), animationOnProgress :: Maybe (EffectFn1 Foreign Unit), legendGenerateLabels :: Maybe (EffectFn1 ChartInstance (Array Foreign)), legendLabelsFilter :: Maybe (EffectFn2 LegendItem Foreign Boolean), legendLabelsSort :: Maybe (EffectFn3 LegendItem LegendItem Foreign Int), legendOnClick :: Maybe (EffectFn3 Event LegendItem Legend Unit), legendOnHover :: Maybe (EffectFn3 Event LegendItem Legend Unit), legendOnLeave :: Maybe (EffectFn3 Event LegendItem Legend Unit), onClick :: Maybe (EffectFn3 Event (Array ActiveElement) ChartInstance Unit), onHover :: Maybe (EffectFn3 Event (Array ActiveElement) ChartInstance Unit), onResize :: Maybe (EffectFn2 ChartInstance { height :: Number, width :: Number } Unit), scaleCallbacks :: Maybe (Object ScaleLifecycleCallbacks), tickCallbacks :: Maybe (Object TickCallback), tooltipCallbacks :: Maybe TooltipCallbacks, tooltipExternal :: Maybe (EffectFn1 Foreign Unit), tooltipFilter :: Maybe (EffectFn4 Foreign Int (Array Foreign) Foreign Boolean), tooltipItemSort :: Maybe (EffectFn3 Foreign Foreign Foreign Int) }Chart.js event callbacks (click, hover, resize, legend, tooltip, ticks).
#TooltipCallbacks Source
type TooltipCallbacks = { afterBody :: Maybe (EffectFn1 (Array TooltipItem) String), afterFooter :: Maybe (EffectFn1 (Array TooltipItem) String), afterLabel :: Maybe (EffectFn1 TooltipItem String), afterTitle :: Maybe (EffectFn1 (Array TooltipItem) String), beforeBody :: Maybe (EffectFn1 (Array TooltipItem) String), beforeFooter :: Maybe (EffectFn1 (Array TooltipItem) String), beforeLabel :: Maybe (EffectFn1 TooltipItem String), beforeTitle :: Maybe (EffectFn1 (Array TooltipItem) String), footer :: Maybe (EffectFn1 (Array TooltipItem) String), label :: Maybe (EffectFn1 TooltipItem String), labelColor :: Maybe (EffectFn1 TooltipItem Foreign), labelPointStyle :: Maybe (EffectFn1 TooltipItem Foreign), labelTextColor :: Maybe (EffectFn1 TooltipItem String), title :: Maybe (EffectFn1 (Array TooltipItem) String) }Tooltip formatting callbacks. Callbacks receiving a single TooltipItem are called per-dataset. Callbacks receiving an array are called once for the whole tooltip.
#ScaleCallback Source
type ScaleCallback = EffectFn1 Foreign UnitScale lifecycle callback: receives the scale/axis object as Foreign.
#ScaleLifecycleCallbacks Source
type ScaleLifecycleCallbacks = { afterBuildTicks :: Maybe ScaleCallback, afterCalculateLabelRotation :: Maybe ScaleCallback, afterDataLimits :: Maybe ScaleCallback, afterFit :: Maybe ScaleCallback, afterSetDimensions :: Maybe ScaleCallback, afterTickToLabelConversion :: Maybe ScaleCallback, afterUpdate :: Maybe ScaleCallback, beforeBuildTicks :: Maybe ScaleCallback, beforeCalculateLabelRotation :: Maybe ScaleCallback, beforeDataLimits :: Maybe ScaleCallback, beforeFit :: Maybe ScaleCallback, beforeSetDimensions :: Maybe ScaleCallback, beforeTickToLabelConversion :: Maybe ScaleCallback, beforeUpdate :: Maybe ScaleCallback }Scale lifecycle callbacks for a single scale axis. These are set directly on the scale config (not nested under ticks/grid).
The four high-value callbacks (afterBuildTicks, beforeFit,
afterFit, afterDataLimits) shipped with roadmap item #13. The
remaining 10 (the before* / after* pairs around update,
dimensions, data limits, build ticks, tick-to-label conversion,
and label rotation) shipped with #26 — Chart.js fires them at
every step of the scale's lifecycle, but in practice they're only
needed for advanced custom scales or debugging.
#defaultScaleLifecycleCallbacks Source
defaultScaleLifecycleCallbacks :: ScaleLifecycleCallbacksAll optional fields set to Nothing.
#ActiveElement Source
data ActiveElementOpaque type for a Chart.js active element in event callbacks.
#LegendItem Source
data LegendItemOpaque type for a Chart.js legend item in legend callbacks.
#TooltipItem Source
data TooltipItemOpaque type for a Chart.js tooltip item in tooltip callbacks.
#ComponentInput Source
type ComponentInput = { callbacks :: Callbacks, config :: ChartConfig, updateMode :: Maybe String }Input for the Halogen chart component: a config, optional callbacks, and an update mode controlling animation on data changes.
#defaultCallbacks Source
defaultCallbacks :: CallbacksAll optional fields set to Nothing.
#defaultTooltipCallbacks Source
defaultTooltipCallbacks :: TooltipCallbacksAll optional fields set to Nothing.
#simpleInput Source
simpleInput :: ChartConfig -> ComponentInputCreate a ComponentInput from just a ChartConfig (no callbacks).
Defaults to Just "none" for updateMode to suppress animation on updates.
#callbacksToForeign Source
callbacksToForeign :: Callbacks -> ForeignConvert Callbacks to a plain JS object for the FFI merge function.
#hasCallbacks Source
hasCallbacks :: Callbacks -> BooleanCheck if any callbacks are set.
#buildOverlays Source
buildOverlays :: Callbacks -> ChartConfig -> ForeignBuild a combined overlays object containing callbacks plus dataset
overlays (non-CSS colors, scriptable color functions, image point
styles, scriptable non-color fields), plus per-chart-type dataset-
defaults overlays (same categories at options.datasets.{type}),
plus inline plugins (#24). This is the main entry point for the
FFI merge function.
#hasOverlays Source
hasOverlays :: Callbacks -> ChartConfig -> BooleanCheck if there are any overlays that need to be merged. Returns
true for any of: callbacks, non-CSS colors (gradient/pattern),
scriptable color functions (SIFn), image point styles, scriptable
non-color fields, per-chart-type dataset-defaults overlays under
options.datasets, or inline plugins. Drives the createChartAuto
routing decision.