semiotic 3.0.0-beta.2 → 3.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +93 -753
- package/README.md +92 -7
- package/ai/dist/componentRegistry.js +26 -0
- package/ai/dist/{ai/mcp-server.js → mcp-server.js} +1 -1
- package/ai/dist/{ai/renderHOCToSVG.js → renderHOCToSVG.js} +2 -2
- package/dist/ChartContainer.d.ts +60 -0
- package/dist/DetailsPanel.d.ts +37 -0
- package/dist/LinkedCharts.d.ts +2 -0
- package/dist/Tooltip/Tooltip.d.ts +2 -2
- package/dist/charts/index.d.ts +1 -1
- package/dist/charts/ordinal/BarChart.d.ts +1 -0
- package/dist/charts/ordinal/BoxPlot.d.ts +1 -0
- package/dist/charts/ordinal/DonutChart.d.ts +1 -0
- package/dist/charts/ordinal/DotPlot.d.ts +1 -0
- package/dist/charts/ordinal/GroupedBarChart.d.ts +1 -0
- package/dist/charts/ordinal/Histogram.d.ts +1 -0
- package/dist/charts/ordinal/PieChart.d.ts +1 -0
- package/dist/charts/ordinal/RidgelinePlot.d.ts +1 -0
- package/dist/charts/ordinal/StackedBarChart.d.ts +1 -0
- package/dist/charts/ordinal/SwarmPlot.d.ts +1 -0
- package/dist/charts/ordinal/ViolinPlot.d.ts +1 -0
- package/dist/charts/realtime/RealtimeHeatmap.d.ts +11 -0
- package/dist/charts/realtime/RealtimeHistogram.d.ts +15 -1
- package/dist/charts/realtime/RealtimeLineChart.d.ts +6 -0
- package/dist/charts/realtime/RealtimeSwarmChart.d.ts +6 -0
- package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +6 -0
- package/dist/charts/shared/annotationRules.d.ts +3 -0
- package/dist/charts/shared/colorUtils.d.ts +17 -11
- package/dist/charts/shared/hooks.d.ts +96 -1
- package/dist/charts/shared/loess.d.ts +13 -0
- package/dist/charts/shared/networkUtils.d.ts +31 -0
- package/dist/charts/shared/tooltipUtils.d.ts +16 -0
- package/dist/charts/shared/types.d.ts +17 -2
- package/dist/charts/shared/validateChartData.d.ts +2 -3
- package/dist/charts/shared/validateProps.d.ts +18 -0
- package/dist/charts/xy/AreaChart.d.ts +4 -0
- package/dist/charts/xy/BubbleChart.d.ts +6 -0
- package/dist/charts/xy/Heatmap.d.ts +4 -0
- package/dist/charts/xy/LineChart.d.ts +6 -0
- package/dist/charts/xy/Scatterplot.d.ts +4 -0
- package/dist/charts/xy/StackedAreaChart.d.ts +4 -0
- package/dist/data/fromVegaLite.d.ts +48 -0
- package/dist/export/chartConfig.d.ts +29 -0
- package/dist/export/selectionSerializer.d.ts +20 -0
- package/dist/geometry/sankeyLinks.d.ts +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/realtime/types.d.ts +20 -6
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/semiotic-ai.d.ts +14 -0
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-data.d.ts +2 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-network.d.ts +9 -19
- package/dist/semiotic-ordinal.d.ts +12 -14
- package/dist/semiotic-xy.d.ts +12 -18
- package/dist/semiotic.d.ts +16 -13
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/store/ObservationStore.d.ts +61 -0
- package/dist/store/SelectionStore.d.ts +9 -1
- package/dist/store/ThemeStore.d.ts +6 -1
- package/dist/store/TooltipStore.d.ts +3 -1
- package/dist/store/createStore.d.ts +4 -1
- package/dist/store/useObservation.d.ts +18 -0
- package/dist/stream/MarginalGraphics.d.ts +1 -1
- package/dist/stream/NetworkPipelineStore.d.ts +44 -0
- package/dist/stream/OrdinalCanvasHitTester.d.ts +1 -0
- package/dist/stream/OrdinalSVGOverlay.d.ts +6 -2
- package/dist/stream/ParticlePool.d.ts +2 -1
- package/dist/stream/PipelineStore.d.ts +11 -0
- package/dist/stream/SVGOverlay.d.ts +21 -2
- package/dist/stream/SceneGraph.d.ts +1 -1
- package/dist/stream/networkTypes.d.ts +58 -1
- package/dist/stream/ordinalTypes.d.ts +13 -0
- package/dist/stream/types.d.ts +14 -0
- package/dist/types/annotationTypes.d.ts +10 -0
- package/dist/types/networkTypes.d.ts +1 -2
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +30 -42
- package/ai/dist/ai/componentRegistry.js +0 -45
- package/ai/dist/src/components/Annotation.js +0 -358
- package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +0 -369
- package/ai/dist/src/components/Axis/Axis.js +0 -374
- package/ai/dist/src/components/Axis/axisTitle.js +0 -14
- package/ai/dist/src/components/Axis/index.js +0 -7
- package/ai/dist/src/components/Axis/summaryGraphic.js +0 -37
- package/ai/dist/src/components/Brush.js +0 -84
- package/ai/dist/src/components/ChartErrorBoundary.js +0 -91
- package/ai/dist/src/components/DividedLine.js +0 -65
- package/ai/dist/src/components/Legend.js +0 -140
- package/ai/dist/src/components/LinkedCharts.js +0 -95
- package/ai/dist/src/components/ThemeProvider.js +0 -79
- package/ai/dist/src/components/Tooltip/Tooltip.js +0 -309
- package/ai/dist/src/components/TooltipPositioner/index.js +0 -132
- package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +0 -73
- package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +0 -254
- package/ai/dist/src/components/annotationRules/baseRules.js +0 -150
- package/ai/dist/src/components/annotationRules/networkframeRules.js +0 -196
- package/ai/dist/src/components/annotationRules/xyframeRules.js +0 -297
- package/ai/dist/src/components/batchWork.js +0 -35
- package/ai/dist/src/components/charts/index.js +0 -109
- package/ai/dist/src/components/charts/network/ChordDiagram.js +0 -142
- package/ai/dist/src/components/charts/network/CirclePack.js +0 -108
- package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +0 -121
- package/ai/dist/src/components/charts/network/SankeyDiagram.js +0 -155
- package/ai/dist/src/components/charts/network/TreeDiagram.js +0 -110
- package/ai/dist/src/components/charts/network/Treemap.js +0 -106
- package/ai/dist/src/components/charts/ordinal/BarChart.js +0 -156
- package/ai/dist/src/components/charts/ordinal/BoxPlot.js +0 -139
- package/ai/dist/src/components/charts/ordinal/DonutChart.js +0 -130
- package/ai/dist/src/components/charts/ordinal/DotPlot.js +0 -126
- package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +0 -129
- package/ai/dist/src/components/charts/ordinal/Histogram.js +0 -132
- package/ai/dist/src/components/charts/ordinal/PieChart.js +0 -128
- package/ai/dist/src/components/charts/ordinal/RidgelinePlot.js +0 -130
- package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +0 -130
- package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +0 -147
- package/ai/dist/src/components/charts/ordinal/ViolinPlot.js +0 -138
- package/ai/dist/src/components/charts/realtime/RealtimeHeatmap.js +0 -79
- package/ai/dist/src/components/charts/realtime/RealtimeHistogram.js +0 -114
- package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +0 -93
- package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +0 -105
- package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +0 -106
- package/ai/dist/src/components/charts/shared/ChartError.js +0 -72
- package/ai/dist/src/components/charts/shared/colorUtils.js +0 -138
- package/ai/dist/src/components/charts/shared/formatUtils.js +0 -213
- package/ai/dist/src/components/charts/shared/hooks.js +0 -49
- package/ai/dist/src/components/charts/shared/legendUtils.js +0 -57
- package/ai/dist/src/components/charts/shared/selectionUtils.js +0 -67
- package/ai/dist/src/components/charts/shared/tooltipUtils.js +0 -79
- package/ai/dist/src/components/charts/shared/types.js +0 -2
- package/ai/dist/src/components/charts/shared/validateChartData.js +0 -82
- package/ai/dist/src/components/charts/shared/validateProps.js +0 -736
- package/ai/dist/src/components/charts/xy/AreaChart.js +0 -230
- package/ai/dist/src/components/charts/xy/BubbleChart.js +0 -251
- package/ai/dist/src/components/charts/xy/Heatmap.js +0 -235
- package/ai/dist/src/components/charts/xy/LineChart.js +0 -307
- package/ai/dist/src/components/charts/xy/MinimapChart.js +0 -298
- package/ai/dist/src/components/charts/xy/Scatterplot.js +0 -172
- package/ai/dist/src/components/charts/xy/ScatterplotMatrix.js +0 -426
- package/ai/dist/src/components/charts/xy/StackedAreaChart.js +0 -231
- package/ai/dist/src/components/constants/coordinateNames.js +0 -11
- package/ai/dist/src/components/constants/frame_props.js +0 -251
- package/ai/dist/src/components/data/dataFunctions.js +0 -487
- package/ai/dist/src/components/data/multiAccessorUtils.js +0 -14
- package/ai/dist/src/components/data/transforms.js +0 -143
- package/ai/dist/src/components/data/unflowedFunctions.js +0 -5
- package/ai/dist/src/components/export/exportChart.js +0 -121
- package/ai/dist/src/components/generic_utilities/functions.js +0 -5
- package/ai/dist/src/components/geometry/areaDrawing.js +0 -312
- package/ai/dist/src/components/geometry/contourLayout.js +0 -73
- package/ai/dist/src/components/geometry/hexbinLayout.js +0 -163
- package/ai/dist/src/components/geometry/lineDrawing.js +0 -356
- package/ai/dist/src/components/geometry/sankeyLinks.js +0 -331
- package/ai/dist/src/components/geometry/summaryLayouts.js +0 -136
- package/ai/dist/src/components/index.js +0 -18
- package/ai/dist/src/components/processing/InteractionItems.js +0 -223
- package/ai/dist/src/components/processing/hierarchyUtils.js +0 -104
- package/ai/dist/src/components/processing/layouts/chordLayout.js +0 -58
- package/ai/dist/src/components/processing/layouts/forceLayout.js +0 -142
- package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +0 -31
- package/ai/dist/src/components/processing/layouts/index.js +0 -32
- package/ai/dist/src/components/processing/layouts/sankeyLayout.js +0 -96
- package/ai/dist/src/components/processing/layouts/simpleLayouts.js +0 -34
- package/ai/dist/src/components/processing/layouts/types.js +0 -2
- package/ai/dist/src/components/processing/networkDefaults.js +0 -39
- package/ai/dist/src/components/realtime/BinAccumulator.js +0 -36
- package/ai/dist/src/components/realtime/IncrementalExtent.js +0 -55
- package/ai/dist/src/components/realtime/RingBuffer.js +0 -104
- package/ai/dist/src/components/realtime/renderers/barRenderer.js +0 -133
- package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +0 -7
- package/ai/dist/src/components/realtime/renderers/lineRenderer.js +0 -164
- package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +0 -91
- package/ai/dist/src/components/realtime/renderers/types.js +0 -2
- package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +0 -163
- package/ai/dist/src/components/realtime/types.js +0 -2
- package/ai/dist/src/components/semiotic-ai.js +0 -89
- package/ai/dist/src/components/semiotic-data.js +0 -12
- package/ai/dist/src/components/semiotic-network.js +0 -38
- package/ai/dist/src/components/semiotic-ordinal.js +0 -28
- package/ai/dist/src/components/semiotic-realtime.js +0 -30
- package/ai/dist/src/components/semiotic-server.js +0 -8
- package/ai/dist/src/components/semiotic-xy.js +0 -35
- package/ai/dist/src/components/semiotic.js +0 -109
- package/ai/dist/src/components/server/renderToStaticSVG.js +0 -594
- package/ai/dist/src/components/store/SelectionStore.js +0 -91
- package/ai/dist/src/components/store/ThemeStore.js +0 -78
- package/ai/dist/src/components/store/TooltipStore.js +0 -13
- package/ai/dist/src/components/store/createStore.js +0 -81
- package/ai/dist/src/components/store/useSelection.js +0 -133
- package/ai/dist/src/components/stream/CanvasHitTester.js +0 -164
- package/ai/dist/src/components/stream/DataSourceAdapter.js +0 -99
- package/ai/dist/src/components/stream/MarginalGraphics.js +0 -266
- package/ai/dist/src/components/stream/NetworkCanvasHitTester.js +0 -228
- package/ai/dist/src/components/stream/NetworkPipelineStore.js +0 -498
- package/ai/dist/src/components/stream/NetworkSVGOverlay.js +0 -70
- package/ai/dist/src/components/stream/NetworkSceneGraph.js +0 -38
- package/ai/dist/src/components/stream/OrdinalCanvasHitTester.js +0 -146
- package/ai/dist/src/components/stream/OrdinalPipelineStore.js +0 -786
- package/ai/dist/src/components/stream/OrdinalSVGOverlay.js +0 -130
- package/ai/dist/src/components/stream/ParticlePool.js +0 -174
- package/ai/dist/src/components/stream/PipelineStore.js +0 -1243
- package/ai/dist/src/components/stream/SVGOverlay.js +0 -129
- package/ai/dist/src/components/stream/SceneGraph.js +0 -132
- package/ai/dist/src/components/stream/StreamNetworkFrame.js +0 -561
- package/ai/dist/src/components/stream/StreamOrdinalFrame.js +0 -492
- package/ai/dist/src/components/stream/StreamXYFrame.js +0 -590
- package/ai/dist/src/components/stream/accessorUtils.js +0 -20
- package/ai/dist/src/components/stream/index.js +0 -32
- package/ai/dist/src/components/stream/layouts/chordLayoutPlugin.js +0 -352
- package/ai/dist/src/components/stream/layouts/forceLayoutPlugin.js +0 -230
- package/ai/dist/src/components/stream/layouts/hierarchyLayoutPlugin.js +0 -568
- package/ai/dist/src/components/stream/layouts/index.js +0 -28
- package/ai/dist/src/components/stream/layouts/sankeyLayoutPlugin.js +0 -245
- package/ai/dist/src/components/stream/networkTypes.js +0 -17
- package/ai/dist/src/components/stream/ordinalSceneBuilders/barScene.js +0 -126
- package/ai/dist/src/components/stream/ordinalSceneBuilders/connectorScene.js +0 -62
- package/ai/dist/src/components/stream/ordinalSceneBuilders/pieScene.js +0 -33
- package/ai/dist/src/components/stream/ordinalSceneBuilders/pointScene.js +0 -63
- package/ai/dist/src/components/stream/ordinalSceneBuilders/statisticalScene.js +0 -278
- package/ai/dist/src/components/stream/ordinalSceneBuilders/timelineScene.js +0 -30
- package/ai/dist/src/components/stream/ordinalSceneBuilders/types.js +0 -2
- package/ai/dist/src/components/stream/ordinalTypes.js +0 -2
- package/ai/dist/src/components/stream/renderers/areaCanvasRenderer.js +0 -48
- package/ai/dist/src/components/stream/renderers/barCanvasRenderer.js +0 -70
- package/ai/dist/src/components/stream/renderers/boxplotCanvasRenderer.js +0 -75
- package/ai/dist/src/components/stream/renderers/candlestickCanvasRenderer.js +0 -28
- package/ai/dist/src/components/stream/renderers/connectorCanvasRenderer.js +0 -47
- package/ai/dist/src/components/stream/renderers/heatmapCanvasRenderer.js +0 -31
- package/ai/dist/src/components/stream/renderers/lineCanvasRenderer.js +0 -140
- package/ai/dist/src/components/stream/renderers/networkArcRenderer.js +0 -38
- package/ai/dist/src/components/stream/renderers/networkCircleRenderer.js +0 -37
- package/ai/dist/src/components/stream/renderers/networkEdgeRenderer.js +0 -102
- package/ai/dist/src/components/stream/renderers/networkParticleRenderer.js +0 -63
- package/ai/dist/src/components/stream/renderers/networkRectRenderer.js +0 -35
- package/ai/dist/src/components/stream/renderers/pointCanvasRenderer.js +0 -38
- package/ai/dist/src/components/stream/renderers/swarmCanvasRenderer.js +0 -10
- package/ai/dist/src/components/stream/renderers/types.js +0 -2
- package/ai/dist/src/components/stream/renderers/violinCanvasRenderer.js +0 -47
- package/ai/dist/src/components/stream/renderers/waterfallCanvasRenderer.js +0 -38
- package/ai/dist/src/components/stream/renderers/wedgeCanvasRenderer.js +0 -33
- package/ai/dist/src/components/stream/types.js +0 -2
- package/ai/dist/src/components/types/annotationTypes.js +0 -2
- package/ai/dist/src/components/types/canvasTypes.js +0 -2
- package/ai/dist/src/components/types/generalTypes.js +0 -2
- package/ai/dist/src/components/types/interactionTypes.js +0 -2
- package/ai/dist/src/components/types/legendTypes.js +0 -2
- package/ai/dist/src/components/types/networkTypes.js +0 -2
- package/ai/dist/src/components/types/ordinalTypes.js +0 -2
- package/ai/dist/src/components/types/xyTypes.js +0 -2
- package/ai/dist/src/components/useBoundingRect.js +0 -24
- package/ai/dist/src/components/visualizationLayerBehavior/axis.js +0 -301
- package/ai/dist/src/components/visualizationLayerBehavior/general.js +0 -435
- package/ai/dist/src/setupTests.js +0 -4
- package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -25
- package/dist/Axis/Axis.d.ts +0 -7
- package/dist/Axis/axisTitle.d.ts +0 -10
- package/dist/Axis/index.d.ts +0 -2
- package/dist/Axis/summaryGraphic.d.ts +0 -17
- package/dist/Brush.d.ts +0 -12
- package/dist/DividedLine.d.ts +0 -16
- package/dist/TooltipPositioner/index.d.ts +0 -7
- package/dist/annotationLayerBehavior/annotationHandling.d.ts +0 -19
- package/dist/annotationLayerBehavior/d3labeler.d.ts +0 -9
- package/dist/annotationRules/baseRules.d.ts +0 -25
- package/dist/annotationRules/networkframeRules.d.ts +0 -48
- package/dist/annotationRules/xyframeRules.d.ts +0 -117
- package/dist/batchWork.d.ts +0 -6
- package/dist/constants/coordinateNames.d.ts +0 -8
- package/dist/constants/frame_props.d.ts +0 -13
- package/dist/data/dataFunctions.d.ts +0 -45
- package/dist/data/multiAccessorUtils.d.ts +0 -1
- package/dist/data/unflowedFunctions.d.ts +0 -1
- package/dist/generic_utilities/functions.d.ts +0 -1
- package/dist/geometry/areaDrawing.d.ts +0 -21
- package/dist/geometry/contourLayout.d.ts +0 -6
- package/dist/geometry/hexbinLayout.d.ts +0 -7
- package/dist/geometry/lineDrawing.d.ts +0 -71
- package/dist/geometry/summaryLayouts.d.ts +0 -45
- package/dist/index.d.ts +0 -1
- package/dist/network.js +0 -7495
- package/dist/network.js.map +0 -1
- package/dist/network.module.js +0 -7458
- package/dist/network.module.js.map +0 -1
- package/dist/ordinal.js +0 -6497
- package/dist/ordinal.js.map +0 -1
- package/dist/ordinal.module.js +0 -6465
- package/dist/ordinal.module.js.map +0 -1
- package/dist/processing/InteractionItems.d.ts +0 -13
- package/dist/processing/hierarchyUtils.d.ts +0 -16
- package/dist/processing/layouts/chordLayout.d.ts +0 -2
- package/dist/processing/layouts/forceLayout.d.ts +0 -3
- package/dist/processing/layouts/hierarchyLayout.d.ts +0 -10
- package/dist/processing/layouts/index.d.ts +0 -8
- package/dist/processing/layouts/sankeyLayout.d.ts +0 -8
- package/dist/processing/layouts/simpleLayouts.d.ts +0 -7
- package/dist/processing/layouts/types.d.ts +0 -17
- package/dist/processing/networkDefaults.d.ts +0 -36
- package/dist/realtime/renderers/barRenderer.d.ts +0 -2
- package/dist/realtime/renderers/candlestickRenderer.d.ts +0 -2
- package/dist/realtime/renderers/lineRenderer.d.ts +0 -2
- package/dist/realtime/renderers/swarmRenderer.d.ts +0 -2
- package/dist/realtime.js +0 -7072
- package/dist/realtime.js.map +0 -1
- package/dist/realtime.module.js +0 -7043
- package/dist/realtime.module.js.map +0 -1
- package/dist/semiotic-ai.js +0 -13323
- package/dist/semiotic-ai.js.map +0 -1
- package/dist/semiotic-ai.module.js +0 -13264
- package/dist/semiotic-ai.module.js.map +0 -1
- package/dist/semiotic-data.js +0 -141
- package/dist/semiotic-data.js.map +0 -1
- package/dist/semiotic-data.module.js +0 -136
- package/dist/semiotic-data.module.js.map +0 -1
- package/dist/semiotic.js +0 -16351
- package/dist/semiotic.js.map +0 -1
- package/dist/semiotic.module.js +0 -16265
- package/dist/semiotic.module.js.map +0 -1
- package/dist/server.js +0 -5191
- package/dist/server.js.map +0 -1
- package/dist/server.module.js +0 -5166
- package/dist/server.module.js.map +0 -1
- package/dist/stream/NetworkSceneGraph.d.ts +0 -14
- package/dist/stream/index.d.ts +0 -16
- package/dist/types/canvasTypes.d.ts +0 -9
- package/dist/types/xyTypes.d.ts +0 -24
- package/dist/useBoundingRect.d.ts +0 -2
- package/dist/visualizationLayerBehavior/axis.d.ts +0 -36
- package/dist/visualizationLayerBehavior/general.d.ts +0 -80
- package/dist/xy.js +0 -6993
- package/dist/xy.js.map +0 -1
- package/dist/xy.module.js +0 -6957
- package/dist/xy.module.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as t from"react";import e,{useMemo as n,forwardRef as o,useRef as a,useState as i,useCallback as r,useEffect as s,useImperativeHandle as l,createContext as c,useContext as u,useLayoutEffect as d,useId as h}from"react";import{scaleBand as p,scaleLinear as f,scaleOrdinal as m}from"d3-scale";import{quantile as y,sum as g}from"d3-array";import x from"labella";import v from"regression";import{curveCardinal as b}from"d3-shape";import{contourDensity as E}from"d3-contour";import{hexbin as k}from"d3-hexbin";import{schemeCategory10 as M,interpolatePlasma as w,interpolateViridis as A,interpolatePurples as S,interpolateOranges as P,interpolateGreens as $,interpolateReds as j,interpolateBlues as _,schemeSet3 as O,schemeTableau10 as D}from"d3-scale-chromatic";const N=5e3;class T{constructor(t){this.lastBoundedData=null,this.chunkTimer=0,this.callback=t}setBoundedData(t){if(t===this.lastBoundedData)return;if(this.lastBoundedData=t,this.chunkTimer&&(cancelAnimationFrame(this.chunkTimer),this.chunkTimer=0),5e3>=t.length)return void this.callback({inserts:t,bounded:!0});this.callback({inserts:t.slice(0,N),bounded:!0,totalSize:t.length});let e=N;const n=()=>{if(e>=t.length)return;if(t!==this.lastBoundedData)return;const o=Math.min(e+N,t.length);this.callback({inserts:t.slice(e,o),bounded:!1}),e=o,this.chunkTimer=t.length>e?requestAnimationFrame(n):0};this.chunkTimer=requestAnimationFrame(n)}push(t){this.callback({inserts:[t],bounded:!1})}pushMany(t){0!==t.length&&this.callback({inserts:t,bounded:!1})}clear(){this.chunkTimer&&(cancelAnimationFrame(this.chunkTimer),this.chunkTimer=0),this.lastBoundedData=null}}class C{constructor(t){if(this._capacity=t,this.head=0,this._size=0,1>t)throw Error("RingBuffer capacity must be at least 1");this.buffer=Array(t)}push(t){let e;return this._size===this._capacity?e=this.buffer[this.head]:this._size++,this.buffer[this.head]=t,this.head=(this.head+1)%this._capacity,e}pushMany(t){const e=[];for(const n of t){const t=this.push(n);void 0!==t&&e.push(t)}return e}get(t){if(t>=0&&this._size>t)return this.buffer[(this.head-this._size+t+this._capacity)%this._capacity]}peek(){if(0!==this._size)return this.buffer[(this.head-1+this._capacity)%this._capacity]}peekOldest(){if(0!==this._size)return this.buffer[(this.head-this._size+this._capacity)%this._capacity]}[Symbol.iterator](){let t=0;const e=this;return{next:()=>e._size>t?{done:!1,value:e.get(t++)}:{done:!0,value:void 0}}}toArray(){const t=[];for(const e of this)t.push(e);return t}resize(t){if(1>t)throw Error("RingBuffer capacity must be at least 1");const e=this.toArray(),n=[];for(;e.length>t;)n.push(e.shift());this._capacity=t,this.buffer=Array(t),this.head=0,this._size=0;for(const t of e)this.push(t);return n}clear(){this.buffer=Array(this._capacity),this.head=0,this._size=0}get size(){return this._size}get capacity(){return this._capacity}get full(){return this._size===this._capacity}}class z{constructor(){this._min=1/0,this._max=-1/0,this._dirty=!1}push(t){Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}evict(t){t!==this._min&&t!==this._max||(this._dirty=!0)}recalculate(t,e){this._min=1/0,this._max=-1/0;for(const n of t){const t=e?e(n):n;Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}this._dirty=!1}clear(){this._min=1/0,this._max=-1/0,this._dirty=!1}get extent(){return[this._min,this._max]}get min(){return this._min}get max(){return this._max}get dirty(){return this._dirty}}function R(t,e){if("function"==typeof t)return e=>+t(e);const n=t||e;return t=>+t[n]}function B(t,e){return"function"==typeof t?t:t?e=>e[t]+"":e?t=>t[e]+"":void 0}function F(t,e,n,o,a,i,r){return{type:"rect",x:t,y:e,w:n,h:o,style:a,datum:i,group:r}}function L(t,e){const{columns:n,config:o,resolvePieceStyle:a}=t,i=[],r=Math.min(e.width,e.height)/2-4,s="donut"===o.chartType?o.innerRadius||60:0,l=-Math.PI/2+(o.startAngle||0)*Math.PI/180,c=2*Math.PI;for(const t of Object.values(n)){const e=l+t.pctStart*c,n=l+(t.pctStart+t.pct)*c,o=a(t.pieceData[0],t.name);i.push({type:"wedge",cx:0,cy:0,innerRadius:s,outerRadius:r,startAngle:e,endAngle:n,style:o,datum:t.pieceData,category:t.name})}return i}const I={bar:function(t,e){const{scales:n,columns:o,config:a,getR:i,getStack:r,resolvePieceStyle:s}=t,{r:l,projection:c}=n,u=[],d="vertical"===c,h="horizontal"===c,p=a.normalize;for(const t of Object.values(o)){const e=new Map;for(const n of t.pieceData){const t=r?r(n):"_default";e.has(t)||e.set(t,{total:0,pieces:[]});const o=e.get(t);o.total+=i(n),o.pieces.push(n)}let n=0;if(p)for(const t of e.values())n+=Math.abs(t.total);let o=0,a=0;for(const[i,c]of e){let e=c.total;p&&n>0&&(e/=n);const f=s(c.pieces[0],r?i:t.name),m=Object.assign(Object.assign({},c.pieces[0]),{__aggregateValue:c.total,__pieceCount:c.pieces.length,category:t.name});if(d){const n=l(0>e?a:o+e),r=0>e?l(a+e)-l(a):l(o)-l(o+e);u.push(F(t.x,n,t.width,Math.abs(r),f,m,i)),0>e?a+=e:o+=e}else if(h){const n=l(0>e?a+e:o),r=0>e?l(a)-l(a+e):l(o+e)-l(o);u.push(F(n,t.x,Math.abs(r),t.width,f,m,i)),0>e?a+=e:o+=e}}}return u},clusterbar:function(t,e){const{scales:n,columns:o,getR:a,getGroup:i,resolvePieceStyle:r}=t,{r:s,projection:l}=n,c=[],u="vertical"===l,d=[],h=new Set;for(const t of Object.values(o))for(const e of t.pieceData){const t=i?i(e):"_default";h.has(t)||(h.add(t),d.push(t))}const p=d.length||1;for(const t of Object.values(o)){const e=t.width/p,n=new Map;for(const e of t.pieceData){const t=i?i(e):"_default";n.has(t)||n.set(t,[]),n.get(t).push(e)}for(let o=0;d.length>o;o++){const i=n.get(d[o])||[];for(const n of i){const i=a(n),l=r(n,t.name);if(u){const a=t.x+o*e,r=s(0),u=s(i);c.push(F(a,Math.min(r,u),e,Math.abs(r-u),l,n,d[o]))}else{const a=t.x+o*e,r=s(0),u=s(i);c.push(F(Math.min(r,u),a,Math.abs(u-r),e,l,n,d[o]))}}}}return c},point:function(t,e){var n,o;const{scales:a,columns:i,getR:r,multiScales:s,resolvePieceStyle:l}=t,{r:c,projection:u}=a,d=[],h="vertical"===u,p="radial"===u,f=s.length>0,m=2*Math.PI,y=-Math.PI/2;for(const t of Object.values(i))for(const e of t.pieceData){const a=null!==(n=e.__rIndex)&&void 0!==n?n:0,i=null!==(o=e.__rValue)&&void 0!==o?o:r(e),u=f&&s[a]||c,g=l(e,t.name),x=g.r||5;let v,b;if(p){const e=y+(t.pctStart+t.pct/2)*m,n=u(i);v=Math.cos(e)*n,b=Math.sin(e)*n}else h?(v=t.middle,b=u(i)):(v=u(i),b=t.middle);d.push({type:"point",x:v,y:b,r:x,style:g,datum:e})}return d},swarm:function(t,e){const{scales:n,columns:o,getR:a,resolvePieceStyle:i}=t,{r:r,projection:s}=n,l=[],c="vertical"===s;for(const t of Object.values(o)){const e=t.width/2;for(let n=0;t.pieceData.length>n;n++){const o=t.pieceData[n],s=a(o),u=i(o,t.name),d=u.r||4,h=(7919*n%100/100-.5)*e*.8,p=c?t.middle+h:r(s),f=c?r(s):t.middle+h;l.push({type:"point",x:p,y:f,r:d,style:u,datum:o})}}return l},pie:L,donut:L,boxplot:function(t,e){var n,o,a,i,r;const{scales:s,columns:l,config:c,getR:u,resolveSummaryStyle:d}=t,{r:h,projection:p}=s,f=[],m="vertical"===p,g=!1!==c.showOutliers;for(const t of Object.values(l)){const e=t.pieceData.map(t=>u(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(0===e.length)continue;const s=e[0],l=e[e.length-1],c=null!==(n=y(e,.25))&&void 0!==n?n:s,p=null!==(o=y(e,.5))&&void 0!==o?o:(s+l)/2,x=null!==(a=y(e,.75))&&void 0!==a?a:l,v=x-c,b=c-1.5*v,E=x+1.5*v,k=null!==(i=e.find(t=>t>=b))&&void 0!==i?i:s,M=null!==(r=[...e].reverse().find(t=>E>=t))&&void 0!==r?r:l,w=d(t.pieceData[0],t.name),A=[];if(g)for(const e of t.pieceData){const n=u(e);if(b>n||n>E){const o=m?t.middle:h(n),a=m?h(n):t.middle;A.push({px:o,py:a,value:n,datum:e})}}if(f.push({type:"boxplot",x:m?t.middle:0,y:m?0:t.middle,projection:m?"vertical":"horizontal",columnWidth:.6*t.width,minPos:h(k),q1Pos:h(c),medianPos:h(p),q3Pos:h(x),maxPos:h(M),stats:{min:k,q1:c,median:p,q3:x,max:M},style:w,datum:t.pieceData,category:t.name,outliers:A}),g)for(const t of A)f.push({type:"point",x:t.px,y:t.py,r:3,style:{fill:w.fill||"#999",opacity:.6},datum:t.datum})}return f},violin:function(t,e){var n,o,a;const{scales:i,columns:r,config:s,getR:l,resolveSummaryStyle:c}=t,{r:u,projection:d}=i,h=[],p="vertical"===d,f=s.bins||20,m=!1!==s.showIQR;for(const t of Object.values(r)){const e=t.pieceData.map(t=>l(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const i=e[0],r=e[e.length-1],s=(r-i)/f||1,d=Array(f).fill(0);for(const t of e)d[Math.min(Math.floor((t-i)/s),f-1)]++;const g=Math.max(...d,1),x=t.width/2*.9;let v="";if(p){for(let e=0;f>e;e++){const n=u(i+(e+.5)*s),o=d[e]/g*x;v+=0===e?`M ${t.middle+o} ${n}`:` L ${t.middle+o} ${n}`}for(let e=f-1;e>=0;e--){const n=u(i+(e+.5)*s);v+=` L ${t.middle-d[e]/g*x} ${n}`}v+=" Z"}else{for(let e=0;f>e;e++){const n=u(i+(e+.5)*s),o=d[e]/g*x;v+=0===e?`M ${n} ${t.middle-o}`:` L ${n} ${t.middle-o}`}for(let e=f-1;e>=0;e--)v+=` L ${u(i+(e+.5)*s)} ${t.middle+d[e]/g*x}`;v+=" Z"}const b=c(t.pieceData[0],t.name);let E;if(m&&e.length>=4){const t=null!==(n=y(e,.25))&&void 0!==n?n:i,s=null!==(o=y(e,.5))&&void 0!==o?o:(i+r)/2,l=null!==(a=y(e,.75))&&void 0!==a?a:r;E={q1Pos:u(t),medianPos:u(s),q3Pos:u(l)}}const k=p?{x:t.x,y:Math.min(u(r),u(i)),width:t.width,height:Math.abs(u(r)-u(i))}:{x:Math.min(u(i),u(r)),y:t.x,width:Math.abs(u(r)-u(i)),height:t.width};h.push({type:"violin",pathString:v,translateX:0,translateY:0,bounds:k,iqrLine:E,style:b,datum:t.pieceData,category:t.name})}return h},histogram:function(t,e){const{scales:n,columns:o,config:a,getR:i,resolveSummaryStyle:r}=t,{r:s}=n,l=[],c=a.bins||25,u=a.normalize;for(const t of Object.values(o)){const e=t.pieceData.map(t=>i(t)).filter(t=>null!=t&&!isNaN(t));if(0===e.length)continue;const n=Math.min(...e),o=(Math.max(...e)-n)/c||1,a=Array(c).fill(0);for(const t of e)a[Math.min(Math.floor((t-n)/o),c-1)]++;const d=e.length,h=Math.max(...a,1),p=r(t.pieceData[0],t.name);for(let e=0;c>e;e++){if(0===a[e])continue;const i=(u?a[e]/d:a[e]/h)*t.width*.9,r=s(n+e*o),c=s(n+(e+1)*o);l.push(F(Math.min(r,c),t.x+t.width-i,Math.abs(c-r),i,p,{bin:e,count:a[e],range:[n+e*o,n+(e+1)*o],category:t.name},t.name))}}return l},ridgeline:function(t,e){var n;const{scales:o,columns:a,config:i,getR:r,resolveSummaryStyle:s}=t,{r:l,projection:c}=o,u=[],d=i.bins||20,h="horizontal"===c,p=i.amplitude||1.5;for(const t of Object.values(a)){const e=t.pieceData.map(t=>r(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const o=e[0],a=e[e.length-1],i=(a-o)/d||1,c=Array(d).fill(0);for(const t of e)c[Math.min(Math.floor((t-o)/i),d-1)]++;const f=Math.max(...c,1),m=s(t.pieceData[0],t.name),y=t.width*p;let g="";if(h){const e=t.x+t.width;g=`M ${l(o)} ${e}`;for(let t=0;d>t;t++)g+=` L ${l(o+(t+.5)*i)} ${e-c[t]/f*y}`;g+=` L ${l(a)} ${e} Z`}else{const e=t.x;g=`M ${e} ${l(o)}`;for(let t=0;d>t;t++){const n=l(o+(t+.5)*i);g+=` L ${e+c[t]/f*y} ${n}`}g+=` L ${e} ${l(a)} Z`}const x=h?{x:Math.min(l(o),l(a)),y:t.x,width:Math.abs(l(a)-l(o)),height:t.width}:{x:t.x,y:Math.min(l(a),l(o)),width:t.width,height:Math.abs(l(a)-l(o))};u.push({type:"violin",pathString:g,translateX:0,translateY:0,bounds:x,style:Object.assign(Object.assign({},m),{fillOpacity:null!==(n=m.fillOpacity)&&void 0!==n?n:.5}),datum:t.pieceData,category:t.name})}return u},timeline:function(t,e){const{scales:n,columns:o,getRawRange:a,resolvePieceStyle:i}=t,{r:r,projection:s}=n,l=[],c="horizontal"===s;for(const t of Object.values(o))for(const e of t.pieceData){const n=a(e);if(!n)continue;const[o,s]=n,u=i(e,t.name);if(c){const n=r(Math.min(o,s)),a=r(Math.max(o,s));l.push(F(n,t.x,a-n,t.width,u,e,t.name))}else{const n=r(Math.max(o,s)),a=r(Math.min(o,s));l.push(F(t.x,n,t.width,a-n,u,e,t.name))}}return l}};class W{constructor(t){this.rExtent=new z,this.rExtents=[],this.rAccessors=[],this.categories=new Set,this._colorSchemeMap=null,this._colorSchemeIndex=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.lastIngestTime=0,this.scales=null,this.multiScales=[],this.scene=[],this.columns={},this.version=0,this.config=t,this.buffer=new C(t.windowSize),this.getO=B(t.oAccessor||t.categoryAccessor,"category");const e="streaming"===t.runtimeMode,n=t.rAccessor;Array.isArray(n)?(this.rAccessors=n.map(t=>R(t,"value")),this.getR=this.rAccessors[0],this.rExtents=n.map(()=>new z)):(this.getR=R(e&&(t.timeAccessor||t.valueAccessor)&&t.valueAccessor||n,"value"),this.rAccessors=[this.getR],this.rExtents=[this.rExtent]),this.getStack=B(t.stackBy),this.getGroup=B(t.groupBy),this.getColor=B(t.colorAccessor),this.getConnector=B(t.connectorAccessor),t.pulse&&(this.timestampBuffer=new C(t.windowSize))}ingest(t){const e="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=e,t.bounded){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear();const n=t.totalSize||t.inserts.length;n>this.buffer.capacity&&(this.buffer.resize(n),this.timestampBuffer&&n>this.timestampBuffer.capacity&&this.timestampBuffer.resize(n));for(const n of t.inserts)this.buffer.push(n),this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(n)),this.pushValueExtent(n)}else for(const n of t.inserts){const t=this.buffer.push(n);this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(n)),this.pushValueExtent(n),null!=t&&this.evictValueExtent(t)}return!0}pushValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.push(e[0]),this.rExtent.push(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].push(this.rAccessors[e](t));this.rExtent.push(this.getR(t))}else this.rExtent.push(this.getR(t))}evictValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.evict(e[0]),this.rExtent.evict(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].evict(this.rAccessors[e](t));this.rExtent.evict(this.getR(t))}else this.rExtent.evict(this.getR(t))}getRawRange(t){const e=this.config.rAccessor;if(!e)return null;const n="function"==typeof e?e(t):t[e];return Array.isArray(n)&&n.length>=2?[+n[0],+n[1]]:null}computeScene(t){const{config:e,buffer:n}=this;if(0===n.size)return this.scales=null,this.scene=[],this.columns={},void this.version++;this.rExtent.dirty&&this.rExtent.recalculate(n,this.getR);const o=n.toArray(),a=e.projection||"vertical",i=e.oExtent||this.resolveCategories(o),r=this.computeValueDomain(o,i),s="horizontal"===a,l=null!=e.barPadding?e.barPadding/("vertical"===a?t.width:t.height):.1;let c,u;if("radial"===a){c=p().domain(i).range([0,1]).padding(0);const n=Math.min(t.width,t.height)/2,o=e.innerRadius||0;u=f().domain(r).range([o,n])}else s?(c=p().domain(i).range([0,t.height]).padding(l),u=f().domain(r).range([0,t.width])):(c=p().domain(i).range([0,t.width]).padding(l),u=f().domain(r).range([t.height,0]));this.scales={o:c,r:u,projection:a},this.multiScales=this.rAccessors.length>1&&e.multiAxis?this.rAccessors.map((o,a)=>{const i=this.rExtents[a];i.dirty&&i.recalculate(n,o);let[r,l]=i.extent;r===1/0&&(r=0,l=1);const c=l-r,u=c>0?c*(e.extentPadding||.05):1;return r-=u,l+=u,r>0&&(r=0),s?f().domain([r,l]).range([0,t.width]):f().domain([r,l]).range([t.height,0])}):[];let d=o;this.rAccessors.length>1&&(d=o.flatMap(t=>this.rAccessors.map((e,n)=>Object.assign(Object.assign({},t),{__rIndex:n,__rValue:e(t),__rName:this.resolveRAccessorName(n)})))),this.columns=this.buildColumns(d,i,c,a,t),this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(d,t),this.config.decay&&this.applyDecay(this.scene,o),this.config.pulse&&this.applyPulse(this.scene,o),this.config.transition&&this.prevPositionMap.size>0&&this.startTransition(),this.version++}resolveRAccessorName(t){const e=Array.isArray(this.config.rAccessor)?this.config.rAccessor[t]:this.config.rAccessor;return"string"==typeof e?e:"value"+t}resolveCategories(t){const e=Array.from(this.categories),n=this.config.oSort;if("streaming"===this.config.runtimeMode&&void 0===n)return e;if(!1===n)return e;if("function"==typeof n)return e.sort(n);const o=new Map;for(const e of t){const t=this.getO(e);o.set(t,(o.get(t)||0)+Math.abs(this.getR(e)))}return e.sort("asc"===n?(t,e)=>(o.get(t)||0)-(o.get(e)||0):(t,e)=>(o.get(e)||0)-(o.get(t)||0))}computeValueDomain(t,e){var n,o;const a=this.config.chartType,i=this.config.extentPadding||.05;if("radial"===this.config.projection&&("pie"===a||"donut"===a))return[0,1];let r=0,s=0;if("bar"===a&&this.getStack){const e=new Map,n=new Map;for(const o of t){const t=this.getO(o),a=this.getR(o);0>a?n.set(t,(n.get(t)||0)+a):e.set(t,(e.get(t)||0)+a)}for(const t of e.values())t>s&&(s=t);for(const t of n.values())r>t&&(r=t)}else if("bar"===a){const e=new Map;for(const n of t){const t=this.getO(n),o=this.getR(n);e.set(t,(e.get(t)||0)+o)}for(const t of e.values())t>s&&(s=t),r>t&&(r=t)}else if("clusterbar"===a)for(const e of t){const t=this.getR(e);t>s&&(s=t),r>t&&(r=t)}else{const t=this.rExtent.extent[0],e=this.rExtent.extent[1];t!==1/0&&(r=t),e!==-1/0&&(s=e)}this.config.rExtent&&(null!=this.config.rExtent[0]&&(r=this.config.rExtent[0]),null!=this.config.rExtent[1]&&(s=this.config.rExtent[1]));const l=s-r,c=l>0?l*i:1;return(null===(n=this.config.rExtent)||void 0===n?void 0:n[0])||(r-=c),(null===(o=this.config.rExtent)||void 0===o?void 0:o[1])||(s+=c),"bar"!==a&&"clusterbar"!==a||(r>0&&(r=0),0>s&&(s=0)),[r,s]}buildColumns(t,e,n,o,a){var i;const r={},s=new Map;for(const e of t){const t=this.getO(e);s.has(t)||s.set(t,[]),s.get(t).push(e)}let l=0;if("radial"===o)for(const e of t)l+=Math.abs(this.getR(e));const c=this.config.dynamicColumnWidth;let u=null;if(c&&"radial"!==o){u=new Map;let t=0;for(const n of e){const e=s.get(n)||[];let o;o="string"==typeof c?e.reduce((t,e)=>t+(Number(e[c])||0),0):c(e),u.set(n,o),t+=o}const i=("horizontal"===o?a.height:a.width)-n.padding()*n.step()*e.length;if(t>0)for(const[e,n]of u)u.set(e,n/t*i)}let d=0,h=0;for(const t of e){const e=s.get(t)||[],o=e.reduce((t,e)=>t+Math.abs(this.getR(e)),0),a=l>0?o/l:0;let c,p;u?(c=h,p=u.get(t)||n.bandwidth(),h+=p+n.padding()*n.step()):(c=null!==(i=n(t))&&void 0!==i?i:0,p=n.bandwidth()),r[t]={name:t,x:c,y:0,width:p,middle:c+p/2,padding:n.padding()*n.step(),pieceData:e,pct:a,pctStart:d},d+=a}return r}getSceneContext(){return{scales:this.scales,columns:this.columns,config:this.config,getR:this.getR,getStack:this.getStack,getGroup:this.getGroup,getColor:this.getColor,getConnector:this.getConnector,getO:this.getO,multiScales:this.multiScales,rAccessors:this.rAccessors,resolvePieceStyle:(t,e)=>this.resolvePieceStyle(t,e),resolveSummaryStyle:(t,e)=>this.resolveSummaryStyle(t,e),getRawRange:t=>this.getRawRange(t)}}buildSceneNodes(t,e){if(!this.scales)return[];const n=this.getSceneContext(),o=I[this.config.chartType];let a=o?o(n,e):[];if(this.getConnector&&this.scales){const t=function(t,e){const{scales:n,config:o,getConnector:a,getO:i}=t;if(!a||!n)return[];const r=[],{projection:s}=n,l=new Map;for(const t of e){if("point"!==t.type&&"rect"!==t.type)continue;const e=t.datum;if(!e)continue;const n=a(e);if(!n)continue;let o,r;"point"===t.type?(o=t.x,r=t.y):(o=t.x+t.w/2,r=t.y+("vertical"===s?0:t.h/2)),l.has(n)||l.set(n,[]),l.get(n).push({x:o,y:r,datum:e,category:i(e)})}const c=n.o.domain(),u=o.connectorStyle;for(const[t,e]of l)if(e.length>=2){e.sort((t,e)=>c.indexOf(t.category)-c.indexOf(e.category));for(let n=0;e.length-1>n;n++){const o=e[n],a=e[n+1],i="function"==typeof u?u(o.datum):u||{stroke:"#999",strokeWidth:1,opacity:.5};r.push({type:"connector",x1:o.x,y1:o.y,x2:a.x,y2:a.y,style:i,datum:o.datum,group:t})}}return r}(n,a);a=[...t,...a]}return a}resolvePieceStyle(t,e){return"function"==typeof this.config.pieceStyle?this.config.pieceStyle(t,e):this.config.pieceStyle&&"object"==typeof this.config.pieceStyle?this.config.pieceStyle:this.config.barColors&&e?{fill:this.config.barColors[e]||"#007bff"}:e?{fill:this.getColorFromScheme(e)}:{fill:"#007bff"}}getColorFromScheme(t){this._colorSchemeMap||(this._colorSchemeMap=new Map);const e=this._colorSchemeMap.get(t);if(e)return e;const n=Array.isArray(this.config.colorScheme)?this.config.colorScheme:["#4e79a7","#f28e2b","#e15759","#76b7b2","#59a14f","#edc948","#b07aa1","#ff9da7","#9c755f","#bab0ac"],o=n[this._colorSchemeIndex%n.length];return this._colorSchemeIndex++,this._colorSchemeMap.set(t,o),o}resolveSummaryStyle(t,e){return"function"==typeof this.config.summaryStyle?this.config.summaryStyle(t,e):this.config.summaryStyle&&"object"==typeof this.config.summaryStyle?this.config.summaryStyle:{fill:"#007bff",fillOpacity:.6,stroke:"#007bff",strokeWidth:1}}computeDecayOpacity(t,e){var n,o,a;const i=this.config.decay;if(!i||1>=e)return 1;const r=null!==(n=i.minOpacity)&&void 0!==n?n:.1,s=e-1-t;switch(i.type){case"linear":return r+(1-s/(e-1))*(1-r);case"exponential":{const t=null!==(o=i.halfLife)&&void 0!==o?o:e/2;return r+Math.pow(.5,s/t)*(1-r)}case"step":return(null!==(a=i.stepThreshold)&&void 0!==a?a:.5*e)>s?1:r;default:return 1}}applyDecay(t,e){var n,o;if(!this.config.decay)return;const a=e.length;if(1>=a)return;const i=new Map;for(let t=0;e.length>t;t++)i.set(e[t],t);for(const e of t){if("connector"===e.type||"violin"===e.type||"boxplot"===e.type||"wedge"===e.type)continue;const t=i.get(e.datum);if(null==t)continue;const r=this.computeDecayOpacity(t,a),s=null!==(o=null===(n=e.style)||void 0===n?void 0:n.opacity)&&void 0!==o?o:1;e.style=Object.assign(Object.assign({},e.style),{opacity:s*r})}}applyPulse(t,e){var n,o;if(!this.config.pulse||!this.timestampBuffer)return;const a="undefined"!=typeof performance?performance.now():Date.now(),i=null!==(n=this.config.pulse.duration)&&void 0!==n?n:500,r=null!==(o=this.config.pulse.color)&&void 0!==o?o:"rgba(255,255,255,0.6)",s=new Map;for(let t=0;e.length>t;t++)s.set(e[t],t);for(const e of t){if("connector"===e.type||"violin"===e.type||"boxplot"===e.type||"wedge"===e.type)continue;const t=s.get(e.datum);if(null==t)continue;const n=this.timestampBuffer.get(t);if(null==n)continue;const o=a-n;i>o&&(e._pulseIntensity=1-o/i,e._pulseColor=r)}}get hasActivePulses(){var t;if(!this.config.pulse||!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const e="undefined"!=typeof performance?performance.now():Date.now(),n=null!==(t=this.config.pulse.duration)&&void 0!==t?t:500,o=this.timestampBuffer.peek();return null!=o&&n>e-o}snapshotPositions(){var t,e;this.prevPositionMap.clear();for(let n=0;this.scene.length>n;n++){const o=this.scene[n];if("point"===o.type)this.prevPositionMap.set("p:"+n,{x:o.x,y:o.y,r:o.r});else if("rect"===o.type){const a=`r:${o.group||""}:${null!==(e=null===(t=o.datum)||void 0===t?void 0:t.category)&&void 0!==e?e:n}`;this.prevPositionMap.set(a,{x:o.x,y:o.y,w:o.w,h:o.h})}}}startTransition(){var t,e,n,o,a;if(!this.config.transition||0===this.prevPositionMap.size)return;const i=null!==(t=this.config.transition.duration)&&void 0!==t?t:300;let r=!1;for(let t=0;this.scene.length>t;t++){const i=this.scene[t];let s=null;if("point"===i.type?s="p:"+t:"rect"===i.type&&(s=`r:${i.group||""}:${null!==(n=null===(e=i.datum)||void 0===e?void 0:e.category)&&void 0!==n?n:t}`),!s)continue;const l=this.prevPositionMap.get(s);l&&("point"===i.type?l.x===i.x&&l.y===i.y||(i._targetX=i.x,i._targetY=i.y,i.x=l.x,i.y=l.y,r=!0):"rect"===i.type&&(l.x===i.x&&l.y===i.y&&l.w===i.w&&l.h===i.h||(i._targetX=i.x,i._targetY=i.y,i._targetW=i.w,i._targetH=i.h,i.x=l.x,i.y=l.y,i.w=null!==(o=l.w)&&void 0!==o?o:i.w,i.h=null!==(a=l.h)&&void 0!==a?a:i.h,r=!0)))}r&&(this.activeTransition={startTime:"undefined"!=typeof performance?performance.now():Date.now(),duration:i})}advanceTransition(t){var e,n,o;if(!this.activeTransition)return!1;const a=Math.min((t-this.activeTransition.startTime)/this.activeTransition.duration,1),i="linear"===(null===(e=this.config.transition)||void 0===e?void 0:e.easing)?a:1-Math.pow(1-a,3);for(const t of this.scene)if("point"===t.type){if(void 0===t._targetX)continue;const e=this.prevPositionMap.get("p:0");if(!e)continue;t.x=e.x+(t._targetX-e.x)*i,t.y=e.y+(t._targetY-e.y)*i}else if("rect"===t.type){if(void 0===t._targetX)continue;const e=`r:${t.group||""}:${null!==(o=null===(n=t.datum)||void 0===n?void 0:n.category)&&void 0!==o?o:0}`,a=this.prevPositionMap.get(e);if(!a)continue;t.x=a.x+(t._targetX-a.x)*i,t.y=a.y+(t._targetY-a.y)*i,void 0!==a.w&&(t.w=a.w+(t._targetW-a.w)*i,t.h=a.h+(t._targetH-a.h)*i)}if(a>=1){for(const t of this.scene)if("point"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t._targetX=void 0,t._targetY=void 0}else if("rect"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}return this.activeTransition=null,!1}return!0}getData(){return this.buffer.toArray()}clear(){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.activeTransition=null,this.lastIngestTime=0,this.scales=null,this.scene=[],this.columns={},this.version++}get size(){return this.buffer.size}getOAccessor(){return this.getO}getRAccessor(){return this.getR}updateConfig(t){t.colorScheme!==this.config.colorScheme&&(this._colorSchemeMap=null,this._colorSchemeIndex=0),Object.assign(this.config,t)}}function V(t,e,n){return t.x>e||e>t.x+t.w||t.y>n||n>t.y+t.h?null:{datum:t.datum,x:t.x+t.w/2,y:t.y,distance:0,category:t.group}}function H(t,e,n){const o=e-t.x,a=n-t.y,i=Math.sqrt(o*o+a*a);return i>Math.max(t.r,5)?null:{datum:t.datum,x:t.x,y:t.y,distance:i}}function q(t,e,n){const o=e-t.cx,a=n-t.cy,i=Math.sqrt(o*o+a*a);if(t.innerRadius>i||i>t.outerRadius)return null;let r=Math.atan2(a,o);0>r&&(r+=2*Math.PI);let s=t.startAngle%(2*Math.PI),l=t.endAngle%(2*Math.PI);if(0>s&&(s+=2*Math.PI),0>l&&(l+=2*Math.PI),!(s>l?r>=s||l>=r:r>=s&&l>=r))return null;const c=(t.startAngle+t.endAngle)/2,u=(t.innerRadius+t.outerRadius)/2;return{datum:t.datum,x:t.cx+Math.cos(c)*u,y:t.cy+Math.sin(c)*u,distance:0,category:t.category}}function G(t,e,n){const o=t.columnWidth/2;if("vertical"===t.projection){if(!(t.x-o>e||e>t.x+o||Math.min(t.minPos,t.maxPos)>n||n>Math.max(t.minPos,t.maxPos)))return{datum:t.datum,x:t.x,y:t.medianPos,distance:0,category:t.category}}else{const a=t.y-o,i=t.y+o;if(!(Math.min(t.minPos,t.maxPos)>e||e>Math.max(t.minPos,t.maxPos)||a>n||n>i))return{datum:t.datum,x:t.medianPos,y:t.y,distance:0,category:t.category}}return null}function X(t,e,n){if(!t.bounds)return null;const{x:o,y:a,width:i,height:r}=t.bounds;return o>e||e>o+i||a>n||n>a+r?null:{datum:t.datum,x:o+i/2,y:a+r/2,distance:0,category:t.category}}const Y={fill:e=>t.createElement("rect",{style:e,width:20,height:20}),line:e=>t.createElement("line",{style:e,x1:0,y1:0,x2:20,y2:20})};function K(t,e,n,o){let a;return a="function"==typeof n?n(t):(0,Y[n])(o(t,e)),a}function Q(e){const{legendGroups:n,customClickBehavior:o,title:a="Legend",width:i=100,height:r=20,orientation:s="vertical"}=e,l="vertical"===s?(({legendGroups:e,width:n,customClickBehavior:o})=>{let a=30;const i=[];return e.forEach((e,r)=>{a+=5,i.push(t.createElement("line",{key:"legend-top-line legend-symbol-"+r,stroke:"gray",x1:0,y1:a,x2:n,y2:a})),a+=10,e.label&&(a+=20,i.push(t.createElement("text",{key:"legend-text-"+r,y:a,className:"legend-group-label"},e.label)),a+=10),i.push(t.createElement("g",{key:"legend-group-"+r,className:"legend-item",transform:`translate(0,${a})`},((e,n)=>{const{type:o="fill",styleFn:a,items:i}=e,r=[];let s=0;return i.forEach((e,i)=>{const l=K(e,i,o,a);r.push(t.createElement("g",{key:"legend-item-"+i,transform:`translate(0,${s})`,onClick:n?()=>n(e):void 0,style:{cursor:n?"pointer":"default"}},l,t.createElement("text",{y:15,x:30},e.label))),s+=25}),r})(e,o))),a+=25*e.items.length+10}),i})({legendGroups:n,width:i,customClickBehavior:o}):(({legendGroups:e,title:n,height:o,customClickBehavior:a})=>{let i=0;const r=[],s=!1===n?10:40;return e.forEach((n,l)=>{n.label&&(r.push(t.createElement("text",{key:"legend-text-"+l,transform:`translate(${i},${s}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},n.label)),i+=20);const c=((e,n)=>{const{type:o="fill",styleFn:a,items:i}=e,r=[];let s=0;return i.forEach((e,i)=>{const l=K(e,i,o,a);r.push(t.createElement("g",{key:"legend-item-"+i,transform:`translate(${s},0)`,onClick:n?()=>n(e):void 0,style:{cursor:n?"pointer":"default"}},l,t.createElement("text",{y:15,x:25},e.label))),s+=35,s+=8*e.label.length}),{items:r,offset:s}})(n,a);r.push(t.createElement("g",{key:"legend-group-"+l,className:"legend-item",transform:`translate(${i},${s})`},c.items)),i+=c.offset+5,e[l+1]&&r.push(t.createElement("line",{key:"legend-top-line legend-symbol-"+l,stroke:"gray",x1:i,y1:s-10,x2:i,y2:o+s+10})),i+=15}),t.createElement("g",null,!1!==n&&t.createElement("line",{x1:0,x2:i+10,y1:s-10,y2:s-10,stroke:"gray",className:"title-neatline"}),r)})({legendGroups:n,title:a,height:r,customClickBehavior:o});return t.createElement("g",null,void 0!==a&&t.createElement("text",{className:"legend-title",y:20,x:"horizontal"===s?0:i/2,textAnchor:"horizontal"===s?"start":"middle"},a),l)}function Z(t){return Math.round(100*t)/100+""}function J(e){const{width:o,height:a,totalWidth:i,totalHeight:r,margin:s,scales:l,showAxes:c,oLabel:u,rLabel:d,oFormat:h,rFormat:p,showGrid:f,title:m,legend:y,foregroundGraphics:g,annotations:x,svgAnnotationRules:v,annotationFrame:b,children:E}=e,k="radial"===(null==l?void 0:l.projection),M="horizontal"===(null==l?void 0:l.projection),w=n(()=>c&&l&&!k?l.o.domain().map(t=>{var e;return{value:t,pixel:(null!==(e=l.o(t))&&void 0!==e?e:0)+l.o.bandwidth()/2,label:h?h(t):t}}):[],[c,l,h,k]),A=n(()=>c&&l&&!k?l.r.ticks(5).map(t=>({value:t,pixel:l.r(t),label:(p||Z)(t)})):[],[c,l,p,k]),S=n(()=>x&&0!==x.length&&v?x.map((t,e)=>v(t,e,{scales:l?{time:l.r,value:l.r}:null,timeAxis:"x",width:o,height:a})).filter(Boolean):null,[x,v,o,a,b]);return c||m||y||g||S&&S.length>0||f||E?t.createElement("svg",{width:i,height:r,style:{position:"absolute",top:0,left:0,pointerEvents:"none"}},t.createElement("g",{transform:`translate(${s.left},${s.top})`},f&&l&&!k&&t.createElement("g",{className:"ordinal-grid"},A.map((e,n)=>t.createElement("line",{key:"grid-"+n,x1:M?e.pixel:0,y1:M?0:e.pixel,x2:M?e.pixel:o,y2:M?a:e.pixel,stroke:"#e0e0e0",strokeWidth:1}))),c&&l&&!k&&t.createElement("g",{className:"ordinal-axes"},M?t.createElement(t.Fragment,null,t.createElement("line",{x1:0,y1:0,x2:0,y2:a,stroke:"#ccc",strokeWidth:1}),w.map((e,n)=>t.createElement("g",{key:"cat-"+n,transform:`translate(0,${e.pixel})`},t.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),u&&t.createElement("text",{x:15-s.left,y:a/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-s.left}, ${a/2})`,style:{userSelect:"none"}},u),t.createElement("line",{x1:0,y1:a,x2:o,y2:a,stroke:"#ccc",strokeWidth:1}),A.map((e,n)=>t.createElement("g",{key:"val-"+n,transform:`translate(${e.pixel},${a})`},t.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),d&&t.createElement("text",{x:o/2,y:a+40,textAnchor:"middle",fontSize:12,fill:"#333",style:{userSelect:"none"}},d)):t.createElement(t.Fragment,null,t.createElement("line",{x1:0,y1:a,x2:o,y2:a,stroke:"#ccc",strokeWidth:1}),w.map((e,n)=>t.createElement("g",{key:"cat-"+n,transform:`translate(${e.pixel},${a})`},t.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),u&&t.createElement("text",{x:o/2,y:a+40,textAnchor:"middle",fontSize:12,fill:"#333",style:{userSelect:"none"}},u),t.createElement("line",{x1:0,y1:0,x2:0,y2:a,stroke:"#ccc",strokeWidth:1}),A.map((e,n)=>t.createElement("g",{key:"val-"+n,transform:`translate(0,${e.pixel})`},t.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),t.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666",style:{userSelect:"none"}},e.label))),d&&t.createElement("text",{x:15-s.left,y:a/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-s.left}, ${a/2})`,style:{userSelect:"none"}},d))),S,g,E),m&&t.createElement("text",{x:i/2,y:20,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333",style:{userSelect:"none"}},"string"==typeof m?m:null),y&&t.createElement("g",{transform:`translate(${i-s.right+10}, ${s.top})`},"object"==typeof(P=y)&&null!==P&&!t.isValidElement(P)&&"legendGroups"in P?t.createElement(Q,{legendGroups:y.legendGroups,title:"",width:100}):y)):null;var P}const U=(t,e,n,o)=>{const a=e.filter(t=>"rect"===t.type);for(const e of a)null!=e.style.opacity&&(t.globalAlpha=e.style.opacity),e.style.icon?tt(t,e):(t.fillStyle=e.style.fill||"#007bff",t.fillRect(e.x,e.y,e.w,e.h),e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.strokeRect(e.x,e.y,e.w,e.h))),e._pulseIntensity&&e._pulseIntensity>0&&(t.globalAlpha=.3*e._pulseIntensity,t.fillStyle=e._pulseColor||"rgba(255,255,255,0.6)",t.fillRect(e.x,e.y,e.w,e.h)),t.globalAlpha=1};function tt(t,e){const n=e.style.icon,o=e.style.iconPadding||2,a=Math.min(e.w,e.w)-o;if(0>=a)return;const i=e.h>e.w;if(t.save(),t.beginPath(),t.rect(e.x,e.y,e.w,e.h),t.clip(),i){const i=a+o,r=e.x+(e.w-a)/2;for(let o=e.y+e.h-a;o>=e.y-a;o-=i)t.drawImage(n,r,o,a,a)}else{const i=a+o,r=e.y+(e.h-a)/2;for(let o=e.x;e.x+e.w>o;o+=i)t.drawImage(n,o,r,a,a)}t.restore()}const et=(t,e,n,o)=>{var a;const i=e.filter(t=>"point"===t.type);for(const e of i){t.beginPath(),t.arc(e.x,e.y,e.r,0,2*Math.PI);const n=null!==(a=e.style.opacity)&&void 0!==a?a:e.style.fillOpacity;if(null!=n&&(t.globalAlpha=n),t.fillStyle=e.style.fill||"#4e79a7",t.fill(),e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.stroke()),e._pulseIntensity&&e._pulseIntensity>0){const n=4;t.beginPath(),t.arc(e.x,e.y,e.r+n*e._pulseIntensity,0,2*Math.PI),t.strokeStyle=e._pulseColor||"rgba(255,255,255,0.6)",t.lineWidth=2*e._pulseIntensity,t.globalAlpha=.5*e._pulseIntensity,t.stroke()}t.globalAlpha=1}},nt=(t,e,n,o)=>{const a=e.filter(t=>"wedge"===t.type);for(const e of a)t.beginPath(),e.innerRadius>0?(t.arc(e.cx,e.cy,e.outerRadius,e.startAngle,e.endAngle),t.arc(e.cx,e.cy,e.innerRadius,e.endAngle,e.startAngle,!0)):(t.moveTo(e.cx,e.cy),t.arc(e.cx,e.cy,e.outerRadius,e.startAngle,e.endAngle)),t.closePath(),null!=e.style.opacity&&(t.globalAlpha=e.style.opacity),null!=e.style.fillOpacity&&(t.globalAlpha=e.style.fillOpacity),t.fillStyle=e.style.fill||"#007bff",t.fill(),e.style.stroke&&"none"!==e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.stroke()),t.globalAlpha=1},ot=(t,e,n,o)=>{var a,i;const r=e.filter(t=>"violin"===t.type);for(const e of r){t.save(),(e.translateX||e.translateY)&&t.translate(e.translateX,e.translateY);const n=new Path2D(e.pathString);t.globalAlpha=null!==(i=null!==(a=e.style.fillOpacity)&&void 0!==a?a:e.style.opacity)&&void 0!==i?i:.6,t.fillStyle=e.style.fill||"#007bff",t.fill(n),t.globalAlpha=1,e.style.stroke&&"none"!==e.style.stroke&&(t.strokeStyle=e.style.stroke,t.lineWidth=e.style.strokeWidth||1,t.stroke(n)),e.iqrLine&&(t.strokeStyle="#333",t.lineWidth=2,t.globalAlpha=.8,t.beginPath(),t.moveTo(0,e.iqrLine.q1Pos),t.lineTo(0,e.iqrLine.q3Pos),t.stroke(),t.beginPath(),t.arc(0,e.iqrLine.medianPos,3,0,2*Math.PI),t.fillStyle="#fff",t.fill(),t.strokeStyle="#333",t.lineWidth=1,t.stroke(),t.globalAlpha=1),t.restore()}},at=(t,e,n,o)=>{var a,i,r;const s=e.filter(t=>"connector"===t.type);if(0===s.length)return;const l=new Map;for(const t of s){const e=t.group||"_default";l.has(e)||l.set(e,[]),l.get(e).push(t)}for(const[,e]of l){if(0===e.length)continue;const n=e[0].style;if(n.fill&&"none"!==n.fill){t.beginPath(),t.moveTo(e[0].x1,e[0].y1);for(const n of e)t.lineTo(n.x2,n.y2);t.closePath(),t.globalAlpha=null!==(i=null!==(a=n.fillOpacity)&&void 0!==a?a:n.opacity)&&void 0!==i?i:.3,t.fillStyle=n.fill,t.fill(),t.globalAlpha=1}for(const n of e)t.beginPath(),t.moveTo(n.x1,n.y1),t.lineTo(n.x2,n.y2),t.strokeStyle=n.style.stroke||n.style.fill||"#999",t.lineWidth=n.style.strokeWidth||1,t.globalAlpha=null!==(r=n.style.opacity)&&void 0!==r?r:.5,t.stroke(),t.globalAlpha=1}},it=t=>[at,...t],rt={bar:it([U]),clusterbar:it([U]),point:it([et]),swarm:it([et]),pie:[nt],donut:[nt],boxplot:it([(t,e,n,o)=>{var a,i;const r=e.filter(t=>"boxplot"===t.type);for(const e of r){const n=e.columnWidth/2,o="vertical"===e.projection,r=e.style.fill||"#007bff",s=e.style.stroke||"#333",l=e.style.strokeWidth||1,c=null!==(i=null!==(a=e.style.fillOpacity)&&void 0!==a?a:e.style.opacity)&&void 0!==i?i:.6;if(t.save(),t.strokeStyle=s,t.lineWidth=l,t.beginPath(),o?(t.moveTo(e.x,e.minPos),t.lineTo(e.x,e.maxPos)):(t.moveTo(e.minPos,e.y),t.lineTo(e.maxPos,e.y)),t.stroke(),t.beginPath(),o?(t.moveTo(e.x-.4*n,e.minPos),t.lineTo(e.x+.4*n,e.minPos),t.moveTo(e.x-.4*n,e.maxPos),t.lineTo(e.x+.4*n,e.maxPos)):(t.moveTo(e.minPos,e.y-.4*n),t.lineTo(e.minPos,e.y+.4*n),t.moveTo(e.maxPos,e.y-.4*n),t.lineTo(e.maxPos,e.y+.4*n)),t.stroke(),t.globalAlpha=c,t.fillStyle=r,o){const o=Math.min(e.q1Pos,e.q3Pos),a=Math.abs(e.q3Pos-e.q1Pos);t.fillRect(e.x-n,o,e.columnWidth,a),t.globalAlpha=1,t.strokeRect(e.x-n,o,e.columnWidth,a)}else{const o=Math.min(e.q1Pos,e.q3Pos),a=Math.abs(e.q3Pos-e.q1Pos);t.fillRect(o,e.y-n,a,e.columnWidth),t.globalAlpha=1,t.strokeRect(o,e.y-n,a,e.columnWidth)}t.strokeStyle="#fff",t.lineWidth=2,t.beginPath(),o?(t.moveTo(e.x-n,e.medianPos),t.lineTo(e.x+n,e.medianPos)):(t.moveTo(e.medianPos,e.y-n),t.lineTo(e.medianPos,e.y+n)),t.stroke(),t.restore()}},et]),violin:it([ot]),histogram:it([U]),ridgeline:it([ot]),timeline:it([U])},st={top:50,right:40,bottom:60,left:70},lt={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"6px 10px",borderRadius:"4px",fontSize:"13px",lineHeight:"1.4",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",whiteSpace:"nowrap"};function ct({hover:e}){var n,o,a,i;const r=e.data||{};if(Array.isArray(r)){const e=(null===(n=r[0])||void 0===n?void 0:n.category)||"",o=r.length;return t.createElement("div",{className:"semiotic-tooltip",style:lt},e&&t.createElement("div",{style:{fontWeight:"bold"}},e+""),t.createElement("div",null,o," items"))}if(null!=r.bin&&null!=r.count){const e=r.range||[];return t.createElement("div",{className:"semiotic-tooltip",style:lt},r.category&&t.createElement("div",{style:{fontWeight:"bold"}},r.category+""),t.createElement("div",null,"Count: ",r.count),2===e.length&&t.createElement("div",{style:{opacity:.8}},Number(e[0]).toFixed(1)," – ",Number(e[1]).toFixed(1)))}const s=r.category||r.name||r.group||r.__rName||"",l=null!==(i=null!==(a=null!==(o=r.value)&&void 0!==o?o:r.__rValue)&&void 0!==a?a:r.pct)&&void 0!==i?i:"";if(!s&&""===l){const e=Object.entries(r).filter(([t])=>!t.startsWith("_")&&"data"!==t);return t.createElement("div",{className:"semiotic-tooltip",style:lt},e.map(([e,n])=>t.createElement("div",{key:e},t.createElement("span",{style:{opacity:.7}},e,":")," ","number"==typeof n?n.toLocaleString():n+"")))}return t.createElement("div",{className:"semiotic-tooltip",style:lt},s&&t.createElement("div",{style:{fontWeight:"bold"}},s+""),""!==l&&t.createElement("div",null,"number"==typeof l?l.toLocaleString():l+""))}const ut=o(function(e,o){const{chartType:c,runtimeMode:u,data:d,oAccessor:h="category",rAccessor:p="value",colorAccessor:f,stackBy:m,groupBy:y,multiAxis:g,timeAccessor:x,valueAccessor:v,categoryAccessor:b,projection:E="vertical",size:k=[600,400],margin:M,barPadding:w,innerRadius:A,normalize:S,startAngle:P,dynamicColumnWidth:$,bins:j,showOutliers:_,showIQR:O,amplitude:D,connectorAccessor:N,connectorStyle:C,rExtent:z,oExtent:R,extentPadding:B=.05,oSort:F,windowMode:L="sliding",windowSize:I=200,pieceStyle:Y,summaryStyle:K,colorScheme:Q,barColors:Z,showAxes:U=!0,oLabel:tt,rLabel:et,oFormat:nt,rFormat:ot,enableHover:at=!0,hoverAnnotation:it,tooltipContent:lt,customHoverBehavior:ut,annotations:dt,svgAnnotationRules:ht,showGrid:pt=!1,legend:ft,backgroundGraphics:mt,foregroundGraphics:yt,title:gt,className:xt,background:vt,centerContent:bt,decay:Et,pulse:kt,transition:Mt,staleness:wt}=e,At=n(()=>Object.assign(Object.assign({},st),M),[M]),St=k[0]-At.left-At.right,Pt=k[1]-At.top-At.bottom,$t=a(null),jt=a(!0),_t=a(0),Ot=a(null),Dt=a(()=>{}),[Nt,Tt]=i(null),[Ct,zt]=i(null),[Rt,Bt]=i(0),[Ft,Lt]=i(!1),It=at||it,Wt="streaming"===u,Vt=n(()=>({chartType:c,runtimeMode:Wt?"streaming":"bounded",windowSize:I,windowMode:L,extentPadding:B,projection:E,oAccessor:Wt?void 0:h,rAccessor:Wt?void 0:p,colorAccessor:f,stackBy:m,groupBy:y,multiAxis:g,timeAccessor:Wt?x:void 0,valueAccessor:Wt?v||("string"==typeof p||"function"==typeof p?p:void 0):void 0,categoryAccessor:Wt?b||h:void 0,rExtent:z,oExtent:R,barPadding:w,innerRadius:A,normalize:S,startAngle:P,dynamicColumnWidth:$,bins:j,showOutliers:_,showIQR:O,amplitude:D,connectorAccessor:N,connectorStyle:C,oSort:F,pieceStyle:Y,summaryStyle:K,colorScheme:Q,barColors:Z,decay:Et,pulse:kt,transition:Mt,staleness:wt}),[c,I,L,B,E,h,p,f,m,y,g,x,v,b,z,R,w,A,S,P,$,j,_,O,D,N,C,F,Y,K,Q,Z,Et,kt,Mt,wt,Wt]),Ht=a(null);Ht.current||(Ht.current=new W(Vt));const qt=r(()=>{_t.current||(_t.current=requestAnimationFrame(()=>Dt.current()))},[]);s(()=>{var t;null===(t=Ht.current)||void 0===t||t.updateConfig(Vt),jt.current=!0,qt()},[Vt,qt]);const Gt=a(null);Gt.current||(Gt.current=new T(t=>{const e=Ht.current;e&&e.ingest(t)&&(jt.current=!0,qt())}));const Xt=r(t=>{var e;null===(e=Gt.current)||void 0===e||e.push(t)},[]),Yt=r(t=>{var e;null===(e=Gt.current)||void 0===e||e.pushMany(t)},[]),Kt=r(()=>{var t,e;null===(t=Gt.current)||void 0===t||t.clear(),null===(e=Ht.current)||void 0===e||e.clear(),jt.current=!0,qt()},[qt]);l(o,()=>({push:Xt,pushMany:Yt,clear:Kt,getData:()=>{var t,e;return null!==(e=null===(t=Ht.current)||void 0===t?void 0:t.getData())&&void 0!==e?e:[]},getScales:()=>{var t,e;return null!==(e=null===(t=Ht.current)||void 0===t?void 0:t.scales)&&void 0!==e?e:null}}),[Xt,Yt,Kt]),s(()=>{var t;d&&(null===(t=Gt.current)||void 0===t||t.setBoundedData(d))},[d]);const Qt=a(()=>{}),Zt=a(()=>{});Qt.current=t=>{if(!It)return;const e=$t.current;if(!e)return;const n=e.getBoundingClientRect(),o=t.clientX-n.left-At.left,a=t.clientY-n.top-At.top;if(0>o||o>St||0>a||a>Pt)return void(Ot.current&&(Ot.current=null,Tt(null),ut&&ut(null),qt()));const i=Ht.current;if(!i||0===i.scene.length)return;const r="radial"===E,s=function(t,e,n,o=30){let a=null;for(const i of t){let t=null;switch(i.type){case"rect":t=V(i,e,n);break;case"point":t=H(i,e,n);break;case"wedge":t=q(i,e,n);break;case"boxplot":t=G(i,e,n);break;case"violin":t=X(i,e,n)}t&&o>t.distance&&(a&&t.distance>=a.distance||(a=t))}return a}(i.scene,r?o-St/2:o,r?a-Pt/2:a);if(!s)return void(Ot.current&&(Ot.current=null,Tt(null),ut&&ut(null),qt()));const l={data:s.datum,time:s.x,value:s.y,x:s.x,y:s.y};Ot.current=l,Tt(l),ut&&ut(l),qt()},Zt.current=()=>{Ot.current&&(Ot.current=null,Tt(null),ut&&ut(null),qt())};const Jt=r(t=>Qt.current(t),[]),Ut=r(()=>Zt.current(),[]);Dt.current=()=>{var t,e;_t.current=0;const n=$t.current;if(!n)return;const o=n.getContext("2d");if(!o)return;const a=Ht.current;if(!a)return;const i="undefined"!=typeof performance?performance.now():Date.now(),r=a.advanceTransition(i),s=jt.current;s&&!r&&(a.computeScene({width:St,height:Pt}),jt.current=!1);const l="undefined"!=typeof window&&window.devicePixelRatio||1;n.width=k[0]*l,n.height=k[1]*l,n.style.width=k[0]+"px",n.style.height=k[1]+"px",o.scale(l,l),o.clearRect(0,0,k[0],k[1]);const u=null!==(t=null==wt?void 0:wt.threshold)&&void 0!==t?t:5e3,d=wt&&a.lastIngestTime>0&&i-a.lastIngestTime>u;d&&(o.globalAlpha=null!==(e=null==wt?void 0:wt.dimOpacity)&&void 0!==e?e:.5),vt&&(o.fillStyle=vt,o.fillRect(0,0,k[0],k[1]));const h="radial"===E;h?(o.save(),o.translate(At.left+St/2,At.top+Pt/2)):o.translate(At.left,At.top);const p=rt[c]||[],f={width:St,height:Pt};for(const t of p)t(o,a.scene,a.scales,f);h&&o.restore(),d&&(o.globalAlpha=1),s&&a.scales&&(zt(a.scales),Bt(t=>t+1)),(null==wt?void 0:wt.showBadge)&&Lt(!!d),(r||a.hasActivePulses)&&(_t.current=requestAnimationFrame(()=>Dt.current()))},s(()=>(qt(),()=>{_t.current&&cancelAnimationFrame(_t.current)}),[qt]),s(()=>{jt.current=!0,qt()},[c,St,Pt,U,vt,qt]),s(()=>{if(!wt)return;const t=setInterval(()=>{var t;const e=Ht.current;if(!e||0===e.lastIngestTime)return;const n="undefined"!=typeof performance?performance.now():Date.now(),o=null!==(t=wt.threshold)&&void 0!==t?t:5e3,a=n-e.lastIngestTime>o;a!==Ft&&(Lt(a),jt.current=!0,qt())},1e3);return()=>clearInterval(t)},[wt,Ft,qt]);const te=It&&Nt?lt?lt(Nt):t.createElement(ct,{hover:Nt}):null,ee="radial"===E,ne=Nt?ee?Nt.x+St/2:Nt.x:0,oe=Nt?ee?Nt.y+Pt/2:Nt.y:0,ae=te?t.createElement("div",{className:"stream-ordinal-tooltip",style:{position:"absolute",left:At.left+ne,top:At.top+oe,transform:`translate(${ne>.7*St?"calc(-100% - 12px)":"12px"}, ${.3*Pt>oe?"4px":"calc(-100% - 4px)"})`,pointerEvents:"none",zIndex:1}},te):null;return t.createElement("div",{className:"stream-ordinal-frame"+(xt?" "+xt:""),style:{position:"relative",width:k[0],height:k[1]},onMouseMove:It?Jt:void 0,onMouseLeave:It?Ut:void 0},mt&&t.createElement("svg",{style:{position:"absolute",top:0,left:0,width:k[0],height:k[1],pointerEvents:"none"}},t.createElement("g",{transform:`translate(${At.left},${At.top})`},mt)),t.createElement("canvas",{ref:$t,style:{position:"absolute",top:0,left:0,width:k[0],height:k[1]}}),t.createElement(J,{width:St,height:Pt,totalWidth:k[0],totalHeight:k[1],margin:At,scales:Ct,showAxes:U,oLabel:tt,rLabel:et,oFormat:nt,rFormat:ot,showGrid:pt,title:gt,legend:ft,foregroundGraphics:yt,annotations:dt,svgAnnotationRules:ht,annotationFrame:Rt}),bt&&"radial"===E&&t.createElement("div",{style:{position:"absolute",left:At.left+St/2,top:At.top+Pt/2,transform:"translate(-50%, -50%)",pointerEvents:"none",textAlign:"center"}},bt),(null==wt?void 0:wt.showBadge)&&t.createElement("div",{className:"stream-staleness-badge",style:Object.assign(Object.assign({position:"absolute"},"top-left"===wt.badgePosition?{top:4,left:4}:"bottom-left"===wt.badgePosition?{bottom:4,left:4}:"bottom-right"===wt.badgePosition?{bottom:4,right:4}:{top:4,right:4}),{padding:"2px 8px",borderRadius:4,fontSize:11,fontWeight:600,pointerEvents:"none",background:Ft?"#dc3545":"#28a745",color:"white"})},Ft?"STALE":"LIVE"),ae)});ut.displayName="StreamOrdinalFrame";const dt=({xy:e,orient:n,i:o,className:a="",jaggedBase:i})=>{let r=`M${e.x1},${e.y1}L${e.x2},${e.y2}`;return i&&0===o&&(r=((t,e)=>{let n="";const{x1:o,x2:a,y1:i,y2:r}=e;if("left"===t||"right"===t){const e=Math.abs(a-o);n=((t,e,n,o)=>{const a=t/e;let i=0,r="M0,"+n;const s="right"===o?-1:1;for(;t>=i;)r+=`L${i},${n}`,t>i&&(r+=`L${i+a/2},${n+10*s}`),i+=a;return r})(e,Math.ceil(e/40),"right"===t?0:i,t)}else{const e=Math.abs(r-i);n=((t,e,n,o)=>{const a=t/e;let i=0,r=`M${n},0`;const s="bottom"===o?-1:1;for(;t>=i;)r+=`L${n},${i}`,t>i&&(r+=`L${n+10*s},${i+a/2}`),i+=a;return r})(e,Math.ceil(e/40),o,t)}return n})(n,e)),t.createElement("path",{key:o,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:r,className:`tick-line tick ${n} ${a}`})};function ht(t,e,n){const o=Math.abs(n.range()[1]-n.range()[0]);return t||(e||(e=Math.max(1,Math.floor(o/40))),t=n.ticks&&n.ticks(e)||n.domain()),t}function pt({t:t,o:e,w:n}){return"contour"!==t&&"boxplot"!==t||"left"!==e&&"right"!==e?0:n/2}function ft({t:t,o:e,w:n}){return"contour"!==t&&"boxplot"!==t||"top"!==e&&"bottom"!==e?0:n/2}function mt(t){const{translation:n,orient:o,decoratedSummaryType:a,summaryWidth:i,renderedSummary:r,points:s}=t;return e.createElement("g",{className:"marginal-graphics",transform:`translate(${n[o]})`},e.createElement("g",{transform:`translate(${pt({t:a.type,o:o,w:i})},${ft({t:a.type,o:o,w:i})})`},r),s)}function yt(t){const{className:n,translation:o,position:a,rotation:i,labelName:r,anchorMod:s}=t;return e.createElement("g",{className:"axis-title "+n,transform:`translate(${[o[0]+a[0],o[1]+a[1]]}) rotate(${i})`},e.isValidElement(r)?r:e.createElement("text",{textAnchor:s},r))}function gt(t){if(null==t)return"";if("number"!=typeof t)return t+"";if(!isFinite(t))return t+"";if(0===t)return"0";const e=parseFloat(t.toPrecision(12)),n=Math.abs(e);return 1e9>n?1e6>n?1e4>n?Number.isInteger(e)?e+"":parseFloat(e.toPrecision(6))+"":parseFloat((e/1e3).toPrecision(3))+"K":parseFloat((e/1e6).toPrecision(3))+"M":parseFloat((e/1e9).toPrecision(3))+"B"}function xt(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&0>e.indexOf(o)&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(t);o.length>a;a++)0>e.indexOf(o[a])&&Object.prototype.propertyIsEnumerable.call(t,o[a])&&(n[o[a]]=t[o[a]])}return n}"function"==typeof SuppressedError&&SuppressedError;function vt(e){const{rotate:n,label:o,dynamicLabelPosition:r,orient:l="left",marginalSummaryType:c,tickFormat:u=(c?()=>"":gt),size:d,width:h=d&&d[0]||0,height:p=d&&d[1]||0,className:f,padding:m,tickValues:y,scale:g,ticks:x,footer:v,tickSize:b,tickLineGenerator:E,baseline:k=!0,margin:M={top:0,bottom:0,left:0,right:0},center:w=!1,annotationFunction:A,glyphFunction:S,xyPoints:P}=e,[$,j]=i(0),[_,O]=i(void 0),D=a(null);s(()=>{if(!(null==o?void 0:o.position)&&r){const t=((t,e)=>{const n=t.current;if(!n)return 30;const o="left"===e||"right"===e?"width":"height";return Math.max(...[...n.querySelectorAll(".axis-label")].map(t=>t.getBBox&&t.getBBox()||{height:30,width:30}).map(t=>t[o]))+25})(D,l);t!==_&&O(t)}},[o,r]);let N,{axisParts:T,position:C=[0,0]}=e;if(T||(T=function({renderMode:t=()=>{},padding:e=5,scale:n,ticks:o,tickValues:a=ht(void 0,o,n),orient:i="left",size:r,footer:s=!1,tickSize:l=(s?-10:["top","bottom"].find(t=>t===i)?r?r[1]:0:r?r[0]:0),jaggedBase:c}){let u,d,h,p,f,m,y=[],g=0,x=0,v="middle";switch(i){case"top":u="x1",d="x2",h="y1",p="y2",y=[0,l],f="tx",m="ty",g-=20-e;break;case"bottom":u="x1",d="x2",h="y2",p="y1",y=r?[r[1],r[1]-l]:[0,-l],f="tx",m="ty",g+=20+e;break;case"right":u="y2",d="y1",h="x2",p="x1",y=r?[r[0],r[0]-l]:[0,-l],f="ty",m="tx",g+=5+e,x+=5,v="start";break;default:u="y1",d="y2",h="x1",p="x2",y=[0,l],f="ty",m="tx",g-=5+e,x+=5,v="end"}let b=a instanceof Function?a({orient:i}):a;return c&&void 0===b.find(t=>t===n.domain()[0])&&(b=[n.domain()[0],...b]),b.map((e,o)=>{const a=n(e);return{[u]:a,[d]:a,[h]:y[0],[p]:y[1],[f]:a+x,[m]:y[0]+g,defaultAnchor:v,renderMode:t(e,o),value:e}})}({padding:m,tickValues:y,scale:g,ticks:x,orient:l,size:[h,p],footer:v,tickSize:b}),N=t.createElement("g",{className:"axis "+f},(({axisParts:e,orient:n,tickLineGenerator:o=dt,className:a,jaggedBase:i,scale:r,showOutboundTickLines:s=!1})=>{const l=e.map((t,e)=>o({xy:t,orient:n,i:e,className:a,jaggedBase:i,scale:r})),c=s?e.map((e,o)=>(({xy:e,orient:n,i:o,className:a=""})=>{let i=`M-4,${e.y1}L${e.x1},${e.y2}`;return"left"===n?i=`M${e.x1-8},${e.y1}L${e.x1},${e.y2}`:"right"===n?i=`M${e.x2},${e.y1}L${e.x2+8},${e.y2}`:"top"===n?i=`M${e.x1},${e.y1-8}L${e.x1},${e.y1}`:"bottom"===n&&(i=`M${e.x1},${e.y2}L${e.x1},${e.y2+8}`),t.createElement("path",{key:o,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:i,className:`outbound-tick-line tick ${n} ${a}`})})({xy:e,orient:n,i:o,className:a})):[];return[...l,c]})({axisParts:T,orient:l,tickLineGenerator:E,className:f,scale:g}))),0===T.length)return null;let z,R,B,F,L=50,I=p,W=-50,V=0,H=0,q=0,G=0,X=p,Y=25,K=-25,Q=18,Z=h+25,J=0,U=$,tt=0,et="y";switch(l){case"right":C=[C[0],C[1]],W=h,G=H=h,tt=M.top,Z=-h-25,K=5,z=t=>{j(t.nativeEvent.offsetY-tt)},!0===w&&(G=H=h/2);break;case"top":C=[C[0],0],L=h,I=50,V=-50,W=0,tt=M.left,et="x",G=h,X=0,!0===w&&(X=q=p/2),z=t=>{j(t.nativeEvent.offsetX-tt)},Y=$,U=25,K=0,Q=-10,Z=0,J=p+25;break;case"bottom":C=[C[0],0],L=h,I=50,q=X=V=p,H=W=0,G=h,tt=M.left,z=t=>{j(t.nativeEvent.offsetX-tt)},Y=$,U=25,K=0,Q=15,Z=0,J=-p-25,et="x",!0===w&&(X=q=p/2);break;default:C=[C[0],C[1]],tt=M.top,!0===w&&(G=H=h/2),z=t=>{j(t.nativeEvent.offsetY-tt)}}if(A){const n=function(t,e){return e.tickFormat?e.tickFormat(t):t.toString?""+t:t}(g.invert($),e),o=S?S({lineHeight:J,lineWidth:Z,value:g.invert($)}):t.createElement("g",null,t.isValidElement(n)?t.createElement("g",{transform:`translate(${K},${Q})`},n):t.createElement("text",{x:K,y:Q},n),t.createElement("circle",{r:5}),t.createElement("line",{x1:Z,y1:J,style:{stroke:"black"}})),a=$?t.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${Y},${U})`},o):null;R=t.createElement("g",{className:"annotation-brush",transform:`translate(${W},${V})`},t.createElement("rect",{style:{fillOpacity:0},height:I,width:L,onMouseMove:z,onClick:t=>A({className:"dynamic-axis-annotation",type:et,value:g.invert($),e:t}),onMouseOut:()=>{j(void 0)}}),a)}if(c&&P){const e=Math.max(M[l]-6,5),n="string"==typeof c?{type:c}:c;void 0!==n.flip||"bottom"!==l&&"right"!==l||(n.flip=!0);const o=n.summaryStyle?()=>n.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),a=n.renderMode?()=>n.renderMode:()=>{},i=n.summaryClass?()=>n.summaryClass:()=>"",r=n.filter||(()=>!0),s=P.filter(t=>void 0!==t.x&&void 0!==t.y&&r(t.data)).map(t=>Object.assign(Object.assign({},t),{xy:{x:"top"===l||"bottom"===l?g(t.x):0,y:"left"===l||"right"===l?g(t.y):0},piece:{scaledVerticalValue:g(t.y),scaledValue:g(t.x)},value:g("top"===l||"bottom"===l?t.y:t.x),scaledValue:g(t.x),scaledVerticalValue:g(t.y)})),u=function(e){const n=[];for(const o of e){const e=[],{elements:a,containerProps:i}=o;if(o.Mark)n.push(o.Mark);else{for(let n=0;a.length>n;n++){const o=a[n],{markType:i,style:r={}}=o,s=xt(o,["markType","style"]),l=Object.assign({},s);void 0!==r.fill&&(l.fill=r.fill),void 0!==r.stroke&&(l.stroke=r.stroke),void 0!==r.strokeWidth&&(l.strokeWidth=r.strokeWidth),void 0!==r.opacity&&(l.opacity=r.opacity),void 0!==r.fillOpacity&&(l.fillOpacity=r.fillOpacity),void 0!==r.strokeOpacity&&(l.strokeOpacity=r.strokeOpacity);const c=Object.assign({},r);delete c.fill,delete c.stroke,delete c.strokeWidth,delete c.opacity,delete c.fillOpacity,delete c.strokeOpacity,Object.keys(c).length>0&&(l.style=c),l.key=o.key||n,i&&e.push(t.createElement(i,l))}i?n.push(t.createElement("g",Object.assign({},i),e)):n.push(...e)}}return n}((({data:t,type:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,margin:l,axisCreator:c})=>{if(e&&e.type)return function({data:t,type:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,chartSize:l,margin:c,axisCreator:u}){return"function"==typeof e.type?e.type({data:t,type:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,chartSize:l,margin:c,axisCreator:u}):(console.error(`Invalid summary type: ${e.type} - Must be a function`),{})}({data:t,type:e="string"==typeof e?{type:e}:e,renderMode:n,eventListenersGenerator:o,styleFn:a,classFn:i,projection:r,adjustedSize:s,chartSize:"vertical"===r?s[1]:s[0],margin:l,axisCreator:c})})({data:{column:{middle:e/2,pieceData:s,width:e,xyData:s}},type:n,renderMode:a,eventListenersGenerator:n.eventListenersGenerator||(()=>({})),styleFn:o,classFn:i,projection:"top"===l||"bottom"===l?"horizontal":"vertical",adjustedSize:d,margin:{top:0,bottom:0,left:0,right:0}}).marks);let h;if(!0===n.showPoints){const o=((t,e,n)=>{const o="left"===t||"right"===t?e/2:0,a="bottom"===t||"top"===t?e/2:0;return n.map(t=>[t.xy.x+o,t.xy.y+a])})(l,e,s);h=o.map((e,o)=>t.createElement("circle",{key:"axis-summary-point-"+o,cx:e[0],cy:e[1],r:n.r||3,style:n.pointStyle||{fill:"black",fillOpacity:.1}}))}B=t.createElement(mt,{translation:{left:[2-M.left,0],right:[d[0]+2,0],top:[0,2-M.top],bottom:[0,d[1]+2]},orient:l,decoratedSummaryType:n,summaryWidth:e,renderedSummary:u,points:h})}const nt=(({axisParts:e,tickFormat:n,rotate:o=0,center:a=!1,orient:i})=>{const r=e.map((t,e)=>({axisPart:t,i:e,formatted:n(t.value,e)})),s="left"===i||"right"===i;let l=r;if(!o&&r.length>1){const t=8,e=14,n=8,o=t=>"string"==typeof t?t:"number"==typeof t?t+"":null;if("top"===i||"bottom"===i){const e=[...r].sort((t,e)=>t.axisPart.tx-e.axisPart.tx);let a=-1/0;const i=new Set;for(const r of e){const e=o(r.formatted);if(!e){i.add(r.i);continue}const s=e.length*t/2;a+n>r.axisPart.tx-s||(i.add(r.i),a=r.axisPart.tx+s)}l=r.filter(t=>i.has(t.i))}else if(s){const t=[...r].sort((t,e)=>t.axisPart.ty-e.axisPart.ty);let o=-1/0;const a=new Set;for(const i of t)o+e+n>i.axisPart.ty||(a.add(i.i),o=i.axisPart.ty);l=r.filter(t=>a.has(t.i))}}return l.map(({axisPart:e,i:n,formatted:r})=>{("object"!=typeof r||r instanceof Date)&&(r=t.createElement("text",{textAnchor:e.defaultAnchor,className:"axis-label"},r.toString?""+r:r));let s=e.tx,l=e.ty;if(a)switch(i){case"right":s-=(e.x2-e.x1)/2;break;case"left":s+=(e.x2-e.x1)/2;break;case"top":l+=(e.y2-e.y1)/2;break;case"bottom":l-=(e.y2-e.y1)/2}return t.createElement("g",{key:n,pointerEvents:"none",transform:`translate(${s},${l}) rotate(${o})`,className:"axis-label"},r)})})({tickFormat:u,axisParts:T,orient:l,rotate:n,center:w});if(o){const e=o.name||o,n=o.position||{};let a=n.anchor||"middle";const i=o.locationDistance||_,r=n.rotation||{left:-90,right:90,top:0,bottom:0}[l],s={left:{start:[0,d[1]],middle:[0,d[1]/2],end:[0,0],inside:[i||15,0],outside:[-(i||45),0]},right:{start:[d[0]+0,d[1]],middle:[d[0]+0,d[1]/2],end:[d[0]+0,0],inside:[-(i||15),0],outside:[i||45,0]},top:{start:[0,0],middle:[0+d[0]/2,0],end:[0+d[0],0],inside:[0,i||15],outside:[0,-(i||40)]},bottom:{start:[0,d[1]],middle:[0+d[0]/2,d[1]],end:[0+d[0],d[1]],inside:[0,-(i||5)],outside:[0,i||50]}},c=s[l][a],u=s[l][n.location||"outside"];c[0]=c[0]+u[0],c[1]=c[1]+u[1],"start"===a&&"right"===l?a="end":"end"===a&&"right"===l&&(a="start"),F=t.createElement(yt,{className:f,translation:c,position:C,rotation:r,labelName:e,anchorMod:a})}const ot=`${l} axis ${T&&T.length>0&&`from ${u(T[0].value,0)} to ${u(T[T.length-1].value,T.length-1)}`||"without ticks"}`;return t.createElement("g",{className:f,"aria-label":ot,ref:D},R,nt,N,!0===k?t.createElement("line",{key:"baseline",className:"axis-baseline "+f,stroke:"black",strokeLinecap:"square",x1:H,x2:G,y1:q,y2:X}):null,F,B)}function bt(t,e=120,n=8){if(!t)return[];const o=Math.max(1,Math.floor(e/n)),a=t.split(/\s+/),i=[];let r="";for(const t of a)r&&r.length+1+t.length>o?(i.push(r),r=t):r=r?`${r} ${t}`:t;return r&&i.push(r),i}function Et(t,e,n,o){return"curly"===t?o?`M0,0 C${.6*n},0 ${.4*n},${e/2} ${n},${e/2} C${.4*n},${e/2} ${.6*n},${e} 0,${e}`:`M0,0 C0,${.6*n} ${e/2},${.4*n} ${e/2},${n} C${e/2},${.4*n} ${e},${.6*n} ${e},0`:o?`M0,0 L${n},0 L${n},${e} L0,${e}`:`M0,0 L0,${n} L${e},${n} L${e},0`}function kt(e){const{x:n=0,y:o=0,dx:a,dy:i,nx:r,ny:s,note:l,connector:c,subject:u,type:d,color:h,className:p,disable:f,events:m={},"data-testid":y}=e,g=new Set(Array.isArray(f)?f:[]);let x=a||0,v=i||0;null!=r&&(x=r-n),null!=s&&(v=s-o);const b="string"==typeof d?d:"label";if("bracket"===b&&u&&0===x&&0===v)if(void 0!==u.width){x=u.width/2;const t=u.depth||30;v=t+(0>t?-5:5)}else if(void 0!==u.height){const t=u.depth||30;x=t+(0>t?-5:5),v=u.height/2}return t.createElement("g",Object.assign({className:("annotation "+(p||"")).trim(),transform:`translate(${n},${o})`,"data-testid":y},m),!g.has("connector")&&function(e,n,o,a,i,r){const s=[];let l=0,c=0;if("callout-circle"!==i&&"label"!==i||!(null==r?void 0:r.radius)){if("callout-rect"===i&&r){const t=r.width||0,o=r.height||0;if(t>0||o>0){const a=t/2,i=o/2,r=e-a,s=n-i;if(0!==r||0!==s){const e=Math.abs(r),n=Math.abs(s),u=t/2,d=o/2,h=e*d>n*u?u/e:d/n;l=a+r*h,c=i+s*h}}}else if("bracket"===i&&r){const t=r.width,e=r.height,n=r.depth||30;void 0!==t?(l=t/2,c=n):void 0!==e&&(l=n,c=e/2)}}else{const t=(r.radius||0)+(r.radiusPadding||0);if(t>0&&(0!==e||0!==n)){const o=Math.atan2(n,e);l=Math.cos(o)*t,c=Math.sin(o)*t}}if(Math.sqrt(Math.pow(e-l,2)+Math.pow(n-c,2))>.5&&(s.push(t.createElement("line",{key:"connector-line",x1:l,y1:c,x2:e,y2:n,stroke:a||"currentColor"})),"arrow"===(null==o?void 0:o.end))){const o=10,i=16/180*Math.PI,r=Math.atan2(n-c,e-l);s.push(t.createElement("path",{key:"connector-arrow",d:`M${l},${c}L${l+o*Math.cos(r+i)},${c+o*Math.sin(r+i)}L${l+o*Math.cos(r-i)},${c+o*Math.sin(r-i)}Z`,fill:a||"currentColor",stroke:"none"}))}return t.createElement("g",{className:"annotation-connector"},s)}(x,v,c,h,b,u),!g.has("subject")&&function(e,n,o,a,i){var r;const s=[];switch(e){case"callout-circle":{const e=((null==n?void 0:n.radius)||0)+((null==n?void 0:n.radiusPadding)||0);e>0&&s.push(t.createElement("circle",{key:"subject-circle",r:e,fill:"none",stroke:o||"currentColor"}));break}case"callout-rect":{const e=(null==n?void 0:n.width)||0,a=(null==n?void 0:n.height)||0;(e>0||a>0)&&s.push(t.createElement("rect",{key:"subject-rect",width:e,height:a,fill:"none",stroke:o||"currentColor"}));break}case"callout-custom":(null==n?void 0:n.custom)&&s.push(...Array.isArray(n.custom)?n.custom:[n.custom]);break;case"xy-threshold":{const e=a||0,r=i||0;if(void 0!==(null==n?void 0:n.x)){const a=(n.x||0)-e;s.push(t.createElement("line",{key:"threshold-line",x1:a,y1:(n.y1||0)-r,x2:a,y2:(n.y2||0)-r,stroke:o||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==n?void 0:n.y)){const a=(n.y||0)-r;s.push(t.createElement("line",{key:"threshold-line",x1:(n.x1||0)-e,y1:a,x2:(n.x2||0)-e,y2:a,stroke:o||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==n?void 0:n.x1)||void 0!==(null==n?void 0:n.x2)?s.push(t.createElement("line",{key:"threshold-line",x1:(n.x1||0)-e,y1:0,x2:(n.x2||0)-e,y2:0,stroke:o||"currentColor",strokeDasharray:"5,5"})):void 0===(null==n?void 0:n.y1)&&void 0===(null==n?void 0:n.y2)||s.push(t.createElement("line",{key:"threshold-line",x1:0,y1:(n.y1||0)-r,x2:0,y2:(n.y2||0)-r,stroke:o||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const e=null!==(r=null==n?void 0:n.width)&&void 0!==r?r:null==n?void 0:n.height;void 0!==e&&s.push(t.createElement("path",{key:"bracket-path",d:Et((null==n?void 0:n.type)||"curly",e,(null==n?void 0:n.depth)||30,void 0===(null==n?void 0:n.width)),fill:"none",stroke:o||"currentColor"}));break}}return t.createElement("g",{className:"annotation-subject"},s)}(b,u,h,n,o),!g.has("note")&&function(e,n,o,a){if(!e)return t.createElement("g",{className:"annotation-note"});const{label:i,title:r,orientation:s,align:l,wrap:c=120,noWrap:u}=e;if(!i&&!r)return t.createElement("g",{className:"annotation-note"});let d=s;d||(d=Math.abs(n)>Math.abs(o)?"leftRight":"topBottom");let h=l;h&&"dynamic"!==h||(h="topBottom"===d?0>n?"right":"left":0>o?"bottom":"top");let p="start";"topBottom"===d?"right"===h?p="end":"middle"===h&&(p="middle"):p=0>n?"end":"start";const f=16,m=r?u?[r]:bt(r,c):[],y=i?u?[i]:bt(i,c):[],g="leftRight"===d?"end"===p?-4:4:0;let x=0;const v=[];m.length>0&&(v.push(t.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:a||void 0,textAnchor:p,fontWeight:"bold"},m.map((e,n)=>t.createElement("tspan",{key:n,x:g,dy:0===n?0:f},e)))),x=m.length*f),y.length>0&&v.push(t.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:a||void 0,textAnchor:p,y:x},y.map((e,n)=>t.createElement("tspan",{key:n,x:g,dy:f},e))));let b=null;if((r||i)&&(0!==n||0!==o))if("topBottom"===d){const e=Math.min(c,120);let n=0,o=e;"end"===p?(n=-e,o=0):"middle"===p&&(n=-e/2,o=e/2),b=t.createElement("line",{className:"note-line",x1:n,x2:o,y1:0,y2:0,stroke:a||"currentColor"})}else{const e=(m.length+y.length)*f+(y.length>0?f:0);let n=0,o=e;"bottom"===h?(n=-e,o=0):"middle"===h&&(n=-e/2,o=e/2),b=t.createElement("line",{className:"note-line",x1:0,x2:0,y1:n,y2:o,stroke:a||"currentColor"})}const E=(m.length+y.length)*f+(y.length>0?f:0);let k=0;return"topBottom"===d?0>o&&(k=-E):"leftRight"===d&&("middle"===h?k=-E/2:("bottom"===h||0>o)&&(k=-E)),t.createElement("g",{className:"annotation-note",transform:`translate(${n},${o})`},t.createElement("g",{className:"annotation-note-content",transform:0!==k?`translate(0,${k})`:void 0},v),b)}(l,x,v,h))}function Mt(e){const{noteData:n}=e,{screenCoordinates:o}=n,a="string"==typeof n.type?n.type:"label",i=n.eventListeners||n.events||{};if(n.coordinates&&o){const e=n.nx||o[0][0]+n.dx,i=n.ny||o[0][1]+n.dy,r=o.map((o,r)=>{const s=Object.assign({},n,{note:0===r?n.note:{label:""},x:o[0],y:o[1],nx:e,ny:i});return t.createElement(kt,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+r},s,{type:a}))});return t.createElement("g",null,r)}const r=n.note||{title:"none",label:n.label};return t.createElement(kt,Object.assign({"data-testid":"semiotic-annotation",key:`${r.label}-${r.title}-${n.i}`,events:i},n,{type:a}))}const wt=(t,e,n,o)=>{const a=(t.note.label||t.note.title).length;return[Math.min(t.note.wrap||120,a*e)+2*o,Math.ceil(a*e/120)*n+2*o]};function At(e){let o=c(null),a=St(e);return[function({children:a}){let i=n(()=>St(e),[]);return t.createElement(o.Provider,{value:i,children:a})},t=>{var e;let n=null!==(e=u(o))&&void 0!==e?e:a;return function(t,e){const[n,o]=i(e);return d(()=>t(()=>o(e)),[t]),n}(n.subscribe,()=>t(n.getState()))}]}function St(t){let e=new EventTarget,n=t(function(t){n=Object.assign(n,t(n)),e.dispatchEvent(new CustomEvent("update"))});return{getState:()=>n,subscribe:function(t){return e.addEventListener("update",t),()=>e.removeEventListener("update",t)}}}let[Pt,$t]=At(t=>({tooltip:null,changeTooltip(e){t(()=>({tooltip:e}))}}));function jt(t,e,n){return"number"==typeof n?n:e&&e.find(e=>e.props.orient===t)?50:10}const _t=(t,e,n)=>`${t.map(Ot).join(",")}${JSON.stringify(e)}${n.join(",")}`;function Ot(t){if(!t||!t.props||!t.props.noteData)return"";const{note:e={}}=t.props.noteData,{label:n,title:o}=e;return`${t.props.noteData.id||`${t.props.noteData.x}-${t.props.noteData.y}`}-${n}=${o}`}function Dt(t,n=8,o){const{noteWidth:a=o}=t;let i=a;"number"==typeof a&&(i=()=>a);const r=t.note&&t.note.wrap||120,s=t.note.label||t.note.label||"";return a&&i(t)||(e.isValidElement(t.note)?100:Math.min(r,s.length*n))}function Nt(t,n=8,o=20,a){const{noteHeight:i=a}=t;let r=i;"number"==typeof i&&(r=()=>i);const s=t.note&&t.note.wrap||120,l=t.note.label||t.note.title||"";return i&&r(t)||(e.isValidElement(t.note)?30:Math.ceil(l.length*n/s)*o+(t.note.label&&t.note.title?o:0))}const Tt=(t,e)=>e.map((e,n)=>t.svgAnnotationRule(e,n,t)).filter(t=>null!=t),Ct=(e,n)=>{let o=n.adjustedAnnotations,a=n.adjustedAnnotationsKey,i=n.adjustableAnnotations,r=n.fixedAnnotations,s=[],l=[];const c=n.adjustedAnnotationsKey,u=n.adjustedAnnotationsDataVersion,{annotations:d,annotationHandling:h=!1,size:p,svgAnnotationRule:f,htmlAnnotationRule:m}=e,y="object"==typeof h?h:{layout:{type:h},dataVersion:""},{dataVersion:g=""}=y;if(f){const n=Tt(e,d);a=_t(n,y,p),!1===h&&(o=i),o=o.length!==i.length||c!==a||u!==g?((e,n,o)=>{const{layout:a={type:!1,noteHeight:void 0,noteWidth:void 0}}=n;if(!1===a.type)return e;const{noteWidth:i,noteHeight:r}=a;let{margin:s={top:0,bottom:0,left:0,right:0}}=o;const{size:l,axes:c=[]}=o;if(s="number"==typeof s?{top:s,left:s,right:s,bottom:s}:s,"bump"===a.type)return function(t,e,n,o,a){const{padding:i=1,characterWidth:r=8,lineHeight:s=20,iterations:l=500,pointSizeFunction:c=o,labelSizeFunction:u=a||wt}=e,d=t.map((t,e)=>{const n=(t.props.noteData.x[0]||t.props.noteData.x)+(void 0!==t.props.noteData.dx?t.props.noteData.dx:-10*(e%3-1)),o=(t.props.noteData.y[0]||t.props.noteData.y)+(void 0!==t.props.noteData.dy?t.props.noteData.dy:10*(e%3-1)),[a,l]=u(t.props.noteData,r,s,i);return{x:n,y:o,above:t.props.noteData.y>o,left:t.props.noteData.x>n,width:a,height:l,type:"label",name:"",originalNote:t}}),h=t.map(t=>({x:t.props.noteData.x,y:t.props.noteData.y,fx:t.props.noteData.x,fy:t.props.noteData.y,r:c&&c(t.props.noteData)||5,type:"point",originalNote:t})),p=function(){let t,e=[],n=[],o=1,a=1,i={start:t=>{},width:t=>{},height:t=>{},label:t=>{},anchor:t=>{},alt_energy:t=>{},alt_schedule:t=>{}},r=!1;const s=function(t){let o=e.length,a=0,i=e[t].x-n[t].x,r=n[t].y-e[t].y,s=Math.sqrt(i*i+r*r);s>0&&(a+=.2*s),i/=s,r/=s,a+=i>0&&r>0?0:0>i&&r>0?3:0>i&&0>r?6:9;let l,c,d,h,p,f,m,y=e[t].x,g=e[t].y-e[t].height+2,x=e[t].x+e[t].width,v=e[t].y+2;for(let i=0;o>i;i++)i!==t&&(u(n[t].x,e[t].x,n[i].x,e[i].x,n[t].y,e[t].y,n[i].y,e[i].y)&&(a+=1),l=e[i].x,d=e[i].y-e[i].height+2,c=e[i].x+e[i].width,h=e[i].y+2,p=Math.max(0,Math.min(c,x)-Math.max(l,y)),f=Math.max(0,Math.min(h,v)-Math.max(d,g)),m=p*f,a+=30*m),l=n[i].x-n[i].r,d=n[i].y-n[i].r,c=n[i].x+n[i].r,h=n[i].y+n[i].r,p=Math.max(0,Math.min(c,x)-Math.max(l,y)),f=Math.max(0,Math.min(h,v)-Math.max(d,g)),m=p*f,a+=30*m;return a},l=function(i){let l,c,u=Math.floor(Math.random()*e.length),d=e[u].x,h=e[u].y;l=r?t(u,e,n):s(u),e[u].x+=5*(Math.random()-.5),e[u].y+=5*(Math.random()-.5),e[u].x>o&&(e[u].x=d),0>e[u].x&&(e[u].x=d),e[u].y>a&&(e[u].y=h),0>e[u].y&&(e[u].y=h),c=r?t(u,e,n):s(u);let p=c-l;Math.random()<Math.exp(-p/i)||(e[u].x=d,e[u].y=h)},c=function(i){let l,c=Math.floor(Math.random()*e.length),u=e[c].x,d=e[c].y;l=r?t(c,e,n):s(c);let h=.5*(Math.random()-.5),p=Math.sin(h),f=Math.cos(h);e[c].x-=n[c].x,e[c].y-=n[c].y;let m,y=e[c].x*p+e[c].y*f;e[c].x=e[c].x*f-e[c].y*p+n[c].x,e[c].y=y+n[c].y,e[c].x>o&&(e[c].x=u),0>e[c].x&&(e[c].x=u),e[c].y>a&&(e[c].y=d),0>e[c].y&&(e[c].y=d),m=r?t(c,e,n):s(c);let g=m-l;Math.random()<Math.exp(-g/i)||(e[c].x=u,e[c].y=d)},u=function(t,e,n,o,a,i,r,s){let l,c,u,d,h;return u=(s-r)*(e-t)-(o-n)*(i-a),d=(o-n)*(a-r)-(s-r)*(t-n),h=(e-t)*(a-r)-(i-a)*(t-n),l=d/u,c=h/u,!(0>l||l>1||0>c||c>1)},d=function(t,e,n){return t-e/n};return i.start=function(t){let n=e.length,o=1;for(let e=0;t>e;e++){for(let t=0;n>t;t++).5>Math.random()?l(o):c(o);o=d(o,1,t)}},i.width=function(t){return arguments.length?(o=t,i):o},i.height=function(t){return arguments.length?(a=t,i):a},i.label=function(t){return arguments.length?(e=t,i):e},i.anchor=function(t){return arguments.length?(n=t,i):n},i.alt_energy=function(e){return arguments.length?(t=e,r=!0,i):s},i.alt_schedule=function(t){return arguments.length?i:d},i}();return p.label(d),p.anchor(h),p.width(n[0]),p.height(n[1]),p.start(l),d.forEach(t=>{if("label"===t.type){const e=function(t,e,n){return t.y>e.y?[e.x+e.width/2+n/2,e.y-e.height+n/2]:[e.x+e.width/2,e.y]}(t.originalNote.props.noteData,t,i);t.originalNote.props.noteData.nx=e[0],t.originalNote.props.noteData.ny=e[1]}}),t}(e,a,l,o.pointSizeFunction,o.labelSizeFunction);if("marginalia"===a.type){const{marginOffset:n,orient:o="nearest",characterWidth:u=8,lineHeight:d=20,padding:h=2,axisMarginOverride:p={}}=a,f="nearest"===o?["left","right","top","bottom"]:Array.isArray(o)?o:[o],m=f.find(t=>"left"===t),y=f.find(t=>"right"===t),g=f.find(t=>"top"===t),v=f.find(t=>"bottom"===t),b=[],E=[],k=[],M=[];for(const t of e){const e=t.props.noteData,n=e.x[0]||e.x,o=e.y[0]||e.y,a=m?n:1/0,i=y?l[0]-n:1/0,r=g?o:1/0,s=Math.min(a,i,r,v?l[1]-o:1/0);a===s?b.push(t):i===s?E.push(t):r===s?k.push(t):M.push(t)}const w=new x.Force({minPos:void 0!==p.top?0+p.top:0-s.top,maxPos:void 0!==p.bottom?l[1]-p.bottom:v?l[1]:l[1]+s.bottom}).nodes(b.map(t=>new x.Node(t.props.noteData.y[0]||t.props.noteData.y,Nt(t.props.noteData,u,d,i)+h))).compute(),A=new x.Force({minPos:void 0!==p.top?0+p.top:g?0:0-s.top,maxPos:void 0!==p.bottom?l[1]-p.bottom:l[1]+s.bottom}).nodes(E.map(t=>new x.Node(t.props.noteData.y[0]||t.props.noteData.y,Nt(t.props.noteData,u,d,i)+h))).compute(),S=new x.Force({minPos:void 0!==p.left?0+p.left:m?0:0-s.left,maxPos:void 0!==p.right?l[0]-p.right:l[0]+s.right}).nodes(k.map(t=>new x.Node(t.props.noteData.x[0]||t.props.noteData.x,Dt(t.props.noteData,u,r)+h))).compute(),P=new x.Force({minPos:void 0!==p.left?0+p.left:0-s.left,maxPos:void 0!==p.right?l[0]-p.right:y?l[0]:l[0]+s.right}).nodes(M.map(t=>new x.Node(t.props.noteData.x[0]||t.props.noteData.x,Dt(t.props.noteData,u,r)+h))).compute(),$=Math.max(...M.map(t=>Nt(t.props.noteData,u,d,i)+h)),j=Math.max(...k.map(t=>Nt(t.props.noteData,u,d,i)+h)),_=Math.max(...b.map(t=>Dt(t.props.noteData,u,r)+h)),O=Math.max(...E.map(t=>Dt(t.props.noteData,u,r)+h)),D=w.nodes(),N=A.nodes(),T=S.nodes(),C=P.nodes();return b.forEach((e,o)=>{const a=0-D[o].layerIndex*_-jt("left",c,n),i=D[o].currentPos;e.props.noteData.nx=a,e.props.noteData.ny=i,e.props.noteData.note&&!t.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"right")}),E.forEach((e,o)=>{const a=l[0]+N[o].layerIndex*O+jt("right",c,n),i=N[o].currentPos;e.props.noteData.nx=a,e.props.noteData.ny=i,e.props.noteData.note&&!t.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"left")}),k.forEach((t,e)=>{const o=T[e].currentPos,a=0-T[e].layerIndex*j-jt("top",c,n);t.props.noteData.nx=o,t.props.noteData.ny=a}),M.forEach((t,e)=>{const o=C[e].currentPos,a=l[1]+C[e].layerIndex*$+jt("bottom",c,n);t.props.noteData.nx=o,t.props.noteData.ny=a}),e}return e})(i,y,e):i.map((e,n)=>{const a=Object.assign(Object.assign({},o[n].props.noteData),e.props.noteData);return t.createElement(Mt,{key:e.key,noteData:a})}),s=[...o,...r]}return m&&(l=((t,e)=>e.map((e,n)=>t.htmlAnnotationRule(e,n,t)).filter(t=>null!=t))(e,d)),{svgAnnotations:s,htmlAnnotations:l,adjustedAnnotations:o,adjustedAnnotationsKey:a,adjustedAnnotationsDataVersion:g}};function zt(e){const{legendSettings:n,margin:o,size:a,annotations:r,annotationHandling:l}=e,c=$t(t=>t.tooltip);let u=null!=c?r.concat(c):r,d=$t(t=>t.changeTooltip);const h=Object.assign(Object.assign({},e),{annotations:u,voronoiHover:t=>{d(t)}}),p="object"==typeof l?l:{layout:{type:l},dataVersion:""},{dataVersion:f=""}=p,[m,y]=i([]),[g,x]=i([]),[v,b]=i([]),[E,k]=i(""),[M,w]=i(f),A=Tt(h,u),S=A.filter(t=>t.props&&t.props.noteData&&!t.props.noteData.fixedPosition),P=_t(S,p,a);let $;if(s(()=>{const t=A.filter(t=>!t.props||!t.props.noteData||t.props.noteData.fixedPosition),e=Ct(h,{adjustedAnnotations:m,adjustedAnnotationsKey:E,adjustedAnnotationsDataVersion:M,adjustableAnnotations:S,fixedAnnotations:t});y(e.adjustedAnnotations),k(e.adjustedAnnotationsKey),w(e.adjustedAnnotationsDataVersion),x(e.svgAnnotations),b(e.htmlAnnotations)},[P,f,u.length,u.map(t=>function(t){const e=new Set;return JSON.stringify(t,(t,n)=>e.has(n)?"...":"object"==typeof n?(e.add(n),"note"===t?`${n.label}-${n.title}`:"connector"===t?`${n.end}-${n.type}`:"subject"===t?""+n.radius:"object"==typeof n.column?`${n.column.x}-${n.column.y}-${n.column.name}`:n.voronoiX||n.voronoiY||n.x||n.y||n.dx||n.dy||n.label||n.type||n.key||n.hierarchicalID||n.id||n.name?`${n.voronoiX}-${n.voronoiY}-${n.dx}-${n.dy}-${n.x}-${n.y}-${n.label}-${n.type}-${n.key}-${n.hierarchicalID}-${n.id}-${n.name}`:"..."):n)}(t)).join("-")]),n){const e={left:[15,15],right:[a[0]+15,15]},{position:o="right",title:i="Legend"}=n;$=t.createElement("g",{transform:`translate(${e[o].join(",")})`},t.createElement(Q,Object.assign({},n,{title:i,position:o})))}return 0!==u.length||n?t.createElement("div",{className:"annotation-layer",style:{position:"absolute",pointerEvents:"none",background:"none"}},t.createElement("svg",{className:"annotation-layer-svg",height:a[1],width:a[0],style:{background:"none",pointerEvents:"none",position:"absolute",left:o.left+"px",top:o.top+"px",overflow:"visible"}},t.createElement("g",null,$,g)),t.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:a[1]+"px",width:a[0]+"px",left:o.left+"px",top:o.top+"px"}},v)):null}const Rt=t=>t instanceof Date?t.getTime():t,Bt=({type:t="stackedarea",data:e,xProp:n,yProp:o,yPropMiddle:a,sort:i,yPropTop:r,yPropBottom:s})=>{const l=new Map,c=e.map(()=>0);let u=0;for(const t of e){t.__lineIndex=u;for(const e of t.data){const t=Rt(e[n]);c[u]+=e[o],l.has(t)||l.set(t,[]),l.get(t)[u]=e}u++}let d=(t,e)=>c[e.key]-c[t.key];"stackedpercent-invert"!==t&&"stackedarea-invert"!==t||(d=(t,e)=>c[t.key]-c[e.key]),null!==(i=void 0===i?d:i)&&(e=e.sort(i));const h=e.map(t=>t.__lineIndex);for(const[,e]of l){let n=0,i=0;const l=g(e,t=>(null==t?void 0:t[o])>0?t[o]:0),c=g(e,t=>0>(null==t?void 0:t[o])?t[o]:0);for(const u of h){const d=e[u];if(d)if(0>d[o]){if("linepercent"===t||"stackedpercent"===t||"stackedpercent-invert"===t){const e=d[o]/c;if(d.percent=e,"linepercent"===t)d[s]=d[s]=d[r]=d[a]=e;else{const t=0>c?e:0;d[s]=0===c?0:-n/c,d[r]=d[s]-t,d[a]=d[s]-t/2}}else d[s]=n,d[r]=n+d[o],d[a]=n+d[o]/2;n+=d[o]}else{if("linepercent"===t||"stackedpercent"===t||"stackedpercent-invert"===t){const e=d[o]/l;if(d.percent=e,"linepercent"===t)d[s]=d[r]=d[a]=e;else{const t=l>0?e:0;d[s]=0===l?0:i/l,d[r]=d[s]+t,d[a]=d[s]+t/2}}else d[s]=i,d[r]=i+d[o],d[a]=i+d[o]/2;i+=d[o]}}}return e},Ft=({data:t,y1:e,x1:n,yPropTop:o,yPropMiddle:a,yPropBottom:i,xPropTop:r,xPropMiddle:s,xPropBottom:l})=>{if(e)for(const n of t)for(const t of n.data)t[i]=e(t),t[a]=t[o];if(n)for(const e of t)for(const t of e.data)t[l]=n(t),t[s]=(t[l]+t[r])/2;return t},Lt=({data:t,y1:e,yPropTop:n,yPropMiddle:o,yPropBottom:a,type:i="cumulative"})=>{for(const r of t){let t=0;const s="cumulative-reverse"===i?r.data.reverse():r.data;for(const i of s)t+=i[n],i[a]=i[n]=i[o]=t,e&&(i[a]=e(i),i[o]=i[a]+i[n]/2)}return t},It=({type:t="bumpline",data:e,xProp:n,yProp:o,yPropMiddle:a,yPropTop:i,yPropBottom:r})=>{const s=new Map;for(const t of e)for(const e of t.data){const t=Rt(e[n]);s.has(t)||s.set(t,[]),s.get(t).push(e)}let l=(t,e)=>t[o]>e[o]?1:-1;"bumparea-invert"!==t&&"bumpline-invert"!==t||(l=(t,e)=>e[o]>t[o]?1:-1);for(const[,e]of s){let n=0,s=0;e.sort(l);let c=1;for(const l of e)"bumparea"===t||"bumparea-invert"===t?0>l[o]?(l[i]=n+l[o],l[a]=n+l[o]/2,l[r]=n,n+=l[o]):(l[i]=s+l[o],l[a]=s+l[o]/2,l[r]=s,s+=l[o]):(l[o]=c,l[i]=c,l[r]=c),c++}return e},Wt="x",Vt="y",Ht="yMiddle",qt="yTop",Gt="yBottom",Xt="xMiddle",Yt="xTop",Kt="xBottom",Qt=(t,e,n,o)=>[...t.map((t,o)=>[t[0],t[1]+n(e[o])]),...t.map((t,n)=>[t[0],t[1]-o(e[n])]).reverse()],Zt=t=>t&&t.extent||Array.isArray(t)&&t||[],Jt=()=>!0,Ut={top:qt,bottom:Gt,orphan:Vt},te={top:Yt,bottom:Kt,orphan:Wt},ee={stackedarea:Bt,"stackedarea-invert":Bt,stackedpercent:Bt,"stackedpercent-invert":Bt,linepercent:Bt,difference:({data:t,yProp:e,yPropTop:n,yPropBottom:o})=>(t.forEach((a,i)=>{a.data.forEach((a,r)=>{const s=0===i?1:0;a[e]>t[s].data[r][e]?(a[o]=t[s].data[r][e],a[n]=a[e]):(a[n]=a[e],a[o]=a[e])})}),t),bumparea:It,bumpline:It,"bumparea-invert":It,line:Ft,area:Ft,cumulative:Lt,"cumulative-reverse":Lt};function ne(t,e){const n=[];for(const t of e)n.push(Object.assign({},t));for(const e of t)e.parentSummary||n.push(e);return n}const oe=({lineDataAccessor:e,xAccessor:n,yAccessor:o,summaries:a,points:i,lines:r,lineType:s,showLinePoints:l,showSummaryPoints:c,xExtent:u,yExtent:d,invertX:h,invertY:p,summaryDataAccessor:m,summaryType:y,adjustedSize:g,margin:x,summaryStyleFn:M,summaryClassFn:w,summaryRenderModeFn:A,chartSize:S,filterRenderedLines:P,filterRenderedSummaries:$,filterRenderedPoints:j,defined:_=Jt,annotations:O=[]})=>{let D=[],N=[],T=[],C=[],z=[];if(i){n.forEach((t,e)=>{o.forEach((n,o)=>{let a=0;for(const r of i){const i=t(r,a),s=n(r,a),l={x:i,y:s,data:r,xIndex:e,yIndex:o};Array.isArray(s)&&(l[Gt]=Math.min(...s),l[qt]=Math.max(...s),l[Ht]=(l[Gt]+l[qt])/2),Array.isArray(i)&&(l[Kt]=Math.min(...i),l[Yt]=Math.max(...i),l[Xt]=(l[Kt]+l[Yt])/2),T.push(l),a++}})});for(const t of T)D.push(Object.assign(Object.assign({},t),{[Wt]:t[Yt]||t[Kt]||t.x,[Vt]:t[qt]||t[Gt]||t.y}))}if(r){N=(({data:t,lineDataAccessor:e,xProp:n,xPropTop:o,xPropBottom:a,yProp:i,yPropTop:r,yPropBottom:s,xAccessor:l,yAccessor:c})=>{Array.isArray(t)||(t=[t]);const u=[];return e.forEach((e,d)=>{l.forEach((l,h)=>{c.forEach((c,p)=>{t.forEach(t=>{const f=Object.assign(Object.assign({},t),{xIndex:h,yIndex:p,lineIndex:d});f.data=e(t).map((t,e)=>{const u={data:t};return u[n]=l(t,e),u[o]=u[n],u[a]=u[n],u[i]=c(t,e),u[r]=u[i],u[s]=u[i],u}),f.key=f.key||u.length,u.push(f)})})})}),u})({data:r,lineDataAccessor:e,xProp:Wt,xPropTop:Yt,xPropBottom:Kt,yProp:Vt,yPropTop:qt,yPropBottom:Gt,xAccessor:n,yAccessor:o}),C=function(t,e){return n=>ee[ae(t.type,n)](Object.assign(Object.assign(Object.assign({},t),e),{data:n}))}(s,{xProp:Wt,yProp:Vt,yPropMiddle:Ht,yPropTop:qt,yPropBottom:Gt,xPropMiddle:Xt,xPropTop:Yt,xPropBottom:Kt})(N);for(const t of C)for(let e=0;t.data.length>e;e++){const n=t.data[e];if(!_(Object.assign({},n.data,n),e))continue;const o={parentLine:t,y:n.y,x:n.x,xTop:n.xTop,xMiddle:n.xMiddle,xBottom:n.xBottom,yTop:n.yTop,yMiddle:n.yMiddle,yBottom:n.yBottom,data:n.data};n.percent&&(o.percent=n.percent),D.push(o)}if(l){const t=!0===l?Xt:te[l],e=!0===l?Ht:Ut[l];C.forEach(n=>{n.data.filter((t,e)=>{if(_(Object.assign({},t.data,t))){if("orphan"===l){const t=n.data[e-1],o=n.data[e+1];return!(t&&_(Object.assign({},t.data,t))||o&&_(Object.assign({},o.data,o)))}return!0}return!1}).forEach(o=>{T.push(Object.assign(Object.assign({},o),{parentLine:n,[Vt]:void 0!==o[e]?o[e]:void 0!==o[Ht]?o[Ht]:void 0!==o[Gt]?o[Gt]:o.y,[Wt]:void 0!==o[t]?o[t]:void 0!==o[Xt]?o[Xt]:void 0!==o[Kt]?o[Kt]:o.y}))})})}}a&&(z=(({data:t,summaryDataAccessor:e,xAccessor:n,yAccessor:o})=>{const a=[];return e.forEach(e=>{n.forEach(n=>{o.forEach(o=>{const i=t=>e(t).map((t,e)=>[n(t,e),o(t,e)]);t.forEach(t=>{a.push(Object.assign(Object.assign({},t),{_baseData:e(t),_xyfCoordinates:i(t)}))})})})}),a})({data:a,summaryDataAccessor:m,xAccessor:n,yAccessor:o}),z.forEach(t=>{const e=t._baseData;t._xyfCoordinates.length>0&&t._xyfCoordinates[0][0][0]?t._xyfCoordinates[0].forEach(n=>{Array.isArray(n)&&n.map((n,o)=>Object.assign({parentSummary:t},e[o],{[Wt]:n[0],[Vt]:n[1]})).forEach(t=>{c&&T.push(Object.assign(Object.assign({x:0},t),{[Vt]:t[qt]||t[Gt]||t[Vt]})),D.push(Object.assign({x:0,y:0},t))})}):t._xyfCoordinates.length>0&&Array.isArray(t._xyfCoordinates)&&t._xyfCoordinates.map((n,o)=>Object.assign(Object.assign({parentSummary:t},e[o]),{[Wt]:n[0],[Vt]:n[1]})).forEach(t=>{c&&T.push(Object.assign(Object.assign({x:0},t),{[Vt]:t[qt]||t[Gt]||t[Vt]})),D.push(Object.assign({x:0,y:0},t))})}));let R,B,F,L,I=[],W=[];u&&!Array.isArray(u)&&!0===u.includeAnnotations&&n.forEach(t=>{O.forEach((e,n)=>{const o=t(e,n);isFinite(o)&&I.push({[Wt]:o})})}),d&&!Array.isArray(d)&&!0===d.includeAnnotations&&o.forEach(t=>{O.forEach((e,n)=>{const o=t(e,n);isFinite(o)&&W.push({[Vt]:o})})});for(const t of D){const e=void 0===t[Kt]?t[Wt]:Math.min(t[Yt],t[Kt]),n=void 0===t[Yt]?t[Wt]:Math.max(t[Kt],t[Yt]),o=void 0===t[Gt]?t[Vt]:Math.min(t[qt],t[Gt]),a=void 0===t[qt]?t[Vt]:Math.max(t[Gt],t[qt]);void 0===e||void 0!==R&&e>=R||(R=e),void 0===n||void 0!==B&&B>=n||(B=n),void 0===o||void 0!==F&&o>=F||(F=o),void 0===a||void 0!==L&&L>=a||(L=a)}for(const t of I){const e=t[Wt];void 0===e||void 0!==R&&e>=R||(R=e),void 0===e||void 0!==B&&B>=e||(B=e)}for(const t of W){const e=t[Vt];void 0===e||void 0!==F&&e>=F||(F=e),void 0===e||void 0!==L&&L>=e||(L=e)}const V=[R,B],H=[F,L],q=Zt(u),G=Zt(d);let X=[G&&void 0!==G[0]?G[0]:H[0],G&&void 0!==G[1]?G[1]:H[1]],Y=[q&&void 0!==q[0]?q[0]:V[0],q&&void 0!==q[1]?q[1]:V[1]];if(!h||q&&2===q.length||(Y=[Y[1],Y[0]]),"bumpline"!==s.type&&!p||G&&2===G.length||(X=[X[1],X[0]]),y.type&&"contour"===y.type)z=function({summaryType:t,data:e,finalXExtent:n,finalYExtent:o}){let a=[];t.type||(t={type:t});const{resolution:i=500,thresholds:r=10,bandwidth:s=20,neighborhood:l}=t,c=f().domain(n).rangeRound([0,i]).nice(),u=f().domain(o).rangeRound([i,0]).nice();return e.forEach(t=>{let e=E().size([i,i]).x(t=>c(t[0])).y(t=>u(t[1])).thresholds(r).bandwidth(s)(t._xyfCoordinates);l&&(e=[e[0]]);const n=Math.max(...e.map(t=>t.value));e.forEach(e=>{e.parentSummary=t,e.bounds=[],e.percent=e.value/n,e.coordinates.forEach(t=>{t.forEach((n,o)=>{t[o]=n.map(t=>[c.invert(t[0]),u.invert(t[1])]),0===o&&e.bounds.push(function(t){let e=[1/0,0],n=[-1/0,0],o=[0,1/0],a=[0,-1/0];return t.forEach(t=>{e=e[0]>t[0]?t:e,n=t[0]>n[0]?t:n,a=t[1]>a[1]?t:a,o=o[1]>t[1]?t:o}),{center:[(e[0]+n[0])/2,(o[1]+a[1])/2],top:o,left:e,right:n,bottom:a}}(t[o]))})})}),a=[...a,...e]}),a}({summaryType:y,data:z,finalXExtent:Y,finalYExtent:X});else if(y.type&&"linebounds"===y.type){if(z=function({summaryType:t,data:e,defined:n}){let o=[];t.type||(t={type:t});const{boundingAccessor:a,topBoundingAccessor:i=a,bottomBoundingAccessor:r=a}=t;return e.forEach(t=>{const e=t._baseData.map(n);let a=[],s=[];const l=[{xyf:s,base:a}];e.forEach((n,o)=>{!0===n?(a.push(t._baseData[o]),s.push(t._xyfCoordinates[o])):e[o+1]&&(a=[],s=[],l.push({xyf:s,base:a}))}),l.forEach(({xyf:e,base:n})=>{const a={data:t,parentSummary:t,_xyfCoordinates:Qt(e,n,i,r)};o=[...o,a]})}),o}({summaryType:y,data:z,defined:_}),!G||2!==G.length)for(const t of z)for(const e of t._xyfCoordinates){const t=e[1];void 0!==t&&isFinite(t)&&(X[0]>t&&(X[0]=t),t>X[1]&&(X[1]=t))}}else y.type&&"hexbin"===y.type?(z=function({preprocess:e=!0,processedData:n=!1,summaryType:o,data:a,finalXExtent:i,finalYExtent:r,size:s,xScaleType:l=f(),yScaleType:c=f(),margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m}){let y=i,g=r;if(!y){const t=a.coordinates.map(t=>t.x);y=[Math.min(...t),Math.max(...t)]}if(!g){const t=a.coordinates.map(t=>t.y);g=[Math.min(...t),Math.max(...t)]}if(n&&a)return a.coordinates;let x,v=[];x=o.type?o:{type:x};const{bins:b=.05,cellPx:E,binValue:M=t=>t.length,binMax:w,customMark:A}=x;a.coordinates&&!a._xyfCoordinates&&(a._xyfCoordinates=a.coordinates.map(t=>[t.x,t.y]));const S=Array.isArray(a)?a:[a],P=l.domain(y).range([0,s[0]]),$=c.domain(g).range([0,s[1]]),j=E&&E/2||(b>1?1/b:b)*s[0]/2,_=k().x(t=>P(t._xyfPoint[0])).y(t=>$(t._xyfPoint[1])).radius(j).size(s);let O;const D=_.centers();return S.forEach(e=>{O=0;const n=_(e._xyfCoordinates.map((t,n)=>Object.assign({_xyfPoint:t},e.coordinates[n]))),o={};n.forEach(t=>{o[`${parseInt(t.x)}-${parseInt(t.y)}`]=!0}),D.forEach(t=>{if(!o[`${parseInt(t[0])}-${parseInt(t[1])}`]){const e=[];e.x=t[0],e.y=t[1],n.push(e)}}),O=Math.max(...n.map(t=>M(t))),w&&w(O);const a=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],i=P.invert(j)-y[0],r=$.invert(j)-g[0],l=a.map(t=>[t[0]*i,t[1]*r]),c=n.map(n=>{const o=M(n),i=n.x,r=n.y;n.x=P.invert(n.x),n.y=$.invert(n.y);const c=o/O;return{customMark:A&&t.createElement("g",{transform:`translate(${i},${s[1]-r})`},A({d:Object.assign(Object.assign({},n),{binItems:n,percent:c,value:o,radius:j,hexCoordinates:a.map(t=>[t[0]*j,t[1]*j])}),margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m,adjustedSize:s})),_xyfCoordinates:l.map(t=>[t[0]+n.x,t[1]+n.y]),value:o,percent:c,data:n,parentSummary:e,centroid:!0}});v=[...v,...c]}),e?(v.forEach(t=>{t.x=t.data.x,t.y=t.data.y}),{type:"hexbin",processedData:!0,coordinates:v,binMax:O}):v}({summaryType:y,data:z[0],processedData:a&&!!a[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:X,size:g,margin:x,styleFn:M,classFn:w,renderFn:A,chartSize:S}),D=ne(D,z)):y.type&&"heatmap"===y.type?(z=function({preprocess:e=!0,processedData:n=!1,summaryType:o,data:a,finalXExtent:i=[Math.min(...a.coordinates.map(t=>t.x)),Math.max(...a.coordinates.map(t=>t.x))],finalYExtent:r=[Math.min(...a.coordinates.map(t=>t.y)),Math.max(...a.coordinates.map(t=>t.y))],size:s,xScaleType:l=f(),yScaleType:c=f(),margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m}){if(n&&a)return a.coordinates;a.coordinates&&!a._xyfCoordinates&&(a._xyfCoordinates=a.coordinates.map(t=>[t.x,t.y]));const y=Array.isArray(a)?a:[a];let g,x=[];g=o.type?o:{type:g};const{binValue:v=t=>t.length,xBins:b=g.yBins||.05,yBins:E=b,xCellPx:k=!g.xBins&&g.xCellPx,yCellPx:M=!g.yBins&&g.yCellPx,customMark:w,binMax:A}=g,S=1>b?b:1/b,P=1>E?E:1/E,$=l.domain(i).range([0,s[0]]),j=c.domain(r).range([s[1],0]),_=[Math.ceil((k&&k/s[0]||S)*s[0]*10)/10,Math.ceil((M&&M/s[1]||P)*s[1]*10)/10];let O=-1/0;return y.forEach(e=>{const n=[],o=[];let a,i;for(let t=0;s[0]>Math.ceil(t);t+=_[0]){const r=$.invert(t),l=$.invert(t+_[0]);i=[],n.push(i);for(let n=0;s[1]>Math.ceil(n);n+=_[1]){const s=j.invert(n),c=j.invert(n+_[1]);a={gx:t,gy:n,gw:_[0],gh:_[1],x:(r+l)/2,y:(s+c)/2,binItems:[],value:0,_xyfCoordinates:[[r,s],[l,s],[l,c],[r,c]],parentSummary:e},i.push(a),o.push(a)}i.push(a)}n.push(i),e._xyfCoordinates.forEach((t,o)=>{const a=$(t[0]),i=j(t[1]),r=Math.floor(a/_[0]),s=Math.floor(i/_[1]);n[r][s]&&n[r][s].binItems.push(e.coordinates[o])}),o.forEach(t=>{t.value=v(t.binItems),O=Math.max(O,t.value)}),o.forEach(e=>{e.percent=e.value/O,e.customMark=w&&t.createElement("g",{transform:`translate(${e.gx},${e.gy})`},w({d:e,margin:u,styleFn:d,classFn:h,renderFn:p,chartSize:m,adjustedSize:s}))}),x=[...x,...o]}),A&&A(O),e?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:x,binMax:O}:x}({summaryType:y,data:z[0],processedData:a&&!!a[0].processedData,preprocess:!1,finalXExtent:Y,finalYExtent:X,size:g,margin:x,styleFn:M,classFn:w,renderFn:A,chartSize:S}),D=ne(D,z)):y.type&&"trendline"===y.type&&(z=function({preprocess:t=!1,summaryType:e,data:n,finalXExtent:o=[Math.min(...n.coordinates.map(t=>t.x)),Math.max(...n.coordinates.map(t=>t.x))],xScaleType:a=f()}){if(t)return n[0].coordinates;let i,r=[];i=e.type?e:{type:i};const{regressionType:s="linear",order:l=2,precision:c=4,controlPoints:u=20,curve:d=b}=i;let h=s;o[0]>=0||"logarithmic"!==s&&"power"!==s&&"exponential"!==s||(console.error(`Cannot use this ${s} regressionType type with value range that goes below 0, defaulting to linear`),h="linear"),n.coordinates&&!n._xyfCoordinates&&(n._xyfCoordinates=n.coordinates.map(t=>[t.x,t.y]));const p=Array.isArray(n)?n:[n],m=a.domain([0,1]).range(o);return r=[],p.forEach(t=>{const e=v[h](t._xyfCoordinates.map(t=>{let e=t[0],n=t[1];return"number"!=typeof e&&(e=e.getTime()),"number"!=typeof n&&(n=n.getTime()),[e,n]}),{order:l,precision:c}),n=1/u;let o=[0,1];if("linear"!==h){o=[];for(let t=0;1+n>t;t+=n)o.push(t)}const a=[];o.forEach(t=>{a.push(e.predict(m(t)))}),r.push({centroid:!1,customMark:void 0,data:t,parentSummary:t,value:e.string,r2:e.r2,curve:d,_xyfCoordinates:a})}),r}({summaryType:y,data:z[0],preprocess:a&&!!a[0].processedData,finalXExtent:Y}),D=ne(D,z));return P&&(C=C.filter(P),D=D.filter((t,e)=>!t.parentLine||P(t.parentLine,e,[]))),j&&(D=D.filter(j)),$&&(z=z.filter($),D=D.filter((t,e)=>!t.parentSummary||$(t.parentSummary,e,[]))),{xExtent:Y,yExtent:X,projectedLines:C,projectedPoints:T,projectedSummaries:z,fullDataset:D,calculatedXExtent:V,calculatedYExtent:H}},ae=(t,e)=>!ee[t]||"difference"===t&&2!==e.length?"line":t,ie={category10:M,tableau10:D,set3:O,blues:_,reds:j,greens:$,oranges:P,purples:S,viridis:A,plasma:w},re=M;function se(t,e,n){if("function"==typeof e)return e(t);const o=t[e];return n?n(o):re[Math.abs(function(t){let e=0;for(let n=0;t.length>n;n++)e=(e<<5)-e+t.charCodeAt(n),e&=e;return Math.abs(e)}(o+""))%re.length]}const le="#007bff";function ce(t,e,o="category10"){return n(()=>{if(e&&"function"!=typeof e)return function(t,e,n="category10"){const o=Array.from(new Set(t.map(t=>t[e]))),a=o.every(t=>"number"==typeof t||!isNaN(Number(t)));if(Array.isArray(n))return m().domain(o).range(n).unknown("#999");const i=ie[n]||ie.category10;if(a&&"function"==typeof i)return t=>i(Number(t)/Math.max(...o.map(Number)));{const t=Array.isArray(i)?i:re;return m().domain(o).range(t).unknown("#999")}}(t,e,o)},[t,e,o])}function ue({data:t,colorBy:e,colorScale:n,getColor:o,strokeColor:a,strokeWidth:i}){return{legendGroups:[{styleFn:t=>{const e={fill:t.color,stroke:t.color};return void 0!==a&&(e.stroke=a),void 0!==i&&(e.strokeWidth=i),e},type:"fill",items:Array.from(new Set(t.map(t=>"function"==typeof e?e(t):t[e]))).map(a=>{const i=t.find("function"==typeof e?t=>e(t)===a:t=>t[e]===a),r=i?o(i,e,n):n?n(a):"#000000";return{label:a+"",color:r}}),label:""}]}}const de={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"8px 12px",borderRadius:"4px",fontSize:"14px",lineHeight:"1.5",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",maxWidth:"300px",wordWrap:"break-word"};function he(t,e){return"function"==typeof e?e(t):t[e]}function pe(t,e){return e?e(t):null==t?"":"number"==typeof t?t.toLocaleString():t instanceof Date?t.toLocaleDateString():"object"==typeof t&&null!==t?void 0!==t.id?t.id+"":void 0!==t.name?t.name+"":JSON.stringify(t):t+""}function fe(e){return!0===e||("function"==typeof e?e:!1!==e&&void 0!==e&&("object"!=typeof e||null===e||!("fields"in e)&&!("title"in e)||function(e={}){const{fields:n,title:o,format:a,style:i={},className:r=""}=e;return e=>{if(!e||"object"!=typeof e)return null;let s;const l=[];if(o){const t=he(e,o);s=pe(t,a)}if(n&&n.length>0)n.forEach(t=>{let n,o,i;"string"==typeof t?(n=t,o=t,i=a):(n=t.label,o=t.accessor||t.key||"",i=t.format||a);const r=he(e,o);l.push({label:n,value:pe(r,i)})});else if(!o){const t=["value","y","name","id","label"];for(const n of t)if(void 0!==e[n]){s=pe(e[n],a);break}if(!s){const t=Object.keys(e).filter(t=>!t.startsWith("_"));t.length>0&&(s=pe(e[t[0]],a))}}const c=Object.assign(Object.assign({},de),i);return t.createElement("div",{className:("semiotic-tooltip "+r).trim(),style:c},s&&t.createElement("div",{style:{fontWeight:l.length>0?"bold":"normal"}},s),l.map((e,n)=>t.createElement("div",{key:n,style:{marginTop:0===n&&s?"4px":0}},e.label&&t.createElement("span",null,e.label,": "),e.value)))}}(e)))}function me({componentName:e,message:n,width:o,height:a}){return t.createElement("div",{role:"alert",style:{width:o,height:Math.max(a,120),display:"flex",alignItems:"center",justifyContent:"center",border:"1px dashed rgba(128, 128, 128, 0.4)",borderRadius:8,background:"rgba(128, 128, 128, 0.04)",padding:24,boxSizing:"border-box"}},t.createElement("div",{style:{textAlign:"center",maxWidth:400}},t.createElement("div",{style:{fontSize:13,fontWeight:600,color:"rgba(128, 128, 128, 0.7)",marginBottom:6,fontFamily:"monospace"}},e),t.createElement("div",{style:{fontSize:14,color:"rgba(128, 128, 128, 0.9)",lineHeight:1.5}},n)))}function ye({data:t,accessors:e,requiredProps:n}){if(n)for(const[t,e]of Object.entries(n))if(null==e)return t+" is required. Provide a field name or function.";if(!t||!Array.isArray(t)||0===t.length)return"No data provided. Pass a non-empty array to the data prop.";if(e){const n=t[0];if(n&&"object"==typeof n)for(const[t,o]of Object.entries(e))if(o&&"string"==typeof o&&!(o in n))return`${t} "${o}" not found in data. Available fields: ${Object.keys(n).join(", ")}.`}return null}function ge(t,e){return t?!0===t?{name:"hover",fields:e||[]}:"string"==typeof t?{name:t,fields:e||[]}:{name:t.name||"hover",fields:t.fields}:null}function xe(t,e,n){return e?o=>{var a,i;const r=Object.assign({},t(o));return e.isActive&&(e.predicate(o)?(null==n?void 0:n.selectedStyle)&&Object.assign(r,n.selectedStyle):(r.fillOpacity=null!==(a=null==n?void 0:n.unselectedOpacity)&&void 0!==a?a:.2,r.strokeOpacity=null!==(i=null==n?void 0:n.unselectedOpacity)&&void 0!==i?i:.2,(null==n?void 0:n.unselectedStyle)&&Object.assign(r,n.unselectedStyle))),r}:t}function ve(t){const e=[];for(const[n,o]of Object.entries(t.fields))if("point"===o.type)e.push(t=>o.values.has(t[n]));else{const[t,a]=o.range;e.push(e=>{const o=e[n];return o>=t&&a>=o})}return t=>e.every(e=>e(t))}function be(t,e){let n=t.get(e);return n||(n={name:e,resolution:"union",clauses:new Map},t.set(e,n)),n}const[Ee,ke]=At(t=>({selections:new Map,setClause(e,n){t(t=>{const o=new Map(t.selections),a=be(o,e),i=new Map(a.clauses);return i.set(n.clientId,n),o.set(e,Object.assign(Object.assign({},a),{clauses:i})),{selections:o}})},clearClause(e,n){t(t=>{const o=t.selections.get(e);if(!o)return{};const a=new Map(t.selections),i=new Map(o.clauses);return i.delete(n),a.set(e,Object.assign(Object.assign({},o),{clauses:i})),{selections:a}})},setResolution(e,n){t(t=>{const o=new Map(t.selections),a=be(o,e);return o.set(e,Object.assign(Object.assign({},a),{resolution:n})),{selections:o}})},clearSelection(e){t(t=>{const n=new Map(t.selections),o=n.get(e);return o&&n.set(e,Object.assign(Object.assign({},o),{clauses:new Map})),{selections:n}})}}));function Me(t){const e=h(),o=t.clientId||e,{name:a}=t,i=ke(t=>t.selections.get(a)),s=ke(t=>t.setClause),l=ke(t=>t.clearClause),c=n(()=>!!i&&i.clauses.size>0,[i]);return{predicate:n(()=>i&&0!==i.clauses.size?function(t,e){const n=[];for(const[o,a]of t.clauses)"crossfilter"===t.resolution&&o===e||n.push(ve(a));return 0===n.length?()=>!0:"intersect"===t.resolution?t=>n.every(e=>e(t)):t=>n.some(e=>e(t))}(i,o):()=>!0,[i,o]),isActive:c,selectPoints:r(t=>{const e={};for(const[n,o]of Object.entries(t))e[n]={type:"point",values:new Set(o)};s(a,{clientId:o,type:"point",fields:e})},[o,a,s]),selectInterval:r(t=>{const e={};for(const[n,o]of Object.entries(t))e[n]={type:"interval",range:o};s(a,{clientId:o,type:"interval",fields:e})},[o,a,s]),clear:r(()=>{l(a,o)},[l,a,o]),clientId:o}}function we(t){const e=t.name||"hover",{fields:n}=t,{predicate:o,isActive:a,selectPoints:i,clear:s}=Me({name:e});return{onHover:r(t=>{if(!t)return void s();const e={};for(const o of n){const n=t[o];void 0!==n&&(e[o]=[n])}Object.keys(e).length>0&&i(e)},[n,i,s]),predicate:o,isActive:a}}function Ae(e){const{data:o,width:a=600,height:i=400,margin:s,className:l,title:c,categoryAccessor:u="category",valueAccessor:d="value",bins:h=25,relative:p=!1,categoryLabel:f,valueLabel:m,valueFormat:y,colorBy:g,colorScheme:x="category10",categoryPadding:v=20,enableHover:b=!0,showGrid:E=!1,showLegend:k,tooltip:M,frameProps:w={},selection:A,linkedHover:S}=e,P=o||[],$=ge(S,g?["string"==typeof g?g:""]:["string"==typeof u?u:""]),j=Me({name:(null==A?void 0:A.name)||"__unused__"}),_=we({name:(null==$?void 0:$.name)||"hover",fields:(null==$?void 0:$.fields)||[]}),O=A?{isActive:j.isActive,predicate:j.predicate}:null,D=ce(P,g,x),N=n(()=>t=>{const e=g?se(t,g,D):le;return{fill:e,stroke:e,fillOpacity:.8}},[g,D]),T=n(()=>xe(N,O,A),[N,O,A]),C=void 0!==k?k:!!g,z=n(()=>{if(C&&g)return ue({data:P,colorBy:g,colorScale:D,getColor:se})},[C,g,P,D]),R=n(()=>{const t=Object.assign({top:50,bottom:60,left:70,right:40},s);return z&&120>t.right&&(t.right=120),t},[s,z]),B=r(t=>{S&&_.onHover(t)},[S,_]),F=n(()=>e=>{const n=e.data||e,o=n.category||e.category||"",a=n.count,i=n.range;return t.createElement("div",{className:"semiotic-tooltip",style:de},o&&t.createElement("div",{style:{fontWeight:"bold"}},o+""),null!=a&&t.createElement("div",null,"Count: ",a),i&&2===i.length&&t.createElement("div",{style:{opacity:.8}},Number(i[0]).toFixed(1)," – ",Number(i[1]).toFixed(1)))},[]),L=ye({componentName:"Histogram",data:P,accessors:{categoryAccessor:u,valueAccessor:d}});if(L)return t.createElement(me,{componentName:"Histogram",message:L,width:a,height:i});const I=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"histogram",data:P,oAccessor:u,rAccessor:d,projection:"horizontal",summaryStyle:T,bins:h,normalize:p,size:[a,i],margin:R,barPadding:v,enableHover:b,showAxes:!0,oLabel:f,rLabel:m,rFormat:y,showGrid:E},z&&{legend:z}),c&&{title:c}),l&&{className:l}),{tooltipContent:M?fe(M):F}),S&&{customHoverBehavior:B}),w);return t.createElement(ut,Object.assign({},I))}function Se(e){const{data:o,width:a=600,height:i=400,margin:s,className:l,title:c,categoryAccessor:u="category",valueAccessor:d="value",orientation:h="vertical",bins:p=25,showIQR:f=!0,categoryLabel:m,valueLabel:y,valueFormat:g,colorBy:x,colorScheme:v="category10",categoryPadding:b=20,enableHover:E=!0,showGrid:k=!1,showLegend:M,tooltip:w,frameProps:A={},selection:S,linkedHover:P}=e,$=o||[],j=ge(P,x?["string"==typeof x?x:""]:["string"==typeof u?u:""]),_=Me({name:(null==S?void 0:S.name)||"__unused__"}),O=we({name:(null==j?void 0:j.name)||"hover",fields:(null==j?void 0:j.fields)||[]}),D=S?{isActive:_.isActive,predicate:_.predicate}:null,N=ce($,x,v),T=n(()=>t=>{const e=x?se(t,x,N):le;return{fill:e,stroke:e,fillOpacity:.6}},[x,N]),C=n(()=>xe(T,D,S),[T,D,S]),z=void 0!==M?M:!!x,R=n(()=>{if(z&&x)return ue({data:$,colorBy:x,colorScale:N,getColor:se})},[z,x,$,N]),B=n(()=>{const t=Object.assign({top:50,bottom:60,left:70,right:40},s);return R&&120>t.right&&(t.right=120),t},[s,R]),F=r(t=>{P&&O.onHover(t)},[P,O]),L=n(()=>e=>{const n=e.data||e,o=n.category||e.category||"",a=(Array.isArray(n)?n:[]).map(t=>{const e="function"==typeof d?d(t):t[d];return Number(e)}).filter(t=>!isNaN(t)).sort((t,e)=>t-e),i=a.length,r=i>0?a[Math.floor(i/2)]:null;return t.createElement("div",{className:"semiotic-tooltip",style:de},o&&t.createElement("div",{style:{fontWeight:"bold"}},o+""),i>0&&t.createElement("div",null,"n = ",i),null!=r&&t.createElement("div",null,"Median: ",r.toLocaleString()))},[d]),I=ye({componentName:"ViolinPlot",data:$,accessors:{categoryAccessor:u,valueAccessor:d}});if(I)return t.createElement(me,{componentName:"ViolinPlot",message:I,width:a,height:i});const W=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"violin",data:$,oAccessor:u,rAccessor:d,projection:"horizontal"===h?"horizontal":"vertical",summaryStyle:C,bins:p,showIQR:f,size:[a,i],margin:B,barPadding:b,enableHover:E,showAxes:!0,oLabel:m,rLabel:y,rFormat:g,showGrid:k},R&&{legend:R}),c&&{title:c}),l&&{className:l}),{tooltipContent:w?fe(w):L}),P&&{customHoverBehavior:F}),A);return t.createElement(ut,Object.assign({},W))}Ae.displayName="Histogram",Se.displayName="ViolinPlot";export{Mt as Annotation,zt as AnnotationLayer,vt as Axis,Ae as Histogram,Q as Legend,ut as StreamOrdinalFrame,Se as ViolinPlot,oe as calculateDataExtent};
|
|
1
|
+
import*as e from"react";import{useMemo as t,forwardRef as n,useRef as o,useState as i,useCallback as a,useEffect as s,useImperativeHandle as r,createContext as l,useContext as c,useLayoutEffect as u,useId as h}from"react";import{scaleBand as d,scaleLinear as g,scaleOrdinal as m}from"d3-scale";import{quantile as f}from"d3-array";import{packEnclose as y}from"d3-hierarchy";import{schemeCategory10 as p,interpolatePlasma as v,interpolateViridis as b,interpolatePurples as x,interpolateOranges as w,interpolateGreens as A,interpolateReds as k,interpolateBlues as E,schemeSet3 as S,schemeTableau10 as O}from"d3-scale-chromatic";const M=5e3;class j{constructor(e){this.lastBoundedData=null,this.chunkTimer=0,this.callback=e}setBoundedData(e){if(e===this.lastBoundedData)return;if(this.lastBoundedData=e,this.chunkTimer&&(cancelAnimationFrame(this.chunkTimer),this.chunkTimer=0),5e3>=e.length)return void this.callback({inserts:e,bounded:!0});this.callback({inserts:e.slice(0,M),bounded:!0,totalSize:e.length});let t=M;const n=()=>{if(t>=e.length)return;if(e!==this.lastBoundedData)return;const o=Math.min(t+M,e.length);this.callback({inserts:e.slice(t,o),bounded:!1}),t=o,this.chunkTimer=e.length>t?requestAnimationFrame(n):0};this.chunkTimer=requestAnimationFrame(n)}push(e){this.callback({inserts:[e],bounded:!1})}pushMany(e){0!==e.length&&this.callback({inserts:e,bounded:!1})}clear(){this.chunkTimer&&(cancelAnimationFrame(this.chunkTimer),this.chunkTimer=0),this.lastBoundedData=null}}class L{constructor(e){if(this._capacity=e,this.head=0,this._size=0,1>e)throw Error("RingBuffer capacity must be at least 1");this.buffer=Array(e)}push(e){let t;return this._size===this._capacity?t=this.buffer[this.head]:this._size++,this.buffer[this.head]=e,this.head=(this.head+1)%this._capacity,t}pushMany(e){const t=[];for(const n of e){const e=this.push(n);void 0!==e&&t.push(e)}return t}get(e){if(e>=0&&this._size>e)return this.buffer[(this.head-this._size+e+this._capacity)%this._capacity]}peek(){if(0!==this._size)return this.buffer[(this.head-1+this._capacity)%this._capacity]}peekOldest(){if(0!==this._size)return this.buffer[(this.head-this._size+this._capacity)%this._capacity]}[Symbol.iterator](){let e=0;const t=this;return{next:()=>t._size>e?{done:!1,value:t.get(e++)}:{done:!0,value:void 0}}}toArray(){const e=[];for(const t of this)e.push(t);return e}resize(e){if(1>e)throw Error("RingBuffer capacity must be at least 1");const t=this.toArray(),n=[];for(;t.length>e;)n.push(t.shift());this._capacity=e,this.buffer=Array(e),this.head=0,this._size=0;for(const e of t)this.push(e);return n}clear(){this.buffer=Array(this._capacity),this.head=0,this._size=0}get size(){return this._size}get capacity(){return this._capacity}get full(){return this._size===this._capacity}}class P{constructor(){this._min=1/0,this._max=-1/0,this._dirty=!1}push(e){Number.isNaN(e)||(this._min>e&&(this._min=e),e>this._max&&(this._max=e))}evict(e){e!==this._min&&e!==this._max||(this._dirty=!0)}recalculate(e,t){this._min=1/0,this._max=-1/0;for(const n of e){const e=t?t(n):n;Number.isNaN(e)||(this._min>e&&(this._min=e),e>this._max&&(this._max=e))}this._dirty=!1}clear(){this._min=1/0,this._max=-1/0,this._dirty=!1}get extent(){return[this._min,this._max]}get min(){return this._min}get max(){return this._max}get dirty(){return this._dirty}}function _(e,t){if("function"==typeof e)return t=>+e(t);const n=e||t;return e=>+e[n]}function N(e,t){return"function"==typeof e?e:e?t=>t[e]+"":t?e=>e[t]+"":void 0}function B(e,t,n,o,i,a,s){return{type:"rect",x:e,y:t,w:n,h:o,style:i,datum:a,group:s}}function H(e,t){const{columns:n,config:o,resolvePieceStyle:i}=e,a=[],s=Math.min(t.width,t.height)/2-4,r="donut"===o.chartType?o.innerRadius||60:0,l=-Math.PI/2+(o.startAngle||0)*Math.PI/180,c=2*Math.PI;for(const e of Object.values(n)){const t=l+e.pctStart*c,n=l+(e.pctStart+e.pct)*c,o=i(e.pieceData[0],e.name);a.push({type:"wedge",cx:0,cy:0,innerRadius:r,outerRadius:s,startAngle:t,endAngle:n,style:o,datum:e.pieceData,category:e.name})}return a}function $(e){var t,n,o;const i=e.length,a=e[0],s=e[i-1];return{n:i,min:a,q1:null!==(t=f(e,.25))&&void 0!==t?t:a,median:null!==(n=f(e,.5))&&void 0!==n?n:(a+s)/2,q3:null!==(o=f(e,.75))&&void 0!==o?o:s,max:s,mean:e.reduce((e,t)=>e+t,0)/i}}const D={bar:function(e,t){const{scales:n,columns:o,config:i,getR:a,getStack:s,resolvePieceStyle:r}=e,{r:l,projection:c}=n,u=[],h="vertical"===c,d="horizontal"===c,g=i.normalize;for(const e of Object.values(o)){const t=new Map;for(const n of e.pieceData){const e=s?s(n):"_default";t.has(e)||t.set(e,{total:0,pieces:[]});const o=t.get(e);o.total+=a(n),o.pieces.push(n)}let n=0;if(g)for(const e of t.values())n+=Math.abs(e.total);let o=0,i=0;for(const[a,c]of t){let t=c.total;g&&n>0&&(t/=n);const m=r(c.pieces[0],s?a:e.name),f=Object.assign(Object.assign({},c.pieces[0]),{__aggregateValue:c.total,__pieceCount:c.pieces.length,category:e.name});if(h){const n=l(0>t?i:o+t),s=0>t?l(i+t)-l(i):l(o)-l(o+t);u.push(B(e.x,n,e.width,Math.abs(s),m,f,a)),0>t?i+=t:o+=t}else if(d){const n=l(0>t?i+t:o),s=0>t?l(i)-l(i+t):l(o+t)-l(o);u.push(B(n,e.x,Math.abs(s),e.width,m,f,a)),0>t?i+=t:o+=t}}}return u},clusterbar:function(e,t){const{scales:n,columns:o,getR:i,getGroup:a,resolvePieceStyle:s}=e,{r:r,projection:l}=n,c=[],u="vertical"===l,h=[],d=new Set;for(const e of Object.values(o))for(const t of e.pieceData){const e=a?a(t):"_default";d.has(e)||(d.add(e),h.push(e))}const g=h.length||1;for(const e of Object.values(o)){const t=e.width/g,n=new Map;for(const t of e.pieceData){const e=a?a(t):"_default";n.has(e)||n.set(e,[]),n.get(e).push(t)}for(let o=0;h.length>o;o++){const a=n.get(h[o])||[];for(const n of a){const a=i(n),l=s(n,e.name);if(u){const i=e.x+o*t,s=r(0),u=r(a);c.push(B(i,Math.min(s,u),t,Math.abs(s-u),l,n,h[o]))}else{const i=e.x+o*t,s=r(0),u=r(a);c.push(B(Math.min(s,u),i,Math.abs(u-s),t,l,n,h[o]))}}}}return c},point:function(e,t){var n,o;const{scales:i,columns:a,getR:s,multiScales:r,resolvePieceStyle:l}=e,{r:c,projection:u}=i,h=[],d="vertical"===u,g="radial"===u,m=r.length>0,f=2*Math.PI,y=-Math.PI/2;for(const e of Object.values(a))for(const t of e.pieceData){const i=null!==(n=t.__rIndex)&&void 0!==n?n:0,a=null!==(o=t.__rValue)&&void 0!==o?o:s(t),u=m&&r[i]||c,p=l(t,e.name),v=p.r||5;let b,x;if(g){const t=y+(e.pctStart+e.pct/2)*f,n=u(a);b=Math.cos(t)*n,x=Math.sin(t)*n}else d?(b=e.middle,x=u(a)):(b=u(a),x=e.middle);h.push({type:"point",x:b,y:x,r:v,style:p,datum:t})}return h},swarm:function(e,t){const{scales:n,columns:o,getR:i,resolvePieceStyle:a}=e,{r:s,projection:r}=n,l=[],c="vertical"===r;for(const e of Object.values(o)){const t=e.width/2;for(let n=0;e.pieceData.length>n;n++){const o=e.pieceData[n],r=i(o),u=a(o,e.name),h=u.r||4,d=(7919*n%100/100-.5)*t*.8,g=c?e.middle+d:s(r),m=c?s(r):e.middle+d;l.push({type:"point",x:g,y:m,r:h,style:u,datum:o})}}return l},pie:H,donut:H,boxplot:function(e,t){var n,o,i,a,s;const{scales:r,columns:l,config:c,getR:u,resolveSummaryStyle:h}=e,{r:d,projection:g}=r,m=[],y="vertical"===g,p=!1!==c.showOutliers;for(const e of Object.values(l)){const t=e.pieceData.map(e=>u(e)).filter(e=>null!=e&&!isNaN(e)).sort((e,t)=>e-t);if(0===t.length)continue;const r=t[0],l=t[t.length-1],c=null!==(n=f(t,.25))&&void 0!==n?n:r,g=null!==(o=f(t,.5))&&void 0!==o?o:(r+l)/2,v=null!==(i=f(t,.75))&&void 0!==i?i:l,b=v-c,x=c-1.5*b,w=v+1.5*b,A=null!==(a=t.find(e=>e>=x))&&void 0!==a?a:r,k=null!==(s=[...t].reverse().find(e=>w>=e))&&void 0!==s?s:l,E=h(e.pieceData[0],e.name),S=[];if(p)for(const t of e.pieceData){const n=u(t);if(x>n||n>w){const o=y?e.middle:d(n),i=y?d(n):e.middle;S.push({px:o,py:i,value:n,datum:t})}}if(m.push({type:"boxplot",x:y?e.middle:0,y:y?0:e.middle,projection:y?"vertical":"horizontal",columnWidth:.6*e.width,minPos:d(A),q1Pos:d(c),medianPos:d(g),q3Pos:d(v),maxPos:d(k),stats:{min:A,q1:c,median:g,q3:v,max:k},style:E,datum:e.pieceData,category:e.name,outliers:S}),p)for(const e of S)m.push({type:"point",x:e.px,y:e.py,r:3,style:{fill:E.fill||"#999",opacity:.6},datum:e.datum})}return m},violin:function(e,t){var n,o,i;const{scales:a,columns:s,config:r,getR:l,resolveSummaryStyle:c}=e,{r:u,projection:h}=a,d=[],g="vertical"===h,m=r.bins||20,y=!1!==r.showIQR;for(const e of Object.values(s)){const t=e.pieceData.map(e=>l(e)).filter(e=>null!=e&&!isNaN(e)).sort((e,t)=>e-t);if(2>t.length)continue;const a=t[0],s=t[t.length-1],r=(s-a)/m||1,h=Array(m).fill(0);for(const e of t)h[Math.min(Math.floor((e-a)/r),m-1)]++;const p=Math.max(...h,1),v=e.width/2*.9;let b="";if(g){for(let t=0;m>t;t++){const n=u(a+(t+.5)*r),o=h[t]/p*v;b+=0===t?`M ${e.middle+o} ${n}`:` L ${e.middle+o} ${n}`}for(let t=m-1;t>=0;t--){const n=u(a+(t+.5)*r);b+=` L ${e.middle-h[t]/p*v} ${n}`}b+=" Z"}else{for(let t=0;m>t;t++){const n=u(a+(t+.5)*r),o=h[t]/p*v;b+=0===t?`M ${n} ${e.middle-o}`:` L ${n} ${e.middle-o}`}for(let t=m-1;t>=0;t--)b+=` L ${u(a+(t+.5)*r)} ${e.middle+h[t]/p*v}`;b+=" Z"}const x=c(e.pieceData[0],e.name);let w;if(y&&t.length>=4){const r=null!==(n=f(t,.25))&&void 0!==n?n:a,l=null!==(o=f(t,.5))&&void 0!==o?o:(a+s)/2,c=null!==(i=f(t,.75))&&void 0!==i?i:s;w={q1Pos:u(r),medianPos:u(l),q3Pos:u(c),centerPos:e.middle,isVertical:g}}const A=g?{x:e.x,y:Math.min(u(s),u(a)),width:e.width,height:Math.abs(u(s)-u(a))}:{x:Math.min(u(a),u(s)),y:e.x,width:Math.abs(u(s)-u(a)),height:e.width};d.push({type:"violin",pathString:b,translateX:0,translateY:0,bounds:A,iqrLine:w,stats:$(t),style:x,datum:e.pieceData,category:e.name})}return d},histogram:function(e,t){const{scales:n,columns:o,config:i,getR:a,resolveSummaryStyle:s}=e,{r:r}=n,l=[],c=i.bins||25,u=i.normalize;for(const e of Object.values(o)){const t=e.pieceData.map(e=>a(e)).filter(e=>null!=e&&!isNaN(e));if(0===t.length)continue;const n=Math.min(...t),o=(Math.max(...t)-n)/c||1,i=Array(c).fill(0);for(const e of t)i[Math.min(Math.floor((e-n)/o),c-1)]++;const h=t.length,d=Math.max(...i,1),g=s(e.pieceData[0],e.name);for(let t=0;c>t;t++){if(0===i[t])continue;const a=(u?i[t]/h:i[t]/d)*e.width*.9,s=r(n+t*o),c=r(n+(t+1)*o);l.push(B(Math.min(s,c),e.x+e.width-a,Math.abs(c-s),a,g,{bin:t,count:i[t],range:[n+t*o,n+(t+1)*o],category:e.name},e.name))}}return l},ridgeline:function(e,t){var n;const{scales:o,columns:i,config:a,getR:s,resolveSummaryStyle:r}=e,{r:l,projection:c}=o,u=[],h=a.bins||20,d="horizontal"===c,g=a.amplitude||1.5;for(const e of Object.values(i)){const t=e.pieceData.map(e=>s(e)).filter(e=>null!=e&&!isNaN(e)).sort((e,t)=>e-t);if(2>t.length)continue;const o=t[0],i=t[t.length-1],a=(i-o)/h||1,c=Array(h).fill(0);for(const e of t)c[Math.min(Math.floor((e-o)/a),h-1)]++;const m=Math.max(...c,1),f=r(e.pieceData[0],e.name),y=e.width*g;let p="";if(d){const t=e.x+e.width;p=`M ${l(o)} ${t}`;for(let e=0;h>e;e++)p+=` L ${l(o+(e+.5)*a)} ${t-c[e]/m*y}`;p+=` L ${l(i)} ${t} Z`}else{const t=e.x;p=`M ${t} ${l(o)}`;for(let e=0;h>e;e++){const n=l(o+(e+.5)*a);p+=` L ${t+c[e]/m*y} ${n}`}p+=` L ${t} ${l(i)} Z`}const v=d?{x:Math.min(l(o),l(i)),y:e.x,width:Math.abs(l(i)-l(o)),height:e.width}:{x:e.x,y:Math.min(l(i),l(o)),width:e.width,height:Math.abs(l(i)-l(o))};u.push({type:"violin",pathString:p,translateX:0,translateY:0,bounds:v,stats:$(t),style:Object.assign(Object.assign({},f),{fillOpacity:null!==(n=f.fillOpacity)&&void 0!==n?n:.5}),datum:e.pieceData,category:e.name})}return u},timeline:function(e,t){const{scales:n,columns:o,getRawRange:i,resolvePieceStyle:a}=e,{r:s,projection:r}=n,l=[],c="horizontal"===r;for(const e of Object.values(o))for(const t of e.pieceData){const n=i(t);if(!n)continue;const[o,r]=n,u=a(t,e.name);if(c){const n=s(Math.min(o,r)),i=s(Math.max(o,r));l.push(B(n,e.x,i-n,e.width,u,t,e.name))}else{const n=s(Math.max(o,r)),i=s(Math.min(o,r));l.push(B(e.x,n,e.width,i-n,u,t,e.name))}}return l}};class C{constructor(e){this.rExtent=new P,this.rExtents=[],this.rAccessors=[],this.categories=new Set,this._colorSchemeMap=null,this._colorSchemeIndex=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.lastIngestTime=0,this.scales=null,this.multiScales=[],this.scene=[],this.columns={},this.version=0,this.config=e,this.buffer=new L(e.windowSize),this.getO=N(e.oAccessor||e.categoryAccessor,"category");const t="streaming"===e.runtimeMode,n=e.rAccessor;Array.isArray(n)?(this.rAccessors=n.map(e=>_(e,"value")),this.getR=this.rAccessors[0],this.rExtents=n.map(()=>new P)):(this.getR=_(t&&(e.timeAccessor||e.valueAccessor)&&e.valueAccessor||n,"value"),this.rAccessors=[this.getR],this.rExtents=[this.rExtent]),this.getStack=N(e.stackBy),this.getGroup=N(e.groupBy),this.getColor=N(e.colorAccessor),this.getConnector=N(e.connectorAccessor),e.pulse&&(this.timestampBuffer=new L(e.windowSize))}ingest(e){const t="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=t,e.bounded){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear();const n=e.totalSize||e.inserts.length;n>this.buffer.capacity&&(this.buffer.resize(n),this.timestampBuffer&&n>this.timestampBuffer.capacity&&this.timestampBuffer.resize(n));for(const n of e.inserts)this.buffer.push(n),this.timestampBuffer&&this.timestampBuffer.push(t),this.categories.add(this.getO(n)),this.pushValueExtent(n)}else for(const n of e.inserts){const e=this.buffer.push(n);this.timestampBuffer&&this.timestampBuffer.push(t),this.categories.add(this.getO(n)),this.pushValueExtent(n),null!=e&&this.evictValueExtent(e)}return!0}pushValueExtent(e){if("timeline"===this.config.chartType){const t=this.getRawRange(e);t&&(this.rExtent.push(t[0]),this.rExtent.push(t[1]))}else if(this.rAccessors.length>1){for(let t=0;this.rAccessors.length>t;t++)this.rExtents[t].push(this.rAccessors[t](e));this.rExtent.push(this.getR(e))}else this.rExtent.push(this.getR(e))}evictValueExtent(e){if("timeline"===this.config.chartType){const t=this.getRawRange(e);t&&(this.rExtent.evict(t[0]),this.rExtent.evict(t[1]))}else if(this.rAccessors.length>1){for(let t=0;this.rAccessors.length>t;t++)this.rExtents[t].evict(this.rAccessors[t](e));this.rExtent.evict(this.getR(e))}else this.rExtent.evict(this.getR(e))}getRawRange(e){const t=this.config.rAccessor;if(!t)return null;const n="function"==typeof t?t(e):e[t];return Array.isArray(n)&&n.length>=2?[+n[0],+n[1]]:null}computeScene(e){const{config:t,buffer:n}=this;if(0===n.size)return this.scales=null,this.scene=[],this.columns={},void this.version++;this.rExtent.dirty&&this.rExtent.recalculate(n,this.getR);const o=n.toArray(),i=t.projection||"vertical",a=t.oExtent||this.resolveCategories(o),s=this.computeValueDomain(o,a),r="horizontal"===i,l=null!=t.barPadding?t.barPadding/("vertical"===i?e.width:e.height):.1;let c,u;if("radial"===i){c=d().domain(a).range([0,1]).padding(0);const n=Math.min(e.width,e.height)/2,o=t.innerRadius||0;u=g().domain(s).range([o,n])}else r?(c=d().domain(a).range([0,e.height]).padding(l),u=g().domain(s).range([0,e.width])):(c=d().domain(a).range([0,e.width]).padding(l),u=g().domain(s).range([e.height,0]));this.scales={o:c,r:u,projection:i},this.multiScales=this.rAccessors.length>1&&t.multiAxis?this.rAccessors.map((o,i)=>{const a=this.rExtents[i];a.dirty&&a.recalculate(n,o);let[s,l]=a.extent;s===1/0&&(s=0,l=1);const c=l-s,u=c>0?c*(t.extentPadding||.05):1;return s-=u,l+=u,s>0&&(s=0),r?g().domain([s,l]).range([0,e.width]):g().domain([s,l]).range([e.height,0])}):[];let h=o;this.rAccessors.length>1&&(h=o.flatMap(e=>this.rAccessors.map((t,n)=>Object.assign(Object.assign({},e),{__rIndex:n,__rValue:t(e),__rName:this.resolveRAccessorName(n)})))),this.columns=this.buildColumns(h,a,c,i,e),this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(h,e),this.config.decay&&this.applyDecay(this.scene,o),this.config.pulse&&this.applyPulse(this.scene,o),this.config.transition&&this.prevPositionMap.size>0&&this.startTransition(),this.version++}resolveRAccessorName(e){const t=Array.isArray(this.config.rAccessor)?this.config.rAccessor[e]:this.config.rAccessor;return"string"==typeof t?t:"value"+e}resolveCategories(e){const t=Array.from(this.categories),n=this.config.oSort;if("streaming"===this.config.runtimeMode&&void 0===n)return t;if(!1===n)return t;if("function"==typeof n)return t.sort(n);const o=new Map;for(const t of e){const e=this.getO(t);o.set(e,(o.get(e)||0)+Math.abs(this.getR(t)))}return t.sort("asc"===n?(e,t)=>(o.get(e)||0)-(o.get(t)||0):(e,t)=>(o.get(t)||0)-(o.get(e)||0))}computeValueDomain(e,t){var n,o;const i=this.config.chartType,a=this.config.extentPadding||.05;if("radial"===this.config.projection&&("pie"===i||"donut"===i))return[0,1];let s=0,r=0;if("bar"===i&&this.getStack){const t=new Map,n=new Map;for(const o of e){const e=this.getO(o),i=this.getR(o);0>i?n.set(e,(n.get(e)||0)+i):t.set(e,(t.get(e)||0)+i)}for(const e of t.values())e>r&&(r=e);for(const e of n.values())s>e&&(s=e)}else if("bar"===i){const t=new Map;for(const n of e){const e=this.getO(n),o=this.getR(n);t.set(e,(t.get(e)||0)+o)}for(const e of t.values())e>r&&(r=e),s>e&&(s=e)}else if("clusterbar"===i)for(const t of e){const e=this.getR(t);e>r&&(r=e),s>e&&(s=e)}else{const e=this.rExtent.extent[0],t=this.rExtent.extent[1];e!==1/0&&(s=e),t!==-1/0&&(r=t)}this.config.rExtent&&(null!=this.config.rExtent[0]&&(s=this.config.rExtent[0]),null!=this.config.rExtent[1]&&(r=this.config.rExtent[1]));const l=r-s,c=l>0?l*a:1;return(null===(n=this.config.rExtent)||void 0===n?void 0:n[0])||(s-=c),(null===(o=this.config.rExtent)||void 0===o?void 0:o[1])||(r+=c),"bar"!==i&&"clusterbar"!==i||(s>0&&(s=0),0>r&&(r=0)),[s,r]}buildColumns(e,t,n,o,i){var a;const s={},r=new Map;for(const t of e){const e=this.getO(t);r.has(e)||r.set(e,[]),r.get(e).push(t)}let l=0;if("radial"===o)for(const t of e)l+=Math.abs(this.getR(t));const c=this.config.dynamicColumnWidth;let u=null;if(c&&"radial"!==o){u=new Map;let e=0;for(const n of t){const t=r.get(n)||[];let o;o="string"==typeof c?t.reduce((e,t)=>e+(Number(t[c])||0),0):c(t),u.set(n,o),e+=o}const a=("horizontal"===o?i.height:i.width)-n.padding()*n.step()*t.length;if(e>0)for(const[t,n]of u)u.set(t,n/e*a)}let h=0,d=0;for(const e of t){const t=r.get(e)||[],o=t.reduce((e,t)=>e+Math.abs(this.getR(t)),0),i=l>0?o/l:0;let c,g;u?(c=d,g=u.get(e)||n.bandwidth(),d+=g+n.padding()*n.step()):(c=null!==(a=n(e))&&void 0!==a?a:0,g=n.bandwidth()),s[e]={name:e,x:c,y:0,width:g,middle:c+g/2,padding:n.padding()*n.step(),pieceData:t,pct:i,pctStart:h},h+=i}return s}getSceneContext(){return{scales:this.scales,columns:this.columns,config:this.config,getR:this.getR,getStack:this.getStack,getGroup:this.getGroup,getColor:this.getColor,getConnector:this.getConnector,getO:this.getO,multiScales:this.multiScales,rAccessors:this.rAccessors,resolvePieceStyle:(e,t)=>this.resolvePieceStyle(e,t),resolveSummaryStyle:(e,t)=>this.resolveSummaryStyle(e,t),getRawRange:e=>this.getRawRange(e)}}buildSceneNodes(e,t){if(!this.scales)return[];const n=this.getSceneContext(),o=D[this.config.chartType];let i=o?o(n,t):[];if(this.getConnector&&this.scales){const e=function(e,t){const{scales:n,config:o,getConnector:i,getO:a}=e;if(!i||!n)return[];const s=[],{projection:r}=n,l=new Map;for(const e of t){if("point"!==e.type&&"rect"!==e.type)continue;const t=e.datum;if(!t)continue;const n=i(t);if(!n)continue;let o,s;"point"===e.type?(o=e.x,s=e.y):(o=e.x+e.w/2,s=e.y+("vertical"===r?0:e.h/2)),l.has(n)||l.set(n,[]),l.get(n).push({x:o,y:s,datum:t,category:a(t)})}const c=n.o.domain(),u=o.connectorStyle;for(const[e,t]of l)if(t.length>=2){t.sort((e,t)=>c.indexOf(e.category)-c.indexOf(t.category));for(let n=0;t.length-1>n;n++){const o=t[n],i=t[n+1],a="function"==typeof u?u(o.datum):u||{stroke:"#999",strokeWidth:1,opacity:.5};s.push({type:"connector",x1:o.x,y1:o.y,x2:i.x,y2:i.y,style:a,datum:o.datum,group:e})}}return s}(n,i);i=[...e,...i]}return i}resolvePieceStyle(e,t){return"function"==typeof this.config.pieceStyle?this.config.pieceStyle(e,t):this.config.pieceStyle&&"object"==typeof this.config.pieceStyle?this.config.pieceStyle:this.config.barColors&&t?{fill:this.config.barColors[t]||"#007bff"}:t?{fill:this.getColorFromScheme(t)}:{fill:"#007bff"}}getColorFromScheme(e){this._colorSchemeMap||(this._colorSchemeMap=new Map);const t=this._colorSchemeMap.get(e);if(t)return t;const n=Array.isArray(this.config.colorScheme)?this.config.colorScheme:["#4e79a7","#f28e2b","#e15759","#76b7b2","#59a14f","#edc948","#b07aa1","#ff9da7","#9c755f","#bab0ac"],o=n[this._colorSchemeIndex%n.length];return this._colorSchemeIndex++,this._colorSchemeMap.set(e,o),o}resolveSummaryStyle(e,t){return"function"==typeof this.config.summaryStyle?this.config.summaryStyle(e,t):this.config.summaryStyle&&"object"==typeof this.config.summaryStyle?this.config.summaryStyle:{fill:"#007bff",fillOpacity:.6,stroke:"#007bff",strokeWidth:1}}computeDecayOpacity(e,t){var n,o,i;const a=this.config.decay;if(!a||1>=t)return 1;const s=null!==(n=a.minOpacity)&&void 0!==n?n:.1,r=t-1-e;switch(a.type){case"linear":return s+(1-r/(t-1))*(1-s);case"exponential":{const e=null!==(o=a.halfLife)&&void 0!==o?o:t/2;return s+Math.pow(.5,r/e)*(1-s)}case"step":return(null!==(i=a.stepThreshold)&&void 0!==i?i:.5*t)>r?1:s;default:return 1}}applyDecay(e,t){var n,o;if(!this.config.decay)return;const i=t.length;if(1>=i)return;const a=new Map;for(let e=0;t.length>e;e++)a.set(t[e],e);for(const t of e){if("connector"===t.type||"violin"===t.type||"boxplot"===t.type||"wedge"===t.type)continue;const e=a.get(t.datum);if(null==e)continue;const s=this.computeDecayOpacity(e,i),r=null!==(o=null===(n=t.style)||void 0===n?void 0:n.opacity)&&void 0!==o?o:1;t.style=Object.assign(Object.assign({},t.style),{opacity:r*s})}}applyPulse(e,t){var n,o,i;if(!this.config.pulse||!this.timestampBuffer)return;const a="undefined"!=typeof performance?performance.now():Date.now(),s=null!==(n=this.config.pulse.duration)&&void 0!==n?n:500,r=null!==(o=this.config.pulse.color)&&void 0!==o?o:"rgba(255,255,255,0.6)",l=null!==(i=this.config.pulse.glowRadius)&&void 0!==i?i:4,c=new Map;for(let e=0;t.length>e;e++)c.set(t[e],e);for(const t of e){if("connector"===t.type||"violin"===t.type||"boxplot"===t.type||"wedge"===t.type)continue;const e=c.get(t.datum);if(null==e)continue;const n=this.timestampBuffer.get(e);if(null==n)continue;const o=a-n;s>o&&(t._pulseIntensity=1-o/s,t._pulseColor=r,t._pulseGlowRadius=l)}}get hasActivePulses(){var e;if(!this.config.pulse||!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const t="undefined"!=typeof performance?performance.now():Date.now(),n=null!==(e=this.config.pulse.duration)&&void 0!==e?e:500,o=this.timestampBuffer.peek();return null!=o&&n>t-o}snapshotPositions(){var e,t;this.prevPositionMap.clear();for(let n=0;this.scene.length>n;n++){const o=this.scene[n];if("point"===o.type)this.prevPositionMap.set("p:"+n,{x:o.x,y:o.y,r:o.r});else if("rect"===o.type){const i=`r:${o.group||""}:${null!==(t=null===(e=o.datum)||void 0===e?void 0:e.category)&&void 0!==t?t:n}`;this.prevPositionMap.set(i,{x:o.x,y:o.y,w:o.w,h:o.h})}}}startTransition(){var e,t,n,o,i;if(!this.config.transition||0===this.prevPositionMap.size)return;const a=null!==(e=this.config.transition.duration)&&void 0!==e?e:300;let s=!1;for(let e=0;this.scene.length>e;e++){const a=this.scene[e];let r=null;if("point"===a.type?r="p:"+e:"rect"===a.type&&(r=`r:${a.group||""}:${null!==(n=null===(t=a.datum)||void 0===t?void 0:t.category)&&void 0!==n?n:e}`),!r)continue;const l=this.prevPositionMap.get(r);l&&("point"===a.type?l.x===a.x&&l.y===a.y||(a._targetX=a.x,a._targetY=a.y,a.x=l.x,a.y=l.y,s=!0):"rect"===a.type&&(l.x===a.x&&l.y===a.y&&l.w===a.w&&l.h===a.h||(a._targetX=a.x,a._targetY=a.y,a._targetW=a.w,a._targetH=a.h,a.x=l.x,a.y=l.y,a.w=null!==(o=l.w)&&void 0!==o?o:a.w,a.h=null!==(i=l.h)&&void 0!==i?i:a.h,s=!0)))}s&&(this.activeTransition={startTime:"undefined"!=typeof performance?performance.now():Date.now(),duration:a})}advanceTransition(e){var t,n,o;if(!this.activeTransition)return!1;const i=Math.min((e-this.activeTransition.startTime)/this.activeTransition.duration,1),a="linear"===(null===(t=this.config.transition)||void 0===t?void 0:t.easing)?i:1-Math.pow(1-i,3);for(const e of this.scene)if("point"===e.type){if(void 0===e._targetX)continue;const t=this.prevPositionMap.get("p:0");if(!t)continue;e.x=t.x+(e._targetX-t.x)*a,e.y=t.y+(e._targetY-t.y)*a}else if("rect"===e.type){if(void 0===e._targetX)continue;const t=`r:${e.group||""}:${null!==(o=null===(n=e.datum)||void 0===n?void 0:n.category)&&void 0!==o?o:0}`,i=this.prevPositionMap.get(t);if(!i)continue;e.x=i.x+(e._targetX-i.x)*a,e.y=i.y+(e._targetY-i.y)*a,void 0!==i.w&&(e.w=i.w+(e._targetW-i.w)*a,e.h=i.h+(e._targetH-i.h)*a)}if(i>=1){for(const e of this.scene)if("point"===e.type){if(void 0===e._targetX)continue;e.x=e._targetX,e.y=e._targetY,e._targetX=void 0,e._targetY=void 0}else if("rect"===e.type){if(void 0===e._targetX)continue;e.x=e._targetX,e.y=e._targetY,e.w=e._targetW,e.h=e._targetH,e._targetX=void 0,e._targetY=void 0,e._targetW=void 0,e._targetH=void 0}return this.activeTransition=null,!1}return!0}getData(){return this.buffer.toArray()}clear(){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.activeTransition=null,this.lastIngestTime=0,this.scales=null,this.scene=[],this.columns={},this.version++}get size(){return this.buffer.size}getOAccessor(){return this.getO}getRAccessor(){return this.getR}updateConfig(e){e.colorScheme!==this.config.colorScheme&&(this._colorSchemeMap=null,this._colorSchemeIndex=0),Object.assign(this.config,e)}}function z(e,t,n){return e.x>t||t>e.x+e.w||e.y>n||n>e.y+e.h?null:{datum:e.datum,x:e.x+e.w/2,y:e.y,distance:0,category:e.group}}function R(e,t,n){const o=t-e.x,i=n-e.y,a=Math.sqrt(o*o+i*i);return a>Math.max(e.r,5)?null:{datum:e.datum,x:e.x,y:e.y,distance:a}}function T(e,t,n){const o=t-e.cx,i=n-e.cy,a=Math.sqrt(o*o+i*i);if(e.innerRadius>a||a>e.outerRadius)return null;let s=Math.atan2(i,o);0>s&&(s+=2*Math.PI);let r=e.startAngle%(2*Math.PI),l=e.endAngle%(2*Math.PI);if(0>r&&(r+=2*Math.PI),0>l&&(l+=2*Math.PI),!(r>l?s>=r||l>=s:s>=r&&l>=s))return null;const c=(e.startAngle+e.endAngle)/2,u=(e.innerRadius+e.outerRadius)/2;return{datum:e.datum,x:e.cx+Math.cos(c)*u,y:e.cy+Math.sin(c)*u,distance:0,category:e.category}}function I(e,t,n){const o=e.columnWidth/2,i=e.stats?Object.assign(Object.assign({},e.stats),{n:Array.isArray(e.datum)?e.datum.length:0,mean:(e.stats.q1+e.stats.median+e.stats.q3)/3}):void 0;if("vertical"===e.projection){if(!(e.x-o>t||t>e.x+o||Math.min(e.minPos,e.maxPos)>n||n>Math.max(e.minPos,e.maxPos)))return{datum:e.datum,x:e.x,y:e.medianPos,distance:0,category:e.category,stats:i}}else{const a=e.y-o,s=e.y+o;if(!(Math.min(e.minPos,e.maxPos)>t||t>Math.max(e.minPos,e.maxPos)||a>n||n>s))return{datum:e.datum,x:e.medianPos,y:e.y,distance:0,category:e.category,stats:i}}return null}function W(e,t,n){if(!e.bounds)return null;const{x:o,y:i,width:a,height:s}=e.bounds;return o>t||t>o+a||i>n||n>i+s?null:{datum:e.datum,x:o+a/2,y:i+s/2,distance:0,category:e.category,stats:e.stats}}const G={fill:t=>e.createElement("rect",{style:t,width:20,height:20}),line:t=>e.createElement("line",{style:t,x1:0,y1:0,x2:20,y2:20})};function F(e,t,n,o){let i;return i="function"==typeof n?n(e):(0,G[n])(o(e,t)),i}function q(t){const{legendGroups:n,customClickBehavior:o,title:i="Legend",width:a=100,height:s=20,orientation:r="vertical"}=t,l="vertical"===r?(({legendGroups:t,width:n,customClickBehavior:o})=>{let i=30;const a=[];return t.forEach((t,s)=>{i+=5,a.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+s,stroke:"gray",x1:0,y1:i,x2:n,y2:i})),i+=10,t.label&&(i+=20,a.push(e.createElement("text",{key:"legend-text-"+s,y:i,className:"legend-group-label"},t.label)),i+=10),a.push(e.createElement("g",{key:"legend-group-"+s,className:"legend-item",transform:`translate(0,${i})`},((t,n)=>{const{type:o="fill",styleFn:i,items:a}=t,s=[];let r=0;return a.forEach((t,a)=>{const l=F(t,a,o,i);s.push(e.createElement("g",{key:"legend-item-"+a,transform:`translate(0,${r})`,onClick:n?()=>n(t):void 0,style:{cursor:n?"pointer":"default"}},l,e.createElement("text",{y:15,x:30},t.label))),r+=25}),s})(t,o))),i+=25*t.items.length+10}),a})({legendGroups:n,width:a,customClickBehavior:o}):(({legendGroups:t,title:n,height:o,customClickBehavior:i})=>{let a=0;const s=[],r=!1===n?10:40;return t.forEach((n,l)=>{n.label&&(s.push(e.createElement("text",{key:"legend-text-"+l,transform:`translate(${a},${r}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},n.label)),a+=20);const c=((t,n)=>{const{type:o="fill",styleFn:i,items:a}=t,s=[];let r=0;return a.forEach((t,a)=>{const l=F(t,a,o,i);s.push(e.createElement("g",{key:"legend-item-"+a,transform:`translate(${r},0)`,onClick:n?()=>n(t):void 0,style:{cursor:n?"pointer":"default"}},l,e.createElement("text",{y:15,x:25},t.label))),r+=35,r+=8*t.label.length}),{items:s,offset:r}})(n,i);s.push(e.createElement("g",{key:"legend-group-"+l,className:"legend-item",transform:`translate(${a},${r})`},c.items)),a+=c.offset+5,t[l+1]&&s.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+l,stroke:"gray",x1:a,y1:r-10,x2:a,y2:o+r+10})),a+=15}),e.createElement("g",null,!1!==n&&e.createElement("line",{x1:0,x2:a+10,y1:r-10,y2:r-10,stroke:"gray",className:"title-neatline"}),s)})({legendGroups:n,title:i,height:s,customClickBehavior:o});return e.createElement("g",null,void 0!==i&&e.createElement("text",{className:"legend-title",y:20,x:"horizontal"===r?0:a/2,textAnchor:"horizontal"===r?"start":"middle"},i),l)}function V(e,t=120,n=8){if(!e)return[];const o=Math.max(1,Math.floor(t/n)),i=e.split(/\s+/),a=[];let s="";for(const e of i)s&&s.length+1+e.length>o?(a.push(s),s=e):s=s?`${s} ${e}`:e;return s&&a.push(s),a}function X(e,t,n,o){return"curly"===e?o?`M0,0 C${.6*n},0 ${.4*n},${t/2} ${n},${t/2} C${.4*n},${t/2} ${.6*n},${t} 0,${t}`:`M0,0 C0,${.6*n} ${t/2},${.4*n} ${t/2},${n} C${t/2},${.4*n} ${t},${.6*n} ${t},0`:o?`M0,0 L${n},0 L${n},${t} L0,${t}`:`M0,0 L0,${n} L${t},${n} L${t},0`}function Y(t){const{x:n=0,y:o=0,dx:i,dy:a,nx:s,ny:r,note:l,connector:c,subject:u,type:h,color:d,className:g,disable:m,events:f={},"data-testid":y}=t,p=new Set(Array.isArray(m)?m:[]);let v=i||0,b=a||0;null!=s&&(v=s-n),null!=r&&(b=r-o);const x="string"==typeof h?h:"label";if("bracket"===x&&u&&0===v&&0===b)if(void 0!==u.width){v=u.width/2;const e=u.depth||30;b=e+(0>e?-5:5)}else if(void 0!==u.height){const e=u.depth||30;v=e+(0>e?-5:5),b=u.height/2}return e.createElement("g",Object.assign({className:("annotation "+(g||"")).trim(),transform:`translate(${n},${o})`,"data-testid":y},f),!p.has("connector")&&function(t,n,o,i,a,s){const r=[];let l=0,c=0;if("callout-circle"!==a&&"label"!==a||!(null==s?void 0:s.radius)){if("callout-rect"===a&&s){const e=s.width||0,o=s.height||0;if(e>0||o>0){const i=e/2,a=o/2,s=t-i,r=n-a;if(0!==s||0!==r){const t=Math.abs(s),n=Math.abs(r),u=e/2,h=o/2,d=t*h>n*u?u/t:h/n;l=i+s*d,c=a+r*d}}}else if("bracket"===a&&s){const e=s.width,t=s.height,n=s.depth||30;void 0!==e?(l=e/2,c=n):void 0!==t&&(l=n,c=t/2)}}else{const e=(s.radius||0)+(s.radiusPadding||0);if(e>0&&(0!==t||0!==n)){const o=Math.atan2(n,t);l=Math.cos(o)*e,c=Math.sin(o)*e}}if(Math.sqrt(Math.pow(t-l,2)+Math.pow(n-c,2))>.5&&(r.push(e.createElement("line",{key:"connector-line",x1:l,y1:c,x2:t,y2:n,stroke:i||"currentColor"})),"arrow"===(null==o?void 0:o.end))){const o=10,a=16/180*Math.PI,s=Math.atan2(n-c,t-l);r.push(e.createElement("path",{key:"connector-arrow",d:`M${l},${c}L${l+o*Math.cos(s+a)},${c+o*Math.sin(s+a)}L${l+o*Math.cos(s-a)},${c+o*Math.sin(s-a)}Z`,fill:i||"currentColor",stroke:"none"}))}return e.createElement("g",{className:"annotation-connector"},r)}(v,b,c,d,x,u),!p.has("subject")&&function(t,n,o,i,a){var s;const r=[];switch(t){case"callout-circle":{const t=((null==n?void 0:n.radius)||0)+((null==n?void 0:n.radiusPadding)||0);t>0&&r.push(e.createElement("circle",{key:"subject-circle",r:t,fill:"none",stroke:o||"currentColor"}));break}case"callout-rect":{const t=(null==n?void 0:n.width)||0,i=(null==n?void 0:n.height)||0;(t>0||i>0)&&r.push(e.createElement("rect",{key:"subject-rect",width:t,height:i,fill:"none",stroke:o||"currentColor"}));break}case"callout-custom":(null==n?void 0:n.custom)&&r.push(...Array.isArray(n.custom)?n.custom:[n.custom]);break;case"xy-threshold":{const t=i||0,s=a||0;if(void 0!==(null==n?void 0:n.x)){const i=(n.x||0)-t;r.push(e.createElement("line",{key:"threshold-line",x1:i,y1:(n.y1||0)-s,x2:i,y2:(n.y2||0)-s,stroke:o||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==n?void 0:n.y)){const i=(n.y||0)-s;r.push(e.createElement("line",{key:"threshold-line",x1:(n.x1||0)-t,y1:i,x2:(n.x2||0)-t,y2:i,stroke:o||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==n?void 0:n.x1)||void 0!==(null==n?void 0:n.x2)?r.push(e.createElement("line",{key:"threshold-line",x1:(n.x1||0)-t,y1:0,x2:(n.x2||0)-t,y2:0,stroke:o||"currentColor",strokeDasharray:"5,5"})):void 0===(null==n?void 0:n.y1)&&void 0===(null==n?void 0:n.y2)||r.push(e.createElement("line",{key:"threshold-line",x1:0,y1:(n.y1||0)-s,x2:0,y2:(n.y2||0)-s,stroke:o||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const t=null!==(s=null==n?void 0:n.width)&&void 0!==s?s:null==n?void 0:n.height;void 0!==t&&r.push(e.createElement("path",{key:"bracket-path",d:X((null==n?void 0:n.type)||"curly",t,(null==n?void 0:n.depth)||30,void 0===(null==n?void 0:n.width)),fill:"none",stroke:o||"currentColor"}));break}}return e.createElement("g",{className:"annotation-subject"},r)}(x,u,d,n,o),!p.has("note")&&function(t,n,o,i){if(!t)return e.createElement("g",{className:"annotation-note"});const{label:a,title:s,orientation:r,align:l,wrap:c=120,noWrap:u}=t;if(!a&&!s)return e.createElement("g",{className:"annotation-note"});let h=r;h||(h=Math.abs(n)>Math.abs(o)?"leftRight":"topBottom");let d=l;d&&"dynamic"!==d||(d="topBottom"===h?0>n?"right":"left":0>o?"bottom":"top");let g="start";"topBottom"===h?"right"===d?g="end":"middle"===d&&(g="middle"):g=0>n?"end":"start";const m=16,f=s?u?[s]:V(s,c):[],y=a?u?[a]:V(a,c):[],p="leftRight"===h?"end"===g?-4:4:0;let v=0;const b=[];f.length>0&&(b.push(e.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:i||void 0,textAnchor:g,fontWeight:"bold"},f.map((t,n)=>e.createElement("tspan",{key:n,x:p,dy:0===n?0:m},t)))),v=f.length*m),y.length>0&&b.push(e.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:i||void 0,textAnchor:g,y:v},y.map((t,n)=>e.createElement("tspan",{key:n,x:p,dy:0===n?0:m},t))));let x=null;if((s||a)&&(0!==n||0!==o))if("topBottom"===h){const t=Math.min(c,120);let n=0,o=t;"end"===g?(n=-t,o=0):"middle"===g&&(n=-t/2,o=t/2),x=e.createElement("line",{className:"note-line",x1:n,x2:o,y1:0,y2:0,stroke:i||"currentColor"})}else{const t=(f.length+y.length)*m+(y.length>0?m:0);let n=0,o=t;"bottom"===d?(n=-t,o=0):"middle"===d&&(n=-t/2,o=t/2),x=e.createElement("line",{className:"note-line",x1:0,x2:0,y1:n,y2:o,stroke:i||"currentColor"})}const w=Math.max(0,f.length+y.length-1)*m;let A=0;return"topBottom"===h?A=0>o?-(w+2):18:"leftRight"===h&&(A="middle"===d?-(w+m+(y.length>0&&f.length>0?2:0))/2+8:"bottom"===d||0>o?-(w+2):18),e.createElement("g",{className:"annotation-note",transform:`translate(${n},${o})`},e.createElement("g",{className:"annotation-note-content",transform:0!==A?`translate(0,${A})`:void 0},b),x)}(l,v,b,d))}function Q(t){var n,o;const{noteData:i}=t,{screenCoordinates:a}=i,s="string"==typeof i.type?i.type:"label",r=i.eventListeners||i.events||{};if(i.coordinates&&a){const t=i.nx||a[0][0]+(null!==(n=i.dx)&&void 0!==n?n:0),r=i.ny||a[0][1]+(null!==(o=i.dy)&&void 0!==o?o:0),l=a.map((n,o)=>{const a=Object.assign({},i,{note:0===o?i.note:{label:""},x:n[0],y:n[1],nx:t,ny:r});return e.createElement(Y,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+o},a,{type:s}))});return e.createElement("g",null,l)}const l=i.note||{title:"none",label:i.label};return e.createElement(Y,Object.assign({"data-testid":"semiotic-annotation",key:`${l.label}-${l.title}-${i.i}`,events:r},i,{type:s}))}function Z(e,t){var n,o,i;const a=null!==(o=null===(n=t.scales)||void 0===n?void 0:n.x)&&void 0!==o?o:null===(i=t.scales)||void 0===i?void 0:i.time;return a?null!=e.x?a(e.x):t.xAccessor&&null!=e[t.xAccessor]?a(e[t.xAccessor]):null:null}function U(e,t){var n,o,i;const a=null!==(o=null===(n=t.scales)||void 0===n?void 0:n.y)&&void 0!==o?o:null===(i=t.scales)||void 0===i?void 0:i.value;return a?null!=e.y?a(e.y):t.yAccessor&&null!=e[t.yAccessor]?a(e[t.yAccessor]):null:null}function J(e,t,n,o=50){return!(-o>e||e>(n.width||0)+o||-o>t||t>(n.height||0)+o)}function K(e){return Math.round(100*e)/100+""}function ee(n){const{width:o,height:i,totalWidth:a,totalHeight:s,margin:r,scales:l,showAxes:c,oLabel:u,rLabel:h,oFormat:d,rFormat:g,showGrid:m,title:f,legend:p,foregroundGraphics:v,annotations:b,svgAnnotationRules:x,annotationFrame:w,xAccessor:A,yAccessor:k,annotationData:E,children:S}=n,O="radial"===(null==l?void 0:l.projection),M="horizontal"===(null==l?void 0:l.projection),j=t(()=>c&&l&&!O?l.o.domain().map(e=>{var t;return{value:e,pixel:(null!==(t=l.o(e))&&void 0!==t?t:0)+l.o.bandwidth()/2,label:d?d(e):e}}):[],[c,l,d,O]),L=t(()=>c&&l&&!O?l.r.ticks(5).map(e=>({value:e,pixel:l.r(e),label:(g||K)(e)})):[],[c,l,g,O]),P=t(()=>{if(!b||0===b.length)return null;const t=function(t,n,o){var i,a,s,r,l,c,u,h,d,g,m,f,p,v,b,x,w,A,k,E,S,O,M,j,L,P,_,N,B,H,$,D;switch(t.type){case"label":{let i=null,a=null;if(null!=t.pointId&&o.pointNodes){const e=o.pointNodes.find(e=>e.pointId===t.pointId);if(!e)return null;i=e.x,a=e.y}else i=Z(t,o),a=U(t,o);return null==i||null==a?null:J(i,a,o)?e.createElement(Q,{key:"ann-"+n,noteData:{x:i,y:a,dx:t.dx||30,dy:t.dy||-30,note:{label:t.label,title:t.title,wrap:t.wrap||120},type:"label",connector:t.connector||{end:"arrow"},color:t.color}}):null}case"callout":{let i=null,a=null;if(null!=t.pointId&&o.pointNodes){const e=o.pointNodes.find(e=>e.pointId===t.pointId);if(!e)return null;i=e.x,a=e.y}else i=Z(t,o),a=U(t,o);return null==i||null==a?null:J(i,a,o)?e.createElement(Q,{key:"ann-"+n,noteData:{x:i,y:a,dx:t.dx||30,dy:t.dy||-30,note:{label:t.label,title:t.title,wrap:t.wrap||120},type:"callout-circle",subject:{radius:t.radius||12},connector:t.connector||{end:"arrow"},color:t.color}}):null}case"x-threshold":{const i=Z(t,o);if(null==i)return null;const a=t.color||"#f97316";return e.createElement("g",{key:"ann-"+n},e.createElement("line",{x1:i,y1:0,x2:i,y2:o.height||0,stroke:a,strokeWidth:t.strokeWidth||1.5,strokeDasharray:t.strokeDasharray||"6,3"}),t.label&&e.createElement("text",{x:i+4,y:12,fill:a,fontSize:12,fontWeight:"bold"},t.label))}case"y-threshold":{const i=U(t,o);if(null==i)return null;const a=t.color||"#f97316";return e.createElement("g",{key:"ann-"+n},e.createElement("line",{x1:0,y1:i,x2:o.width||0,y2:i,stroke:a,strokeWidth:t.strokeWidth||1.5,strokeDasharray:t.strokeDasharray||"6,3"}),t.label&&e.createElement("text",{x:(o.width||0)-4,y:i-4,textAnchor:"end",fill:a,fontSize:12,fontWeight:"bold"},t.label))}case"enclose":{const i=(t.coordinates||[]).map(e=>({x:Z(Object.assign(Object.assign({},e),{type:"point"}),o),y:U(Object.assign(Object.assign({},e),{type:"point"}),o),r:1})).filter(e=>null!=e.x&&null!=e.y);if(2>i.length)return null;const a=y(i),s=t.padding||10;return e.createElement("g",{key:"ann-"+n},e.createElement("circle",{cx:a.x,cy:a.y,r:a.r+s,fill:t.fill||"none",fillOpacity:t.fillOpacity||.1,stroke:t.color||"#666",strokeWidth:1.5,strokeDasharray:"4,2"}),t.label&&e.createElement("text",{x:a.x,y:a.y-a.r-s-4,textAnchor:"middle",fill:t.color||"#666",fontSize:12},t.label))}case"rect-enclose":{const i=(t.coordinates||[]).map(e=>({x:Z(Object.assign(Object.assign({},e),{type:"point"}),o),y:U(Object.assign(Object.assign({},e),{type:"point"}),o)})).filter(e=>null!=e.x&&null!=e.y);if(2>i.length)return null;const a=t.padding||10,s=i.map(e=>e.x),r=i.map(e=>e.y),l=Math.min(...s)-a,c=Math.max(...s)+a,u=Math.min(...r)-a,h=Math.max(...r)+a;return e.createElement("g",{key:"ann-"+n},e.createElement("rect",{x:l,y:u,width:c-l,height:h-u,fill:t.fill||"none",fillOpacity:t.fillOpacity||.1,stroke:t.color||"#666",strokeWidth:1.5,strokeDasharray:"4,2"}),t.label&&e.createElement("text",{x:(l+c)/2,y:u-4,textAnchor:"middle",fill:t.color||"#666",fontSize:12},t.label))}case"highlight":{const i=o.data||[],a="function"==typeof t.filter?i.filter(t.filter):t.field&&null!=t.value?i.filter(e=>e[t.field]===t.value):[],s=t.style||{stroke:t.color||"#f97316",strokeWidth:2,fill:"none"};return e.createElement("g",{key:"ann-"+n},a.map((n,i)=>{const a=Z(n,o),r=U(n,o);return null==a||null==r?null:e.createElement("circle",Object.assign({key:i,cx:a,cy:r,r:t.r||6},s))}))}case"bracket":{const i=Z(t,o),a=U(t,o);return e.createElement(Q,{key:"ann-"+n,noteData:{x:null!=i?i:0,y:null!=a?a:0,dx:t.dx||0,dy:t.dy||0,note:{label:t.label,title:t.title,wrap:t.wrap||120},type:"bracket",subject:{type:t.bracketType||"curly",width:t.width,height:t.height,depth:t.depth||30},color:t.color}})}case"trend":{const h=o.data||[];if(2>h.length)return null;const d=o.xAccessor||"x",g=o.yAccessor||"y",m=h.map(e=>[e[d],e[g]]).filter(e=>null!=e[0]&&null!=e[1]);if(2>m.length)return null;const f=null!==(a=null===(i=o.scales)||void 0===i?void 0:i.x)&&void 0!==a?a:null===(s=o.scales)||void 0===s?void 0:s.time,y=null!==(l=null===(r=o.scales)||void 0===r?void 0:r.y)&&void 0!==l?l:null===(c=o.scales)||void 0===c?void 0:c.value;if(!f||!y)return null;const p=t.method||"linear";let v;if("loess"===p)v=function(e,t=.3){const n=e.length;if(2>n)return e.slice();const o=e.slice().sort((e,t)=>e[0]-t[0]),i=o.map(e=>e[0]),a=o.map(e=>e[1]),s=Math.max(2,Math.ceil(t*n)),r=[];for(let e=0;n>e;e++){const t=i[e],o=i.map(e=>Math.abs(e-t)),l=o.slice().sort((e,t)=>e-t)[Math.min(s-1,n-1)]||1,c=[];for(let e=0;n>e;e++){const t=0===l?0:o[e]/l;c[e]=1>t?Math.pow(1-Math.pow(t,3),3):0}let u=0,h=0,d=0,g=0,m=0;for(let e=0;n>e;e++){const t=c[e];0!==t&&(u+=t,h+=t*i[e],d+=t*a[e],g+=t*i[e]*i[e],m+=t*i[e]*a[e])}if(0===u){r.push([t,a[e]]);continue}const f=u*g-h*h;if(1e-12>Math.abs(f))r.push([t,d/u]);else{const e=(u*m-h*d)/f;r.push([t,(d-e*h)/u+e*t])}}return r}(m,null!==(u=t.bandwidth)&&void 0!==u?u:.3);else{let e;try{const n=require("regression");e="polynomial"===p?n.polynomial(m,{order:t.order||2}):n.linear(m)}catch(e){return null}v=e.points}const b=v.map(([e,t])=>`${f(e)},${y(t)}`).join(" "),x=t.color||"#6366f1";return e.createElement("g",{key:"ann-"+n},e.createElement("polyline",{points:b,fill:"none",stroke:x,strokeWidth:t.strokeWidth||2,strokeDasharray:t.strokeDasharray||"6,3"}),t.label&&e.createElement("text",{x:f(v[v.length-1][0])+4,y:y(v[v.length-1][1])-4,fill:x,fontSize:11},t.label))}case"band":{const i=null!==(d=null===(h=o.scales)||void 0===h?void 0:h.y)&&void 0!==d?d:null===(g=o.scales)||void 0===g?void 0:g.value,a=null!==(m=null==i?void 0:i(t.y0))&&void 0!==m?m:0,s=null!==(f=null==i?void 0:i(t.y1))&&void 0!==f?f:o.height||0;return e.createElement("g",{key:"ann-"+n},e.createElement("rect",{x:0,y:Math.min(a,s),width:o.width||0,height:Math.abs(s-a),fill:t.fill||"#6366f1",fillOpacity:t.fillOpacity||.1}),t.label&&e.createElement("text",{x:(o.width||0)-4,y:Math.min(a,s)-4,textAnchor:"end",fill:t.color||"#6366f1",fontSize:11},t.label))}case"anomaly-band":{const i=o.data||[];if(2>i.length)return null;const a=o.yAccessor||"y",s=null!==(v=null===(p=o.scales)||void 0===p?void 0:p.x)&&void 0!==v?v:null===(b=o.scales)||void 0===b?void 0:b.time,r=null!==(w=null===(x=o.scales)||void 0===x?void 0:x.y)&&void 0!==w?w:null===(A=o.scales)||void 0===A?void 0:A.value;if(!s||!r)return null;const l=i.map(e=>e[a]).filter(e=>null!=e&&isFinite(e));if(2>l.length)return null;const c=l.reduce((e,t)=>e+t,0)/l.length,u=l.reduce((e,t)=>e+Math.pow(t-c,2),0)/l.length,h=Math.sqrt(u),d=null!==(k=t.threshold)&&void 0!==k?k:2,g=c-d*h,m=!1!==t.showBand,f=t.fill||"#6366f1",y=null!==(E=t.fillOpacity)&&void 0!==E?E:.1,O=t.anomalyColor||"#ef4444",M=null!==(S=t.anomalyRadius)&&void 0!==S?S:6,j=r(c+d*h),L=r(g),P=i.filter(e=>{const t=e[a];return null!=t&&Math.abs(t-c)>d*h});return e.createElement("g",{key:"ann-"+n},m&&e.createElement("rect",{x:0,y:Math.min(j,L),width:o.width||0,height:Math.abs(L-j),fill:f,fillOpacity:y}),P.map((t,n)=>{const i=Z(t,o),a=U(t,o);return null==i||null==a?null:e.createElement("circle",{key:n,cx:i,cy:a,r:M,fill:O,fillOpacity:.7,stroke:O,strokeWidth:1.5})}),t.label&&e.createElement("text",{x:(o.width||0)-4,y:Math.min(j,L)-4,textAnchor:"end",fill:f,fontSize:11},t.label))}case"forecast":{const i=o.data||[];if(3>i.length)return null;const a=o.xAccessor||"x",s=o.yAccessor||"y",r=null!==(M=null===(O=o.scales)||void 0===O?void 0:O.x)&&void 0!==M?M:null===(j=o.scales)||void 0===j?void 0:j.time,l=null!==(P=null===(L=o.scales)||void 0===L?void 0:L.y)&&void 0!==P?P:null===(_=o.scales)||void 0===_?void 0:_.value;if(!r||!l)return null;const c=i.map(e=>[e[a],e[s]]).filter(e=>null!=e[0]&&null!=e[1]&&isFinite(e[0])&&isFinite(e[1])).sort((e,t)=>e[0]-t[0]);if(3>c.length)return null;let u;if("polynomial"===(t.method||"linear"))try{const e=require("regression").polynomial(c,{order:t.order||2}).equation;u=t=>e.reduce((e,n,o)=>e+n*Math.pow(t,o),0)}catch(e){return null}else{const e=c.length;let t=0,n=0,o=0,i=0;for(const[e,a]of c)t+=e,n+=a,o+=e*e,i+=e*a;const a=e*o-t*t;if(1e-12>Math.abs(a))return null;const s=(e*i-t*n)/a,r=(n-s*t)/e;u=e=>r+s*e}const h=c.length,d=c.map(([e,t])=>t-u(e)).reduce((e,t)=>e+t*t,0),g=Math.sqrt(d/Math.max(h-2,1)),m=c.reduce((e,t)=>e+t[0],0)/h,f=c.reduce((e,t)=>e+Math.pow(t[0]-m,2),0),y=null!==(N=t.confidence)&&void 0!==N?N:.95,p=.99>y?.95>y?.9>y?1:1.645:1.96:2.576,v=null!==(B=t.steps)&&void 0!==B?B:5,b=c[h-1][0],x=(b-c[0][0])/Math.max(h-1,1),w=[];for(let e=1;v>=e;e++)w.push(b+e*x);const A=[];for(const e of w){const t=u(e),n=g*Math.sqrt(1+1/h+(f>0?Math.pow(e-m,2)/f:0))*p;A.push({x:e,yCenter:t,yUpper:t+n,yLower:t-n})}const k=`M${A.map(e=>`${r(e.x)},${l(e.yUpper)}`).join(" L")} L${A.slice().reverse().map(e=>`${r(e.x)},${l(e.yLower)}`).join(" L")} Z`,E=A.map(e=>`${r(e.x)},${l(e.yCenter)}`).join(" "),S=`${r(b)},${l(u(b))}`,C=t.strokeColor||"#6366f1";return e.createElement("g",{key:"ann-"+n},e.createElement("path",{d:k,fill:t.fill||"#6366f1",fillOpacity:null!==(H=t.fillOpacity)&&void 0!==H?H:.15,stroke:"none"}),e.createElement("polyline",{points:`${S} ${E}`,fill:"none",stroke:C,strokeWidth:null!==($=t.strokeWidth)&&void 0!==$?$:2,strokeDasharray:null!==(D=t.strokeDasharray)&&void 0!==D?D:"6,3"}),t.label&&A.length>0&&e.createElement("text",{x:r(A[A.length-1].x)+4,y:l(A[A.length-1].yCenter)-4,fill:C,fontSize:11},t.label))}default:return null}},n={scales:l?{x:l.r,y:l.r,time:l.r,value:l.r}:null,timeAxis:"x",xAccessor:A,yAccessor:k,width:o,height:i,data:E,frameType:"ordinal"};return b.map((e,o)=>{if(x){const i=x(e,o,n);return null!=i?i:t(e,o,n)}return t(e,o,n)}).filter(Boolean)},[b,x,o,i,w,A,k,E]);return c||f||p||v||P&&P.length>0||m||S?e.createElement("svg",{width:a,height:s,style:{position:"absolute",top:0,left:0,pointerEvents:"none"}},e.createElement("g",{transform:`translate(${r.left},${r.top})`},m&&l&&!O&&e.createElement("g",{className:"ordinal-grid"},L.map((t,n)=>e.createElement("line",{key:"grid-"+n,x1:M?t.pixel:0,y1:M?0:t.pixel,x2:M?t.pixel:o,y2:M?i:t.pixel,stroke:"var(--semiotic-grid, #e0e0e0)",strokeWidth:1}))),c&&l&&!O&&e.createElement("g",{className:"ordinal-axes"},M?e.createElement(e.Fragment,null,e.createElement("line",{x1:0,y1:0,x2:0,y2:i,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),j.map((t,n)=>e.createElement("g",{key:"cat-"+n,transform:`translate(0,${t.pixel})`},e.createElement("line",{x2:-5,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),e.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"var(--semiotic-text-secondary, #666)",style:{userSelect:"none"}},t.label))),u&&e.createElement("text",{x:15-r.left,y:i/2,textAnchor:"middle",fontSize:12,fill:"var(--semiotic-text, #333)",transform:`rotate(-90, ${15-r.left}, ${i/2})`,style:{userSelect:"none"}},u),e.createElement("line",{x1:0,y1:i,x2:o,y2:i,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),L.map((t,n)=>e.createElement("g",{key:"val-"+n,transform:`translate(${t.pixel},${i})`},e.createElement("line",{y2:5,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),e.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"var(--semiotic-text-secondary, #666)",style:{userSelect:"none"}},t.label))),h&&e.createElement("text",{x:o/2,y:i+40,textAnchor:"middle",fontSize:12,fill:"var(--semiotic-text, #333)",style:{userSelect:"none"}},h)):e.createElement(e.Fragment,null,e.createElement("line",{x1:0,y1:i,x2:o,y2:i,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),j.map((t,n)=>e.createElement("g",{key:"cat-"+n,transform:`translate(${t.pixel},${i})`},e.createElement("line",{y2:5,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),e.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"var(--semiotic-text-secondary, #666)",style:{userSelect:"none"}},t.label))),u&&e.createElement("text",{x:o/2,y:i+40,textAnchor:"middle",fontSize:12,fill:"var(--semiotic-text, #333)",style:{userSelect:"none"}},u),e.createElement("line",{x1:0,y1:0,x2:0,y2:i,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),L.map((t,n)=>e.createElement("g",{key:"val-"+n,transform:`translate(0,${t.pixel})`},e.createElement("line",{x2:-5,stroke:"var(--semiotic-border, #ccc)",strokeWidth:1}),e.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"var(--semiotic-text-secondary, #666)",style:{userSelect:"none"}},t.label))),h&&e.createElement("text",{x:15-r.left,y:i/2,textAnchor:"middle",fontSize:12,fill:"var(--semiotic-text, #333)",transform:`rotate(-90, ${15-r.left}, ${i/2})`,style:{userSelect:"none"}},h))),P,v,S),f&&e.createElement("text",{x:a/2,y:20,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"var(--semiotic-text, #333)",style:{userSelect:"none"}},"string"==typeof f?f:null),p&&e.createElement("g",{transform:`translate(${a-r.right+10}, ${r.top})`},"object"==typeof(_=p)&&null!==_&&!e.isValidElement(_)&&"legendGroups"in _?e.createElement(q,{legendGroups:p.legendGroups,title:"",width:100}):p)):null;var _}const te=(e,t,n,o)=>{const i=t.filter(e=>"rect"===e.type);for(const t of i)null!=t.style.opacity&&(e.globalAlpha=t.style.opacity),t.style.icon?ne(e,t):(e.fillStyle=t.style.fill||"#007bff",e.fillRect(t.x,t.y,t.w,t.h),t.style.stroke&&(e.strokeStyle=t.style.stroke,e.lineWidth=t.style.strokeWidth||1,e.strokeRect(t.x,t.y,t.w,t.h))),t._pulseIntensity&&t._pulseIntensity>0&&(e.globalAlpha=.3*t._pulseIntensity,e.fillStyle=t._pulseColor||"rgba(255,255,255,0.6)",e.fillRect(t.x,t.y,t.w,t.h)),e.globalAlpha=1};function ne(e,t){const n=t.style.icon,o=t.style.iconPadding||2,i=Math.min(t.w,t.w)-o;if(0>=i)return;const a=t.h>t.w;if(e.save(),e.beginPath(),e.rect(t.x,t.y,t.w,t.h),e.clip(),a){const a=i+o,s=t.x+(t.w-i)/2;for(let o=t.y+t.h-i;o>=t.y-i;o-=a)e.drawImage(n,s,o,i,i)}else{const a=i+o,s=t.y+(t.h-i)/2;for(let o=t.x;t.x+t.w>o;o+=a)e.drawImage(n,o,s,i,i)}e.restore()}const oe=(e,t,n,o)=>{var i,a;const s=t.filter(e=>"point"===e.type);for(const t of s){e.beginPath(),e.arc(t.x,t.y,t.r,0,2*Math.PI);const n=null!==(i=t.style.opacity)&&void 0!==i?i:t.style.fillOpacity;if(null!=n&&(e.globalAlpha=n),e.fillStyle=t.style.fill||"#4e79a7",e.fill(),t.style.stroke&&(e.strokeStyle=t.style.stroke,e.lineWidth=t.style.strokeWidth||1,e.stroke()),t._pulseIntensity&&t._pulseIntensity>0){const n=null!==(a=t._pulseGlowRadius)&&void 0!==a?a:4,o=t.r+n*t._pulseIntensity;e.beginPath(),e.arc(t.x,t.y,o,0,2*Math.PI),e.strokeStyle=t._pulseColor||"rgba(255,255,255,0.6)",e.lineWidth=2*t._pulseIntensity,e.globalAlpha=.6*t._pulseIntensity,e.stroke()}e.globalAlpha=1}},ie=(e,t,n,o)=>{const i=t.filter(e=>"wedge"===e.type);for(const t of i)e.beginPath(),t.innerRadius>0?(e.arc(t.cx,t.cy,t.outerRadius,t.startAngle,t.endAngle),e.arc(t.cx,t.cy,t.innerRadius,t.endAngle,t.startAngle,!0)):(e.moveTo(t.cx,t.cy),e.arc(t.cx,t.cy,t.outerRadius,t.startAngle,t.endAngle)),e.closePath(),null!=t.style.opacity&&(e.globalAlpha=t.style.opacity),null!=t.style.fillOpacity&&(e.globalAlpha=t.style.fillOpacity),e.fillStyle=t.style.fill||"#007bff",e.fill(),t.style.stroke&&"none"!==t.style.stroke&&(e.strokeStyle=t.style.stroke,e.lineWidth=t.style.strokeWidth||1,e.stroke()),e.globalAlpha=1},ae=(e,t,n,o)=>{var i,a;const s=t.filter(e=>"violin"===e.type);for(const t of s){e.save(),(t.translateX||t.translateY)&&e.translate(t.translateX,t.translateY);const n=new Path2D(t.pathString);if(e.globalAlpha=null!==(a=null!==(i=t.style.fillOpacity)&&void 0!==i?i:t.style.opacity)&&void 0!==a?a:.6,e.fillStyle=t.style.fill||"#007bff",e.fill(n),e.globalAlpha=1,t.style.stroke&&"none"!==t.style.stroke&&(e.strokeStyle=t.style.stroke,e.lineWidth=t.style.strokeWidth||1,e.stroke(n)),t.iqrLine){e.strokeStyle="#333",e.lineWidth=2,e.globalAlpha=.8;const n=t.iqrLine.centerPos,o=!1!==t.iqrLine.isVertical;e.beginPath(),o?(e.moveTo(n,t.iqrLine.q1Pos),e.lineTo(n,t.iqrLine.q3Pos)):(e.moveTo(t.iqrLine.q1Pos,n),e.lineTo(t.iqrLine.q3Pos,n)),e.stroke(),e.beginPath(),o?e.arc(n,t.iqrLine.medianPos,3,0,2*Math.PI):e.arc(t.iqrLine.medianPos,n,3,0,2*Math.PI),e.fillStyle="#fff",e.fill(),e.strokeStyle="#333",e.lineWidth=1,e.stroke(),e.globalAlpha=1}e.restore()}},se=(e,t,n,o)=>{var i,a,s;const r=t.filter(e=>"connector"===e.type);if(0===r.length)return;const l=new Map;for(const e of r){const t=e.group||"_default";l.has(t)||l.set(t,[]),l.get(t).push(e)}for(const[,t]of l){if(0===t.length)continue;const n=t[0].style;if(n.fill&&"none"!==n.fill){e.beginPath(),e.moveTo(t[0].x1,t[0].y1);for(const n of t)e.lineTo(n.x2,n.y2);e.closePath(),e.globalAlpha=null!==(a=null!==(i=n.fillOpacity)&&void 0!==i?i:n.opacity)&&void 0!==a?a:.3,e.fillStyle=n.fill,e.fill(),e.globalAlpha=1}for(const n of t)e.beginPath(),e.moveTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.strokeStyle=n.style.stroke||n.style.fill||"#999",e.lineWidth=n.style.strokeWidth||1,e.globalAlpha=null!==(s=n.style.opacity)&&void 0!==s?s:.5,e.stroke(),e.globalAlpha=1}},re=e=>[se,...e],le={bar:re([te]),clusterbar:re([te]),point:re([oe]),swarm:re([oe]),pie:[ie],donut:[ie],boxplot:re([(e,t,n,o)=>{var i,a;const s=t.filter(e=>"boxplot"===e.type);for(const t of s){const n=t.columnWidth/2,o="vertical"===t.projection,s=t.style.fill||"#007bff",r=t.style.stroke||"#333",l=t.style.strokeWidth||1,c=null!==(a=null!==(i=t.style.fillOpacity)&&void 0!==i?i:t.style.opacity)&&void 0!==a?a:.6;if(e.save(),e.strokeStyle=r,e.lineWidth=l,e.beginPath(),o?(e.moveTo(t.x,t.minPos),e.lineTo(t.x,t.maxPos)):(e.moveTo(t.minPos,t.y),e.lineTo(t.maxPos,t.y)),e.stroke(),e.beginPath(),o?(e.moveTo(t.x-.4*n,t.minPos),e.lineTo(t.x+.4*n,t.minPos),e.moveTo(t.x-.4*n,t.maxPos),e.lineTo(t.x+.4*n,t.maxPos)):(e.moveTo(t.minPos,t.y-.4*n),e.lineTo(t.minPos,t.y+.4*n),e.moveTo(t.maxPos,t.y-.4*n),e.lineTo(t.maxPos,t.y+.4*n)),e.stroke(),e.globalAlpha=c,e.fillStyle=s,o){const o=Math.min(t.q1Pos,t.q3Pos),i=Math.abs(t.q3Pos-t.q1Pos);e.fillRect(t.x-n,o,t.columnWidth,i),e.globalAlpha=1,e.strokeRect(t.x-n,o,t.columnWidth,i)}else{const o=Math.min(t.q1Pos,t.q3Pos),i=Math.abs(t.q3Pos-t.q1Pos);e.fillRect(o,t.y-n,i,t.columnWidth),e.globalAlpha=1,e.strokeRect(o,t.y-n,i,t.columnWidth)}e.strokeStyle="#fff",e.lineWidth=2,e.beginPath(),o?(e.moveTo(t.x-n,t.medianPos),e.lineTo(t.x+n,t.medianPos)):(e.moveTo(t.medianPos,t.y-n),e.lineTo(t.medianPos,t.y+n)),e.stroke(),e.restore()}},oe]),violin:re([ae]),histogram:re([te]),ridgeline:re([ae]),timeline:re([te])},ce={top:50,right:40,bottom:60,left:70},ue={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"6px 10px",borderRadius:"4px",fontSize:"13px",lineHeight:"1.4",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",whiteSpace:"nowrap"};function he({hover:t}){var n,o,i,a;const s=t.data||{},r=t.stats,l=t.category;if(Array.isArray(s)){const t=l||(null===(n=s[0])||void 0===n?void 0:n.category)||"";if(r)return e.createElement("div",{className:"semiotic-tooltip",style:ue},t&&e.createElement("div",{style:{fontWeight:"bold"}},t+""),e.createElement("div",null,"n = ",r.n),e.createElement("div",null,"Min: ",r.min.toLocaleString()),e.createElement("div",null,"Q1: ",r.q1.toLocaleString()),e.createElement("div",null,"Median: ",r.median.toLocaleString()),e.createElement("div",null,"Q3: ",r.q3.toLocaleString()),e.createElement("div",null,"Max: ",r.max.toLocaleString()),e.createElement("div",{style:{opacity:.8}},"Mean: ",r.mean.toLocaleString(void 0,{maximumFractionDigits:2})));const o=s.length;return e.createElement("div",{className:"semiotic-tooltip",style:ue},t&&e.createElement("div",{style:{fontWeight:"bold"}},t+""),e.createElement("div",null,o," items"))}if(null!=s.bin&&null!=s.count){const t=s.range||[];return e.createElement("div",{className:"semiotic-tooltip",style:ue},s.category&&e.createElement("div",{style:{fontWeight:"bold"}},s.category+""),e.createElement("div",null,"Count: ",s.count),2===t.length&&e.createElement("div",{style:{opacity:.8}},Number(t[0]).toFixed(1)," – ",Number(t[1]).toFixed(1)))}const c=s.category||s.name||s.group||s.__rName||"",u=null!==(a=null!==(i=null!==(o=s.value)&&void 0!==o?o:s.__rValue)&&void 0!==i?i:s.pct)&&void 0!==a?a:"";if(!c&&""===u){const t=Object.entries(s).filter(([e])=>!e.startsWith("_")&&"data"!==e);return e.createElement("div",{className:"semiotic-tooltip",style:ue},t.map(([t,n])=>e.createElement("div",{key:t},e.createElement("span",{style:{opacity:.7}},t,":")," ","number"==typeof n?n.toLocaleString():n+"")))}return e.createElement("div",{className:"semiotic-tooltip",style:ue},c&&e.createElement("div",{style:{fontWeight:"bold"}},c+""),""!==u&&e.createElement("div",null,"number"==typeof u?u.toLocaleString():u+""))}const de=n(function(n,l){var c;const{chartType:u,runtimeMode:h,data:d,oAccessor:g="category",rAccessor:m="value",colorAccessor:f,stackBy:y,groupBy:p,multiAxis:v,timeAccessor:b,valueAccessor:x,categoryAccessor:w,projection:A="vertical",size:k=[600,400],margin:E,barPadding:S,innerRadius:O,normalize:M,startAngle:L,dynamicColumnWidth:P,bins:_,showOutliers:N,showIQR:B,amplitude:H,connectorAccessor:$,connectorStyle:D,rExtent:G,oExtent:F,extentPadding:q=.05,oSort:V,windowMode:X="sliding",windowSize:Y=200,pieceStyle:Q,summaryStyle:Z,colorScheme:U,barColors:J,showAxes:K=!0,oLabel:te,rLabel:ne,oFormat:oe,rFormat:ie,enableHover:ae=!0,hoverAnnotation:se,tooltipContent:re,customHoverBehavior:ue,annotations:de,svgAnnotationRules:ge,showGrid:me=!1,legend:fe,backgroundGraphics:ye,foregroundGraphics:pe,title:ve,className:be,background:xe,centerContent:we,decay:Ae,pulse:ke,transition:Ee,staleness:Se}=n,Oe=t(()=>Object.assign(Object.assign({},ce),E),[E]),Me=k[0]-Oe.left-Oe.right,je=k[1]-Oe.top-Oe.bottom,Le=o(null),Pe=o(!0),_e=o(0),Ne=o(null),Be=o(()=>{}),[He,$e]=i(null),[De,Ce]=i(null),[ze,Re]=i(0),[Te,Ie]=i(!1),We=ae||se,Ge="streaming"===h,Fe=t(()=>({chartType:u,runtimeMode:Ge?"streaming":"bounded",windowSize:Y,windowMode:X,extentPadding:q,projection:A,oAccessor:Ge?void 0:g,rAccessor:Ge?void 0:m,colorAccessor:f,stackBy:y,groupBy:p,multiAxis:v,timeAccessor:Ge?b:void 0,valueAccessor:Ge?x||("string"==typeof m||"function"==typeof m?m:void 0):void 0,categoryAccessor:Ge?w||g:void 0,rExtent:G,oExtent:F,barPadding:S,innerRadius:O,normalize:M,startAngle:L,dynamicColumnWidth:P,bins:_,showOutliers:N,showIQR:B,amplitude:H,connectorAccessor:$,connectorStyle:D,oSort:V,pieceStyle:Q,summaryStyle:Z,colorScheme:U,barColors:J,decay:Ae,pulse:ke,transition:Ee,staleness:Se}),[u,Y,X,q,A,g,m,f,y,p,v,b,x,w,G,F,S,O,M,L,P,_,N,B,H,$,D,V,Q,Z,U,J,Ae,ke,Ee,Se,Ge]),qe=o(null);qe.current||(qe.current=new C(Fe));const Ve=a(()=>{_e.current||(_e.current=requestAnimationFrame(()=>Be.current()))},[]);s(()=>{var e;null===(e=qe.current)||void 0===e||e.updateConfig(Fe),Pe.current=!0,Ve()},[Fe,Ve]);const Xe=o(null);Xe.current||(Xe.current=new j(e=>{const t=qe.current;t&&t.ingest(e)&&(Pe.current=!0,Ve())}));const Ye=a(e=>{var t;null===(t=Xe.current)||void 0===t||t.push(e)},[]),Qe=a(e=>{var t;null===(t=Xe.current)||void 0===t||t.pushMany(e)},[]),Ze=a(()=>{var e,t;null===(e=Xe.current)||void 0===e||e.clear(),null===(t=qe.current)||void 0===t||t.clear(),Pe.current=!0,Ve()},[Ve]);r(l,()=>({push:Ye,pushMany:Qe,clear:Ze,getData:()=>{var e,t;return null!==(t=null===(e=qe.current)||void 0===e?void 0:e.getData())&&void 0!==t?t:[]},getScales:()=>{var e,t;return null!==(t=null===(e=qe.current)||void 0===e?void 0:e.scales)&&void 0!==t?t:null}}),[Ye,Qe,Ze]),s(()=>{var e;d&&(null===(e=Xe.current)||void 0===e||e.setBoundedData(d))},[d]);const Ue=o(()=>{}),Je=o(()=>{});Ue.current=e=>{if(!We)return;const t=Le.current;if(!t)return;const n=t.getBoundingClientRect(),o=e.clientX-n.left-Oe.left,i=e.clientY-n.top-Oe.top;if(0>o||o>Me||0>i||i>je)return void(Ne.current&&(Ne.current=null,$e(null),ue&&ue(null),Ve()));const a=qe.current;if(!a||0===a.scene.length)return;const s="radial"===A,r=function(e,t,n,o=30){let i=null;for(const a of e){let e=null;switch(a.type){case"rect":e=z(a,t,n);break;case"point":e=R(a,t,n);break;case"wedge":e=T(a,t,n);break;case"boxplot":e=I(a,t,n);break;case"violin":e=W(a,t,n)}e&&o>e.distance&&(i&&e.distance>=i.distance||(i=e))}return i}(a.scene,s?o-Me/2:o,s?i-je/2:i);if(!r)return void(Ne.current&&(Ne.current=null,$e(null),ue&&ue(null),Ve()));const l=Object.assign(Object.assign({data:r.datum,time:r.x,value:r.y,x:r.x,y:r.y},r.stats&&{stats:r.stats}),r.category&&{category:r.category});Ne.current=l,$e(l),ue&&ue(l),Ve()},Je.current=()=>{Ne.current&&(Ne.current=null,$e(null),ue&&ue(null),Ve())};const Ke=a(e=>Ue.current(e),[]),et=a(()=>Je.current(),[]);Be.current=()=>{var e,t;_e.current=0;const n=Le.current;if(!n)return;const o=n.getContext("2d");if(!o)return;const i=qe.current;if(!i)return;const a="undefined"!=typeof performance?performance.now():Date.now(),s=i.advanceTransition(a),r=Pe.current;r&&!s&&(i.computeScene({width:Me,height:je}),Pe.current=!1);const l="undefined"!=typeof window&&window.devicePixelRatio||1;n.width=k[0]*l,n.height=k[1]*l,n.style.width=k[0]+"px",n.style.height=k[1]+"px",o.scale(l,l),o.clearRect(0,0,k[0],k[1]);const c=null!==(e=null==Se?void 0:Se.threshold)&&void 0!==e?e:5e3,h=Se&&i.lastIngestTime>0&&a-i.lastIngestTime>c;h&&(o.globalAlpha=null!==(t=null==Se?void 0:Se.dimOpacity)&&void 0!==t?t:.5);const d=n?getComputedStyle(n).getPropertyValue("--semiotic-bg").trim():"",g=xe||(d&&"transparent"!==d?d:null);g&&(o.fillStyle=g,o.fillRect(0,0,k[0],k[1]));const m="radial"===A;m?(o.save(),o.translate(Oe.left+Me/2,Oe.top+je/2)):o.translate(Oe.left,Oe.top);const f=le[u]||[],y={width:Me,height:je};for(const e of f)e(o,i.scene,i.scales,y);m&&o.restore(),h&&(o.globalAlpha=1),r&&i.scales&&(Ce(i.scales),Re(e=>e+1)),(null==Se?void 0:Se.showBadge)&&Ie(!!h),(s||i.hasActivePulses)&&(_e.current=requestAnimationFrame(()=>Be.current()))},s(()=>(Ve(),()=>{_e.current&&cancelAnimationFrame(_e.current)}),[Ve]),s(()=>{Pe.current=!0,Ve()},[u,Me,je,K,xe,Ve]),s(()=>{if(!Se)return;const e=setInterval(()=>{var e;const t=qe.current;if(!t||0===t.lastIngestTime)return;const n="undefined"!=typeof performance?performance.now():Date.now(),o=null!==(e=Se.threshold)&&void 0!==e?e:5e3,i=n-t.lastIngestTime>o;i!==Te&&(Ie(i),Pe.current=!0,Ve())},1e3);return()=>clearInterval(e)},[Se,Te,Ve]);const tt=We&&He?re?re(He):e.createElement(he,{hover:He}):null,nt="radial"===A,ot=He?nt?He.x+Me/2:He.x:0,it=He?nt?He.y+je/2:He.y:0,at=tt?e.createElement("div",{className:"stream-ordinal-tooltip",style:{position:"absolute",left:Oe.left+ot,top:Oe.top+it,transform:`translate(${ot>.7*Me?"calc(-100% - 12px)":"12px"}, ${.3*je>it?"4px":"calc(-100% - 4px)"})`,pointerEvents:"none",zIndex:1}},tt):null;return e.createElement("div",{className:"stream-ordinal-frame"+(be?" "+be:""),role:"img","aria-label":"string"==typeof ve?ve:"Ordinal chart",style:{position:"relative",width:k[0],height:k[1]},onMouseMove:We?Ke:void 0,onMouseLeave:We?et:void 0},ye&&e.createElement("svg",{style:{position:"absolute",top:0,left:0,width:k[0],height:k[1],pointerEvents:"none"}},e.createElement("g",{transform:`translate(${Oe.left},${Oe.top})`},ye)),e.createElement("canvas",{ref:Le,style:{position:"absolute",top:0,left:0,width:k[0],height:k[1]}}),e.createElement(ee,{width:Me,height:je,totalWidth:k[0],totalHeight:k[1],margin:Oe,scales:De,showAxes:K,oLabel:te,rLabel:ne,oFormat:oe,rFormat:ie,showGrid:me,title:ve,legend:fe,foregroundGraphics:pe,annotations:de,svgAnnotationRules:ge,annotationFrame:ze,xAccessor:"string"==typeof g?g:void 0,yAccessor:"string"==typeof m?m:void 0,annotationData:null===(c=qe.current)||void 0===c?void 0:c.getData()}),we&&"radial"===A&&e.createElement("div",{style:{position:"absolute",left:Oe.left+Me/2,top:Oe.top+je/2,transform:"translate(-50%, -50%)",pointerEvents:"none",textAlign:"center"}},we),(null==Se?void 0:Se.showBadge)&&e.createElement("div",{className:"stream-staleness-badge",style:Object.assign(Object.assign({position:"absolute"},"top-left"===Se.badgePosition?{top:4,left:4}:"bottom-left"===Se.badgePosition?{bottom:4,left:4}:"bottom-right"===Se.badgePosition?{bottom:4,right:4}:{top:4,right:4}),{padding:"2px 8px",borderRadius:4,fontSize:11,fontWeight:600,pointerEvents:"none",background:Te?"#dc3545":"#28a745",color:"white"})},Te?"STALE":"LIVE"),at)});de.displayName="StreamOrdinalFrame";const ge={category10:p,tableau10:O,set3:S,blues:E,reds:k,greens:A,oranges:w,purples:x,viridis:b,plasma:v},me=p;function fe(e,t,n){if("function"==typeof t)return t(e);const o=e[t];return n?n(o):me[Math.abs(function(e){let t=0;for(let n=0;e.length>n;n++)t=(t<<5)-t+e.charCodeAt(n),t&=t;return Math.abs(t)}(o+""))%me.length]}function ye(e,t,n){return t?o=>{var i,a;const s=Object.assign({},e(o));return t.isActive&&(t.predicate(o)?(null==n?void 0:n.selectedStyle)&&Object.assign(s,n.selectedStyle):(s.fillOpacity=null!==(i=null==n?void 0:n.unselectedOpacity)&&void 0!==i?i:.2,s.strokeOpacity=null!==(a=null==n?void 0:n.unselectedOpacity)&&void 0!==a?a:.2,(null==n?void 0:n.unselectedStyle)&&Object.assign(s,n.unselectedStyle))),s}:e}function pe(n){const o=l(null),a=ve(n);return[function({children:i}){const a=t(()=>ve(n),[]);return e.createElement(o.Provider,{value:a,children:i})},e=>{var t;const n=null!==(t=c(o))&&void 0!==t?t:a;return function(e,t){const[n,o]=i(t);return u(()=>e(()=>o(t)),[e]),n}(n.subscribe,()=>e(n.getState()))}]}function ve(e){const t=new EventTarget;let n=e(function(e){n=Object.assign(Object.assign({},n),e(n)),t.dispatchEvent(new CustomEvent("update"))});return{getState:()=>n,subscribe:function(e){return t.addEventListener("update",e),()=>t.removeEventListener("update",e)}}}function be(e){const t=[];for(const[n,o]of Object.entries(e.fields))if("point"===o.type)t.push(e=>o.values.has(e[n]));else{const[e,i]=o.range;t.push(t=>{const o=t[n];return o>=e&&i>=o})}return e=>t.every(t=>t(e))}function xe(e,t){let n=e.get(t);return n||(n={name:t,resolution:"union",clauses:new Map},e.set(t,n)),n}const[we,Ae]=pe(e=>({selections:new Map,setClause(t,n){e(e=>{const o=new Map(e.selections),i=xe(o,t),a=new Map(i.clauses);return a.set(n.clientId,n),o.set(t,Object.assign(Object.assign({},i),{clauses:a})),{selections:o}})},clearClause(t,n){e(e=>{const o=e.selections.get(t);if(!o)return{};const i=new Map(e.selections),a=new Map(o.clauses);return a.delete(n),i.set(t,Object.assign(Object.assign({},o),{clauses:a})),{selections:i}})},setResolution(t,n){e(e=>{const o=new Map(e.selections),i=xe(o,t);return o.set(t,Object.assign(Object.assign({},i),{resolution:n})),{selections:o}})},clearSelection(t){e(e=>{const n=new Map(e.selections),o=n.get(t);return o&&n.set(t,Object.assign(Object.assign({},o),{clauses:new Map})),{selections:n}})}}));function ke(e){const n=h(),o=e.clientId||n,{name:i}=e,s=Ae(e=>e.selections.get(i)),r=Ae(e=>e.setClause),l=Ae(e=>e.clearClause),c=t(()=>!!s&&s.clauses.size>0,[s]);return{predicate:t(()=>s&&0!==s.clauses.size?function(e,t){const n=[];for(const[o,i]of e.clauses)"crossfilter"===e.resolution&&o===t||n.push(be(i));return 0===n.length?()=>!0:"intersect"===e.resolution?e=>n.every(t=>t(e)):e=>n.some(t=>t(e))}(s,o):()=>!0,[s,o]),isActive:c,selectPoints:a(e=>{const t={};for(const[n,o]of Object.entries(e))t[n]={type:"point",values:new Set(o)};r(i,{clientId:o,type:"point",fields:t})},[o,i,r]),selectInterval:a(e=>{const t={};for(const[n,o]of Object.entries(e))t[n]={type:"interval",range:o};r(i,{clientId:o,type:"interval",fields:t})},[o,i,r]),clear:a(()=>{l(i,o)},[l,i,o]),clientId:o}}const[Ee,Se]=pe(e=>({observations:[],maxObservations:100,version:0,pushObservation(t){e(e=>{const n=e.observations;return n.push(t),n.length>e.maxObservations&&n.shift(),{version:e.version+1}})},clearObservations(){e(()=>({observations:[],version:0}))}})),Oe="#007bff";function Me(e,n,o="category10"){return t(()=>{if(n&&"function"!=typeof n)return function(e,t,n="category10"){const o=Array.from(new Set(e.map(e=>e[t]))),i=o.every(e=>"number"==typeof e||!isNaN(Number(e)));if(Array.isArray(n))return m().domain(o).range(n).unknown("#999");const a=ge[n]||ge.category10;if(i&&"function"==typeof a)return e=>a(Number(e)/Math.max(...o.map(Number)));{const e=Array.isArray(a)?a:me;return m().domain(o).range(e).unknown("#999")}}(e,n,o)},[e,n,o])}function je(e,n,o){return t(()=>{if(!n)return e;const t=[...e];if("function"==typeof n)return t.sort(n);const i="function"==typeof(a=o)?a:e=>e[a];var a;return t.sort("asc"===n?(e,t)=>i(e)-i(t):(e,t)=>i(t)-i(e))},[e,n,o])}function Le({selection:e,linkedHover:t,fallbackFields:n=[],unwrapData:o=!1,onObservation:i,chartType:s,chartId:r}){const l=function(e,t){return e?!0===e?{name:"hover",fields:t||[]}:"string"==typeof e?{name:e,fields:t||[]}:{name:e.name||"hover",fields:e.fields}:null}(t,n),c=ke({name:(null==e?void 0:e.name)||"__unused__"}),u=function(e){const t=e.name||"hover",{fields:n}=e,{predicate:o,isActive:i,selectPoints:s,clear:r}=ke({name:t});return{onHover:a(e=>{if(!e)return void r();const t={};for(const o of n){const n=e[o];void 0!==n&&(t[o]=[n])}Object.keys(t).length>0&&s(t)},[n,s,r]),predicate:o,isActive:i}}({name:(null==l?void 0:l.name)||"hover",fields:(null==l?void 0:l.fields)||[]}),h=Se(e=>e.pushObservation);return{activeSelectionHook:e?{isActive:c.isActive,predicate:c.predicate}:null,customHoverBehavior:a(e=>{var n,o;if(t){let t=e&&(e.data||e.datum)||e;Array.isArray(t)&&(t=t[0]),u.onHover(t)}if(i||h){const t={timestamp:Date.now(),chartType:s||"unknown",chartId:r};if(e){let a=e.data||e.datum||e;Array.isArray(a)&&(a=a[0]);const s=Object.assign(Object.assign({},t),{type:"hover",datum:a||{},x:null!==(n=e.x)&&void 0!==n?n:0,y:null!==(o=e.y)&&void 0!==o?o:0});i&&i(s),h&&h(s)}else{const e=Object.assign(Object.assign({},t),{type:"hover-end"});i&&i(e),h&&h(e)}}},[t,u,i,s,r,h]),customClickBehavior:a(e=>{var t,n;if(i||h){const o={timestamp:Date.now(),chartType:s||"unknown",chartId:r};if(e){let a=e.data||e.datum||e;Array.isArray(a)&&(a=a[0]);const s=Object.assign(Object.assign({},o),{type:"click",datum:a||{},x:null!==(t=e.x)&&void 0!==t?t:0,y:null!==(n=e.y)&&void 0!==n?n:0});i&&i(s),h&&h(s)}else{const e=Object.assign(Object.assign({},o),{type:"click-end"});i&&i(e),h&&h(e)}}},[i,h,s,r])}}function Pe({data:e,colorBy:n,colorScale:o,showLegend:i,userMargin:a,defaults:s={top:50,bottom:60,left:70,right:40}}){const r=void 0!==i?i:!!n,l=t(()=>{if(r&&n)return function({data:e,colorBy:t,colorScale:n,getColor:o,strokeColor:i,strokeWidth:a}){return{legendGroups:[{styleFn:e=>{const t={fill:e.color,stroke:e.color};return void 0!==i&&(t.stroke=i),void 0!==a&&(t.strokeWidth=a),t},type:"fill",items:Array.from(new Set(e.map(e=>"function"==typeof t?t(e):e[t]))).map(i=>{const a=e.find("function"==typeof t?e=>t(e)===i:e=>e[t]===i),s=a?o(a,t,n):n?n(i):"#000000";return{label:i+"",color:s}}),label:""}]}}({data:e,colorBy:n,colorScale:o,getColor:fe})},[r,n,e,o]),c=t(()=>{const e=Object.assign(Object.assign({},s),a);return l&&120>e.right&&(e.right=120),e},[s,a,l]);return{legend:l,margin:c}}const _e={primary:{width:600,height:400,showAxes:!0,showGrid:!1,enableHover:!0,showLegend:void 0,showLabels:void 0,marginDefaults:{top:50,bottom:60,left:70,right:40}},context:{width:400,height:250,showAxes:!1,showGrid:!1,enableHover:!1,showLegend:!1,showLabels:!1,marginDefaults:{top:10,bottom:10,left:10,right:10}},sparkline:{width:120,height:24,showAxes:!1,showGrid:!1,enableHover:!1,showLegend:!1,showLabels:!1,marginDefaults:{top:2,bottom:2,left:0,right:0}}};function Ne(e,t,n){var o,i,a,s,r,l;const c=_e[e||"primary"],u="context"===e||"sparkline"===e;return{width:null!==(o=t.width)&&void 0!==o?o:c.width,height:null!==(i=t.height)&&void 0!==i?i:c.height,showAxes:c.showAxes,showGrid:null!==(a=t.showGrid)&&void 0!==a?a:c.showGrid,enableHover:null!==(s=t.enableHover)&&void 0!==s?s:!!t.linkedHover||c.enableHover,showLegend:null!==(r=t.showLegend)&&void 0!==r?r:c.showLegend,showLabels:null!==(l=t.showLabels)&&void 0!==l?l:c.showLabels,title:u?void 0:t.title,xLabel:u?void 0:t.xLabel,yLabel:u?void 0:t.yLabel,categoryLabel:u?void 0:t.categoryLabel,valueLabel:u?void 0:t.valueLabel,marginDefaults:c.marginDefaults}}const Be={background:"rgba(0, 0, 0, 0.85)",color:"white",padding:"8px 12px",borderRadius:"4px",fontSize:"14px",lineHeight:"1.5",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",pointerEvents:"none",maxWidth:"300px",wordWrap:"break-word"};function He(e,t){return"function"==typeof t?t(e):e[t]}function $e(e,t){return t?t(e):null==e?"":"number"==typeof e?e.toLocaleString():e instanceof Date?e.toLocaleDateString():"object"==typeof e&&null!==e?void 0!==e.id?e.id+"":void 0!==e.name?e.name+"":JSON.stringify(e):e+""}function De(t){return!0===t||("function"==typeof t?t:!1!==t&&void 0!==t&&("object"!=typeof t||null===t||!("fields"in t)&&!("title"in t)||function(t={}){const{fields:n,title:o,format:i,style:a={},className:s=""}=t;return t=>{if(!t||"object"!=typeof t)return null;let r;const l=[];if(o){const e=He(t,o);r=$e(e,i)}if(n&&n.length>0)n.forEach(e=>{let n,o,a;"string"==typeof e?(n=e,o=e,a=i):(n=e.label,o=e.accessor||e.key||"",a=e.format||i);const s=He(t,o);l.push({label:n,value:$e(s,a)})});else if(!o){const e=["value","y","name","id","label"];for(const n of e)if(void 0!==t[n]){r=$e(t[n],i);break}if(!r){const e=Object.keys(t).filter(e=>!e.startsWith("_"));e.length>0&&(r=$e(t[e[0]],i))}}const c=Object.assign(Object.assign({},Be),a);return e.createElement("div",{className:("semiotic-tooltip "+s).trim(),style:c},r&&e.createElement("div",{style:{fontWeight:l.length>0?"bold":"normal"}},r),l.map((t,n)=>e.createElement("div",{key:n,style:{marginTop:0===n&&r?"4px":0}},t.label&&e.createElement("span",null,t.label,": "),t.value)))}}(t)))}function Ce(e){return null==e?"–":"number"==typeof e?e.toLocaleString():e instanceof Date?e.toLocaleDateString():e+""}function ze(e,t){return"function"==typeof t?t(e):e[t]}function Re({categoryAccessor:t,valueAccessor:n,groupAccessor:o,groupLabel:i,pieData:a=!1}){return s=>{var r;const l=a?(null===(r=s.data)||void 0===r?void 0:r[0])||s.data||s:s.data||s,c=ze(l,t),u=ze(l,n),h=o?ze(l,o):void 0;return e.createElement("div",{className:"semiotic-tooltip",style:Be},e.createElement("div",{style:{fontWeight:"bold"}},Ce(c)),e.createElement("div",{style:{marginTop:4}},Ce(u)),null!=h&&e.createElement("div",{style:{marginTop:2,opacity:.8}},i||("string"==typeof(d=o)?d:"value"),": ",Ce(h)));var d}}function Te({componentName:t,message:n,width:o,height:i}){return e.createElement("div",{role:"alert",style:{width:o,height:Math.max(i,120),display:"flex",alignItems:"center",justifyContent:"center",border:"1px dashed rgba(128, 128, 128, 0.4)",borderRadius:8,background:"rgba(128, 128, 128, 0.04)",padding:24,boxSizing:"border-box"}},e.createElement("div",{style:{textAlign:"center",maxWidth:400}},e.createElement("div",{style:{fontSize:13,fontWeight:600,color:"rgba(128, 128, 128, 0.7)",marginBottom:6,fontFamily:"monospace"}},t),e.createElement("div",{style:{fontSize:14,color:"rgba(128, 128, 128, 0.9)",lineHeight:1.5}},n)))}function Ie({data:e,accessors:t,requiredProps:n}){if(n)for(const[e,t]of Object.entries(n))if(null==t)return e+" is required. Provide a field name or function.";if(!e||!Array.isArray(e)||0===e.length)return"No data provided. Pass a non-empty array to the data prop.";if(t)for(const n of function(e){return e.length>3?[e[0],e[Math.floor(e.length/2)],e[e.length-1]]:e}(e))if(n&&"object"==typeof n)for(const[e,o]of Object.entries(t))if(o&&"string"==typeof o&&!(o in n))return`${e} "${o}" not found in data. Available fields: ${Object.keys(n).join(", ")}.`;return null}function We(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",valueAccessor:l="value",orientation:c="vertical",valueFormat:u,colorBy:h,colorScheme:d="category10",sort:g=!1,barPadding:m=5,tooltip:f,annotations:y,frameProps:p={},selection:v,linkedHover:b,onObservation:x,chartId:w}=n,A=o.width,k=o.height,E=o.enableHover,S=o.showGrid,O=o.showLegend,M=o.title,j=o.categoryLabel,L=o.valueLabel,P=i||[],{activeSelectionHook:_,customHoverBehavior:N}=Le({selection:v,linkedHover:b,fallbackFields:h?["string"==typeof h?h:""]:[],unwrapData:!0,onObservation:x,chartType:"BarChart",chartId:w}),B=je(P,g,l),H=Me(P,h,d),$=t(()=>e=>{const t={};return t.fill=h?fe(e,h,H):Oe,t},[h,H]),D=t(()=>ye($,_,v),[$,_,v]),{legend:C,margin:z}=Pe({data:B,colorBy:h,colorScale:H,showLegend:O,userMargin:a,defaults:o.marginDefaults}),R=t(()=>Re({categoryAccessor:r,valueAccessor:l,groupAccessor:h&&h!==r?h:void 0,groupLabel:"string"==typeof h?h:"group"}),[r,l,h]),T=Ie({componentName:"BarChart",data:P,accessors:{categoryAccessor:r,valueAccessor:l}});if(T)return e.createElement(Te,{componentName:"BarChart",message:T,width:A,height:k});const I=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"bar",data:B,oAccessor:r,rAccessor:l,projection:"horizontal"===c?"horizontal":"vertical",pieceStyle:D,size:[A,k],margin:z,barPadding:m,enableHover:E,showAxes:o.showAxes,oLabel:j,rLabel:L,rFormat:u,showGrid:S,oSort:g},C&&{legend:C}),M&&{title:M}),s&&{className:s}),{tooltipContent:f?De(f):R}),(b||x)&&{customHoverBehavior:N}),y&&y.length>0&&{annotations:y}),p);return e.createElement(de,Object.assign({},I))}function Ge(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",stackBy:l,valueAccessor:c="value",orientation:u="vertical",valueFormat:h,colorBy:d,colorScheme:g="category10",normalize:m=!1,barPadding:f=5,tooltip:y,annotations:p,frameProps:v={},selection:b,linkedHover:x,onObservation:w,chartId:A}=n,k=o.width,E=o.height,S=o.enableHover,O=o.showGrid,M=o.showLegend,j=o.title,L=o.categoryLabel,P=o.valueLabel,_=i||[],N=d||l,{activeSelectionHook:B,customHoverBehavior:H}=Le({selection:b,linkedHover:x,fallbackFields:N?["string"==typeof N?N:""]:[],unwrapData:!0,onObservation:w,chartType:"StackedBarChart",chartId:A}),$=Me(_,N,g),D=t(()=>e=>N?{fill:fe(e,N,$)}:{fill:Oe},[N,$]),C=t(()=>ye(D,B,b),[D,B,b]),{legend:z,margin:R}=Pe({data:_,colorBy:N,colorScale:$,showLegend:M,userMargin:a,defaults:o.marginDefaults}),T=t(()=>Re({categoryAccessor:l,valueAccessor:c,groupAccessor:r}),[l,r,c]),I=Ie({componentName:"StackedBarChart",data:_,accessors:{categoryAccessor:r,valueAccessor:c},requiredProps:{stackBy:l}});if(I)return e.createElement(Te,{componentName:"StackedBarChart",message:I,width:k,height:E});const W=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"bar",data:_,oAccessor:r,rAccessor:c,stackBy:l,normalize:m,projection:"horizontal"===u?"horizontal":"vertical",pieceStyle:C,size:[k,E],margin:R,barPadding:f,enableHover:S,showAxes:o.showAxes,oLabel:L,rLabel:P,rFormat:h,showGrid:O},z&&{legend:z}),j&&{title:j}),s&&{className:s}),{tooltipContent:y?De(y):T}),(x||w)&&{customHoverBehavior:H}),p&&p.length>0&&{annotations:p}),v);return e.createElement(de,Object.assign({},W))}function Fe(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",groupBy:l,valueAccessor:c="value",orientation:u="vertical",valueFormat:h,colorBy:d,colorScheme:g="category10",barPadding:m=5,tooltip:f,annotations:y,frameProps:p={},selection:v,linkedHover:b,onObservation:x,chartId:w}=n,A=o.width,k=o.height,E=o.enableHover,S=o.showGrid,O=o.showLegend,M=o.title,j=o.categoryLabel,L=o.valueLabel,P=i||[],_=d||l,{activeSelectionHook:N,customHoverBehavior:B}=Le({selection:v,linkedHover:b,fallbackFields:_?["string"==typeof _?_:""]:[],unwrapData:!0,onObservation:x,chartType:"GroupedBarChart",chartId:w}),H=Me(P,_,g),$=t(()=>e=>_?{fill:fe(e,_,H)}:{fill:Oe},[_,H]),D=t(()=>ye($,N,v),[$,N,v]),{legend:C,margin:z}=Pe({data:P,colorBy:_,colorScale:H,showLegend:O,userMargin:a,defaults:o.marginDefaults}),R=t(()=>Re({categoryAccessor:l,valueAccessor:c,groupAccessor:r}),[l,r,c]),T=Ie({componentName:"GroupedBarChart",data:P,accessors:{categoryAccessor:r,valueAccessor:c},requiredProps:{groupBy:l}});if(T)return e.createElement(Te,{componentName:"GroupedBarChart",message:T,width:A,height:k});const I=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"clusterbar",data:P,oAccessor:r,rAccessor:c,groupBy:l,projection:"horizontal"===u?"horizontal":"vertical",pieceStyle:D,size:[A,k],margin:z,barPadding:m,enableHover:E,showAxes:o.showAxes,oLabel:j,rLabel:L,rFormat:h,showGrid:S},C&&{legend:C}),M&&{title:M}),s&&{className:s}),{tooltipContent:f?De(f):R}),(b||x)&&{customHoverBehavior:B}),y&&y.length>0&&{annotations:y}),p);return e.createElement(de,Object.assign({},I))}function qe(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",valueAccessor:l="value",orientation:c="vertical",valueFormat:u,colorBy:h,colorScheme:d="category10",sizeBy:g,sizeRange:m=[3,8],pointRadius:f=4,pointOpacity:y=.7,categoryPadding:p=20,tooltip:v,annotations:b,frameProps:x={},selection:w,linkedHover:A,onObservation:k,chartId:E}=n,S=o.width,O=o.height,M=o.enableHover,j=o.showGrid,L=o.showLegend,P=o.title,_=o.categoryLabel,N=o.valueLabel,B=i||[],{activeSelectionHook:H,customHoverBehavior:$}=Le({selection:w,linkedHover:A,fallbackFields:h?["string"==typeof h?h:""]:["string"==typeof r?r:""],unwrapData:!0,onObservation:k,chartType:"SwarmPlot",chartId:E}),D=Me(B,h,d),C=t(()=>{if(!g)return;const e=B.map(e=>"function"==typeof g?g(e):e[g]);return[Math.min(...e),Math.max(...e)]},[B,g]),z=t(()=>e=>{const t={fillOpacity:y};return t.fill=h?fe(e,h,D):Oe,t.r=g?function(e,t,n=[3,20],o){let i;if(i="function"==typeof t?t(e):e[t],!o)return i;const[a,s]=o,[r,l]=n;return s===a?(r+l)/2:r+(i-a)/(s-a)*(l-r)}(e,g,m,C):f,t},[h,D,g,m,C,f,y]),R=t(()=>ye(z,H,w),[z,H,w]),{legend:T,margin:I}=Pe({data:B,colorBy:h,colorScale:D,showLegend:L,userMargin:a,defaults:o.marginDefaults}),W=t(()=>Re({categoryAccessor:r,valueAccessor:l,groupAccessor:h||void 0}),[r,l,h]),G=Ie({componentName:"SwarmPlot",data:B,accessors:{categoryAccessor:r,valueAccessor:l}});if(G)return e.createElement(Te,{componentName:"SwarmPlot",message:G,width:S,height:O});const F=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"swarm",data:B,oAccessor:r,rAccessor:l,projection:"horizontal"===c?"horizontal":"vertical",pieceStyle:R,size:[S,O],margin:I,barPadding:p,enableHover:M,showAxes:o.showAxes,oLabel:_,rLabel:N,rFormat:u,showGrid:j},T&&{legend:T}),P&&{title:P}),s&&{className:s}),{tooltipContent:v?De(v):W}),(A||k)&&{customHoverBehavior:$}),b&&b.length>0&&{annotations:b}),x);return e.createElement(de,Object.assign({},F))}function Ve(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",valueAccessor:l="value",orientation:c="vertical",valueFormat:u,colorBy:h,colorScheme:d="category10",showOutliers:g=!0,categoryPadding:m=20,tooltip:f,annotations:y,frameProps:p={},selection:v,linkedHover:b,onObservation:x,chartId:w}=n,A=o.width,k=o.height,E=o.enableHover,S=o.showGrid,O=o.showLegend,M=o.title,j=o.categoryLabel,L=o.valueLabel,P=i||[],{activeSelectionHook:_,customHoverBehavior:N}=Le({selection:v,linkedHover:b,fallbackFields:h?["string"==typeof h?h:""]:["string"==typeof r?r:""],unwrapData:!0,onObservation:x,chartType:"BoxPlot",chartId:w}),B=Me(P,h,d),H=t(()=>e=>{const t=h?fe(e,h,B):Oe;return{fill:t,stroke:t,fillOpacity:.8}},[h,B]),$=t(()=>ye(H,_,v),[H,_,v]),{legend:D,margin:C}=Pe({data:P,colorBy:h,colorScale:B,showLegend:O,userMargin:a,defaults:o.marginDefaults}),z=t(()=>t=>{const n=t.stats||(t.data||t).stats||{};return e.createElement("div",{className:"semiotic-tooltip",style:Be},e.createElement("div",{style:{fontWeight:"bold",marginBottom:"4px"}},(t.category||(t.data||t).category||"")+""),null!=n.median&&e.createElement(e.Fragment,null,null!=n.n&&e.createElement("div",null,"n = ",n.n),e.createElement("div",null,"Median: ",n.median.toLocaleString()),e.createElement("div",null,"Q1: ",n.q1.toLocaleString()),e.createElement("div",null,"Q3: ",n.q3.toLocaleString()),e.createElement("div",null,"Min: ",n.min.toLocaleString()),e.createElement("div",null,"Max: ",n.max.toLocaleString())))},[]),R=Ie({componentName:"BoxPlot",data:P,accessors:{categoryAccessor:r,valueAccessor:l}});if(R)return e.createElement(Te,{componentName:"BoxPlot",message:R,width:A,height:k});const T=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"boxplot",data:P,oAccessor:r,rAccessor:l,projection:"horizontal"===c?"horizontal":"vertical",summaryStyle:$,showOutliers:g,size:[A,k],margin:C,barPadding:m,enableHover:E,showAxes:o.showAxes,oLabel:j,rLabel:L,rFormat:u,showGrid:S},D&&{legend:D}),M&&{title:M}),s&&{className:s}),{tooltipContent:f?De(f):z}),(b||x)&&{customHoverBehavior:N}),y&&y.length>0&&{annotations:y}),p);return e.createElement(de,Object.assign({},T))}function Xe(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",valueAccessor:l="value",bins:c=25,relative:u=!1,valueFormat:h,colorBy:d,colorScheme:g="category10",categoryPadding:m=20,tooltip:f,annotations:y,frameProps:p={},selection:v,linkedHover:b,onObservation:x,chartId:w}=n,A=o.width,k=o.height,E=o.enableHover,S=o.showGrid,O=o.showLegend,M=o.title,j=o.categoryLabel,L=o.valueLabel,P=i||[],{activeSelectionHook:_,customHoverBehavior:N}=Le({selection:v,linkedHover:b,fallbackFields:d?["string"==typeof d?d:""]:["string"==typeof r?r:""],unwrapData:!0,onObservation:x,chartType:"Histogram",chartId:w}),B=Me(P,d,g),H=t(()=>e=>{const t=d?fe(e,d,B):Oe;return{fill:t,stroke:t,fillOpacity:.8}},[d,B]),$=t(()=>ye(H,_,v),[H,_,v]),{legend:D,margin:C}=Pe({data:P,colorBy:d,colorScale:B,showLegend:O,userMargin:a,defaults:o.marginDefaults}),z=t(()=>t=>{const n=t.data||t,o=n.category||t.category||"",i=n.count,a=n.range;return e.createElement("div",{className:"semiotic-tooltip",style:Be},o&&e.createElement("div",{style:{fontWeight:"bold"}},o+""),null!=i&&e.createElement("div",null,"Count: ",i),a&&2===a.length&&e.createElement("div",{style:{opacity:.8}},Number(a[0]).toFixed(1)," – ",Number(a[1]).toFixed(1)))},[]),R=Ie({componentName:"Histogram",data:P,accessors:{categoryAccessor:r,valueAccessor:l}});if(R)return e.createElement(Te,{componentName:"Histogram",message:R,width:A,height:k});const T=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"histogram",data:P,oAccessor:r,rAccessor:l,projection:"horizontal",summaryStyle:$,bins:c,normalize:u,size:[A,k],margin:C,barPadding:m,enableHover:E,showAxes:o.showAxes,oLabel:j,rLabel:L,rFormat:h,showGrid:S},D&&{legend:D}),M&&{title:M}),s&&{className:s}),{tooltipContent:f?De(f):z}),(b||x)&&{customHoverBehavior:N}),y&&y.length>0&&{annotations:y}),p);return e.createElement(de,Object.assign({},T))}function Ye(n){const o=Ne(n.mode,{width:n.width,height:n.height,showGrid:n.showGrid,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:i,margin:a,className:s,categoryAccessor:r="category",valueAccessor:l="value",orientation:c="vertical",bins:u=25,showIQR:h=!0,valueFormat:d,colorBy:g,colorScheme:m="category10",categoryPadding:f=20,tooltip:y,annotations:p,frameProps:v={},selection:b,linkedHover:x,onObservation:w,chartId:A}=n,k=o.width,E=o.height,S=o.enableHover,O=o.showGrid,M=o.showLegend,j=o.title,L=o.categoryLabel,P=o.valueLabel,_=i||[],{activeSelectionHook:N,customHoverBehavior:B}=Le({selection:b,linkedHover:x,fallbackFields:g?["string"==typeof g?g:""]:["string"==typeof r?r:""],unwrapData:!0,onObservation:w,chartType:"ViolinPlot",chartId:A}),H=Me(_,g,m),$=t(()=>e=>{const t=g?fe(e,g,H):Oe;return{fill:t,stroke:t,fillOpacity:.6}},[g,H]),D=t(()=>ye($,N,b),[$,N,b]),{legend:C,margin:z}=Pe({data:_,colorBy:g,colorScale:H,showLegend:M,userMargin:a,defaults:o.marginDefaults}),R=t(()=>t=>{var n;const o=t.category||t.data&&(null===(n=t.data[0])||void 0===n?void 0:n.category)||"",i=t.stats;if(i)return e.createElement("div",{className:"semiotic-tooltip",style:Be},o&&e.createElement("div",{style:{fontWeight:"bold"}},o+""),e.createElement("div",null,"n = ",i.n),e.createElement("div",null,"Min: ",i.min.toLocaleString()),e.createElement("div",null,"Q1: ",i.q1.toLocaleString()),e.createElement("div",null,"Median: ",i.median.toLocaleString()),e.createElement("div",null,"Q3: ",i.q3.toLocaleString()),e.createElement("div",null,"Max: ",i.max.toLocaleString()),e.createElement("div",{style:{opacity:.8}},"Mean: ",i.mean.toLocaleString(void 0,{maximumFractionDigits:2})));const a=(Array.isArray(t.data)?t.data:[]).map(e=>{const t="function"==typeof l?l(e):e[l];return Number(t)}).filter(e=>!isNaN(e)).sort((e,t)=>e-t),s=a.length,r=s>0?a[Math.floor(s/2)]:null;return e.createElement("div",{className:"semiotic-tooltip",style:Be},o&&e.createElement("div",{style:{fontWeight:"bold"}},o+""),s>0&&e.createElement("div",null,"n = ",s),null!=r&&e.createElement("div",null,"Median: ",r.toLocaleString()))},[l]),T=Ie({componentName:"ViolinPlot",data:_,accessors:{categoryAccessor:r,valueAccessor:l}});if(T)return e.createElement(Te,{componentName:"ViolinPlot",message:T,width:k,height:E});const I=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"violin",data:_,oAccessor:r,rAccessor:l,projection:"horizontal"===c?"horizontal":"vertical",summaryStyle:D,bins:u,showIQR:h,size:[k,E],margin:z,barPadding:f,enableHover:S,showAxes:o.showAxes,oLabel:L,rLabel:P,rFormat:d,showGrid:O},C&&{legend:C}),j&&{title:j}),s&&{className:s}),{tooltipContent:y?De(y):R}),(x||w)&&{customHoverBehavior:B}),p&&p.length>0&&{annotations:p}),v);return e.createElement(de,Object.assign({},I))}function Qe(n){var o;const i=Ne(n.mode,{width:n.width,height:n.height,showGrid:null===(o=n.showGrid)||void 0===o||o,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,categoryLabel:n.categoryLabel,valueLabel:n.valueLabel}),{data:a,margin:s,className:r,categoryAccessor:l="category",valueAccessor:c="value",orientation:u="horizontal",valueFormat:h,colorBy:d,colorScheme:g="category10",sort:m=!0,dotRadius:f=5,categoryPadding:y=10,tooltip:p,annotations:v,frameProps:b={},selection:x,linkedHover:w,onObservation:A,chartId:k}=n,E=i.width,S=i.height,O=i.enableHover,M=i.showGrid,j=i.showLegend,L=i.title,P=i.categoryLabel,_=i.valueLabel,N=a||[],{activeSelectionHook:B,customHoverBehavior:H}=Le({selection:x,linkedHover:w,fallbackFields:d?["string"==typeof d?d:""]:["string"==typeof l?l:""],unwrapData:!0,onObservation:A,chartType:"DotPlot",chartId:k}),$=je(N,m,c),D=Me(N,d,g),C=t(()=>e=>{const t={r:f,fillOpacity:.8};return t.fill=d?fe(e,d,D):Oe,t},[d,D,f]),z=t(()=>ye(C,B,x),[C,B,x]),{legend:R,margin:T}=Pe({data:$,colorBy:d,colorScale:D,showLegend:j,userMargin:s,defaults:i.marginDefaults}),I=t(()=>Re({categoryAccessor:l,valueAccessor:c}),[l,c]),W=Ie({componentName:"DotPlot",data:N,accessors:{categoryAccessor:l,valueAccessor:c}});if(W)return e.createElement(Te,{componentName:"DotPlot",message:W,width:E,height:S});const G=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"point",data:$,oAccessor:l,rAccessor:c,projection:"horizontal"===u?"horizontal":"vertical",pieceStyle:z,size:[E,S],margin:T,barPadding:y,enableHover:O,showAxes:i.showAxes,oLabel:P,rLabel:_,rFormat:h,showGrid:M,oSort:m},R&&{legend:R}),L&&{title:L}),r&&{className:r}),{tooltipContent:p?De(p):I}),(w||A)&&{customHoverBehavior:H}),v&&v.length>0&&{annotations:v}),b);return e.createElement(de,Object.assign({},G))}function Ze(n){var o,i;const a=Ne(n.mode,{width:null!==(o=n.width)&&void 0!==o?o:400,height:null!==(i=n.height)&&void 0!==i?i:400,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title}),{data:s,margin:r,className:l,categoryAccessor:c="category",valueAccessor:u="value",colorBy:h,colorScheme:d="category10",startAngle:g=0,tooltip:m,annotations:f,frameProps:y={},selection:p,linkedHover:v,onObservation:b,chartId:x}=n,w=a.width,A=a.height,k=a.enableHover,E=a.showLegend,S=a.title,O=s||[],M=h||c,{activeSelectionHook:j,customHoverBehavior:L}=Le({selection:p,linkedHover:v,fallbackFields:M?["string"==typeof M?M:""]:[],unwrapData:!0,onObservation:b,chartType:"PieChart",chartId:x}),P=Me(O,M,d),_=t(()=>e=>M?{fill:fe(e,M,P)}:{fill:Oe},[M,P]),N=t(()=>ye(_,j,p),[_,j,p]),{legend:B,margin:H}=Pe({data:O,colorBy:M,colorScale:P,showLegend:E,userMargin:r,defaults:a.marginDefaults}),$=t(()=>Re({categoryAccessor:c,valueAccessor:u,groupAccessor:h&&h!==c?h:void 0,groupLabel:"string"==typeof h?h:"group",pieData:!0}),[c,u,h]),D=Ie({componentName:"PieChart",data:O,accessors:{categoryAccessor:c,valueAccessor:u}});if(D)return e.createElement(Te,{componentName:"PieChart",message:D,width:w,height:A});const C=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"pie",data:O,oAccessor:c,rAccessor:u,projection:"radial",pieceStyle:N,startAngle:g,size:[w,A],margin:H,enableHover:k,showAxes:!1},B&&{legend:B}),S&&{title:S}),l&&{className:l}),{tooltipContent:m?De(m):$}),(v||b)&&{customHoverBehavior:L}),f&&f.length>0&&{annotations:f}),y);return e.createElement(de,Object.assign({},C))}function Ue(n){var o,i;const a=Ne(n.mode,{width:null!==(o=n.width)&&void 0!==o?o:400,height:null!==(i=n.height)&&void 0!==i?i:400,enableHover:n.enableHover,showLegend:n.showLegend,title:n.title,linkedHover:n.linkedHover}),{data:s,margin:r,className:l,categoryAccessor:c="category",valueAccessor:u="value",innerRadius:h=60,centerContent:d,colorBy:g,colorScheme:m="category10",startAngle:f=0,tooltip:y,annotations:p,frameProps:v={},selection:b,linkedHover:x,onObservation:w,chartId:A}=n,k=a.width,E=a.height,S=a.enableHover,O=a.showLegend,M=a.title,j=s||[],L=g||c,{activeSelectionHook:P,customHoverBehavior:_}=Le({selection:b,linkedHover:x,fallbackFields:L?["string"==typeof L?L:""]:[],unwrapData:!0,onObservation:w,chartType:"DonutChart",chartId:A}),N=Me(j,L,m),B=t(()=>e=>L?{fill:fe(e,L,N)}:{fill:Oe},[L,N]),H=t(()=>ye(B,P,b),[B,P,b]),{legend:$,margin:D}=Pe({data:j,colorBy:L,colorScale:N,showLegend:O,userMargin:r,defaults:a.marginDefaults}),C=t(()=>Re({categoryAccessor:c,valueAccessor:u,groupAccessor:g&&g!==c?g:void 0,groupLabel:"string"==typeof g?g:"group",pieData:!0}),[c,u,g]),z=Ie({componentName:"DonutChart",data:j,accessors:{categoryAccessor:c,valueAccessor:u}});if(z)return e.createElement(Te,{componentName:"DonutChart",message:z,width:k,height:E});const R=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({chartType:"donut",data:j,oAccessor:c,rAccessor:u,projection:"radial",pieceStyle:H,innerRadius:h,startAngle:f,centerContent:d,size:[k,E],margin:D,enableHover:S,showAxes:!1},$&&{legend:$}),M&&{title:M}),l&&{className:l}),{tooltipContent:y?De(y):C}),(x||w)&&{customHoverBehavior:_}),p&&p.length>0&&{annotations:p}),v);return e.createElement(de,Object.assign({},R))}We.displayName="BarChart",Ge.displayName="StackedBarChart",Fe.displayName="GroupedBarChart",qe.displayName="SwarmPlot",Ve.displayName="BoxPlot",Xe.displayName="Histogram",Ye.displayName="ViolinPlot",Qe.displayName="DotPlot",Ze.displayName="PieChart",Ue.displayName="DonutChart";export{We as BarChart,Ve as BoxPlot,Ue as DonutChart,Qe as DotPlot,Fe as GroupedBarChart,Xe as Histogram,Ze as PieChart,Ge as StackedBarChart,de as StreamOrdinalFrame,qe as SwarmPlot,Ye as ViolinPlot};
|
package/dist/realtime/types.d.ts
CHANGED
|
@@ -9,13 +9,27 @@ export interface LineStyle {
|
|
|
9
9
|
strokeDasharray?: string;
|
|
10
10
|
}
|
|
11
11
|
export interface AnnotationContext {
|
|
12
|
-
scales
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
scales?: {
|
|
13
|
+
x?: ScaleLinear<number, number>;
|
|
14
|
+
y?: ScaleLinear<number, number>;
|
|
15
|
+
time?: ScaleLinear<number, number>;
|
|
16
|
+
value?: ScaleLinear<number, number>;
|
|
15
17
|
} | null;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
/** @deprecated Use scales.x / scales.y instead */
|
|
19
|
+
timeAxis?: "x" | "y";
|
|
20
|
+
xAccessor?: string;
|
|
21
|
+
yAccessor?: string;
|
|
22
|
+
width?: number;
|
|
23
|
+
height?: number;
|
|
24
|
+
data?: Record<string, any>[];
|
|
25
|
+
frameType?: "xy" | "ordinal" | "network";
|
|
26
|
+
/** Point scene nodes for point-anchored annotations */
|
|
27
|
+
pointNodes?: {
|
|
28
|
+
pointId?: string;
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
r: number;
|
|
32
|
+
}[];
|
|
19
33
|
}
|
|
20
34
|
export interface CrosshairStyle {
|
|
21
35
|
stroke?: string;
|