semiotic 2.0.3 → 3.0.0-beta.1
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 +530 -0
- package/README.md +190 -37
- package/ai/cli.js +48 -0
- package/ai/dist/ai/componentRegistry.js +45 -0
- package/ai/dist/ai/mcp-server.js +99 -0
- package/ai/dist/ai/renderHOCToSVG.js +77 -0
- package/ai/dist/src/components/Annotation.js +358 -0
- package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +369 -0
- package/ai/dist/src/components/Axis/Axis.js +373 -0
- package/ai/dist/src/components/Axis/axisTitle.js +14 -0
- package/ai/dist/src/components/Axis/index.js +7 -0
- package/ai/dist/src/components/Axis/summaryGraphic.js +37 -0
- package/ai/dist/src/components/Brush.js +84 -0
- package/ai/dist/src/components/DividedLine.js +65 -0
- package/ai/dist/src/components/FacetController.js +259 -0
- package/ai/dist/src/components/Frame.js +139 -0
- package/ai/dist/src/components/InteractionLayer.js +328 -0
- package/ai/dist/src/components/Legend.js +140 -0
- package/ai/dist/src/components/MiniMap.js +75 -0
- package/ai/dist/src/components/MinimapXYFrame.js +99 -0
- package/ai/dist/src/components/NetworkFrame.js +335 -0
- package/ai/dist/src/components/OrdinalFrame.js +437 -0
- package/ai/dist/src/components/ResponsiveFrame.js +68 -0
- package/ai/dist/src/components/ResponsiveMinimapXYFrame.js +11 -0
- package/ai/dist/src/components/ResponsiveNetworkFrame.js +11 -0
- package/ai/dist/src/components/ResponsiveOrdinalFrame.js +11 -0
- package/ai/dist/src/components/ResponsiveXYFrame.js +10 -0
- package/ai/dist/src/components/SparkFrame.js +113 -0
- package/ai/dist/src/components/SparkNetworkFrame.js +11 -0
- package/ai/dist/src/components/SparkOrdinalFrame.js +11 -0
- package/ai/dist/src/components/SparkXYFrame.js +11 -0
- package/ai/dist/src/components/Tooltip/Tooltip.js +304 -0
- package/ai/dist/src/components/TooltipPositioner/index.js +132 -0
- package/ai/dist/src/components/VisualizationLayer.js +395 -0
- package/ai/dist/src/components/XYFrame.js +524 -0
- package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +73 -0
- package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +254 -0
- package/ai/dist/src/components/annotationRules/baseRules.js +150 -0
- package/ai/dist/src/components/annotationRules/networkframeRules.js +198 -0
- package/ai/dist/src/components/annotationRules/orframeRules.js +695 -0
- package/ai/dist/src/components/annotationRules/xyframeRules.js +299 -0
- package/ai/dist/src/components/batchWork.js +35 -0
- package/ai/dist/src/components/charts/index.js +96 -0
- package/ai/dist/src/components/charts/network/ChordDiagram.js +245 -0
- package/ai/dist/src/components/charts/network/CirclePack.js +177 -0
- package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +248 -0
- package/ai/dist/src/components/charts/network/SankeyDiagram.js +305 -0
- package/ai/dist/src/components/charts/network/TreeDiagram.js +268 -0
- package/ai/dist/src/components/charts/network/Treemap.js +177 -0
- package/ai/dist/src/components/charts/ordinal/BarChart.js +191 -0
- package/ai/dist/src/components/charts/ordinal/BoxPlot.js +235 -0
- package/ai/dist/src/components/charts/ordinal/DonutChart.js +178 -0
- package/ai/dist/src/components/charts/ordinal/DotPlot.js +194 -0
- package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +194 -0
- package/ai/dist/src/components/charts/ordinal/PieChart.js +155 -0
- package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +213 -0
- package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +219 -0
- package/ai/dist/src/components/charts/realtime/RealtimeBarChart.js +91 -0
- package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +73 -0
- package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +85 -0
- package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +86 -0
- package/ai/dist/src/components/charts/shared/ChartError.js +72 -0
- package/ai/dist/src/components/charts/shared/colorUtils.js +138 -0
- package/ai/dist/src/components/charts/shared/formatUtils.js +176 -0
- package/ai/dist/src/components/charts/shared/hooks.js +49 -0
- package/ai/dist/src/components/charts/shared/legendUtils.js +57 -0
- package/ai/dist/src/components/charts/shared/types.js +2 -0
- package/ai/dist/src/components/charts/shared/validateChartData.js +82 -0
- package/ai/dist/src/components/charts/shared/validateProps.js +640 -0
- package/ai/dist/src/components/charts/xy/AreaChart.js +220 -0
- package/ai/dist/src/components/charts/xy/BubbleChart.js +222 -0
- package/ai/dist/src/components/charts/xy/Heatmap.js +230 -0
- package/ai/dist/src/components/charts/xy/LineChart.js +302 -0
- package/ai/dist/src/components/charts/xy/Scatterplot.js +136 -0
- package/ai/dist/src/components/charts/xy/StackedAreaChart.js +220 -0
- package/ai/dist/src/components/constants/coordinateNames.js +11 -0
- package/ai/dist/src/components/constants/frame_props.js +251 -0
- package/ai/dist/src/components/constants/jsx.js +71 -0
- package/ai/dist/src/components/data/dataFunctions.js +473 -0
- package/ai/dist/src/components/data/multiAccessorUtils.js +14 -0
- package/ai/dist/src/components/data/networkPipelineCache.js +43 -0
- package/ai/dist/src/components/data/ordinalPipelineCache.js +53 -0
- package/ai/dist/src/components/data/unflowedFunctions.js +5 -0
- package/ai/dist/src/components/data/xyPipelineCache.js +49 -0
- package/ai/dist/src/components/generic_utilities/functions.js +5 -0
- package/ai/dist/src/components/index.js +145 -0
- package/ai/dist/src/components/interactionLayerBehavior/InteractionCanvas.js +128 -0
- package/ai/dist/src/components/processing/InteractionItems.js +223 -0
- package/ai/dist/src/components/processing/hierarchyUtils.js +104 -0
- package/ai/dist/src/components/processing/layouts/chordLayout.js +58 -0
- package/ai/dist/src/components/processing/layouts/forceLayout.js +142 -0
- package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +31 -0
- package/ai/dist/src/components/processing/layouts/index.js +32 -0
- package/ai/dist/src/components/processing/layouts/sankeyLayout.js +96 -0
- package/ai/dist/src/components/processing/layouts/simpleLayouts.js +34 -0
- package/ai/dist/src/components/processing/layouts/types.js +2 -0
- package/ai/dist/src/components/processing/network.js +771 -0
- package/ai/dist/src/components/processing/networkDefaults.js +39 -0
- package/ai/dist/src/components/processing/networkLayoutHelpers.js +98 -0
- package/ai/dist/src/components/processing/ordinal.js +889 -0
- package/ai/dist/src/components/processing/ordinalConstants.js +23 -0
- package/ai/dist/src/components/processing/ordinalOverlays.js +88 -0
- package/ai/dist/src/components/processing/ordinalRenderPipeline.js +196 -0
- package/ai/dist/src/components/processing/xyDrawing.js +484 -0
- package/ai/dist/src/components/realtime/BinAccumulator.js +36 -0
- package/ai/dist/src/components/realtime/IncrementalExtent.js +55 -0
- package/ai/dist/src/components/realtime/RealtimeFrame.js +710 -0
- package/ai/dist/src/components/realtime/RingBuffer.js +104 -0
- package/ai/dist/src/components/realtime/renderers/barRenderer.js +133 -0
- package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +7 -0
- package/ai/dist/src/components/realtime/renderers/lineRenderer.js +164 -0
- package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +91 -0
- package/ai/dist/src/components/realtime/renderers/types.js +2 -0
- package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +163 -0
- package/ai/dist/src/components/realtime/types.js +2 -0
- package/ai/dist/src/components/semiotic-ai.js +66 -0
- package/ai/dist/src/components/semiotic-network.js +30 -0
- package/ai/dist/src/components/semiotic-ordinal.js +28 -0
- package/ai/dist/src/components/semiotic-realtime.js +37 -0
- package/ai/dist/src/components/semiotic-server.js +8 -0
- package/ai/dist/src/components/semiotic-xy.js +41 -0
- package/ai/dist/src/components/semiotic.js +101 -0
- package/ai/dist/src/components/server/renderToStaticSVG.js +392 -0
- package/ai/dist/src/components/store/TooltipStore.js +13 -0
- package/ai/dist/src/components/store/createStore.js +77 -0
- package/ai/dist/src/components/svg/SvgHelper.js +308 -0
- package/ai/dist/src/components/svg/areaDrawing.js +312 -0
- package/ai/dist/src/components/svg/boxplotRenderer.js +441 -0
- package/ai/dist/src/components/svg/bucketizedRenderer.js +677 -0
- package/ai/dist/src/components/svg/ckbinsRenderer.js +92 -0
- package/ai/dist/src/components/svg/ckmeans.js +238 -0
- package/ai/dist/src/components/svg/contourLayout.js +73 -0
- package/ai/dist/src/components/svg/contourRenderer.js +53 -0
- package/ai/dist/src/components/svg/edgeGenerators.js +181 -0
- package/ai/dist/src/components/svg/frameFunctions.js +579 -0
- package/ai/dist/src/components/svg/graphAlgorithms.js +138 -0
- package/ai/dist/src/components/svg/hexbinLayout.js +163 -0
- package/ai/dist/src/components/svg/lineDrawing.js +427 -0
- package/ai/dist/src/components/svg/networkDrawing.js +207 -0
- package/ai/dist/src/components/svg/nodeGenerators.js +131 -0
- package/ai/dist/src/components/svg/pieceDrawing.js +110 -0
- package/ai/dist/src/components/svg/pieceLayouts.js +588 -0
- package/ai/dist/src/components/svg/sankeyLinks.js +143 -0
- package/ai/dist/src/components/svg/summaryAxis.js +48 -0
- package/ai/dist/src/components/svg/summaryLayouts.js +202 -0
- package/ai/dist/src/components/svg/swarmLayout.js +128 -0
- package/ai/dist/src/components/types/annotationTypes.js +2 -0
- package/ai/dist/src/components/types/canvasTypes.js +2 -0
- package/ai/dist/src/components/types/generalTypes.js +2 -0
- package/ai/dist/src/components/types/interactionTypes.js +2 -0
- package/ai/dist/src/components/types/legendTypes.js +2 -0
- package/ai/dist/src/components/types/networkTypes.js +2 -0
- package/ai/dist/src/components/types/ordinalTypes.js +2 -0
- package/ai/dist/src/components/types/xyTypes.js +2 -0
- package/ai/dist/src/components/useBoundingRect.js +24 -0
- package/ai/dist/src/components/useDerivedStateFromProps.js +25 -0
- package/ai/dist/src/components/useLegacyUnmountCallback.js +21 -0
- package/ai/dist/src/components/visualizationLayerBehavior/axis.js +249 -0
- package/ai/dist/src/components/visualizationLayerBehavior/general.js +435 -0
- package/ai/dist/src/setupTests.js +4 -0
- package/ai/examples.md +394 -0
- package/ai/schema.json +1178 -0
- package/ai/system-prompt.md +38 -0
- package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -1
- package/dist/Axis/axisTitle.d.ts +3 -3
- package/dist/Axis/summaryGraphic.d.ts +1 -1
- package/dist/FacetController.d.ts +1 -1
- package/dist/MinimapXYFrame.d.ts +2 -2
- package/dist/NetworkFrame.d.ts +5 -1
- package/dist/OrdinalFrame.d.ts +5 -1
- package/dist/ResponsiveFrame.d.ts +2 -2
- package/dist/ResponsiveMinimapXYFrame.d.ts +3 -6
- package/dist/ResponsiveNetworkFrame.d.ts +3 -6
- package/dist/ResponsiveOrdinalFrame.d.ts +3 -6
- package/dist/ResponsiveXYFrame.d.ts +3 -6
- package/dist/SparkFrame.d.ts +1 -1
- package/dist/SparkNetworkFrame.d.ts +3 -3
- package/dist/SparkOrdinalFrame.d.ts +3 -3
- package/dist/SparkXYFrame.d.ts +3 -3
- package/dist/Tooltip/Tooltip.d.ts +141 -0
- package/dist/TooltipPositioner/index.d.ts +1 -1
- package/dist/VisualizationLayer.d.ts +3 -3
- package/dist/XYFrame.d.ts +5 -1
- package/dist/annotationLayerBehavior/annotationHandling.d.ts +2 -2
- package/dist/annotationRules/networkframeRules.d.ts +2 -2
- package/dist/annotationRules/orframeRules.d.ts +2 -4
- package/dist/annotationRules/xyframeRules.d.ts +2 -2
- package/dist/batchWork.d.ts +1 -1
- package/dist/charts/index.d.ts +62 -0
- package/dist/charts/network/ChordDiagram.d.ts +181 -0
- package/dist/charts/network/CirclePack.d.ts +103 -0
- package/dist/charts/network/ForceDirectedGraph.d.ts +192 -0
- package/dist/charts/network/SankeyDiagram.d.ts +195 -0
- package/dist/charts/network/TreeDiagram.d.ts +200 -0
- package/dist/charts/network/Treemap.d.ts +98 -0
- package/dist/charts/ordinal/BarChart.d.ts +119 -0
- package/dist/charts/ordinal/BoxPlot.d.ts +125 -0
- package/dist/charts/ordinal/DonutChart.d.ts +95 -0
- package/dist/charts/ordinal/DotPlot.d.ts +128 -0
- package/dist/charts/ordinal/GroupedBarChart.d.ts +113 -0
- package/dist/charts/ordinal/PieChart.d.ts +83 -0
- package/dist/charts/ordinal/StackedBarChart.d.ts +119 -0
- package/dist/charts/ordinal/SwarmPlot.d.ts +137 -0
- package/dist/charts/realtime/RealtimeBarChart.d.ts +102 -0
- package/dist/charts/realtime/RealtimeLineChart.d.ts +78 -0
- package/dist/charts/realtime/RealtimeSwarmChart.d.ts +88 -0
- package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +85 -0
- package/dist/charts/shared/ChartError.d.ts +19 -0
- package/dist/charts/shared/colorUtils.d.ts +62 -0
- package/dist/charts/shared/formatUtils.d.ts +82 -0
- package/dist/charts/shared/hooks.d.ts +20 -0
- package/dist/charts/shared/legendUtils.d.ts +32 -0
- package/dist/charts/shared/types.d.ts +58 -0
- package/dist/charts/shared/validateChartData.d.ts +41 -0
- package/dist/charts/shared/validateProps.d.ts +18 -0
- package/dist/charts/xy/AreaChart.d.ts +127 -0
- package/dist/charts/xy/BubbleChart.d.ts +157 -0
- package/dist/charts/xy/Heatmap.d.ts +153 -0
- package/dist/charts/xy/LineChart.d.ts +193 -0
- package/dist/charts/xy/Scatterplot.d.ts +50 -0
- package/dist/charts/xy/StackedAreaChart.d.ts +131 -0
- package/dist/constants/frame_props.d.ts +9 -0
- package/dist/constants/jsx.d.ts +2 -2
- package/dist/data/dataFunctions.d.ts +11 -12
- package/dist/data/networkPipelineCache.d.ts +27 -0
- package/dist/data/ordinalPipelineCache.d.ts +33 -0
- package/dist/data/xyPipelineCache.d.ts +35 -0
- package/dist/index.d.ts +70 -62
- package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +1 -1
- package/dist/network.js +8520 -0
- package/dist/network.js.map +1 -0
- package/dist/network.min.js +1 -0
- package/dist/network.module.js +8484 -0
- package/dist/network.module.js.map +1 -0
- package/dist/network.module.min.js +1 -0
- package/dist/ordinal.js +9276 -0
- package/dist/ordinal.js.map +1 -0
- package/dist/ordinal.min.js +1 -0
- package/dist/ordinal.module.js +9242 -0
- package/dist/ordinal.module.js.map +1 -0
- package/dist/ordinal.module.min.js +1 -0
- package/dist/processing/InteractionItems.d.ts +5 -4
- package/dist/processing/hierarchyUtils.d.ts +16 -0
- package/dist/processing/layouts/chordLayout.d.ts +2 -0
- package/dist/processing/layouts/forceLayout.d.ts +3 -0
- package/dist/processing/layouts/hierarchyLayout.d.ts +10 -0
- package/dist/processing/layouts/index.d.ts +8 -0
- package/dist/processing/layouts/sankeyLayout.d.ts +8 -0
- package/dist/processing/layouts/simpleLayouts.d.ts +7 -0
- package/dist/processing/layouts/types.d.ts +17 -0
- package/dist/processing/network.d.ts +25 -28
- package/dist/processing/networkDefaults.d.ts +36 -0
- package/dist/processing/networkLayoutHelpers.d.ts +54 -0
- package/dist/processing/ordinal.d.ts +43 -43
- package/dist/processing/ordinalConstants.d.ts +33 -0
- package/dist/processing/ordinalOverlays.d.ts +33 -0
- package/dist/processing/ordinalRenderPipeline.d.ts +148 -0
- package/dist/processing/xyDrawing.d.ts +46 -41
- package/dist/realtime/BinAccumulator.d.ts +8 -0
- package/dist/realtime/IncrementalExtent.d.ts +13 -0
- package/dist/realtime/RealtimeFrame.d.ts +4 -0
- package/dist/realtime/RingBuffer.d.ts +19 -0
- package/dist/realtime/renderers/barRenderer.d.ts +2 -0
- package/dist/realtime/renderers/candlestickRenderer.d.ts +2 -0
- package/dist/realtime/renderers/lineRenderer.d.ts +2 -0
- package/dist/realtime/renderers/swarmRenderer.d.ts +2 -0
- package/dist/realtime/renderers/types.d.ts +9 -0
- package/dist/realtime/renderers/waterfallRenderer.d.ts +3 -0
- package/dist/realtime/types.d.ts +113 -0
- package/dist/realtime.js +1598 -0
- package/dist/realtime.js.map +1 -0
- package/dist/realtime.min.js +1 -0
- package/dist/realtime.module.js +1566 -0
- package/dist/realtime.module.js.map +1 -0
- package/dist/realtime.module.min.js +1 -0
- package/dist/semiotic-ai.d.ts +28 -0
- package/dist/semiotic-ai.js +18722 -0
- package/dist/semiotic-ai.js.map +1 -0
- package/dist/semiotic-ai.min.js +1 -0
- package/dist/semiotic-ai.module.js +18668 -0
- package/dist/semiotic-ai.module.js.map +1 -0
- package/dist/semiotic-ai.module.min.js +1 -0
- package/dist/semiotic-network.d.ts +19 -0
- package/dist/semiotic-ordinal.d.ts +18 -0
- package/dist/semiotic-realtime.d.ts +23 -0
- package/dist/semiotic-server.d.ts +1 -0
- package/dist/semiotic-xy.d.ts +24 -0
- package/dist/semiotic.d.ts +19 -3
- package/dist/semiotic.js +18707 -12983
- package/dist/semiotic.js.map +1 -0
- package/dist/semiotic.min.js +1 -0
- package/dist/semiotic.module.js +18651 -12953
- package/dist/semiotic.module.js.map +1 -0
- package/dist/semiotic.module.min.js +1 -0
- package/dist/server/renderToStaticSVG.d.ts +9 -0
- package/dist/server.js +8360 -0
- package/dist/server.js.map +1 -0
- package/dist/server.min.js +1 -0
- package/dist/server.module.js +8331 -0
- package/dist/server.module.js.map +1 -0
- package/dist/server.module.min.js +1 -0
- package/dist/svg/SvgHelper.d.ts +1 -5
- package/dist/svg/areaDrawing.d.ts +3 -13
- package/dist/svg/boxplotRenderer.d.ts +15 -0
- package/dist/svg/bucketizedRenderer.d.ts +16 -0
- package/dist/svg/ckbinsRenderer.d.ts +20 -0
- package/dist/svg/contourLayout.d.ts +6 -0
- package/dist/svg/contourRenderer.d.ts +12 -0
- package/dist/svg/edgeGenerators.d.ts +51 -0
- package/dist/svg/frameFunctions.d.ts +17 -28
- package/dist/svg/graphAlgorithms.d.ts +14 -0
- package/dist/svg/hexbinLayout.d.ts +7 -0
- package/dist/svg/lineDrawing.d.ts +8 -8
- package/dist/svg/networkDrawing.d.ts +5 -123
- package/dist/svg/nodeGenerators.d.ts +58 -0
- package/dist/svg/pieceDrawing.d.ts +1 -2
- package/dist/svg/pieceLayouts.d.ts +5 -23
- package/dist/svg/sankeyLinks.d.ts +3 -0
- package/dist/svg/summaryAxis.d.ts +6 -0
- package/dist/svg/summaryLayouts.d.ts +36 -57
- package/dist/svg/swarmLayout.d.ts +13 -0
- package/dist/types/annotationTypes.d.ts +13 -18
- package/dist/types/canvasTypes.d.ts +1 -1
- package/dist/types/generalTypes.d.ts +37 -35
- package/dist/types/interactionTypes.d.ts +7 -9
- package/dist/types/legendTypes.d.ts +2 -2
- package/dist/types/networkTypes.d.ts +40 -30
- package/dist/types/ordinalTypes.d.ts +27 -18
- package/dist/types/xyTypes.d.ts +13 -16
- package/dist/useLegacyUnmountCallback.d.ts +2 -1
- package/dist/visualizationLayerBehavior/axis.d.ts +3 -5
- package/dist/visualizationLayerBehavior/general.d.ts +8 -12
- package/dist/xy.js +7944 -0
- package/dist/xy.js.map +1 -0
- package/dist/xy.min.js +1 -0
- package/dist/xy.module.js +7903 -0
- package/dist/xy.module.js.map +1 -0
- package/dist/xy.module.min.js +1 -0
- package/package.json +116 -66
- package/dist/AnnotationLayer/helpers.d.ts +0 -6
- package/dist/AnnotationLayer/index.d.ts +0 -2
- package/dist/Mark/Mark.d.ts +0 -3
- package/dist/Mark/Mark.types.d.ts +0 -10
- package/dist/Mark/constants/markTransition.d.ts +0 -10
- package/dist/Mark/markBehavior/drawing.d.ts +0 -13
- package/dist/SpanOrDiv.d.ts +0 -10
- package/dist/components/Annotation.d.ts +0 -3
- package/dist/components/AnnotationLayer/AnnotationLayer.d.ts +0 -26
- package/dist/components/Axis/Axis.d.ts +0 -7
- package/dist/components/Axis/axisTitle.d.ts +0 -10
- package/dist/components/Axis/index.d.ts +0 -2
- package/dist/components/Axis/summaryGraphic.d.ts +0 -17
- package/dist/components/Brush.d.ts +0 -12
- package/dist/components/DividedLine.d.ts +0 -16
- package/dist/components/FacetController.d.ts +0 -12
- package/dist/components/Frame.d.ts +0 -2
- package/dist/components/InteractionLayer.d.ts +0 -3
- package/dist/components/Legend.d.ts +0 -3
- package/dist/components/Mark/Mark.d.ts +0 -3
- package/dist/components/Mark/Mark.types.d.ts +0 -10
- package/dist/components/Mark/markBehavior/drawing.d.ts +0 -13
- package/dist/components/MiniMap.d.ts +0 -14
- package/dist/components/MinimapXYFrame.d.ts +0 -10
- package/dist/components/NetworkFrame.d.ts +0 -4
- package/dist/components/OrdinalFrame.d.ts +0 -4
- package/dist/components/ResponsiveFrame.d.ts +0 -22
- package/dist/components/ResponsiveMinimapXYFrame.d.ts +0 -6
- package/dist/components/ResponsiveNetworkFrame.d.ts +0 -6
- package/dist/components/ResponsiveOrdinalFrame.d.ts +0 -6
- package/dist/components/ResponsiveXYFrame.d.ts +0 -6
- package/dist/components/SpanOrDiv.d.ts +0 -10
- package/dist/components/SparkFrame.d.ts +0 -14
- package/dist/components/SparkNetworkFrame.d.ts +0 -5
- package/dist/components/SparkOrdinalFrame.d.ts +0 -5
- package/dist/components/SparkXYFrame.d.ts +0 -5
- package/dist/components/TooltipPositioner/index.d.ts +0 -7
- package/dist/components/VisualizationLayer.d.ts +0 -33
- package/dist/components/XYFrame.d.ts +0 -4
- package/dist/components/annotationLayerBehavior/annotationHandling.d.ts +0 -19
- package/dist/components/annotationLayerBehavior/d3labeler.d.ts +0 -9
- package/dist/components/annotationRules/baseRules.d.ts +0 -25
- package/dist/components/annotationRules/networkframeRules.d.ts +0 -48
- package/dist/components/annotationRules/orframeRules.d.ts +0 -105
- package/dist/components/annotationRules/xyframeRules.d.ts +0 -117
- package/dist/components/batchWork.d.ts +0 -6
- package/dist/components/constants/coordinateNames.d.ts +0 -8
- package/dist/components/constants/frame_props.d.ts +0 -4
- package/dist/components/constants/jsx.d.ts +0 -19
- package/dist/components/data/dataFunctions.d.ts +0 -46
- package/dist/components/data/multiAccessorUtils.d.ts +0 -1
- package/dist/components/data/unflowedFunctions.d.ts +0 -1
- package/dist/components/generic_utilities/functions.d.ts +0 -1
- package/dist/components/index.d.ts +0 -125
- package/dist/components/interactionLayerBehavior/InteractionCanvas.d.ts +0 -20
- package/dist/components/processing/InteractionItems.d.ts +0 -12
- package/dist/components/processing/network.d.ts +0 -114
- package/dist/components/processing/ordinal.d.ts +0 -102
- package/dist/components/processing/xyDrawing.d.ts +0 -135
- package/dist/components/semiotic.d.ts +0 -35
- package/dist/components/store/TooltipStore.d.ts +0 -2
- package/dist/components/store/createStore.d.ts +0 -1
- package/dist/components/svg/SvgHelper.d.ts +0 -37
- package/dist/components/svg/areaDrawing.d.ts +0 -31
- package/dist/components/svg/ckmeans.d.ts +0 -69
- package/dist/components/svg/frameFunctions.d.ts +0 -119
- package/dist/components/svg/lineDrawing.d.ts +0 -99
- package/dist/components/svg/networkDrawing.d.ts +0 -134
- package/dist/components/svg/pieceDrawing.d.ts +0 -13
- package/dist/components/svg/pieceLayouts.d.ts +0 -71
- package/dist/components/svg/summaryLayouts.d.ts +0 -74
- package/dist/components/types/annotationTypes.d.ts +0 -140
- package/dist/components/types/canvasTypes.d.ts +0 -9
- package/dist/components/types/generalTypes.d.ts +0 -236
- package/dist/components/types/interactionTypes.d.ts +0 -74
- package/dist/components/types/legendTypes.d.ts +0 -20
- package/dist/components/types/networkTypes.d.ts +0 -165
- package/dist/components/types/ordinalTypes.d.ts +0 -103
- package/dist/components/types/xyTypes.d.ts +0 -118
- package/dist/components/useBoundingRect.d.ts +0 -2
- package/dist/components/useDerivedStateFromProps.d.ts +0 -1
- package/dist/components/useLegacyUnmountCallback.d.ts +0 -1
- package/dist/components/visualizationLayerBehavior/axis.d.ts +0 -38
- package/dist/components/visualizationLayerBehavior/general.d.ts +0 -84
- package/dist/setupTests.d.ts +0 -1
package/dist/xy.min.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("react"),t=require("d3-scale"),a=require("labella"),n=require("d3-brush"),o=require("d3-selection"),r=require("d3-array"),s=require("d3-delaunay"),i=require("d3-shape"),l=require("d3-hierarchy"),c=require("d3-polygon"),d=require("polygon-offset"),u=require("regression"),p=require("d3-contour"),m=require("d3-hexbin"),y=require("memoize-one");function h(e){return e&&e.__esModule?e:{default:e}}function f(e){if(e&&e.__esModule)return e;const t=Object.create(null);if(e)for(const a in e)if("default"!==a){const n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}return t.default=e,Object.freeze(t)}const x=f(e),g=h(a),v=h(d),b=h(u),k=h(y),j=(e,t,a,n)=>{const o=(e.note.label||e.note.title).length;return[Math.min(e.note.wrap||120,o*t)+2*n,Math.ceil(o*t/120)*a+2*n]};const E={fill:e=>x.createElement("rect",{style:e,width:20,height:20}),line:e=>x.createElement("line",{style:e,x1:0,y1:0,x2:20,y2:20})};function S(e,t,a,n){let o;return o="function"==typeof a?a(e):(0,E[a])(n(e,t)),o}function M(e){const{legendGroups:t,customClickBehavior:a,title:n="Legend",width:o=100,height:r=20,orientation:s="vertical"}=e,i="vertical"===s?(({legendGroups:e,width:t,customClickBehavior:a})=>{let n=30;const o=[];return e.forEach((e,r)=>{n+=5,o.push(x.createElement("line",{key:"legend-top-line legend-symbol-"+r,stroke:"gray",x1:0,y1:n,x2:t,y2:n})),n+=10,e.label&&(n+=20,o.push(x.createElement("text",{key:"legend-text-"+r,y:n,className:"legend-group-label"},e.label)),n+=10),o.push(x.createElement("g",{key:"legend-group-"+r,className:"legend-item",transform:`translate(0,${n})`},((e,t)=>{const{type:a="fill",styleFn:n,items:o}=e,r=[];let s=0;return o.forEach((e,o)=>{const i=S(e,o,a,n);r.push(x.createElement("g",{key:"legend-item-"+o,transform:`translate(0,${s})`,onClick:t?()=>t(e):void 0,style:{cursor:t?"pointer":"default"}},i,x.createElement("text",{y:15,x:30},e.label))),s+=25}),r})(e,a))),n+=25*e.items.length+10}),o})({legendGroups:t,width:o,customClickBehavior:a}):(({legendGroups:e,title:t,height:a,customClickBehavior:n})=>{let o=0;const r=[],s=!1===t?10:40;return e.forEach((t,i)=>{t.label&&(r.push(x.createElement("text",{key:"legend-text-"+i,transform:`translate(${o},${s}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},t.label)),o+=20);const l=((e,t)=>{const{type:a="fill",styleFn:n,items:o}=e,r=[];let s=0;return o.forEach((e,o)=>{const i=S(e,o,a,n);r.push(x.createElement("g",{key:"legend-item-"+o,transform:`translate(${s},0)`,onClick:t?()=>t(e):void 0,style:{cursor:t?"pointer":"default"}},i,x.createElement("text",{y:15,x:25},e.label))),s+=35,s+=8*e.label.length}),{items:r,offset:s}})(t,n);r.push(x.createElement("g",{key:"legend-group-"+i,className:"legend-item",transform:`translate(${o},${s})`},l.items)),o+=l.offset+5,e[i+1]&&r.push(x.createElement("line",{key:"legend-top-line legend-symbol-"+i,stroke:"gray",x1:o,y1:s-10,x2:o,y2:a+s+10})),o+=15}),x.createElement("g",null,!1!==t&&x.createElement("line",{x1:0,x2:o+10,y1:s-10,y2:s-10,stroke:"gray",className:"title-neatline"}),r)})({legendGroups:t,title:n,height:r,customClickBehavior:a});return x.createElement("g",null,void 0!==n&&x.createElement("text",{className:"legend-title",y:20,x:"horizontal"===s?0:o/2,textAnchor:"horizontal"===s?"start":"middle"},n),i)}function A(e,t=120,a=8){if(!e)return[];const n=Math.max(1,Math.floor(t/a)),o=e.split(/\s+/),r=[];let s="";for(const e of o)s&&s.length+1+e.length>n?(r.push(s),s=e):s=s?`${s} ${e}`:e;return s&&r.push(s),r}function O(e,t,a,n){return"curly"===e?n?`M0,0 C${.6*a},0 ${.4*a},${t/2} ${a},${t/2} C${.4*a},${t/2} ${.6*a},${t} 0,${t}`:`M0,0 C0,${.6*a} ${t/2},${.4*a} ${t/2},${a} C${t/2},${.4*a} ${t},${.6*a} ${t},0`:n?`M0,0 L${a},0 L${a},${t} L0,${t}`:`M0,0 L0,${a} L${t},${a} L${t},0`}function $(e){const{x:t=0,y:a=0,dx:n,dy:o,nx:r,ny:s,note:i,connector:l,subject:c,type:d,color:u,className:p,disable:m,events:y={},"data-testid":h}=e,f=new Set(Array.isArray(m)?m:[]);let g=n||0,v=o||0;null!=r&&(g=r-t),null!=s&&(v=s-a);const b="string"==typeof d?d:"label";if("bracket"===b&&c&&0===g&&0===v)if(void 0!==c.width){g=c.width/2;const e=c.depth||30;v=e+(0>e?-5:5)}else if(void 0!==c.height){const e=c.depth||30;g=e+(0>e?-5:5),v=c.height/2}return x.createElement("g",Object.assign({className:("annotation "+(p||"")).trim(),transform:`translate(${t},${a})`,"data-testid":h},y),!f.has("connector")&&function(e,t,a,n,o,r){const s=[];let i=0,l=0;if("callout-circle"!==o&&"label"!==o||!(null==r?void 0:r.radius)){if("callout-rect"===o&&r){const a=r.width||0,n=r.height||0;if(a>0||n>0){const o=a/2,r=n/2,s=e-o,c=t-r;if(0!==s||0!==c){const e=Math.abs(s),t=Math.abs(c),d=a/2,u=n/2,p=e*u>t*d?d/e:u/t;i=o+s*p,l=r+c*p}}}else if("bracket"===o&&r){const e=r.width,t=r.height,a=r.depth||30;void 0!==e?(i=e/2,l=a):void 0!==t&&(i=a,l=t/2)}}else{const a=(r.radius||0)+(r.radiusPadding||0);if(a>0&&(0!==e||0!==t)){const n=Math.atan2(t,e);i=Math.cos(n)*a,l=Math.sin(n)*a}}if(Math.sqrt(Math.pow(e-i,2)+Math.pow(t-l,2))>.5&&(s.push(x.createElement("line",{key:"connector-line",x1:i,y1:l,x2:e,y2:t,stroke:n||"currentColor"})),"arrow"===(null==a?void 0:a.end))){const a=10,o=16/180*Math.PI,r=Math.atan2(t-l,e-i);s.push(x.createElement("path",{key:"connector-arrow",d:`M${i},${l}L${i+a*Math.cos(r+o)},${l+a*Math.sin(r+o)}L${i+a*Math.cos(r-o)},${l+a*Math.sin(r-o)}Z`,fill:n||"currentColor",stroke:"none"}))}return x.createElement("g",{className:"annotation-connector"},s)}(g,v,l,u,b,c),!f.has("subject")&&function(e,t,a,n,o){var r;const s=[];switch(e){case"callout-circle":{const e=((null==t?void 0:t.radius)||0)+((null==t?void 0:t.radiusPadding)||0);e>0&&s.push(x.createElement("circle",{key:"subject-circle",r:e,fill:"none",stroke:a||"currentColor"}));break}case"callout-rect":{const e=(null==t?void 0:t.width)||0,n=(null==t?void 0:t.height)||0;(e>0||n>0)&&s.push(x.createElement("rect",{key:"subject-rect",width:e,height:n,fill:"none",stroke:a||"currentColor"}));break}case"callout-custom":(null==t?void 0:t.custom)&&s.push(...Array.isArray(t.custom)?t.custom:[t.custom]);break;case"xy-threshold":{const e=n||0,r=o||0;if(void 0!==(null==t?void 0:t.x)){const n=(t.x||0)-e;s.push(x.createElement("line",{key:"threshold-line",x1:n,y1:(t.y1||0)-r,x2:n,y2:(t.y2||0)-r,stroke:a||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==t?void 0:t.y)){const n=(t.y||0)-r;s.push(x.createElement("line",{key:"threshold-line",x1:(t.x1||0)-e,y1:n,x2:(t.x2||0)-e,y2:n,stroke:a||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==t?void 0:t.x1)||void 0!==(null==t?void 0:t.x2)?s.push(x.createElement("line",{key:"threshold-line",x1:(t.x1||0)-e,y1:0,x2:(t.x2||0)-e,y2:0,stroke:a||"currentColor",strokeDasharray:"5,5"})):void 0===(null==t?void 0:t.y1)&&void 0===(null==t?void 0:t.y2)||s.push(x.createElement("line",{key:"threshold-line",x1:0,y1:(t.y1||0)-r,x2:0,y2:(t.y2||0)-r,stroke:a||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const e=null!==(r=null==t?void 0:t.width)&&void 0!==r?r:null==t?void 0:t.height;void 0!==e&&s.push(x.createElement("path",{key:"bracket-path",d:O((null==t?void 0:t.type)||"curly",e,(null==t?void 0:t.depth)||30,void 0===(null==t?void 0:t.width)),fill:"none",stroke:a||"currentColor"}));break}}return x.createElement("g",{className:"annotation-subject"},s)}(b,c,u,t,a),!f.has("note")&&function(e,t,a,n){if(!e)return x.createElement("g",{className:"annotation-note"});const{label:o,title:r,orientation:s,align:i,wrap:l=120,noWrap:c}=e;if(!o&&!r)return x.createElement("g",{className:"annotation-note"});let d=s;d||(d=Math.abs(t)>Math.abs(a)?"leftRight":"topBottom");let u=i;u&&"dynamic"!==u||(u="topBottom"===d?0>t?"right":"left":0>a?"bottom":"top");let p="start";"topBottom"===d?"right"===u?p="end":"middle"===u&&(p="middle"):p=0>t?"end":"start";const m=16,y=r?c?[r]:A(r,l):[],h=o?c?[o]:A(o,l):[],f="leftRight"===d?"end"===p?-4:4:0;let g=0;const v=[];y.length>0&&(v.push(x.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:n||void 0,textAnchor:p,fontWeight:"bold"},y.map((e,t)=>x.createElement("tspan",{key:t,x:f,dy:0===t?0:m},e)))),g=y.length*m),h.length>0&&v.push(x.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:n||void 0,textAnchor:p,y:g},h.map((e,t)=>x.createElement("tspan",{key:t,x:f,dy:m},e))));let b=null;if((r||o)&&(0!==t||0!==a))if("topBottom"===d){const e=Math.min(l,120);let t=0,a=e;"end"===p?(t=-e,a=0):"middle"===p&&(t=-e/2,a=e/2),b=x.createElement("line",{className:"note-line",x1:t,x2:a,y1:0,y2:0,stroke:n||"currentColor"})}else{const e=(y.length+h.length)*m+(h.length>0?m:0);let t=0,a=e;"bottom"===u?(t=-e,a=0):"middle"===u&&(t=-e/2,a=e/2),b=x.createElement("line",{className:"note-line",x1:0,x2:0,y1:t,y2:a,stroke:n||"currentColor"})}const k=(y.length+h.length)*m+(h.length>0?m:0);let j=0;return"topBottom"===d?0>a&&(j=-k):"leftRight"===d&&("middle"===u?j=-k/2:("bottom"===u||0>a)&&(j=-k)),x.createElement("g",{className:"annotation-note",transform:`translate(${t},${a})`},x.createElement("g",{className:"annotation-note-content",transform:0!==j?`translate(0,${j})`:void 0},v),b)}(i,g,v,u))}function P(e){const{noteData:t}=e,{screenCoordinates:a}=t,n="string"==typeof t.type?t.type:"label",o=t.eventListeners||t.events||{};if(t.coordinates&&a){const e=t.nx||a[0][0]+t.dx,o=t.ny||a[0][1]+t.dy,r=a.map((a,r)=>{const s=Object.assign({},t,{note:0===r?t.note:{label:""},x:a[0],y:a[1],nx:e,ny:o});return x.createElement($,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+r},s,{type:n}))});return x.createElement("g",null,r)}const r=t.note||{title:"none",label:t.label};return x.createElement($,Object.assign({"data-testid":"semiotic-annotation",key:`${r.label}-${r.title}-${t.i}`,events:o},t,{type:n}))}let[C,D]=function(t){let a=e.createContext(null);return[function({children:n}){let o=e.useMemo(()=>function(e){let t=new EventTarget,a=e(function e(n){a=Object.assign(a,n(e)),t.dispatchEvent(new CustomEvent("update"))});return{getState:()=>a,subscribe:function(e){return t.addEventListener("update",e),()=>t.removeEventListener("update",e)}}}(t),[]);return x.createElement(a.Provider,{value:o,children:n})},t=>{let n=e.useContext(a);return function(t,a){const[n,o]=e.useState(a);return e.useLayoutEffect(()=>t(()=>o(a)),[t]),n}(null==n?void 0:n.subscribe,()=>t(n.getState()))}]}(e=>({tooltip:null,changeTooltip(t){e(()=>({tooltip:t}))}}));function w(e,t,a){return"number"==typeof a?a:t&&t.find(t=>t.props.orient===e)?50:10}const N=(e,t,a)=>`${e.map(T).join(",")}${JSON.stringify(t)}${a.join(",")}`;function T(e){if(!e||!e.props||!e.props.noteData)return"";const{note:t={}}=e.props.noteData,{label:a,title:n}=t;return`${e.props.noteData.id||`${e.props.noteData.x}-${e.props.noteData.y}`}-${a}=${n}`}function z(e,t=8,a){const{noteWidth:n=a}=e;let o=n;"number"==typeof n&&(o=()=>n);const r=e.note&&e.note.wrap||120,s=e.note.label||e.note.label||"";return n&&o(e)||(x.default.isValidElement(e.note)?100:Math.min(r,s.length*t))}function F(e,t=8,a=20,n){const{noteHeight:o=n}=e;let r=o;"number"==typeof o&&(r=()=>o);const s=e.note&&e.note.wrap||120,i=e.note.label||e.note.title||"";return o&&r(e)||(x.default.isValidElement(e.note)?30:Math.ceil(i.length*t/s)*a+(e.note.label&&e.note.title?a:0))}const L=(e,t)=>t.map((t,a)=>e.svgAnnotationRule(t,a,e)).filter(e=>null!=e),R=(e,t)=>{let a=t.adjustedAnnotations,n=t.adjustedAnnotationsKey,o=t.adjustableAnnotations,r=t.fixedAnnotations,s=[],i=[];const l=t.adjustedAnnotationsKey,c=t.adjustedAnnotationsDataVersion,{annotations:d,annotationHandling:u=!1,size:p,svgAnnotationRule:m,htmlAnnotationRule:y}=e,h="object"==typeof u?u:{layout:{type:u},dataVersion:""},{dataVersion:f=""}=h;if(m){const t=L(e,d);n=N(t,h,p),!1===u&&(a=o),a=a.length!==o.length||l!==n||c!==f?((e,t,a)=>{const{layout:n={type:!1,noteHeight:void 0,noteWidth:void 0}}=t;if(!1===n.type)return e;const{noteWidth:o,noteHeight:r}=n;let{margin:s={top:0,bottom:0,left:0,right:0}}=a;const{size:i,axes:l=[]}=a;if(s="number"==typeof s?{top:s,left:s,right:s,bottom:s}:s,"bump"===n.type)return function(e,t,a,n,o){const{padding:r=1,characterWidth:s=8,lineHeight:i=20,iterations:l=500,pointSizeFunction:c=n,labelSizeFunction:d=o||j}=t,u=e.map((e,t)=>{const a=(e.props.noteData.x[0]||e.props.noteData.x)+(void 0!==e.props.noteData.dx?e.props.noteData.dx:-10*(t%3-1)),n=(e.props.noteData.y[0]||e.props.noteData.y)+(void 0!==e.props.noteData.dy?e.props.noteData.dy:10*(t%3-1)),[o,l]=d(e.props.noteData,s,i,r);return{x:a,y:n,above:e.props.noteData.y>n,left:e.props.noteData.x>a,width:o,height:l,type:"label",name:"",originalNote:e}}),p=e.map(e=>({x:e.props.noteData.x,y:e.props.noteData.y,fx:e.props.noteData.x,fy:e.props.noteData.y,r:c&&c(e.props.noteData)||5,type:"point",originalNote:e})),m=function(){let e,t=[],a=[],n=1,o=1,r={start:e=>{},width:e=>{},height:e=>{},label:e=>{},anchor:e=>{},alt_energy:e=>{},alt_schedule:e=>{}},s=!1;const i=function(e){let n=t.length,o=0,r=t[e].x-a[e].x,s=a[e].y-t[e].y,i=Math.sqrt(r*r+s*s);i>0&&(o+=.2*i),r/=i,s/=i,o+=r>0&&s>0?0:0>r&&s>0?3:0>r&&0>s?6:9;let l,c,u,p,m,y,h,f=t[e].x,x=t[e].y-t[e].height+2,g=t[e].x+t[e].width,v=t[e].y+2;for(let r=0;n>r;r++)r!==e&&(d(a[e].x,t[e].x,a[r].x,t[r].x,a[e].y,t[e].y,a[r].y,t[r].y)&&(o+=1),l=t[r].x,u=t[r].y-t[r].height+2,c=t[r].x+t[r].width,p=t[r].y+2,m=Math.max(0,Math.min(c,g)-Math.max(l,f)),y=Math.max(0,Math.min(p,v)-Math.max(u,x)),h=m*y,o+=30*h),l=a[r].x-a[r].r,u=a[r].y-a[r].r,c=a[r].x+a[r].r,p=a[r].y+a[r].r,m=Math.max(0,Math.min(c,g)-Math.max(l,f)),y=Math.max(0,Math.min(p,v)-Math.max(u,x)),h=m*y,o+=30*h;return o},l=function(r){let l,c,d=Math.floor(Math.random()*t.length),u=t[d].x,p=t[d].y;l=s?e(d,t,a):i(d),t[d].x+=5*(Math.random()-.5),t[d].y+=5*(Math.random()-.5),t[d].x>n&&(t[d].x=u),0>t[d].x&&(t[d].x=u),t[d].y>o&&(t[d].y=p),0>t[d].y&&(t[d].y=p),c=s?e(d,t,a):i(d);let m=c-l;Math.random()<Math.exp(-m/r)||(t[d].x=u,t[d].y=p)},c=function(r){let l,c=Math.floor(Math.random()*t.length),d=t[c].x,u=t[c].y;l=s?e(c,t,a):i(c);let p=.5*(Math.random()-.5),m=Math.sin(p),y=Math.cos(p);t[c].x-=a[c].x,t[c].y-=a[c].y;let h,f=t[c].x*m+t[c].y*y;t[c].x=t[c].x*y-t[c].y*m+a[c].x,t[c].y=f+a[c].y,t[c].x>n&&(t[c].x=d),0>t[c].x&&(t[c].x=d),t[c].y>o&&(t[c].y=u),0>t[c].y&&(t[c].y=u),h=s?e(c,t,a):i(c);let x=h-l;Math.random()<Math.exp(-x/r)||(t[c].x=d,t[c].y=u)},d=function(e,t,a,n,o,r,s,i){let l,c,d,u,p;return d=(i-s)*(t-e)-(n-a)*(r-o),u=(n-a)*(o-s)-(i-s)*(e-a),p=(t-e)*(o-s)-(r-o)*(e-a),l=u/d,c=p/d,!(0>l||l>1||0>c||c>1)},u=function(e,t,a){return e-t/a};return r.start=function(e){let a=t.length,n=1;for(let t=0;e>t;t++){for(let e=0;a>e;e++).5>Math.random()?l(n):c(n);n=u(n,1,e)}},r.width=function(e){return arguments.length?(n=e,r):n},r.height=function(e){return arguments.length?(o=e,r):o},r.label=function(e){return arguments.length?(t=e,r):t},r.anchor=function(e){return arguments.length?(a=e,r):a},r.alt_energy=function(t){return arguments.length?(e=t,s=!0,r):i},r.alt_schedule=function(e){return arguments.length?r:u},r}();return m.label(u),m.anchor(p),m.width(a[0]),m.height(a[1]),m.start(l),u.forEach(e=>{if("label"===e.type){const t=function(e,t,a){return e.y>t.y?[t.x+t.width/2+a/2,t.y-t.height+a/2]:[t.x+t.width/2,t.y]}(e.originalNote.props.noteData,e,r);e.originalNote.props.noteData.nx=t[0],e.originalNote.props.noteData.ny=t[1]}}),e}(e,n,i,a.pointSizeFunction,a.labelSizeFunction);if("marginalia"===n.type){const{marginOffset:t,orient:a="nearest",characterWidth:c=8,lineHeight:d=20,padding:u=2,axisMarginOverride:p={}}=n,m="nearest"===a?["left","right","top","bottom"]:Array.isArray(a)?a:[a],y=m.find(e=>"left"===e),h=m.find(e=>"right"===e),f=m.find(e=>"top"===e),v=m.find(e=>"bottom"===e),b=[],k=[],j=[],E=[];for(const t of e){const e=t.props.noteData,a=e.x[0]||e.x,n=e.y[0]||e.y,o=y?a:1/0,r=h?i[0]-a:1/0,s=f?n:1/0,l=Math.min(o,r,s,v?i[1]-n:1/0);o===l?b.push(t):r===l?k.push(t):s===l?j.push(t):E.push(t)}const S=new g.default.Force({minPos:void 0!==p.top?0+p.top:0-s.top,maxPos:void 0!==p.bottom?i[1]-p.bottom:v?i[1]:i[1]+s.bottom}).nodes(b.map(e=>new g.default.Node(e.props.noteData.y[0]||e.props.noteData.y,F(e.props.noteData,c,d,o)+u))).compute(),M=new g.default.Force({minPos:void 0!==p.top?0+p.top:f?0:0-s.top,maxPos:void 0!==p.bottom?i[1]-p.bottom:i[1]+s.bottom}).nodes(k.map(e=>new g.default.Node(e.props.noteData.y[0]||e.props.noteData.y,F(e.props.noteData,c,d,o)+u))).compute(),A=new g.default.Force({minPos:void 0!==p.left?0+p.left:y?0:0-s.left,maxPos:void 0!==p.right?i[0]-p.right:i[0]+s.right}).nodes(j.map(e=>new g.default.Node(e.props.noteData.x[0]||e.props.noteData.x,z(e.props.noteData,c,r)+u))).compute(),O=new g.default.Force({minPos:void 0!==p.left?0+p.left:0-s.left,maxPos:void 0!==p.right?i[0]-p.right:h?i[0]:i[0]+s.right}).nodes(E.map(e=>new g.default.Node(e.props.noteData.x[0]||e.props.noteData.x,z(e.props.noteData,c,r)+u))).compute(),$=Math.max(...E.map(e=>F(e.props.noteData,c,d,o)+u)),P=Math.max(...j.map(e=>F(e.props.noteData,c,d,o)+u)),C=Math.max(...b.map(e=>z(e.props.noteData,c,r)+u)),D=Math.max(...k.map(e=>z(e.props.noteData,c,r)+u)),N=S.nodes(),T=M.nodes(),L=A.nodes(),R=O.nodes();return b.forEach((e,a)=>{const n=0-N[a].layerIndex*C-w("left",l,t),o=N[a].currentPos;e.props.noteData.nx=n,e.props.noteData.ny=o,e.props.noteData.note&&!x.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"right")}),k.forEach((e,a)=>{const n=i[0]+T[a].layerIndex*D+w("right",l,t),o=T[a].currentPos;e.props.noteData.nx=n,e.props.noteData.ny=o,e.props.noteData.note&&!x.isValidElement(e)&&(e.props.noteData.note.orientation=e.props.noteData.note.orientation||"leftRight",e.props.noteData.note.align=e.props.noteData.note.align||"left")}),j.forEach((e,a)=>{const n=L[a].currentPos,o=0-L[a].layerIndex*P-w("top",l,t);e.props.noteData.nx=n,e.props.noteData.ny=o}),E.forEach((e,a)=>{const n=R[a].currentPos,o=i[1]+R[a].layerIndex*$+w("bottom",l,t);e.props.noteData.nx=n,e.props.noteData.ny=o}),e}return e})(o,h,e):o.map((e,t)=>{const n=Object.assign(Object.assign({},a[t].props.noteData),e.props.noteData);return x.createElement(P,{key:e.key,noteData:n})}),s=[...a,...r]}return y&&(i=((e,t)=>t.map((t,a)=>e.htmlAnnotationRule(t,a,e)).filter(e=>null!=e))(e,d)),{svgAnnotations:s,htmlAnnotations:i,adjustedAnnotations:a,adjustedAnnotationsKey:n,adjustedAnnotationsDataVersion:f}};function B(t){const{legendSettings:a,margin:n,size:o,annotations:r,annotationHandling:s}=t,i=D(e=>e.tooltip);let l=null!=i?r.concat(i):r,c=D(e=>e.changeTooltip);const d=Object.assign(Object.assign({},t),{annotations:l,voronoiHover:e=>{c(e)}}),u="object"==typeof s?s:{layout:{type:s},dataVersion:""},{dataVersion:p=""}=u,[m,y]=e.useState([]),[h,f]=e.useState([]),[g,v]=e.useState([]),[b,k]=e.useState(""),[j,E]=e.useState(p),S=L(d,l),A=S.filter(e=>e.props&&e.props.noteData&&!e.props.noteData.fixedPosition),O=N(A,u,o);let $;if(e.useEffect(()=>{const e=S.filter(e=>!e.props||!e.props.noteData||e.props.noteData.fixedPosition),t=R(d,{adjustedAnnotations:m,adjustedAnnotationsKey:b,adjustedAnnotationsDataVersion:j,adjustableAnnotations:A,fixedAnnotations:e});y(t.adjustedAnnotations),k(t.adjustedAnnotationsKey),E(t.adjustedAnnotationsDataVersion),f(t.svgAnnotations),v(t.htmlAnnotations)},[O,p,l.length,l.map(e=>function(e){const t=new Set;return JSON.stringify(e,(e,a)=>t.has(a)?"...":"object"==typeof a?(t.add(a),"note"===e?`${a.label}-${a.title}`:"connector"===e?`${a.end}-${a.type}`:"subject"===e?""+a.radius:"object"==typeof a.column?`${a.column.x}-${a.column.y}-${a.column.name}`:a.voronoiX||a.voronoiY||a.x||a.y||a.dx||a.dy||a.label||a.type||a.key||a.hierarchicalID||a.id||a.name?`${a.voronoiX}-${a.voronoiY}-${a.dx}-${a.dy}-${a.x}-${a.y}-${a.label}-${a.type}-${a.key}-${a.hierarchicalID}-${a.id}-${a.name}`:"..."):a)}(e)).join("-")]),a){const e={left:[15,15],right:[o[0]+15,15]},{position:t="right",title:n="Legend"}=a;$=x.createElement("g",{transform:`translate(${e[t].join(",")})`},x.createElement(M,Object.assign({},a,{title:n,position:t})))}return 0!==l.length||a?x.createElement("div",{className:"annotation-layer",style:{position:"absolute",pointerEvents:"none",background:"none"}},x.createElement("svg",{className:"annotation-layer-svg",height:o[1],width:o[0],style:{background:"none",pointerEvents:"none",position:"absolute",left:n.left+"px",top:n.top+"px",overflow:"visible"}},x.createElement("g",null,$,h)),x.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:o[1]+"px",width:o[0]+"px",left:n.left+"px",top:n.top+"px"}},g)):null}const V=e=>e.reduce((e,t)=>e.concat(Array.isArray(t)?V(t.slice().sort((e,t)=>e-t)):t),[]);function I(e=[]){if(!Array.isArray(e))return"not-array";let t=e.slice();return Array.isArray(t[0])||(t=t.slice().sort((e,t)=>e-t)),""+V(t).map(e=>e instanceof Date&&""+e||void 0!==e&&e.toFixed&&e.toFixed(2)||"empty")}function _(t){const{extent:a,selectedExtent:n}=t,r=e.useRef(null),s=I(a),i=I(n);e.useEffect(()=>{(null==r?void 0:r.current)&&((e,t)=>{const{svgBrush:a,selectedExtent:n}=t;if(o.select(e).call(a),n){let t=n;if(Array.isArray(n[0])){const e=[t[0][1],t[1][1]].sort((e,t)=>e-t);t=[[t[0][0],e[0]],[t[1][0],e[1]]]}o.select(e).call(a.move,t)}})(r.current,t)},[s,i,r]);const{position:l=[0,0]}=t;return x.createElement("g",{transform:`translate(${l})`,ref:r,className:"xybrush"})}function W(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);n.length>o;o++)0>t.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]])}return a}"function"==typeof SuppressedError&&SuppressedError;const G="x",X="y",Y="yMiddle",q="yTop",H="yBottom",K="xMiddle",Z="xTop",J="xBottom",Q=(e,t)=>void 0===e?e:Object.assign(e&&e.data?Object.assign({points:t},e.data):{points:t},e),U=(e,t,a,n,o,r)=>{const s=Q(t,o);if(n&&n(s),t){if(!0===a){const t=Object.assign({},s);t.type="column-hover"===t.type?"column-hover":"frame-hover",e(t,r)}else if(a){const t=(Array.isArray(a)?a:[a]).map(e=>{const t="function"==typeof e?e(s):e;if(t)return Object.assign({},s,t)}).filter(e=>e);e(t,r)}}else e(null)},ee=(e,t,a,n)=>{const o=Q(e,a);t&&t(o,n)},te=(e,t,a,n)=>{const o=Q(e,a);t&&t(o,n)},ae=(e,t,a,n,o)=>{o&&o.start&&o.start(e,t,a,n)},ne=(e,t,a,n,o)=>{o&&o.during&&o.during(e,t,a,n)},oe=(e,t,a,n,o)=>{o&&o.end&&o.end(e,t,a,n)},re=()=>({}),se=2*Math.PI,ie=({xy:e,orient:t,i:a,className:n="",jaggedBase:o})=>{let r=`M${e.x1},${e.y1}L${e.x2},${e.y2}`;return o&&0===a&&(r=((e,t)=>{let a="";const{x1:n,x2:o,y1:r,y2:s}=t;if("left"===e||"right"===e){const t=Math.abs(o-n);a=((e,t,a,n)=>{const o=e/t;let r=0,s="M0,"+a;const i="right"===n?-1:1;for(;e>=r;)s+=`L${r},${a}`,e>r&&(s+=`L${r+o/2},${a+10*i}`),r+=o;return s})(t,Math.ceil(t/40),"right"===e?0:r,e)}else{const t=Math.abs(s-r);a=((e,t,a,n)=>{const o=e/t;let r=0,s=`M${a},0`;const i="bottom"===n?-1:1;for(;e>=r;)s+=`L${a},${r}`,e>r&&(s+=`L${a+10*i},${r+o/2}`),r+=o;return s})(t,Math.ceil(t/40),n,e)}return a})(t,e)),x.createElement("path",{key:a,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:r,className:`tick-line tick ${t} ${n}`})};function le(e,t,a){const n=Math.abs(a.range()[1]-a.range()[0]);return e||(t||(t=Math.max(1,Math.floor(n/40))),e=a.ticks&&a.ticks(t)||a.domain()),e}function ce({renderMode:e=()=>{},padding:t=5,scale:a,ticks:n,tickValues:o=le(void 0,n,a),orient:r="left",size:s,footer:i=!1,tickSize:l=(i?-10:["top","bottom"].find(e=>e===r)?s?s[1]:0:s?s[0]:0),jaggedBase:c}){let d,u,p,m,y,h,f=[],x=0,g=0,v="middle";switch(r){case"top":d="x1",u="x2",p="y1",m="y2",f=[0,l],y="tx",h="ty",x-=20-t;break;case"bottom":d="x1",u="x2",p="y2",m="y1",f=s?[s[1],s[1]-l]:[0,-l],y="tx",h="ty",x+=20+t;break;case"right":d="y2",u="y1",p="x2",m="x1",f=s?[s[0],s[0]-l]:[0,-l],y="ty",h="tx",x+=5+t,g+=5,v="start";break;default:d="y1",u="y2",p="x1",m="x2",f=[0,l],y="ty",h="tx",x-=5+t,g+=5,v="end"}let b=o instanceof Function?o({orient:r}):o;return c&&void 0===b.find(e=>e===a.domain()[0])&&(b=[a.domain()[0],...b]),b.map((t,n)=>{const o=a(t);return{[d]:o,[u]:o,[p]:f[0],[m]:f[1],[y]:o+g,[h]:f[0]+x,defaultAnchor:v,renderMode:e(t,n),value:t}})}const de=({axisParts:e,orient:t,tickLineGenerator:a=ie,className:n,jaggedBase:o,scale:r,showOutboundTickLines:s=!1})=>{const i=e.map((e,s)=>a({xy:e,orient:t,i:s,className:n,jaggedBase:o,scale:r})),l=s?e.map((e,a)=>(({xy:e,orient:t,i:a,className:n=""})=>{let o=`M-4,${e.y1}L${e.x1},${e.y2}`;return"left"===t?o=`M${e.x1-8},${e.y1}L${e.x1},${e.y2}`:"right"===t?o=`M${e.x2},${e.y1}L${e.x2+8},${e.y2}`:"top"===t?o=`M${e.x1},${e.y1-8}L${e.x1},${e.y1}`:"bottom"===t&&(o=`M${e.x1},${e.y2}L${e.x1},${e.y2+8}`),x.createElement("path",{key:a,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:o,className:`outbound-tick-line tick ${t} ${n}`})})({xy:e,orient:t,i:a,className:n})):[];return[...i,l]};function ue({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"left"!==t&&"right"!==t?0:a/2}function pe({t:e,o:t,w:a}){return"contour"!==e&&"boxplot"!==e||"top"!==t&&"bottom"!==t?0:a/2}function me(e){const{translation:t,orient:a,decoratedSummaryType:n,summaryWidth:o,renderedSummary:r,points:s}=e;return x.default.createElement("g",{className:"marginal-graphics",transform:`translate(${t[a]})`},x.default.createElement("g",{transform:`translate(${ue({t:n.type,o:a,w:o})},${pe({t:n.type,o:a,w:o})})`},r),s)}function ye(e){const{className:t,translation:a,position:n,rotation:o,labelName:r,anchorMod:s}=e;return x.default.createElement("g",{className:"axis-title "+t,transform:`translate(${[a[0]+n[0],a[1]+n[1]]}) rotate(${o})`},x.default.isValidElement(r)?r:x.default.createElement("text",{textAnchor:s},r))}function he(e,t,a){const n=Math.PI*(t+.75)*2;return[e[0]+a*Math.cos(n),e[1]+a*Math.sin(n)]}const fe=()=>({});function xe(e,t){for(var a=[],n=0;e>n;n++){for(var o=[],r=0;t>r;r++)o.push(0);a.push(o)}return a}function ge(e,t,a,n){var o;if(e>0){var r=(a[t]-a[e-1])/(t-e+1);o=n[t]-n[e-1]-(t-e+1)*r*r}else o=n[t]-a[t]*a[t]/(t+1);return 0>o?0:o}function ve(e,t,a,n,o,r,s){if(t>=e){var i=Math.floor((e+t)/2);n[a][i]=n[a-1][i-1],o[a][i]=i;var l=a;e>a&&(l=Math.max(l,o[a][e-1]||0)),l=Math.max(l,o[a-1][i]||0);var c,d,u,p,m=i-1;n[0].length-1>t&&(m=Math.min(m,o[a][t+1]||0));for(var y=m;y>=l&&(c=ge(y,i,r,s))+n[a-1][l-1]<n[a][i];--y)d=ge(l,i,r,s),n[a][i]>(u=d+n[a-1][l-1])&&(n[a][i]=u,o[a][i]=l),l++,n[a][i]>(p=c+n[a-1][y-1])&&(n[a][i]=p,o[a][i]=y);ve(e,i-1,a,n,o,r,s),ve(i+1,t,a,n,o,r,s)}}function be({summaryType:e,data:a,finalXExtent:n,finalYExtent:o}){let r=[];e.type||(e={type:e});const{resolution:s=500,thresholds:i=10,bandwidth:l=20,neighborhood:c}=e,d=t.scaleLinear().domain(n).rangeRound([0,s]).nice(),u=t.scaleLinear().domain(o).rangeRound([s,0]).nice();return a.forEach(e=>{let t=p.contourDensity().size([s,s]).x(e=>d(e[0])).y(e=>u(e[1])).thresholds(i).bandwidth(l)(e._xyfCoordinates);c&&(t=[t[0]]);const a=Math.max(...t.map(e=>e.value));t.forEach(t=>{t.parentSummary=e,t.bounds=[],t.percent=t.value/a,t.coordinates.forEach(e=>{e.forEach((a,n)=>{e[n]=a.map(e=>[d.invert(e[0]),u.invert(e[1])]),0===n&&t.bounds.push(function(e){let t=[1/0,0],a=[-1/0,0],n=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,a=e[0]>a[0]?e:a,o=e[1]>o[1]?e:o,n=n[1]>e[1]?e:n}),{center:[(t[0]+a[0])/2,(n[1]+o[1])/2],top:n,left:t,right:a,bottom:o}}(e[n]))})})}),r=[...r,...t]}),r}function ke({preprocess:e=!0,processedData:a=!1,summaryType:n,data:o,finalXExtent:r,finalYExtent:s,size:i,xScaleType:l=t.scaleLinear(),yScaleType:c=t.scaleLinear(),margin:d,styleFn:u,classFn:p,renderFn:y,chartSize:h}){let f=r,g=s;if(!f){const e=o.coordinates.map(e=>e.x);f=[Math.min(...e),Math.max(...e)]}if(!g){const e=o.coordinates.map(e=>e.y);g=[Math.min(...e),Math.max(...e)]}if(a&&o)return o.coordinates;let v,b=[];v=n.type?n:{type:v};const{bins:k=.05,cellPx:j,binValue:E=e=>e.length,binMax:S,customMark:M}=v;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const A=Array.isArray(o)?o:[o],O=l.domain(f).range([0,i[0]]),$=c.domain(g).range([0,i[1]]),P=j&&j/2||(k>1?1/k:k)*i[0]/2,C=m.hexbin().x(e=>O(e._xyfPoint[0])).y(e=>$(e._xyfPoint[1])).radius(P).size(i);let D;const w=C.centers();return A.forEach(e=>{D=0;const t=C(e._xyfCoordinates.map((t,a)=>Object.assign({_xyfPoint:t},e.coordinates[a]))),a={};t.forEach(e=>{a[`${parseInt(e.x)}-${parseInt(e.y)}`]=!0}),w.forEach(e=>{if(!a[`${parseInt(e[0])}-${parseInt(e[1])}`]){const a=[];a.x=e[0],a.y=e[1],t.push(a)}}),D=Math.max(...t.map(e=>E(e))),S&&S(D);const n=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],o=O.invert(P)-f[0],r=$.invert(P)-g[0],s=n.map(e=>[e[0]*o,e[1]*r]),l=t.map(t=>{const a=E(t),o=t.x,r=t.y;t.x=O.invert(t.x),t.y=$.invert(t.y);const l=a/D;return{customMark:M&&x.createElement("g",{transform:`translate(${o},${i[1]-r})`},M({d:Object.assign(Object.assign({},t),{binItems:t,percent:l,value:a,radius:P,hexCoordinates:n.map(e=>[e[0]*P,e[1]*P])}),margin:d,styleFn:u,classFn:p,renderFn:y,chartSize:h,adjustedSize:i})),_xyfCoordinates:s.map(e=>[e[0]+t.x,e[1]+t.y]),value:a,percent:l,data:t,parentSummary:e,centroid:!0}});b=[...b,...l]}),e?(b.forEach(e=>{e.x=e.data.x,e.y=e.data.y}),{type:"hexbin",processedData:!0,coordinates:b,binMax:D}):b}const je=(e,t,a,n)=>[...e.map((e,n)=>[e[0],e[1]+a(t[n])]),...e.map((e,a)=>[e[0],e[1]-n(t[a])]).reverse()];function Ee({preprocess:e=!0,processedData:a=!1,summaryType:n,data:o,finalXExtent:r=[Math.min(...o.coordinates.map(e=>e.x)),Math.max(...o.coordinates.map(e=>e.x))],finalYExtent:s=[Math.min(...o.coordinates.map(e=>e.y)),Math.max(...o.coordinates.map(e=>e.y))],size:i,xScaleType:l=t.scaleLinear(),yScaleType:c=t.scaleLinear(),margin:d,styleFn:u,classFn:p,renderFn:m,chartSize:y}){if(a&&o)return o.coordinates;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const h=Array.isArray(o)?o:[o];let f,g=[];f=n.type?n:{type:f};const{binValue:v=e=>e.length,xBins:b=f.yBins||.05,yBins:k=b,xCellPx:j=!f.xBins&&f.xCellPx,yCellPx:E=!f.yBins&&f.yCellPx,customMark:S,binMax:M}=f,A=1>b?b:1/b,O=1>k?k:1/k,$=l.domain(r).range([0,i[0]]),P=c.domain(s).range([i[1],0]),C=[Math.ceil((j&&j/i[0]||A)*i[0]*10)/10,Math.ceil((E&&E/i[1]||O)*i[1]*10)/10];let D=-1/0;return h.forEach(e=>{const t=[],a=[];let n,o;for(let r=0;i[0]>Math.ceil(r);r+=C[0]){const s=$.invert(r),l=$.invert(r+C[0]);o=[],t.push(o);for(let t=0;i[1]>Math.ceil(t);t+=C[1]){const i=P.invert(t),c=P.invert(t+C[1]);n={gx:r,gy:t,gw:C[0],gh:C[1],x:(s+l)/2,y:(i+c)/2,binItems:[],value:0,_xyfCoordinates:[[s,i],[l,i],[l,c],[s,c]],parentSummary:e},o.push(n),a.push(n)}o.push(n)}t.push(o),e._xyfCoordinates.forEach((a,n)=>{const o=$(a[0]),r=P(a[1]),s=Math.floor(o/C[0]),i=Math.floor(r/C[1]);t[s][i]&&t[s][i].binItems.push(e.coordinates[n])}),a.forEach(e=>{e.value=v(e.binItems),D=Math.max(D,e.value)}),a.forEach(e=>{e.percent=e.value/D,e.customMark=S&&x.createElement("g",{transform:`translate(${e.gx},${e.gy})`},S({d:e,margin:d,styleFn:u,classFn:p,renderFn:m,chartSize:y,adjustedSize:i}))}),g=[...g,...a]}),M&&M(D),e?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:g,binMax:D}:g}function Se(e){let t=[1/0,0],a=[-1/0,0],n=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,a=e[0]>a[0]?e:a,o=e[1]>o[1]?e:o,n=n[1]>e[1]?e:n}),{center:[(t[0]+a[0])/2,(n[1]+o[1])/2],top:n,left:t,right:a,bottom:o}}const Me=e=>[e.xy.x,e.xy.y],Ae={step:i.curveStep,stepbefore:i.curveStepBefore,stepafter:i.curveStepAfter,cardinal:i.curveCardinal,basis:i.curveBasis,linear:i.curveLinear,catmullrom:i.curveCatmullRom,monotone:i.curveMonotoneY,monotonex:i.curveMonotoneX,monotoney:i.curveMonotoneY,natural:i.curveNatural};function Oe({generator:e,projectedCoordinateNames:t,defined:a,xScale:n,yScale:o,interpolator:r,simpleLine:s}){const{x:i,y:l,yTop:c,yBottom:d,xBottom:u,xTop:p}=t;e.x(e=>n(e[i])).curve(r),s?e.y(e=>o(e[l])):(e.y0(e=>o(e[d])).y1(e=>o(e[c])),e.x0(e=>n(e[u])).x1(e=>n(e[p]))),e.defined(a?(e,t)=>a(e,t):e=>!e._xyFrameUndefined)}function $e({xScale:e,yScale:t,canvasDrawing:a,data:n,projectedCoordinateNames:o,customMark:r,canvasRender:s,styleFn:i,classFn:l,renderKeyFn:c,renderMode:d,showLinePoints:u}){const{y:p,x:m,xMiddle:y,yMiddle:h,yTop:f,yBottom:g}=o,v={top:f,bottom:g}[!0===u?void 0:u],b=[];return n.forEach((n,o)=>{const u=e(void 0!==n[y]?n[y]:n[m]),f=t(void 0!==n[v]?n[v]:void 0!==n[h]?n[h]:n[p]),g=`Point at x ${n.x} and y ${n.y}`,k=r?x.isValidElement(r)?r:r({d:n.data,xy:n,i:o,xScale:e,yScale:t}):void 0,j=r?Object.assign(Object.assign({},k.props),{"aria-label":g}):{key:"piece-"+o,markType:"circle",r:2,"aria-label":g};!k||!k.props||k.props.markType||s&&!0===s(n.data,o)?s&&!0===s(n.data,o)?a.push({type:"point",baseClass:"frame-piece",tx:u,ty:f,d:n,i:o,markProps:j,styleFn:i,renderFn:d,classFn:l}):(Array.isArray(n[p])?n[p].map(e=>t(e)):[f]).forEach((t,a)=>{(Array.isArray(n[m])?n[m].map(t=>e(t)):[u]).forEach((e,r)=>{b.push(De({baseClass:"frame-piece",tx:e,ty:t,d:n.data&&Object.assign(Object.assign({},n),n.data)||n,i:0===a&&0===r?o:`${o}-${a}-${r}`,markProps:j,styleFn:i,renderKeyFn:c,classFn:l,yi:a}))})}):b.push(x.createElement("g",{transform:`translate(${u},${f})`,key:c?c(n.data,o):"custom-point-mark-"+o,style:i?i(n.data,o):{},className:l?l(n.data,o):""},k))}),b}function Pe({xScale:e,yScale:t,canvasDrawing:a,data:n,projectedCoordinateNames:o,customMark:r,canvasRender:s,styleFn:l,classFn:c,renderMode:d,renderKeyFn:u,type:p,defined:m,ariaLabel:y,axesData:h=[]}){const f=h.find(e=>"bottom"===e.orient||"top"===e.orient),g=h.find(e=>"left"===e.orient||"right"===e.orient),v=f&&f.tickFormat||(e=>e),b=g&&g.tickFormat||(e=>e),k="object"==typeof p?p:{type:p},j="string"==typeof k.interpolator?Ae[k.interpolator]:k.interpolator||i.curveLinear,E=k.simpleLine?i.line():i.area();Oe({projectedCoordinateNames:o,defined:m,interpolator:j,generator:E,xScale:e,yScale:t,simpleLine:k.simpleLine});const S=j.dynamicInterpolator&&((a,n)=>{const r=i.area();return Oe({projectedCoordinateNames:o,defined:m,interpolator:j.dynamicInterpolator(a,n),generator:r,xScale:e,yScale:t,simpleLine:k.simpleLine}),r})||(()=>E),M=[];if(n.forEach((n,p)=>{const h=n.data.map(e=>Object.assign(Object.assign({},e.data),e));if(r&&"function"==typeof r){const o=Object.assign(Object.assign({},n),{data:h});M.push(r({d:o,i:p,xScale:e,yScale:t,canvasDrawing:a}))}else{const r={};k.simpleLine&&(r.fill="none",r.stroke="black");const f=S(n,p)(h),x=Object.assign(Object.assign({},r),{markType:"path",d:f,"aria-label":n.data&&n.data.length>0&&y&&`${n.data.length} point ${y.items} starting value ${b(n.data[0].y)} at ${v(n.data[0].x)} ending value ${b(n.data[n.data.length-1].y)} at ${v(n.data[n.data.length-1].x)}`});if(s&&!0===s(n,p))a.push({type:"line",baseClass:"xyframe-line",tx:0,ty:0,d:n,i:p,markProps:x,styleFn:l,renderFn:d,classFn:c});else{let a=l;if("area"===k.type&&!0!==k.enclosed&&(a=(e,t)=>Object.assign(Object.assign({},l(e,t)),{stroke:"none"})),M.push(De({baseClass:"xyframe-line",d:n,i:p,markProps:x,styleFn:a,renderKeyFn:u,classFn:c})),"area"===k.type&&!0!==k.enclosed){const a=(e,t)=>Object.assign(Object.assign({},l(e,t)),{fill:"none"}),r=i.line();Oe({projectedCoordinateNames:o,defined:m,interpolator:j,generator:r,xScale:e,yScale:t,simpleLine:!0});const s=Object.assign(Object.assign({},x),{d:r(h)}),d=u?(e,t,a)=>u(e,t,a)+"-top":void 0;M.push(De({baseClass:"xyframe-line-top",d:n,i:p,markProps:s,styleFn:a,renderKeyFn:d,classFn:c}))}}}}),"difference"===k.type&&2===n.length){const a=n[0].data.map((e,t)=>{const a=e.yTop>n[1].data[t].yTop?e.yTop:e.yBottom;return{x:e.x,y:a,yBottom:a,yTop:a}}),r=n[0].data.map((e,t)=>{const a=n[1].data[t].yTop>e.yTop?n[1].data[t].yTop:n[1].data[t].yBottom;return{x:e.x,y:a,yBottom:a,yTop:a}}),s=c?"xyframe-line "+c(a):"xyframe-line",l=i.line();Oe({projectedCoordinateNames:o,defined:m,interpolator:j,generator:l,xScale:e,yScale:t,simpleLine:!0});const d=x.createElement("path",{key:"xyline-diff-a",className:s+" difference-overlay-a",d:l(a),style:{fill:"none",pointerEvents:"none"}});M.push(d);const u=x.createElement("path",{key:"xyline-diff-b",className:s+" difference-overlay-b",d:l(r),style:{fill:"none",pointerEvents:"none"}});M.push(u)}return M}function Ce({xScale:e,yScale:t,canvasDrawing:a,data:n,canvasRender:o,styleFn:r,classFn:s,renderKeyFn:l,renderMode:c,customMark:d}){const u=s||(()=>""),p=r||(()=>({})),m=c;Array.isArray(n)||(n=[n]);const y=[];return n.forEach((n,r)=>{let s="xyframe-summary";u&&(s="xyframe-summary "+u(n));let c="",h=!1;if("string"==typeof n.customMark||x.isValidElement(n.customMark))c=n.customMark,h=!0;else if("MultiPolygon"===n.type)n.coordinates.forEach(a=>{a.forEach(a=>{c+=`M${a.map(a=>`${e(a[0])},${t(a[1])}`).join("L")}Z `})});else if(d){const a=n._xyfCoordinates.map(a=>[e(a[0]),t(a[1])]);c=d({d:n,i:r,classFn:u,styleFn:p,renderFn:m,projectedCoordinates:a,xScale:e,yScale:t,bounds:Se(a)}),h=!0}else{const a=n._xyfCoordinates;if(n.curve){const o=i.line().x(t=>e(t[0])).y(e=>t(e[1])).curve(n.curve);c=o(a)}else c=`M${a.map(a=>`${e(a[0])},${t(a[1])}`).join("L")}Z`}const f=l?l(n,r):"summary-"+r;h&&x.isValidElement(c)?y.push(c):o&&!0===o(n,r)?a.push({type:"summary",baseClass:"xyframe-summary",tx:0,ty:0,d:n,i:r,markProps:{markType:"path",d:c},styleFn:p,renderFn:m,classFn:()=>s}):y.push(x.createElement("path",{"data-testid":"xyframe-summary",key:f,className:s,d:c,style:p(n,r)}))}),y}function De({tx:e,ty:t,d:a,i:n,markProps:o,styleFn:r,classFn:s,renderKeyFn:i,baseClass:l,yi:c}){if(o.style=r?r(a,n,c):{},o.className=l,o.key=i?i(a,n,c):`${l}-${void 0===a.key?n:a.key}`,(e||t)&&(o.transform=`translate(${e||0},${t||0})`),s&&(o.className=`${l} ${s(a,n,c)}`),o.style.r&&(o.r=o.style.r),o["data-testid"]=l,!o.markType)return x.createElement(o);const{markType:d}=o,u=W(o,["markType"]);return x.createElement(d,u)}const we=(e,t)=>e.xy.y-t.xy.y,Ne=(e,t)=>t.xy.x-e.xy.x,Te=()=>({});function ze({summary:e,summaryI:a,axisSettings:n,axisCreator:o,projection:r,actualMax:s,adjustedSize:i,columnWidth:l}){let c=`translate(${e.x},0)`,d=[0,s];"horizontal"===r?(c=`translate(0,${e.x})`,d=[s,0]):"radial"===r&&(c="translate(0, 0)"),n.size=["horizontal"===r?i[0]:l,"vertical"===r?i[1]:l];const u=o(n,a,t.scaleLinear().domain(d).range([0,l]));return x.createElement("g",{className:"summary-axis",key:"summaryPiece-axis-"+a,transform:c},u)}function Fe({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,projection:s,adjustedSize:l,chartSize:c,axisCreator:d}){const u=[],p=[],m=t.bins||25,y=!!t.relative&&{},h=t.binValue||(e=>e.length),f=t.elementStyleFn||Te;let x;t.axis&&(t.axis.orient="horizontal"===s&&-1===["left","right"].indexOf(t.axis.orient)?"left":t.axis.orient,t.axis.orient="vertical"===s&&-1===["bottom","top"].indexOf(t.axis.orient)?"bottom":t.axis.orient,x=d,"radial"===s&&(console.error("Summary axes cannot be drawn for radial histograms"),x=()=>null));let g=c/m;const v=Object.keys(e);let b=0;const k=r.histogram(),j=[0,c],E=[];for(let e=0;m>e;e++)E.push(j[0]+e/m*c);const S="vertical"===s?e=>e.piece.scaledVerticalValue:e=>e.piece.scaledValue,M=k.domain(j).thresholds(E).value(S),A=v.map((a,n)=>{const o=e[a],i=o.xyData,l=i.sort("vertical"===s?we:Ne);let d;if(!1===t.useBins){const e=l.map(e=>S(e));d=l.map((t,a)=>{const n=[];return n.x0=e[a]-1,n.x1=e[a]+1,n.push(t),n}).sort((e,t)=>e.x0-t.x0),g=c/d.length}else d=M(l);d=d.map(e=>({y:e.x0,y1:e.x1-e.x0,pieces:e,value:h(e.map(e=>e.piece.data))})),"histogram"!==t.type&&"heatmap"!==t.type||(d=d.filter(e=>0!==e.value));const u=0===d.length?0:r.max(d.map(e=>e.value));return y&&(y[a]=u),b=Math.max(b,u),{bins:d,summary:o,summaryI:n,thisSummaryData:i}}),O=t.horizon?b/t.horizon:t.numHorizons||4,$=t.horizon||b/O;return A.forEach(({bins:e,summary:c,summaryI:d,thisSummaryData:m})=>{const v=a(c,d),k=c.width;let j=m[0]?n(m[0].piece.data,d):{},E=m[0]?o(m[0].piece.data,d):"",S=[c.middle,0];"horizontal"===s?S=[g,c.middle]:"radial"===s&&(S=[l[0]/2,l[1]/2]);const M=y&&y[c.name]||b;if("heatmap"===t.type||"histogram"===t.type){const a=(({bins:e,binMax:t,relativeBuckets:a,columnWidth:n,projection:o,adjustedSize:r,summaryI:s,summary:l,summaryStyle:c,type:d})=>{const u=[],p=[],m=a&&a[l.name]||t,y=d.elementStyleFn||re,h=d.padding||0;return e.forEach((e,t)=>{const a=e.value/m,f=y(e.value,a,e.pieces),x=Object.assign("heatmap"===d.type?{opacity:a,fill:c.fill}:Object.assign({},c),f),g=Math.max(1,e.y1-2*h),v="heatmap"===d.type?n:n*a;let b=e.y+h,k="heatmap"===d.type||d.flip?-n/2:n/2-v,j=g,E=v,S="heatmap"===d.type?v/2:v,M=e.y1/2;if("horizontal"===o)b="heatmap"===d.type||d.flip?-n/2:n/2-v,k=e.y-e.y1+h,j=v,E=g,M="heatmap"===d.type?v/2:v,S=e.y1/2;else if("radial"===o){const n=i.arc().innerRadius(e.y/2).outerRadius((e.y+e.y1)/2),o=l.pct-l.pct_padding;let c=l.pct_middle-l.pct_padding,m="heatmap"===d.type?c+o:c+o*a;c*=se,m*=se;const y=r[0]/2,h=r[1]/2,f=`translate(${y},${h})`,g=n.centroid({startAngle:c,endAngle:m});p.push({key:l.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:g[0]+y,y:g[1]+h}),u.push({markType:"path",transform:f,key:`groupIcon-${s}-${t}`,d:n({startAngle:c,endAngle:m}),style:x})}"radial"!==o&&(p.push({key:l.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:k+S,y:b+M}),u.push({markType:"rect",key:`groupIcon-${s}-${t}`,x:k,y:b,height:j,width:E,style:x}))}),{marks:u,points:p}})({bins:e,binMax:b,relativeBuckets:y,columnWidth:k,projection:s,adjustedSize:l,summaryI:d,summary:c,summaryStyle:j,type:t}),n=a.marks;"radial"===s&&(S=[0,0]),t.axis&&"histogram"===t.type&&u.push({type:"svg-only-mark",Mark:ze({summary:c,summaryI:d,axisSettings:t.axis,axisCreator:x,projection:s,actualMax:M,adjustedSize:l,columnWidth:k})}),a.points.forEach(e=>{e.x+=S[0],e.y+=S[1]}),p.push(...a.points),u.push({containerProps:Object.assign(Object.assign({},v),{transform:`translate(${S})`,className:E,key:"summaryPiece-"+d,role:"img",tabIndex:-1,"data-o":c.name,"aria-label":`${c.name} ${t.type}`}),elements:n})}else if("violin"===t.type){const{iqr:a}=t,l=t.subsets||[!1],y=[];e[0].y=e[0].y-g/2,e[e.length-1].y=e[e.length-1].y+g/2,l.forEach((l,u)=>{let x=e;l&&(j=m[0]?n(m[0].piece.data,d,u):{},E=m[0]?o(m[0].piece.data,d,u):"",x=e.map(e=>{const t=e.pieces.filter((e,t)=>l(e.piece,t)).map(e=>e),a=h(t);return Object.assign(Object.assign({},e),{pieces:t,value:a})}));let b=i.area().curve(t.curve||i.curveCatmullRom),A=[];if("horizontal"===s)x.forEach(e=>{const t=e.y-g/2,a=e.value/M*k/2;A.push({x:t,y0:-a,y1:a}),p.push({key:c.name,x:t+S[0],y:a+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),b.x(e=>e.x).y0(e=>e.y0).y1(e=>e.y1).defined((e,t)=>0!==e.y0||A[t-1]&&0!==A[t-1].y0||A[t+1]&&0!==A[t+1].y0);else if("vertical"===s)x.forEach(e=>{const t=e.y+g/2,a=e.value/M*k/2;A.push({y:t,x0:-a,x1:a}),p.push({key:c.name,x:a+S[0],y:t+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),b.y(e=>e.y).x0(e=>e.x0).x1(e=>e.x1).defined((e,t)=>0!==e.x0||A[t-1]&&0!==A[t-1].x0||A[t+1]&&0!==A[t+1].x0);else if("radial"===s){const e=c.pct-c.pct_padding/2,t=c.pct_middle;A=x,b=a=>{const n=[],o=[];return a.forEach(a=>{const r=he([0,0],t+e*a.value/M/2,(a.y+a.y1-g/2)/2),s=he([0,0],t-e*a.value/M/2,(a.y+a.y1-g/2)/2);p.push({key:c.name,x:s[0]+S[0],y:s[1]+S[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),p.push({key:c.name,x:r[0]+S[0],y:r[1]+S[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),n.push(r),o.push(s)}),`M${n.map(e=>e.join(",")).join("L")}L${o.reverse().map(e=>e.join(",")).join("L")}Z`}}if(y.push(Object.assign(Object.assign({},v),{transform:`translate(${S})`,key:`summaryPiece-${d}-${u}`,markType:"path",className:E,style:j,d:b(A),role:"img",tabIndex:-1,"data-o":c.name,"aria-label":c.name+" distribution"})),a){let e=[];x.forEach(t=>{e.push(...t.pieces)}),e=e.map(e=>"vertical"===s?e.piece.scaledVerticalValue:e.piece.scaledValue).sort((e,t)=>e-t);const t=[r.quantile(e,.25),r.quantile(e,.5),r.quantile(e,.75)],a="vertical"===s?(e,t,a)=>`M${a[0]},${e}L${a[0]},${t}`:(e,t,a)=>`M${e},${a[1]}L${t},${a[1]}`;y.push(Object.assign(Object.assign({},v),{key:`summaryPiece-${d}-${u}-iqr-line`,markType:"path",className:E,style:Object.assign(Object.assign({stroke:"black",strokeWidth:"2px"},j),f("iqr")),d:a(t[0],t[2],S),role:"img",tabIndex:-1,"data-o":c.name,"aria-label":c.name+" distribution"})),y.push(Object.assign(Object.assign({},v),{key:`summaryPiece-${d}-${u}-iqr-median`,markType:"circle",className:E,style:Object.assign(Object.assign({stroke:"black",fill:"black",strokeWidth:"1px",r:"3px"},j),f("median")),cx:"vertical"===s?S[0]:t[1],cy:"vertical"===s?t[1]:S[1],role:"img",tabIndex:-1,"data-o":c.name,"aria-label":c.name+" distribution"}))}}),u.push({elements:y})}else if("ridgeline"===t.type){const a=Object.assign({},e[0],{value:0}),n=Object.assign({},e[e.length-1],{value:0});a.y=a.y-g/2,n.y=n.y+g/2;const o=[a,...e,n];let r=[];const m=t.curve||t.interpolator,y="string"==typeof m?Ae[m]:m;let h=i.line().curve(y||i.curveCatmullRom).x(e=>e.x).y(e=>e.y);const f=t.amplitude||0;if(t.axis&&"histogram"===t.type&&u.push({type:"svg-only-mark",Mark:ze({summary:c,summaryI:d,axisSettings:Object.assign({baseline:!1},t.axis),axisCreator:x,projection:s,actualMax:M,adjustedSize:l,columnWidth:k})}),"horizontal"===s)o.forEach((e,a)=>{const n=e.y-g/2,s=t.flip?e.value/M*(k+f)-k/2:-e.value/M*(k+f)+k/2;r.push({y:s,x:n}),0!==a&&a!==o.length-1&&p.push({key:c.name,x:n+S[0],y:s+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("vertical"===s)o.forEach(e=>{const a=e.y+g/2,n=!0===t.flip?e.value/M*(k+f)-k/2:-e.value/M*(k+f)+k/2;r.push({y:a,x:n}),p.push({key:c.name,x:n+S[0],y:a+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("radial"===s){const e=c.pct-c.pct_padding/2,t=c.pct_start+c.pct_padding/2;S=[0,0],r=o,h=a=>{const n=[];return a.forEach(a=>{const o=he([l[0]/2,l[1]/2],t+e*a.value/M,(a.y+a.y1-g/2)/2);p.push({key:c.name,x:o[0]+S[0],y:o[1]+S[1],pieces:a.pieces.map(e=>e.piece),value:a.value}),n.push(o)}),`M${n.map(e=>e.join(",")).join("L")}Z`}}t.axis&&u.push({type:"svg-only-mark",Mark:ze({summary:c,summaryI:d,axisSettings:t.axis,axisCreator:x,projection:s,actualMax:M,adjustedSize:l,columnWidth:k})}),u.push({elements:[Object.assign(Object.assign({},v),{transform:`translate(${S})`,key:"summaryPiece-"+d,markType:"path",className:E,style:j,d:h(r),role:"img",tabIndex:-1,"data-o":c.name,"aria-label":c.name+" distribution"})]})}else if("horizon"===t.type){const a=Object.assign({},e[0],{value:0}),n=Object.assign({},e[e.length-1],{value:0});a.y=a.y-g/2,n.y=n.y+g/2;const o=[a,...e,n];let m=[],y=!0,h=0;for(;!0===y;){const e=o.map(e=>Object.assign(Object.assign({},e),{value:Math.max(0,Math.min(e.value-h,$))}));m.push(e.map(e=>Object.assign(Object.assign({},e),{value:e.value*O}))),h+=$,r.max(e.map(e=>e.value))<$&&(y=!1)}m=m.filter(e=>r.sum(e,e=>e.value)>0),o.forEach((e,a)=>{0!==a&&a!==o.length-1&&("horizontal"===s?p.push({key:c.name,x:e.y-g/2+S[0],y:-e.value/M*k+k/2+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value}):"vertical"===s&&p.push({key:c.name,x:(!0===t.flip?e.value/M*k-k/2:-e.value/M*k+k/2)+S[0],y:e.y+g/2+S[1],pieces:e.pieces.map(e=>e.piece),value:e.value}))});const b=m.map((e,a)=>{let n=[];const o=t.curve||t.interpolator,r="string"==typeof o?Ae[o]:o;let u=i.line().curve(r||i.curveLinear).x(e=>e.x).y(e=>e.y);if("horizontal"===s)e.forEach(e=>{n.push({y:-e.value/M*k+k/2,x:e.y-g/2})});else if("vertical"===s)e.forEach(e=>{n.push({y:e.y+g/2,x:!0===t.flip?e.value/M*k-k/2:-e.value/M*k+k/2})});else if("radial"===s){const t=c.pct-c.pct_padding/2,a=c.pct_start+c.pct_padding/2;S=[0,0],n=e,u=e=>{const n=[];return e.forEach(e=>{const o=he([l[0]/2,l[1]/2],a+t*e.value/M,(e.y+e.y1-g/2)/2);n.push(o)}),`M${n.map(e=>e.join(",")).join("L")}Z`}}return Object.assign(Object.assign({},v),{transform:`translate(${S})`,key:`summaryPiece-${d}-${a}`,markType:"path",className:E,style:Object.assign(Object.assign({},j),f(e,a)),d:u(n),role:"img",tabIndex:-1,"data-o":c.name,"aria-label":c.name+" distribution"})});t.axis&&u.push({type:"svg-only-mark",Mark:ze({summary:c,summaryI:d,axisSettings:t.axis,axisCreator:x,projection:s,actualMax:M,adjustedSize:l,columnWidth:k})}),u.push({elements:b})}}),{marks:u,xyPoints:p,thresholds:E}}const Le={contour:function({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,adjustedSize:r}){const s=[],i=[];return Object.keys(e).forEach((l,c)=>{const d=e[l];t.thresholds=t.thresholds||8,t.bandwidth=t.bandwidth||12,t.resolution=t.resolution||1e3;const u=[{id:d,_xyfCoordinates:d.xyData.map(Me)}],p=be({summaryType:t,data:u,finalXExtent:[0,r[0]],finalYExtent:[0,r[1]]}),m=[];p.forEach((e,t)=>{e.coordinates.forEach((r,s)=>{const i=a(e,t);m.push(Object.assign(Object.assign({},i),{key:`${t}-${s}`,style:n(d.pieceData[0].data,c),className:o(d.pieceData[0].data,c),markType:"path",d:`M${e.coordinates[0].map(e=>e.join(",")).join("L")}Z`}))})}),s.push({containerProps:{key:"contour-container-"+c,role:"img",tabIndex:-1,"data-o":l,"aria-label":`${l} boxplot showing ${i.filter(e=>e.key===l).map(e=>`${e.label} ${e.value}`)}`},elements:m})}),{marks:s,xyPoints:i}},boxplot:function({data:e,type:t,eventListenersGenerator:a,styleFn:n,classFn:o,projection:s,adjustedSize:l}){const c=t.elementStyleFn||fe,{outliers:d,fixedInput:u}=t,p=[],m=[];return Object.keys(e).forEach((t,y)=>{const h=e[t],f=a(h,y),x=h.width,g=h.pieceData,v=n(g[0].data,y),b=o(g[0].data,y);let k,j,E,S,M,A,O,$,P,C,D,w,N,T,z,F,L,R,B,V,I,_,W,G,X,Y,q,H,K,Z,J;j=g.map(e=>e.value).sort((e,t)=>e-t),!0===u&&5===j.length||(j=[r.quantile(j,0),r.quantile(j,.25),r.quantile(j,.5),r.quantile(j,.75),r.quantile(j,1)]);const Q=j[3]-j[1];let U,ee;d&&(U=j[1]-1.5*Q,ee=j[3]+1.5*Q,j[0]=Math.max(j[0],U),j[4]=Math.min(j[4],ee));const te="vertical"===s?e=>e.scaledVerticalValue:e=>e.scaledValue,ae=[...g].sort((e,t)=>e.value-t.value),ne=ae[0].value,oe=ae[ae.length-1].value,re=te(ae[0]),se=te(ae[ae.length-1]);if(k=j.map(e=>oe===ne?(re+se)/2:re+(e-ne)/(oe-ne)*(se-re)),"vertical"===s){E=`translate(${h.x+h.width/2},0)`,S=0,M=0,A=k[0],O=k[4],$=-x/2,P=x/2,C=-x/2,D=x/2,w=-x/2,N=x/2,R=x,B=k[1]-k[2],V=k[2],I=-x/2,T=x,z=k[2]-k[3],_=x,W=k[1]-k[3],G=k[3],X=-x/2,F=k[3],L=-x/2,Y=k[0],q=k[0],H=k[4],K=k[4],Z=k[2],J=k[2];const e=h.x+h.width/2;m.push({label:"Maximum",key:t,summaryPieceName:"max",x:e,y:k[4],value:j[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:e,y:k[3],value:j[3]},{label:"Median",key:t,summaryPieceName:"median",x:e,y:k[2],value:j[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:e,y:k[1],value:j[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:e,y:k[0],value:j[0]})}else if("horizontal"===s){const e=h.x+h.width/2;E=`translate(0,${e})`,A=0,O=0,S=k[0],M=k[4],Y=-x/2,q=x/2,Z=-x/2,J=x/2,H=-x/2,K=x/2,z=x,T=k[3]-k[2],L=k[2],F=-x/2,B=x,R=k[2]-k[1],I=k[1],V=-x/2,W=x,_=k[3]-k[1],X=k[1],G=-x/2,$=k[0],P=k[0],w=k[4],N=k[4],C=k[2],D=k[2],m.push({label:"Maximum",key:t,summaryPieceName:"max",x:k[4],y:e,value:j[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:k[3],y:e,value:j[3]},{label:"Median",key:t,summaryPieceName:"median",x:k[2],y:e,value:j[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:k[1],y:e,value:j[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:k[0],y:e,value:j[0]})}if("radial"===s){S=0,M=0,A=k[0],O=k[4],$=-x/2,P=x/2,C=-x/2,D=x/2,w=-x/2,N=x/2,T=x,z=k[1]-k[3],F=k[3],L=-x/2,R=x,B=k[1]-k[3],V=k[3],I=-x/2,Y=k[0],q=k[0],H=k[4],K=k[4],Z=k[2],J=k[2];const e=2*Math.PI,a=i.arc().innerRadius(H/2).outerRadius(H/2),n=i.arc().innerRadius(Y/2).outerRadius(Y/2),o=i.arc().innerRadius(Z/2).outerRadius(Z/2),r=i.arc().innerRadius(k[1]/2).outerRadius(Z/2),s=i.arc().innerRadius(Z/2).outerRadius(k[3]/2),d=i.arc().innerRadius(k[1]/2).outerRadius(k[3]/2);let u=h.pct_start+h.pct_padding/2,_=h.pct+h.pct_start-h.pct_padding/2;const W=h.pct/2+h.pct_start;u*=e,_*=e;const G=l[0]/2,X=l[1]/2,Q=he([0,0],W,k[4]/2),U=he([0,0],W,k[0]/2),ee=he([0,0],W,k[3]/2),te=he([0,0],W,k[2]/2),ae=he([0,0],W,k[1]/2);m.push({label:"Minimum",key:t,summaryPieceName:"min",x:U[0]+G,y:U[1]+X,value:j[0]},{label:"1st Quartile",key:t,summaryPieceName:"q3area",x:ae[0]+G,y:ae[1]+X,value:j[1]},{label:"Median",key:t,summaryPieceName:"median",x:te[0]+G,y:te[1]+X,value:j[2]},{label:"3rd Quartile",key:t,summaryPieceName:"q1area",x:ee[0]+G,y:ee[1]+X,value:j[3]},{label:"Maximum",key:t,summaryPieceName:"max",x:Q[0]+G,y:Q[1]+X,value:j[4]}),E=`translate(${G},${X})`,p.push({containerProps:Object.assign(Object.assign({},f),{className:b,transform:E,key:"summaryPiece-"+y,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${m.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[{markType:"line",x1:Q[0],x2:U[0],y1:Q[1],y2:U[1],style:Object.assign({strokeWidth:2},v,c("whisker",g))},{markType:"path",d:n({startAngle:u,endAngle:_}),style:Object.assign({strokeWidth:4},v,{fill:"none"},c("max",g))},{markType:"path",d:o({startAngle:u,endAngle:_}),style:Object.assign({strokeWidth:4},v,{fill:"none"},c("median",g))},{markType:"path",d:a({startAngle:u,endAngle:_}),style:Object.assign({strokeWidth:4},v,{fill:"none"},c("min",g))},{markType:"path",d:d({startAngle:u,endAngle:_}),style:Object.assign({strokeWidth:4},v,c("iqrarea",g))},{markType:"path",d:r({startAngle:u,endAngle:_}),style:Object.assign({},v,{fill:"none",stroke:"none"},c("q3area",g))},{markType:"path",d:s({startAngle:u,endAngle:_}),style:Object.assign({},v,{fill:"none",stroke:"none"},c("q1area",g))}]})}else{const e=[{markType:"line",x1:S,x2:M,y1:A,y2:O,style:Object.assign({strokeWidth:2},v,c("whisker",g))},{markType:"line",x1:$,x2:P,y1:Y,y2:q,style:Object.assign({strokeWidth:2},v,c("min",g))},{markType:"line",x1:w,x2:N,y1:H,y2:K,style:Object.assign({strokeWidth:2},v,c("max",g))},{markType:"rect",x:X,width:_,y:G,height:W,style:Object.assign({strokeWidth:1},v,c("iqrarea",g))},{markType:"rect",x:L,width:T,y:F,height:z,style:Object.assign({},v,{fill:"none",stroke:"none"},c("q3area",g))},{markType:"rect",x:I,width:R,y:V,height:B,style:Object.assign({},v,{fill:"none",stroke:"none"},c("q1area",g))},{markType:"line",x1:C,x2:D,y1:Z,y2:J,style:Object.assign({strokeWidth:2},v,c("median",g))}],a=[];d&&g.filter(e=>e.value>ee||U>e.value).forEach(e=>{a.push({markType:"circle",cx:"horizontal"===s?e.scaledValue:0,cy:"vertical"===s?e.scaledVerticalValue:0,style:Object.assign({strokeWidth:"1px",stroke:"black",fill:"none",r:2},v,c("outlier",g))})}),p.push({containerProps:Object.assign(Object.assign({},f),{className:b,transform:E,key:"summaryPiece-"+y,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${m.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[...e,...a]})}}),{marks:p,xyPoints:m}},violin:Fe,heatmap:Fe,ridgeline:Fe,histogram:Fe,horizon:Fe,ckbins:function(e){const{data:a,eventListenersGenerator:n,styleFn:o,classFn:r}=e,s=[];let i=0;const l=[];return Object.keys(a).forEach((e,s)=>{const c=a[e];n(c,s);const d=c.pieceData.sort((e,t)=>e.value-t.value),u=d[0],p=d[d.length-1],m=t.scaleLinear().domain([u.value,p.value]).range([u.scaledValue,p.scaledValue]),y=o(d[0].data,s),h=r(d[0].data,s),f=function(e,t){if(t>e.length)throw Error("Cannot generate more classes than there are data values");var a=e.length,n=e.slice().sort(function(e,t){return e-t}),o=function(e){for(var t,a=0,n=0;e.length>n;n++)0!==n&&e[n]===t||(t=e[n],a++);return a}(n);if(1===o)return[n[0]];var r=xe(t=Math.min(o,t),a),s=xe(t,a);!function(e,t,a){for(var n=t[0].length,o=Array(n),r=Array(n),s=e[Math.floor(n/2)],i=0;n>i;++i)0===i?(o[0]=e[0]-s,r[0]=(e[0]-s)*(e[0]-s)):(o[i]=o[i-1]+e[i]-s,r[i]=r[i-1]+(e[i]-s)*(e[i]-s)),t[0][i]=ge(0,i,o,r),a[0][i]=0;for(var l=1;t.length>l;++l)ve(t.length-1>l?l:n-1,n-1,l,t,a,o,r)}(n,r,s);for(var i=[],l=s[0].length-1,c=s.length-1;c>=0;c--){var d=s[c][l];i[c]=n[d],c>0&&(l=d-1)}return i}(d.map(e=>e.value),5);let x=[];f.forEach((t,a)=>{var n;const o=null!==(n=f[a+1])&&void 0!==n?n:p.value;x.push({start:t,end:o,key:e,summary:c,calculatedSummaryStyle:y,calculatedSummaryClass:h,scaledStart:m(t),scaledEnd:m(o),values:[]})}),l.push(x);let g=0;for(const e of d)x[g].end>e.value||x[g+1]&&g++,x[g].values.push(e);x.forEach(e=>{i=Math.max(e.values.length,i)})}),l.forEach((e,a)=>{const n=e.map(e=>{const{calculatedSummaryStyle:a}=e,{fill:n="black",stroke:o="black"}=a,r=t.scaleLinear().domain([1,i]).range(["white",n]);return{markType:"rect",x:e.scaledStart,width:e.scaledEnd-e.scaledStart,y:e.summary.x,height:e.summary.width,style:Object.assign({strokeWidth:2},a,{fill:r(e.values.length),strokeWidth:1,stroke:o})}});s.push({containerProps:{transform:"",key:"summaryPiece-"+a,role:"img",tabIndex:-1},elements:n})}),{marks:s,xyPoints:[]}}};function Re(t){const{rotate:a,label:n,dynamicLabelPosition:o,orient:r="left",marginalSummaryType:s,tickFormat:i=(s?()=>"":e=>e),size:l,width:c=l&&l[0]||0,height:d=l&&l[1]||0,className:u,padding:p,tickValues:m,scale:y,ticks:h,footer:f,tickSize:g,tickLineGenerator:v,baseline:b=!0,margin:k={top:0,bottom:0,left:0,right:0},center:j=!1,annotationFunction:E,glyphFunction:S,xyPoints:M}=t,[A,O]=e.useState(0),[$,P]=e.useState(void 0),C=e.useRef(null);e.useEffect(()=>{if(!(null==n?void 0:n.position)&&o){const e=((e,t)=>{const a=e.current;if(!a)return 30;const n="left"===t||"right"===t?"width":"height";return Math.max(...[...a.querySelectorAll(".axis-label")].map(e=>e.getBBox&&e.getBBox()||{height:30,width:30}).map(e=>e[n]))+25})(C,r);e!==$&&P(e)}},[n,o]);let D,{axisParts:w,position:N=[0,0]}=t;if(w||(w=ce({padding:p,tickValues:m,scale:y,ticks:h,orient:r,size:[c,d],footer:f,tickSize:g}),D=x.createElement("g",{className:"axis "+u},de({axisParts:w,orient:r,tickLineGenerator:v,className:u,scale:y}))),0===w.length)return null;let T,z,F,L,R=50,B=d,V=-50,I=0,_=0,G=0,X=0,Y=d,q=25,H=-25,K=18,Z=c+25,J=0,Q=A,U=0,ee="y";switch(r){case"right":N=[N[0],N[1]],V=c,X=_=c,U=k.top,Z=-c-25,H=5,T=e=>{O(e.nativeEvent.offsetY-U)},!0===j&&(X=_=c/2);break;case"top":N=[N[0],0],R=c,B=50,I=-50,V=0,U=k.left,ee="x",X=c,Y=0,!0===j&&(Y=G=d/2),T=e=>{O(e.nativeEvent.offsetX-U)},q=A,Q=25,H=0,K=-10,Z=0,J=d+25;break;case"bottom":N=[N[0],0],R=c,B=50,G=Y=I=d,_=V=0,X=c,U=k.left,T=e=>{O(e.nativeEvent.offsetX-U)},q=A,Q=25,H=0,K=15,Z=0,J=-d-25,ee="x",!0===j&&(Y=G=d/2);break;default:N=[N[0],N[1]],U=k.top,!0===j&&(X=_=c/2),T=e=>{O(e.nativeEvent.offsetY-U)}}if(E){const e=function(e,t){return t.tickFormat?t.tickFormat(e):e.toString?""+e:e}(y.invert(A),t),a=S?S({lineHeight:J,lineWidth:Z,value:y.invert(A)}):x.createElement("g",null,x.isValidElement(e)?x.createElement("g",{transform:`translate(${H},${K})`},e):x.createElement("text",{x:H,y:K},e),x.createElement("circle",{r:5}),x.createElement("line",{x1:Z,y1:J,style:{stroke:"black"}})),n=A?x.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${q},${Q})`},a):null;z=x.createElement("g",{className:"annotation-brush",transform:`translate(${V},${I})`},x.createElement("rect",{style:{fillOpacity:0},height:B,width:R,onMouseMove:T,onClick:e=>E({className:"dynamic-axis-annotation",type:ee,value:y.invert(A),e:e}),onMouseOut:()=>{O(void 0)}}),n)}if(s&&M){const e=Math.max(k[r]-6,5),t="string"==typeof s?{type:s}:s;void 0!==t.flip||"bottom"!==r&&"right"!==r||(t.flip=!0);const a=t.summaryStyle?()=>t.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),n=t.renderMode?()=>t.renderMode:()=>{},o=t.summaryClass?()=>t.summaryClass:()=>"",i=t.filter||(()=>!0),c=M.filter(e=>void 0!==e.x&&void 0!==e.y&&i(e.data)).map(e=>Object.assign(Object.assign({},e),{xy:{x:"top"===r||"bottom"===r?y(e.x):0,y:"left"===r||"right"===r?y(e.y):0},piece:{scaledVerticalValue:y(e.y),scaledValue:y(e.x)},value:y("top"===r||"bottom"===r?e.y:e.x),scaledValue:y(e.x),scaledVerticalValue:y(e.y)})),d=function(e){const t=[];for(const a of e){const e=[],{elements:n,containerProps:o}=a;if(a.Mark)t.push(a.Mark);else{for(let t=0;n.length>t;t++){const a=n[t],{markType:o,style:r={}}=a,s=W(a,["markType","style"]),i=Object.assign({},s);void 0!==r.fill&&(i.fill=r.fill),void 0!==r.stroke&&(i.stroke=r.stroke),void 0!==r.strokeWidth&&(i.strokeWidth=r.strokeWidth),void 0!==r.opacity&&(i.opacity=r.opacity),void 0!==r.fillOpacity&&(i.fillOpacity=r.fillOpacity),void 0!==r.strokeOpacity&&(i.strokeOpacity=r.strokeOpacity);const l=Object.assign({},r);delete l.fill,delete l.stroke,delete l.strokeWidth,delete l.opacity,delete l.fillOpacity,delete l.strokeOpacity,Object.keys(l).length>0&&(i.style=l),i.key=a.key||t,o&&e.push(x.createElement(o,i))}o?t.push(x.createElement("g",Object.assign({},o),e)):t.push(...e)}}return t}((({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,margin:l,axisCreator:c})=>{if(t&&t.type)return function({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:l,margin:c,axisCreator:d}){let u;if("function"==typeof t.type)u=t.type;else{if(!Le[t.type])return console.error(`Invalid summary type: ${t.type} - Must be a function or one of the following strings: ${Object.keys(Le).join(", ")}`),{};u=Le[t.type]}return u({data:e,type:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:l,margin:c,axisCreator:d})}({data:e,type:t="string"==typeof t?{type:t}:t,renderMode:a,eventListenersGenerator:n,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:"vertical"===s?i[1]:i[0],margin:l,axisCreator:c})})({data:{column:{middle:e/2,pieceData:c,width:e,xyData:c}},type:t,renderMode:n,eventListenersGenerator:t.eventListenersGenerator||(()=>({})),styleFn:a,classFn:o,projection:"top"===r||"bottom"===r?"horizontal":"vertical",adjustedSize:l,margin:{top:0,bottom:0,left:0,right:0}}).marks);let u;if(!0===t.showPoints){const a=((e,t,a)=>{const n="left"===e||"right"===e?t/2:0,o="bottom"===e||"top"===e?t/2:0;return a.map(e=>[e.xy.x+n,e.xy.y+o])})(r,e,c);u=a.map((e,a)=>x.createElement("circle",{key:"axis-summary-point-"+a,cx:e[0],cy:e[1],r:t.r||3,style:t.pointStyle||{fill:"black",fillOpacity:.1}}))}F=x.createElement(me,{translation:{left:[2-k.left,0],right:[l[0]+2,0],top:[0,2-k.top],bottom:[0,l[1]+2]},orient:r,decoratedSummaryType:t,summaryWidth:e,renderedSummary:d,points:u})}const te=(({axisParts:e,tickFormat:t,rotate:a=0,center:n=!1,orient:o})=>e.map((e,r)=>{let s=t(e.value,r);("object"!=typeof s||s instanceof Date)&&(s=x.createElement("text",{textAnchor:e.defaultAnchor,className:"axis-label"},s.toString?""+s:s));let i=e.tx,l=e.ty;if(n)switch(o){case"right":i-=(e.x2-e.x1)/2;break;case"left":i+=(e.x2-e.x1)/2;break;case"top":l+=(e.y2-e.y1)/2;break;case"bottom":l-=(e.y2-e.y1)/2}return x.createElement("g",{key:r,pointerEvents:"none",transform:`translate(${i},${l}) rotate(${a})`,className:"axis-label"},s)}))({tickFormat:i,axisParts:w,orient:r,rotate:a,center:j});if(n){const e=n.name||n,t=n.position||{};let a=t.anchor||"middle";const o=n.locationDistance||$,s=t.rotation||{left:-90,right:90,top:0,bottom:0}[r],i={left:{start:[0,l[1]],middle:[0,l[1]/2],end:[0,0],inside:[o||15,0],outside:[-(o||45),0]},right:{start:[l[0]+0,l[1]],middle:[l[0]+0,l[1]/2],end:[l[0]+0,0],inside:[-(o||15),0],outside:[o||45,0]},top:{start:[0,0],middle:[0+l[0]/2,0],end:[0+l[0],0],inside:[0,o||15],outside:[0,-(o||40)]},bottom:{start:[0,l[1]],middle:[0+l[0]/2,l[1]],end:[0+l[0],l[1]],inside:[0,-(o||5)],outside:[0,o||50]}},c=i[r][a],d=i[r][t.location||"outside"];c[0]=c[0]+d[0],c[1]=c[1]+d[1],"start"===a&&"right"===r?a="end":"end"===a&&"right"===r&&(a="start"),L=x.createElement(ye,{className:u,translation:c,position:N,rotation:s,labelName:e,anchorMod:a})}const ae=`${r} axis ${w&&w.length>0&&`from ${i(w[0].value,0)} to ${i(w[w.length-1].value,w.length-1)}`||"without ticks"}`;return x.createElement("g",{className:u,"aria-label":ae,ref:C},z,te,D,!0===b?x.createElement("line",{key:"baseline",className:"axis-baseline "+u,stroke:"black",strokeLinecap:"square",x1:_,x2:X,y1:G,y2:Y}):null,L,F)}const Be=e=>{let t=null,a="top";return"string"==typeof e?t=e:"title"in e?(t=e.title,a=e.orient||"top"):t=e,{orient:a,title:t}},Ve=({margin:e,size:t,inset:a=0})=>{const n=[t[0]-a,t[1]-a];return`M0,0 h${t[0]} v${t[1]} h-${t[0]}Z M${e.left-a},${e.top-a} v${t[1]+2*a-e.top-e.bottom} h${n[0]+3*a-e.left-e.right} v-${n[1]+3*a-e.top-e.bottom}Z`},Ie=({margin:e,axes:t,title:a,oLabel:n,projection:o,size:r})=>{if(void 0!==e){if("function"==typeof e&&(e=e({size:r})),"object"!=typeof e)return{top:e,bottom:e,left:e,right:e};if("object"==typeof e)return Object.assign({top:0,bottom:0,left:0,right:0},e)}const s={top:0,bottom:0,left:0,right:0};let i="left";t&&"radial"!==o&&t.forEach(e=>{i=e.orient,s[i]=e.label?60:50});const{title:l,orient:c}=Be(a);return!l||"string"==typeof l&&0===l.length||(s[c]+=40),n&&"radial"!==o&&("bottom"===i||"top"===i?s.left+=50:s.bottom+=50),s};function _e(e){return e instanceof Function||"string"==typeof e?{type:e}:void 0===e?{}:e}function We({size:e=[500,500],position:t=[0,0],margin:a,projection:n}){const o=[t[0],t[1]];let r=[e[0]-(a.left+a.right),e[1]-(a.top+a.bottom)];if("radial"===n){const e=Math.min(r[0],r[1]);r=[e,e]}return{adjustedPosition:o,adjustedSize:r}}const Ge=(e,t,a,n)=>{const o=e.getContext("2d",{willReadFrequently:!0}),r=o.getImageData(n.offsetX,n.offsetY,1,1);let s=t[a.get(`rgba(${r.data[0]},${r.data[1]},${r.data[2]},255)`)];if(!s){const e=o.getImageData(n.offsetX-2,n.offsetY-2,5,5);let r=0;for(;!s&&100>r;)s=t[a.get(`rgba(${e.data[r]},${e.data[r+1]},${e.data[r+2]},255)`)],r+=4}return s},Xe=x.memo(function({width:t,height:a,overlayRegions:n,margin:o,voronoiHover:r}){let s=e.useRef();return e.useLayoutEffect(()=>{Ye(s.current,r,a,t,n,o)},[t,a,n]),x.createElement("canvas",{className:"frame-canvas-interaction",ref:e=>{null!=e&&s.current!==e&&(s.current=e,Ye(e,r,a,t,n,o))},style:{position:"absolute",left:"0px",top:"0px",imageRendering:"pixelated",pointerEvents:"all",opacity:0},width:t,height:a})});function Ye(e,t,a,n,o,r){const s=new Map;if(null===e||!o)return;const i=Ge.bind(null,e,o,s);e.onmousemove=e=>{var a,n,o,r;const s=i(e);(null===(a=null==s?void 0:s.props)||void 0===a?void 0:a.onMouseEnter)?null===(n=null==s?void 0:s.props)||void 0===n||n.onMouseEnter():(null===(r=null===(o=null==s?void 0:s.props)||void 0===o?void 0:o.children)||void 0===r?void 0:r[0])?s.props.children[0].props.onMouseEnter():t(null)},e.onmouseout=()=>{t(null)},e.onclick=e=>{var t,a,n,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onClick)?null===(a=null==r?void 0:r.props)||void 0===a||a.onClick():(null===(o=null===(n=null==r?void 0:r.props)||void 0===n?void 0:n.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onClick(e)},e.ondblclick=e=>{var t,a,n,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onDoubleClick)?null===(a=null==r?void 0:r.props)||void 0===a||a.onDoubleClick():(null===(o=null===(n=null==r?void 0:r.props)||void 0===n?void 0:n.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onDoubleClick(e)};const l=e.getContext("2d",{willReadFrequently:!0});l.imageSmoothingEnabled=!1,l.setTransform(1,0,0,1,r.left,r.top),l.clearRect(-r.left,-r.top,n,a),l.lineWidth=1,o.forEach((e,t)=>{var a,n,o,r,i,c;const d=`rgba(${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},255)`;s.set(d,t);const u=e.props;if(l.fillStyle=d,l.strokeStyle=d,u.d||(null===(o=null===(n=null===(a=u.children)||void 0===a?void 0:a[0])||void 0===n?void 0:n.props)||void 0===o?void 0:o.d)){const e=u.d||u.children[0].props.d,t=u.transform||(null===(c=null===(i=null===(r=u.children)||void 0===r?void 0:r[0])||void 0===i?void 0:i.props)||void 0===c?void 0:c.transform)||"translate(0,0)",[a,n]=t.replace("translate(","").replace(")","").split(",").map(Number);l.translate(a,n);const o=new Path2D(e);l.stroke(o),l.fill(o),l.translate(-a,-n)}else"rect"===u.markType&&(l.fillRect(u.x,u.y,u.width,u.height),l.strokeRect(u.x,u.y,u.width,u.height))})}function qe(t){let a=null;const{interaction:i,svgSize:l=[500,500],margin:c={left:0,right:0,top:0,bottom:0},overlay:d,points:u,xScale:p,yScale:m,hoverAnnotation:y,customClickBehavior:h,customDoubleClickBehavior:f,customHoverBehavior:g,disableCanvasInteraction:v,canvasRendering:b}=t;let{enabled:k}=t,j=D(e=>e.changeTooltip);const E=e=>{j(e)},[S,M]=e.useState([]),[A,O]=e.useState(null);return e.useEffect(()=>{let e,a;v||!S?(e=null,a=null):(e=((e,t)=>{let a=[];const{xScale:n,yScale:o,points:i,projectedX:l,showLinePoints:c,size:d,overlay:u,interactionOverflow:p={top:0,bottom:0,left:0,right:0},customClickBehavior:m,customDoubleClickBehavior:y,customHoverBehavior:h,hoverAnnotation:f,margin:g,advancedSettings:v={}}=e,b={top:q,bottom:H},k=m||y?{cursor:"pointer"}:{};if(i&&f&&!u){const{voronoiFilter:e=()=>!0}=v,u=[],j=new Map;for(const t of i)if(e(Object.assign(Object.assign({},t),t.data))){const e=Math.floor(n(t[l])),a=Math.floor(o(c&&void 0!==t[b[c]]?t[b[c]]:void 0!==t[Y]?t[Y]:t[X]));if(!(0-g.left>e||e>d[0]+g.right||0-g.top>a||a>d[1]+g.bottom||void 0===e||void 0===a||!1!==isNaN(e)||!1!==isNaN(a))){const n=`${e},${a}`;if(j.has(n))j.get(n).coincidentPoints.push(t);else{const o=Object.assign(Object.assign({},t),{coincidentPoints:[t],voronoiX:e,voronoiY:a});u.push(o),j.set(n,o)}}}let E=r.extent(u.map(e=>e.voronoiX)),S=r.extent(u.map(e=>e.voronoiY));null!=E[0]&&null!=S||(E=[0,0],S=[0,0]);const M=[Math.min(E[0]-5,-p.left),Math.min(S[0]-5,-p.top),Math.max(E[1]+5,d[0]+p.right),Math.max(S[1]+5,d[1]+p.bottom)],A=s.Delaunay.from(u,e=>e.voronoiX,e=>e.voronoiY).voronoi(M);return a=u.map((e,a)=>{let n=null;return v.voronoiClipping&&(n=x.createElement("clipPath",{id:"voronoi-"+a},x.createElement("circle",{r:!0===v.voronoiClipping?50:v.voronoiClipping,cx:e.voronoiX,cy:e.voronoiY}))),x.createElement("g",{key:"voronoi-"+a},x.createElement("path",{onClick:e=>{ee(u[a],m,i,e)},onDoubleClick:e=>{te(u[a],y,i,e)},onMouseEnter:e=>{U(t,u[a],f,h,i,e)},onMouseLeave:e=>{U(t,void 0,void 0,h,void 0,e)},key:"interactionVoronoi"+a,d:A.renderCell(a),style:Object.assign({fillOpacity:0},k),clipPath:`url(#voronoi-${a})`}),n)},window),a}if(u)return u.map((a,n)=>{const{overlayData:o}=a,r=W(a,["overlayData"]),s={key:"overlay-"+n,onMouseEnter:a=>{U(t,o,e.hoverAnnotation,h,i,a)},onMouseLeave:e=>{U(t,void 0,void 0,h,void 0,e)},onClick:e=>{ee(o,m,i,e)},onDoubleClick:e=>{te(o,y,i,e)},style:Object.assign({opacity:0},k)};if(x.isValidElement(a.renderElement))return x.cloneElement(a.renderElement,s);{const e=r,{markType:t}=e,a=W(e,["markType"]);return x.createElement(t||"path",Object.assign(Object.assign(Object.assign({},a),{key:"overlay-"+n}),s))}})})(t,E),b&&(a=x.createElement(Xe,{height:l[1],width:l[0],overlayRegions:e,margin:c,voronoiHover:E}))),M(e),O(a)},[d,u,p,m,!!y,!!h,!!f,!!g]),i&&i.brush&&(k=!0,a=((e,t)=>{let a,r,s,i;const{xScale:l,yScale:c,size:d,renderPipeline:u}=t,p={};Object.entries(u).forEach(([e,t])=>{t.data&&t.data.length>0&&(p[e]=t.data)});const{projection:m,projectedColumns:y}=e,h="oBrush"===e.brush?"horizontal"===m?"yBrush":"xBrush":e.brush;let{extent:f}=e;if(f||(f="xyBrush"===h?[[l.invert(0),c.invert(0)],[l.invert(d[0]),c.invert(d[1])]]:"xBrush"===h?[l.invert(0),l.invert(d[0])]:[c.invert(0),c.invert(d[1])]),f.indexOf&&-1!==f.indexOf(void 0))return x.createElement("g",null);if("xBrush"===h){const e=[...f];r=e=>e?[l.invert(e[0]),l.invert(e[1])]:null,a=n.brushX(),s=e.map(e=>l(e)),i=r}else if("yBrush"===h){const e=[...f];r=e=>e?[c.invert(e[0]),c.invert(e[1])].sort((e,t)=>e-t):null,a=n.brushY(),s=e.map(e=>c(e)).sort((e,t)=>e-t),i=r}else{const e=[...f.map(e=>[...e])];if(-1!==e.indexOf(void 0)||-1!==e[0].indexOf(void 0)||-1!==e[1].indexOf(void 0))return x.createElement("g",null);a=n.brush(),r=e=>{if(!e)return null;const t=[c.invert(e[0][1]),c.invert(e[1][1])].sort((e,t)=>e-t);return[[l.invert(e[0][0]),t[0]],[l.invert(e[1][0]),t[1]]]};const t=[c(f[0][1]),c(f[1][1])].sort((e,t)=>e-t);s=e.map((e,a)=>[l(e[0]),t[a]]),i=r}if("oBrush"===e.brush){if(s=null,e.extent){const[t,a]=e.extent;"string"!=typeof t&&"number"!=typeof t||"string"!=typeof a&&"number"!=typeof a||(s=[y[t].x,y[a].x+y[a].width])}r=(e=>t=>t?Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]):null)(y),i=(e=>(t,a)=>{if(t&&a.sourceEvent&&a.sourceEvent.path&&a.sourceEvent.path[1]&&a.sourceEvent.path[1].classList.contains("xybrush")&&a.target.move){const n=Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]),r=n[0]||{x:0,width:0},s=n[n.length-1]||{x:0,width:0},i=[r.x+Math.min(5,r.width/10),s.x+s.width-Math.min(5,s.width/10)];return o.select(a.sourceEvent.path[1]).transition(750).call(a.target.move,i),n}return null})(y)}return a.extent([[0,0],[d[0],d[1]]]).on("start",t=>{ae(r(t.selection),void 0,p,void 0,e)}).on("brush",t=>{ne(r(t.selection),void 0,p,void 0,e)}).on("end",t=>{oe(i(t.selection,t),void 0,p,void 0,e)}),x.createElement("g",{className:"brush"},x.createElement(_,{selectedExtent:s,extent:f,svgBrush:a}))})(i,t)),i&&i.columnsBrush&&(k=!0,a=((e,t)=>{const{projection:a,rScale:o,oColumns:r,renderPipeline:s}=t;if(!a||!o||!r)return;const i={};let l,c;Object.entries(s).forEach(([e,t])=>{t.data&&t.data.length>0&&(i[e]=t.data)});const d=o.copy().domain(o.domain()).range(o.domain().reverse());c=a&&"horizontal"===a?e=>e?[o.invert(e[0]),o.invert(e[1])]:null:e=>e?[d(o.invert(e[1])),d(o.invert(e[0]))]:null;const u=o.range(),p=r;let m,y;return Object.keys(p).map(t=>(a&&"horizontal"===a?(y=e.extent[t]?e.extent[t].map(e=>o(e)):e.startEmpty?null:u,m=[0,p[t].x],l=n.brushX(),l.extent([[u[0],0],[u[1],p[t].width]]).on("start",a=>{ae(c(a.selection),t,i,p[t],e)}).on("brush",a=>{ne(c(a.selection),t,i,p[t],e)}).on("end",a=>{oe(c(a.selection),t,i,p[t],e)})):(y=e.extent[t]?e.extent[t].map(e=>u[1]-o(e)).reverse():e.startEmpty?null:u,m=[p[t].x,0],l=n.brushY(),l.extent([[0,u[0]],[p[t].width,u[1]]]).on("start",a=>{ae(c(a.selection),t,i,p[t],e)}).on("brush",a=>{ne(c(a.selection),t,i,p[t],e)}).on("end",a=>{oe(c(a.selection),t,i,p[t],e)})),x.createElement("g",{key:"column-brush-"+t,className:"brush"},x.createElement(_,{key:"orbrush"+t,selectedExtent:y,svgBrush:l,position:m}))))})(i,t)),S||a?x.createElement("div",{className:"interaction-layer","data-testid":"interaction-layer",style:{position:"absolute",background:"none",pointerEvents:"none",height:"100%",width:"100%",overflow:"hidden"}},A||x.createElement("svg",{height:l[1],width:l[0],style:{background:"none",pointerEvents:"none"}},x.createElement("g",{className:"interaction-overlay",transform:`translate(${c.left},${c.top})`,style:{pointerEvents:k?"all":"none"}},x.createElement("g",{className:"interaction-regions"},S),a))):null}function He(t){const{matte:a,matteClip:n,axes:o,frameKey:r="",margin:s={left:0,right:0,bottom:0,top:0},title:i,ariaTitle:l,axesTickLines:c,frameRenderOrder:d,additionalVizElements:u,transition:p}=t;let m=D(e=>e.changeTooltip);const y=e.useCallback(e=>{m(e)},[m]),[h,f]=e.useState(null),[g,v]=e.useState(null),b=e.useMemo(()=>(({focusedPieceIndex:e,changeFocusedPieceIndex:t,changeFocusedVisualizationGroup:a})=>({e:{keyCode:n},vizgroup:o,props:r,piecesGroup:s})=>{const{renderPipeline:i,voronoiHover:l}=r,c=n;if(37!==c&&39!==c&&13!==c)return;let d=0;const u={};null===e||13===c?u.focusedVisualizationGroup=o:37===c?d=e-1:39===c&&(d=e+1),d=0>d?s[o].length+d:d%s[o].length,l(i[o].accessibleTransform(i[o].data,d,s[o][d])),t(d),a(u.focusedVisualizationGroup)})({focusedPieceIndex:h,changeFocusedPieceIndex:f,changeFocusedVisualizationGroup:v}),[h,f,v]),k=((e,t,a)=>{const{xScale:n,yScale:o,dataVersion:r,projectedCoordinateNames:s,renderPipeline:i={},renderOrder:l=[],transition:c}=e,d=[],u={},p=[];return l.concat(Object.keys(i).filter(e=>-1===l.indexOf(e))).forEach(r=>{const l=i[r];if(l&&(l.data&&"object"==typeof l.data&&!Array.isArray(l.data)||l.data&&l.data.length>0)){const i=l.behavior(Object.assign({xScale:n,yScale:o,canvasDrawing:d,projectedCoordinateNames:s},l));i&&i.length>0&&p.push(x.createElement("g",Object.assign({key:r,className:r,"data-testid":r,role:"group",tabIndex:0},c?{"data-semiotic-transition":""}:void 0,{"aria-label":l.ariaLabel&&`${i.length} ${l.ariaLabel.items}s in a ${l.ariaLabel.chart}`||r,onKeyDown:a=>t({e:a,k:r,props:e,piecesGroup:u}),onBlur:()=>{a(void 0)},ref:e=>e&&(u[r]=e.childNodes)}),i))}}),{renderedElements:p,dataVersion:r,canvasDrawing:d,piecesGroup:u}})(t,b,y),{renderedElements:j}=k;e.useEffect(()=>{var e,a;const n=null===(e=t.canvasContext)||void 0===e?void 0:e.current;let o=new AbortController;if(t.disableContext||!n)return;const{sketchyRenderingEngine:r,width:s,height:i,margin:l,disableProgressiveRendering:c=!1}=t,d=[s+l.left+l.right,i+l.top+l.bottom];n.width=d[0],n.height=d[1],n.style.width=d[0],n.style.height=d[1];const u=n.getContext("2d");u.scale(devicePixelRatio,devicePixelRatio),u.setTransform(1,0,0,1,l.left,l.top),u.clearRect(-l.left,-l.top,d[0],d[1]);const p=function(e,t,a,n,o,r){const s={fill:"black",stroke:"black",opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1},{position:i=[0,0]}=n;return n=>{var l,c,d;const u=Object.assign(Object.assign({},n.d),n.d.data),p=n.styleFn&&n.styleFn(u,n.i)||s,m=p.fill?p.fill:"black",y=p.stroke?p.stroke:"black";t.setTransform(1,0,0,1,a.left,a.top),t.translate(i[0],i[1]),t.translate(n.tx,n.ty),t.fillStyle=m,t.strokeStyle=y,t.lineWidth=p.strokeWidth?p.strokeWidth:0;let h={};const f=n.renderFn&&n.renderFn(u,n.i);let x=f&&f.renderMode||f;if(x)if(o){const a=o.canvas;a?(r=r||a(e),h=Object.assign({fill:m,stroke:y,strokeWidth:t.lineWidth},"object"==typeof f&&f||{})):console.error("The sketchyRenderingEngine you specify does not expose a prop `RoughCanvas` and so cannot render sketchy HTML5 Canvas graphics")}else console.error("You cannot render sketchy graphics without specifying a Rough.js-like library as the sketchyRenderingEngine prop of your frame"),x=void 0;if("circle"===n.markProps.markType||"rect"===n.markProps.markType&&n.markProps.rx>0){let e=null!==(l=n.markProps.cx)&&void 0!==l?l:0,a=null!==(c=n.markProps.cy)&&void 0!==c?c:0,o=null!==(d=p.r)&&void 0!==d?d:n.markProps.r;if(n.markProps.width){const t=n.markProps.width/2;e=n.markProps.x+t,a=n.markProps.y+t,o=t}"sketchy"===x?0!==t.globalAlpha&&r.circle(e,a,o,h):(t.beginPath(),t.arc(e,a,o,0,2*Math.PI),t.globalAlpha=p.fillOpacity||p.opacity||1,p.fill&&"none"!==p.fill&&0!==t.globalAlpha&&t.fill(),t.globalAlpha=p.strokeOpacity||p.opacity||1,p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.stroke())}else if("rect"===n.markProps.markType)"sketchy"===x?(t.globalAlpha=p.opacity||1,0!==t.globalAlpha&&r.rectangle(n.markProps.x,n.markProps.y,n.markProps.width,n.markProps.height,h)):(t.globalAlpha=p.fillOpacity||p.opacity||1,p.fill&&"none"!==p.fill&&0!==t.globalAlpha&&t.fillRect(n.markProps.x,n.markProps.y,n.markProps.width,n.markProps.height),t.globalAlpha=p.strokeOpacity||p.opacity||1,p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.strokeRect(n.markProps.x,n.markProps.y,n.markProps.width,n.markProps.height));else if("path"===n.markProps.markType)if("sketchy"===x)t.globalAlpha=p.opacity||1,r.path(n.markProps.d,h);else{const e=new Path2D(n.markProps.d);t.globalAlpha=p.strokeOpacity||p.opacity||1,p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.stroke(e),t.globalAlpha=p.fillOpacity||p.opacity||1,p.fill&&"none"!==p.fill&&0!==t.globalAlpha&&t.fill(e)}else"line"===n.markProps.markType?"sketchy"===x?(t.globalAlpha=p.opacity||1,r.line(n.markProps.x1,n.markProps.y1,n.markProps.x2,n.markProps.y2,h)):(t.globalAlpha=p.strokeOpacity||p.opacity||1,t.beginPath(),t.moveTo(n.markProps.x1,n.markProps.y1),t.lineTo(n.markProps.x2,n.markProps.y2),p.stroke&&"none"!==p.stroke&&0!==t.globalAlpha&&t.stroke()):console.error("CURRENTLY UNSUPPORTED MARKTYPE FOR CANVAS RENDERING")}}(n,u,l,t,r,void 0);if(u.clearRect(-l.left,-l.top,d[0],d[1]),c)for(const e of k.canvasDrawing)p(e);else o=new AbortController,function(e,t,a){let n=0;!function(e){var t,a,n,o;t=this,a=arguments,o=function*(e,{signal:t,timeFrameMs:a=30}={}){return new Promise((n,o)=>{requestAnimationFrame(function r(){let s=performance.now(),i=0,l=!1,c=null!=t&&t.aborted;try{if(c)return n();do{l=e(),i=performance.now()-s,c=null!=t&&t.aborted}while(!c&&l&&a>i);!c&&l?requestAnimationFrame(r):n()}catch(e){o(e)}})})},new((n=void 0)||(n=Promise))(function(e,r){function s(e){try{l(o.next(e))}catch(e){r(e)}}function i(e){try{l(o.throw(e))}catch(e){r(e)}}function l(t){var a;t.done?e(t.value):(a=t.value,a instanceof n?a:new n(function(e){e(a)})).then(s,i)}l((o=o.apply(t,a||[])).next())})}(()=>{let a=Math.min(n+1e3,t.length);for(let o=n;a>o;o++)e(t[o]);return n+=1e3,t.length>n},a)}(p,k.canvasDrawing,{signal:o.signal});if(u.setTransform(1,0,0,1,0,0),u.globalAlpha=1,t.canvasPostProcess&&t.canvasPostProcess(null===(a=t.canvasContext)||void 0===a?void 0:a.current,u,d),null!==g&&k.piecesGroup[g]&&null!==h){const e=k.piecesGroup[g][h],t=e&&[...e.childNodes].find(e=>e.getAttribute("aria-label"))||e;t&&t.focus&&t.focus()}return function(){o.abort()}},[a,n,o,r,s,l,c,d,u]);const E=function(e){if(!e)return null;const t="object"==typeof e&&null!=e.ease?e.ease:"ease",a=("object"==typeof e&&null!=e.duration?e.duration:300)+"ms";return x.createElement("style",{key:"semiotic-transition-style"},`\n@keyframes semiotic-enter {\n from { opacity: 0; }\n to { opacity: 1; }\n}\ng[data-semiotic-transition] > rect,\ng[data-semiotic-transition] > circle,\ng[data-semiotic-transition] > path,\ng[data-semiotic-transition] > line,\ng[data-semiotic-transition] > g > rect,\ng[data-semiotic-transition] > g > circle,\ng[data-semiotic-transition] > g > path,\ng[data-semiotic-transition] > g > line {\n transition: fill ${a} ${t},\n stroke ${a} ${t},\n opacity ${a} ${t},\n transform ${a} ${t};\n animation: semiotic-enter ${a} ${t};\n}\n`)}(p),S=Object.assign({"axes-tick-lines":c&&x.createElement("g",{key:"visualization-tick-lines",className:"axis axis-tick-lines","aria-hidden":!0},c),"axes-labels":o&&x.createElement("g",{key:"visualization-axis-labels",className:"axis axis-labels"},o),matte:a,"viz-layer":j&&j.length>0?x.createElement(x.Fragment,{key:"viz-layer"},E,j):null},u);let M="";M=`Visualization ${i&&l||i?"string"!=typeof i&&i.props&&"string"==typeof i.props.children?"titled "+i.props.children:"with a complex title":"with no title"}. Use arrow keys to navigate elements.`;const A=[];return d.forEach(e=>{S[e]&&A.push(S[e])}),A.length>0&&x.createElement("g",{className:"data-visualization","data-testid":"data-visualization",key:"visualization-clip-path","aria-label":M,role:"group",clipPath:n&&a?`url(#matte-clip${r})`:void 0,transform:`translate(${s.left},${s.top})`},A)||null}const Ke=[],Ze={},Je=[0,0],Qe={x:"x",y:"y"},Ue=["axes-tick-lines","viz-layer","matte","axes-labels","labels"],et={top:0,bottom:0,left:0,right:0};function tt(t){const{axes:a,axesTickLines:n,className:o="",name:r="",frameKey:s,projectedCoordinateNames:i=Qe,renderPipeline:l,size:c,adjustedSize:d=c,title:u,xScale:p,yScale:m,dataVersion:y,annotations:h,projectedYMiddle:f,interaction:g,customClickBehavior:v,customHoverBehavior:b,customDoubleClickBehavior:k,points:j,margin:E=et,backgroundGraphics:S,foregroundGraphics:M,beforeElements:A,afterElements:O,defaultSVGRule:$,defaultHTMLRule:P,adjustedPosition:D=Je,legendSettings:w,annotationSettings:N=Ze,overlay:T,columns:z,rScale:F,projection:L,interactionOverflow:R,canvasPostProcess:V,canvasRendering:I,renderOrder:_=Ke,showLinePoints:W,disableCanvasInteraction:G=!1,sketchyRenderingEngine:X,disableContext:Y,frameRenderOrder:q=Ue,additionalVizElements:H=Ze,interactionSettings:K,disableProgressiveRendering:Z,additionalDefs:J,transition:Q}=t;let{hoverAnnotation:U}=t;const ee=e.useRef(null),[te,ae]=e.useState(null),[ne,oe]=e.useState(null);e.useEffect(()=>{const e=(({matte:e,size:t,margin:a,frameKey:n,additionalDefs:o,name:r})=>{let s;"function"==typeof e?s=e({size:t,margin:a}):x.isValidElement(e)?s=e:!0===e&&(s=x.createElement("path",{fill:"white",transform:`translate(${-a.left},${-a.top})`,d:Ve({margin:a,size:t,inset:0}),className:r+"-matte"}));const i=(({matte:e,key:t,additionalDefs:a})=>x.createElement("defs",null,x.createElement("filter",{id:"paintyFilterHeavy"},x.createElement("feGaussianBlur",{id:"gaussblurrer",in:"SourceGraphic",stdDeviation:4,colorInterpolationFilters:"sRGB",result:"blur"}),x.createElement("feColorMatrix",{in:"blur",mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 34 -7",result:"gooey"})),x.createElement("filter",{id:"paintyFilterLight"},x.createElement("feGaussianBlur",{id:"gaussblurrer",in:"SourceGraphic",stdDeviation:2,colorInterpolationFilters:"sRGB",result:"blur"}),x.createElement("feColorMatrix",{in:"blur",mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 34 -7",result:"gooey"})),x.createElement("clipPath",{id:"matte-clip-"+t},e),a))({matte:s,key:e&&(n||r),additionalDefs:o});return{defs:i,matte:s}})({matte:ne,size:c,margin:E,frameKey:s,additionalDefs:J,name:r});ae(e.defs),oe(e.matte)},[c[0],c[1],E.top,E.bottom,E.right,E.left,E.top,ne,J]),!U&&(v||b||k)&&(U=Ke);const re=[],se=h?[...h,...re]:re,ie=e.useRef($);ie.current=$;const le=e.useRef(P);le.current=P;const ce=e.useRef(l);ce.current=l;const de=e.useCallback((e,t,a)=>ie.current(Object.assign({d:e,i:t,annotationLayer:a},ce.current)),[]),ue=e.useCallback((e,t,a)=>le.current(Object.assign({d:e,i:t,annotationLayer:a},ce.current)),[]),pe=x.createElement(B,{legendSettings:w,margin:E,axes:a,annotationHandling:N,pointSizeFunction:N.layout&&N.layout.pointSizeFunction,labelSizeFunction:N.layout&&N.layout.labelSizeFunction,annotations:se,svgAnnotationRule:de,htmlAnnotationRule:ue,size:d,position:[D[0]+E.left,D[1]+E.top]}),me=function({title:e={title:"",orient:"top"},size:t}){let a=null;const{title:n,orient:o}=Be(e);let r,s=0,i=0;switch(o){case"top":s=t[0]/2,i=25;break;case"bottom":s=t[0]/2,i=t[1]-25;break;case"left":s=25,i=t[1]/2,r="rotate(-90)";break;case"right":s=t[0]-25,i=t[1]/2,r="rotate(90)"}const l=`translate(${s},${i})`;return"string"==typeof n&&n.length>0?a=x.createElement("g",{transform:l},x.createElement("text",{className:"frame-title",transform:r,style:{textAnchor:"middle",pointerEvents:"none"}},n)):n&&(a=x.createElement("g",{transform:l},n)),a}({title:u,size:c}),ye="function"==typeof S?S({size:c,margin:E}):S,he="function"==typeof M?M({size:c,margin:E}):M;return x.createElement("div",{className:`${o} frame ${r}`,style:{background:"none"}},A&&x.createElement("div",{className:r+" frame-before-elements"},A),x.createElement("div",{className:"frame-elements",style:{height:c[1]+"px",width:c[0]+"px"}},x.createElement(C,null,x.createElement("div",{className:"visualization-layer",style:{position:"absolute"}},S&&x.createElement("svg",{className:"background-graphics",style:{position:"absolute"},width:c[0],height:c[1]},S&&x.createElement("g",{"aria-hidden":!0,className:"background-graphics"},ye)),x.createElement("svg",{className:"visualization-layer",style:{position:"absolute"},width:c[0],height:c[1]},te,x.createElement(He,{disableContext:Y,renderPipeline:l,position:D,width:d[0],height:d[1],projectedCoordinateNames:i,xScale:p,yScale:m,axes:a,title:me,frameKey:s,canvasContext:ee,dataVersion:y,matte:ne,margin:E,canvasPostProcess:V,renderOrder:_,sketchyRenderingEngine:X,axesTickLines:n,additionalVizElements:H,frameRenderOrder:q,disableProgressiveRendering:Z,transition:Q}),me&&x.createElement("g",{className:"frame-title"},me),M&&x.createElement("g",{"aria-hidden":!0,className:"foreground-graphics"},he))),I&&x.createElement("canvas",{className:"frame-canvas",ref:ee,style:{pointerEvents:"none",position:"absolute"},width:c[0]/2,height:c[1]/2}),x.createElement(qe,{hoverAnnotation:U,projectedX:i.x,projectedY:i.y,projectedYMiddle:f,interaction:g,customClickBehavior:v,customHoverBehavior:b,customDoubleClickBehavior:k,points:j,showLinePoints:W,canvasRendering:I,position:D,margin:E,size:d,svgSize:c,xScale:p,yScale:m,enabled:!0,overlay:T,oColumns:z,rScale:F,projection:L,interactionOverflow:R,disableCanvasInteraction:G,renderPipeline:l,advancedSettings:K}),pe)),O&&x.createElement("div",{className:r+" frame-after-elements"},O))}const at=({tooltipRef:e,changeTooltipContentArgsCurrent:t,changeTooltipContainerInitialDimensions:a,changeCollision:n})=>{const o=null==e?void 0:e.getBoundingClientRect();if(!o)return;const{left:r,top:s,width:i,height:l}=o;let c={left:!1,right:!1,top:!1,bottom:!1};r+i>window.innerWidth&&(c.right=!0),0>r-i&&(c.left=!0),s+l>window.innerHeight&&(c.bottom=!0),0>s-l&&(c.top=!0),t(),a(o),n(c)};function nt(t){const{tooltipContent:a,tooltipContentArgs:n}=t,[o,r]=e.useState(null),[s,i]=e.useState(null),[l,c]=e.useState(null),[d,u]=e.useState(null),p=e.useCallback(e=>{u(e),at({tooltipRef:e,tooltipContentArgs:n,changeTooltipContentArgsCurrent:c,changeTooltipContainerInitialDimensions:i,changeCollision:r})},[]);e.useEffect(()=>{r(null),i(null)},[JSON.stringify(n)]),e.useEffect(()=>{d&&!o&&at({tooltipRef:d,tooltipContentArgs:n,changeTooltipContentArgsCurrent:c,changeTooltipContainerInitialDimensions:i,changeCollision:r})},[d,o]);const m={overflow:"hidden",opacity:o&&l===n?1:0},y=o?["tooltip-container","tooltip-collision-evaluated",o&&o.top&&"collision-top",o&&o.bottom&&"collision-bottom",o&&o.right&&"collision-right",o&&o.left&&"collision-left"].filter(e=>e).join(" "):"tooltip-container",h={offset:{x:0,y:0},tooltipContainerInitialDimensions:s};return x.createElement("div",{ref:p,style:m,className:y,"data-testid":"TooltipPositioner"},a(Object.assign(Object.assign({},n),{tooltipContainerAttributes:h})))}const ot=(e,t)=>{for(let a=0;e.length>a;a++){const n=e[a](t);if(void 0!==n&&!Number.isNaN(n)&&null!==n)return n}},rt=e=>({d:t,lines:a,points:n,xScale:o,yScale:r,pointStyle:s})=>{const i="x"===e?o:r;if(e="yTop"===e&&t.yMiddle?"yMiddle":e,t&&t[e]){const{threshold:l=1,r:c=()=>4,styleFn:d=s}=t,u=[],p=l/2;if(a&&a.length>0&&a.forEach(a=>{const n=a.data.filter(a=>{const n=i(a[e]),o=i(t[e]);return o+p>=n&&n>=o-p});u.push(...n)}),n&&n.length>0){const a=n.filter(a=>{const n=i(a[e]),o=i(t[e]);return o+p>=n&&n>=o-p});u.push(...a)}return u.map((e,t)=>x.createElement("circle",{key:"found-circle-"+t,r:c(e,t),style:d(e,t),cx:o(e.xMiddle||e.x),cy:r(e.yMiddle||e.yTop)}))}return null},st=rt("yTop"),it=rt("x"),lt=e=>e instanceof Date?e.getTime():e,ct=({data:e,lineDataAccessor:t,xProp:a,xPropTop:n,xPropBottom:o,yProp:r,yPropTop:s,yPropBottom:i,xAccessor:l,yAccessor:c})=>{Array.isArray(e)||(e=[e]);const d=[];return t.forEach((t,u)=>{l.forEach((l,p)=>{c.forEach((c,m)=>{e.forEach(e=>{const y=Object.assign(Object.assign({},e),{xIndex:p,yIndex:m,lineIndex:u});y.data=t(e).map((e,t)=>{const d={data:e};return d[a]=l(e,t),d[n]=d[a],d[o]=d[a],d[r]=c(e,t),d[s]=d[r],d[i]=d[r],d}),y.key=y.key||d.length,d.push(y)})})})}),d},dt=({type:e="stackedarea",data:t,xProp:a,yProp:n,yPropMiddle:o,sort:s,yPropTop:i,yPropBottom:l})=>{const c=new Map,d=t.map(()=>0);let u=0;for(const e of t){e.__lineIndex=u;for(const t of e.data){const e=lt(t[a]);d[u]+=t[n],c.has(e)||c.set(e,[]),c.get(e)[u]=t}u++}let p=(e,t)=>d[t.key]-d[e.key];"stackedpercent-invert"!==e&&"stackedarea-invert"!==e||(p=(e,t)=>d[e.key]-d[t.key]),null!==(s=void 0===s?p:s)&&(t=t.sort(s));const m=t.map(e=>e.__lineIndex);for(const[,t]of c){let a=0,s=0;const c=r.sum(t,e=>(null==e?void 0:e[n])>0?e[n]:0),d=r.sum(t,e=>0>(null==e?void 0:e[n])?e[n]:0);for(const r of m){const u=t[r];if(u)if(0>u[n]){if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=u[n]/d;if(u.percent=t,"linepercent"===e)u[l]=u[l]=u[i]=u[o]=t;else{const e=0>d?t:0;u[l]=0===d?0:-a/d,u[i]=u[l]-e,u[o]=u[l]-e/2}}else u[l]=a,u[i]=a+u[n],u[o]=a+u[n]/2;a+=u[n]}else{if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=u[n]/c;if(u.percent=t,"linepercent"===e)u[l]=u[i]=u[o]=t;else{const e=c>0?t:0;u[l]=0===c?0:s/c,u[i]=u[l]+e,u[o]=u[l]+e/2}}else u[l]=s,u[i]=s+u[n],u[o]=s+u[n]/2;s+=u[n]}}}return t},ut=({data:e,y1:t,x1:a,yPropTop:n,yPropMiddle:o,yPropBottom:r,xPropTop:s,xPropMiddle:i,xPropBottom:l})=>{if(t)for(const a of e)for(const e of a.data)e[r]=t(e),e[o]=e[n];if(a)for(const t of e)for(const e of t.data)e[l]=a(e),e[i]=(e[l]+e[s])/2;return e},pt=({data:e,y1:t,yPropTop:a,yPropMiddle:n,yPropBottom:o,type:r="cumulative"})=>{for(const s of e){let e=0;const i="cumulative-reverse"===r?s.data.reverse():s.data;for(const r of i)e+=r[a],r[o]=r[a]=r[n]=e,t&&(r[o]=t(r),r[n]=r[o]+r[a]/2)}return e},mt=({type:e="bumpline",data:t,xProp:a,yProp:n,yPropMiddle:o,yPropTop:r,yPropBottom:s})=>{const i=new Map;for(const e of t)for(const t of e.data){const e=lt(t[a]);i.has(e)||i.set(e,[]),i.get(e).push(t)}let l=(e,t)=>e[n]>t[n]?1:-1;"bumparea-invert"!==e&&"bumpline-invert"!==e||(l=(e,t)=>t[n]>e[n]?1:-1);for(const[,t]of i){let a=0,i=0;t.sort(l);let c=1;for(const l of t)"bumparea"===e||"bumparea-invert"===e?0>l[n]?(l[r]=a+l[n],l[o]=a+l[n]/2,l[s]=a,a+=l[n]):(l[r]=i+l[n],l[o]=i+l[n]/2,l[s]=i,i+=l[n]):(l[n]=c,l[r]=c,l[s]=c),c++}return t};function yt({pointA:e,pointB:t,currentParameters:a,parameters:n,keys:o}){const r={};return o.forEach(a=>{r[a]="number"==typeof e[a]?(e[a]+t[a])/2:void 0}),JSON.stringify(n(r))===JSON.stringify(a)?[r,t]:[e,r]}const ht={bottom:"yBottom",top:"yTop"};function ft({point:e,projectedY:t,yAccessor:a,yScale:n,showLinePoints:o}){const r=e&&(o&&!0!==o&&void 0!==e[ht[o]]?e[ht[o]]:void 0!==e.yMiddle?e.yMiddle:void 0!==e[t]?e[t]:ot(a,e));return Array.isArray(r)?r.map(e=>n(e)):void 0!==r?n(r):0}function xt({point:e,projectedXMiddle:t,projectedX:a,xAccessor:n,xScale:o}){const r=e&&(void 0!==e[t]?e[t]:void 0!==e[a]?e[a]:ot(n,e));return Array.isArray(r)?r.map(e=>o(e)):void 0!==r?o(r):0}function gt({point:e,idAccessor:t,lines:a,xScale:n,projectedX:o,xAccessor:r}){const s=t(e.parentLine||e);if(s){const i=a.data.find(e=>t(e)===s);if(!i)return null;const l=n(ot(r,e)),c=i.data.find(e=>n(e[o])===l);if(!c)return null;const d=Object.assign(Object.assign(Object.assign(Object.assign({},e),c),c.data),{parentLine:i});return["type","label","note","connector","disabled","color","subject"].forEach(t=>{e[t]&&(d[t]=e[t])}),d}return e}const vt=e=>e&&e.extent||Array.isArray(e)&&e||[],bt=()=>!0,kt={top:q,bottom:H,orphan:X},jt={top:Z,bottom:J,orphan:G},Et={stackedarea:dt,"stackedarea-invert":dt,stackedpercent:dt,"stackedpercent-invert":dt,linepercent:dt,difference:({data:e,yProp:t,yPropTop:a,yPropBottom:n})=>(e.forEach((o,r)=>{o.data.forEach((o,s)=>{const i=0===r?1:0;o[t]>e[i].data[s][t]?(o[n]=e[i].data[s][t],o[a]=o[t]):(o[a]=o[t],o[n]=o[t])})}),e),bumparea:mt,bumpline:mt,"bumparea-invert":mt,line:ut,area:ut,cumulative:pt,"cumulative-reverse":pt};function St(e,t,a){if(!e&&t)return t;if("object"==typeof e)return()=>e;if(e instanceof Function)return e;if(!0===a){const t=e;return()=>t}return"string"==typeof e?t=>t?t[e]:void 0:()=>{}}function Mt(e,t,a){if(void 0===e)return[St(void 0,t,a)];let n=[];return n=Array.isArray(e)?e:[e],n.map(e=>St(e,t,a))}function At(e,t){const a=[];for(const e of t)a.push(Object.assign({},e));for(const t of e)t.parentSummary||a.push(t);return a}const Ot=({lineDataAccessor:e,xAccessor:a,yAccessor:n,summaries:o,points:r,lines:s,lineType:l,showLinePoints:c,showSummaryPoints:d,xExtent:u,yExtent:p,invertX:m,invertY:y,summaryDataAccessor:h,summaryType:f,adjustedSize:x,margin:g,summaryStyleFn:v,summaryClassFn:k,summaryRenderModeFn:j,chartSize:E,filterRenderedLines:S,filterRenderedSummaries:M,filterRenderedPoints:A,defined:O=bt,annotations:$=[]})=>{let P=[],C=[],D=[],w=[],N=[];if(r){a.forEach((e,t)=>{n.forEach((a,n)=>{let o=0;for(const s of r){const r=e(s,o),i=a(s,o),l={x:r,y:i,data:s,xIndex:t,yIndex:n};Array.isArray(i)&&(l[H]=Math.min(...i),l[q]=Math.max(...i),l[Y]=(l[H]+l[q])/2),Array.isArray(r)&&(l[J]=Math.min(...r),l[Z]=Math.max(...r),l[K]=(l[J]+l[Z])/2),D.push(l),o++}})});for(const e of D)P.push(Object.assign(Object.assign({},e),{[G]:e[Z]||e[J]||e.x,[X]:e[q]||e[H]||e.y}))}if(s){C=ct({data:s,lineDataAccessor:e,xProp:G,xPropTop:Z,xPropBottom:J,yProp:X,yPropTop:q,yPropBottom:H,xAccessor:a,yAccessor:n}),w=function(e,t){return a=>Et[$t(e.type,a)](Object.assign(Object.assign(Object.assign({},e),t),{data:a}))}(l,{xProp:G,yProp:X,yPropMiddle:Y,yPropTop:q,yPropBottom:H,xPropMiddle:K,xPropTop:Z,xPropBottom:J})(C);for(const e of w)for(let t=0;e.data.length>t;t++){const a=e.data[t];if(!O(Object.assign({},a.data,a),t))continue;const n={parentLine:e,y:a.y,x:a.x,xTop:a.xTop,xMiddle:a.xMiddle,xBottom:a.xBottom,yTop:a.yTop,yMiddle:a.yMiddle,yBottom:a.yBottom,data:a.data};a.percent&&(n.percent=a.percent),P.push(n)}if(c){const e=!0===c?K:jt[c],t=!0===c?Y:kt[c];w.forEach(a=>{a.data.filter((e,t)=>{if(O(Object.assign({},e.data,e))){if("orphan"===c){const e=a.data[t-1],n=a.data[t+1];return!(e&&O(Object.assign({},e.data,e))||n&&O(Object.assign({},n.data,n)))}return!0}return!1}).forEach(n=>{D.push(Object.assign(Object.assign({},n),{parentLine:a,[X]:void 0!==n[t]?n[t]:void 0!==n[Y]?n[Y]:void 0!==n[H]?n[H]:n.y,[G]:void 0!==n[e]?n[e]:void 0!==n[K]?n[K]:void 0!==n[J]?n[J]:n.y}))})})}}o&&(N=(({data:e,summaryDataAccessor:t,xAccessor:a,yAccessor:n})=>{const o=[];return t.forEach(t=>{a.forEach(a=>{n.forEach(n=>{const r=e=>t(e).map((e,t)=>[a(e,t),n(e,t)]);e.forEach(e=>{o.push(Object.assign(Object.assign({},e),{_baseData:t(e),_xyfCoordinates:r(e)}))})})})}),o})({data:o,summaryDataAccessor:h,xAccessor:a,yAccessor:n}),N.forEach(e=>{const t=e._baseData;e._xyfCoordinates.length>0&&e._xyfCoordinates[0][0][0]?e._xyfCoordinates[0].forEach(a=>{Array.isArray(a)&&a.map((a,n)=>Object.assign({parentSummary:e},t[n],{[G]:a[0],[X]:a[1]})).forEach(e=>{d&&D.push(Object.assign(Object.assign({x:0},e),{[X]:e[q]||e[H]||e[X]})),P.push(Object.assign({x:0,y:0},e))})}):e._xyfCoordinates.length>0&&Array.isArray(e._xyfCoordinates)&&e._xyfCoordinates.map((a,n)=>Object.assign(Object.assign({parentSummary:e},t[n]),{[G]:a[0],[X]:a[1]})).forEach(e=>{d&&D.push(Object.assign(Object.assign({x:0},e),{[X]:e[q]||e[H]||e[X]})),P.push(Object.assign({x:0,y:0},e))})}));let T,z,F,L,R=[],B=[];u&&!Array.isArray(u)&&!0===u.includeAnnotations&&a.forEach(e=>{$.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&R.push({[G]:n})})}),p&&!Array.isArray(p)&&!0===p.includeAnnotations&&n.forEach(e=>{$.forEach((t,a)=>{const n=e(t,a);isFinite(n)&&B.push({[X]:n})})});for(const e of P){const t=void 0===e[J]?e[G]:Math.min(e[Z],e[J]),a=void 0===e[Z]?e[G]:Math.max(e[J],e[Z]),n=void 0===e[H]?e[X]:Math.min(e[q],e[H]),o=void 0===e[q]?e[X]:Math.max(e[H],e[q]);void 0===t||void 0!==T&&t>=T||(T=t),void 0===a||void 0!==z&&z>=a||(z=a),void 0===n||void 0!==F&&n>=F||(F=n),void 0===o||void 0!==L&&L>=o||(L=o)}for(const e of R){const t=e[G];void 0===t||void 0!==T&&t>=T||(T=t),void 0===t||void 0!==z&&z>=t||(z=t)}for(const e of B){const t=e[X];void 0===t||void 0!==F&&t>=F||(F=t),void 0===t||void 0!==L&&L>=t||(L=t)}const V=[T,z],I=[F,L],_=vt(u),W=vt(p);let Q=[W&&void 0!==W[0]?W[0]:I[0],W&&void 0!==W[1]?W[1]:I[1]],U=[_&&void 0!==_[0]?_[0]:V[0],_&&void 0!==_[1]?_[1]:V[1]];return!m||_&&2===_.length||(U=[U[1],U[0]]),"bumpline"!==l.type&&!y||W&&2===W.length||(Q=[Q[1],Q[0]]),f.type&&"contour"===f.type?N=be({summaryType:f,data:N,finalXExtent:U,finalYExtent:Q}):f.type&&"linebounds"===f.type?N=function({summaryType:e,data:t,defined:a}){let n=[];e.type||(e={type:e});const{boundingAccessor:o,topBoundingAccessor:r=o,bottomBoundingAccessor:s=o}=e;return t.forEach(e=>{const t=e._baseData.map(a);let o=[],i=[];const l=[{xyf:i,base:o}];t.forEach((a,n)=>{!0===a?(o.push(e._baseData[n]),i.push(e._xyfCoordinates[n])):t[n+1]&&(o=[],i=[],l.push({xyf:i,base:o}))}),l.forEach(({xyf:t,base:a})=>{const o={data:e,parentSummary:e,_xyfCoordinates:je(t,a,r,s)};n=[...n,o]})}),n}({summaryType:f,data:N,defined:O}):f.type&&"hexbin"===f.type?(N=ke({summaryType:f,data:N[0],processedData:o&&!!o[0].processedData,preprocess:!1,finalXExtent:U,finalYExtent:Q,size:x,margin:g,styleFn:v,classFn:k,renderFn:j,chartSize:E}),P=At(P,N)):f.type&&"heatmap"===f.type?(N=Ee({summaryType:f,data:N[0],processedData:o&&!!o[0].processedData,preprocess:!1,finalXExtent:U,finalYExtent:Q,size:x,margin:g,styleFn:v,classFn:k,renderFn:j,chartSize:E}),P=At(P,N)):f.type&&"trendline"===f.type&&(N=function({preprocess:e=!1,summaryType:a,data:n,finalXExtent:o=[Math.min(...n.coordinates.map(e=>e.x)),Math.max(...n.coordinates.map(e=>e.x))],xScaleType:r=t.scaleLinear()}){if(e)return n[0].coordinates;let s,l=[];s=a.type?a:{type:s};const{regressionType:c="linear",order:d=2,precision:u=4,controlPoints:p=20,curve:m=i.curveCardinal}=s;let y=c;o[0]>=0||"logarithmic"!==c&&"power"!==c&&"exponential"!==c||(console.error(`Cannot use this ${c} regressionType type with value range that goes below 0, defaulting to linear`),y="linear"),n.coordinates&&!n._xyfCoordinates&&(n._xyfCoordinates=n.coordinates.map(e=>[e.x,e.y]));const h=Array.isArray(n)?n:[n],f=r.domain([0,1]).range(o);return l=[],h.forEach(e=>{const t=b.default[y](e._xyfCoordinates.map(e=>{let t=e[0],a=e[1];return"number"!=typeof t&&(t=t.getTime()),"number"!=typeof a&&(a=a.getTime()),[t,a]}),{order:d,precision:u}),a=1/p;let n=[0,1];if("linear"!==y){n=[];for(let e=0;1+a>e;e+=a)n.push(e)}const o=[];n.forEach(e=>{o.push(t.predict(f(e)))}),l.push({centroid:!1,customMark:void 0,data:e,parentSummary:e,value:t.string,r2:t.r2,curve:m,_xyfCoordinates:o})}),l}({summaryType:f,data:N[0],preprocess:o&&!!o[0].processedData,finalXExtent:U}),P=At(P,N)),S&&(w=w.filter(S),P=P.filter((e,t)=>!e.parentLine||S(e.parentLine,t,[]))),A&&(P=P.filter(A)),M&&(N=N.filter(M),P=P.filter((e,t)=>!e.parentSummary||M(e.parentSummary,t,[]))),{xExtent:U,yExtent:Q,projectedLines:w,projectedPoints:D,projectedSummaries:N,fullDataset:P,calculatedXExtent:V,calculatedYExtent:I}},$t=(e,t)=>!Et[e]||"difference"===e&&2!==t.length?"line":e,Pt=({xExtent:e,yExtent:t,adjustedSize:a,xScaleType:n,yScaleType:o})=>{const r=[0,a[0]],s=[a[1],0],i=n,l=o;return n.domain&&n.domain(e),o.domain&&o.domain(t),n.range(r),o.range(s),{xScale:i,yScale:l}},Ct={line:{items:"line",chart:"line chart"},area:{items:"summary",chart:"summary chart"},summary:{items:"summary",chart:"summary chart"},cumulative:{items:"line",chart:"cumulative chart"},"cumulative-reverse":{items:"line",chart:"cumulative chart"},linepercent:{items:"line",chart:"line chart"},stackedarea:{items:"stacked area",chart:"stacked area chart"},"stackedarea-invert":{items:"stacked area",chart:"stacked area chart"},stackedpercent:{items:"stacked area",chart:"stacked area chart"},"stackedpercent-invert":{items:"stacked area",chart:"stacked area chart"},bumparea:{items:"ranked area",chart:"ranked area chart"},"bumparea-invert":{items:"ranked area",chart:"ranked area chart"},bumpline:{items:"ranked line",chart:"ranked line chart"},difference:{items:"line",chart:"difference chart"}},Dt=(e,a,n,o)=>{const{legend:r,lines:s,lineClass:i,pointStyle:l,pointRenderMode:c,pointClass:d,summaryClass:u,canvasLines:p,canvasPoints:m,canvasSummaries:y,defined:h,size:f,renderKey:g,lineType:v,summaryType:b,customLineMark:k,customPointMark:j,customSummaryMark:E,summaryStyle:S,summaryRenderMode:M,lineStyle:A,lineRenderMode:O,xExtent:$,yExtent:P,title:C,xScaleType:D=t.scaleLinear(),yScaleType:w=t.scaleLinear(),lineIDAccessor:N,invertX:T,invertY:z,showLinePoints:F,showSummaryPoints:L,points:R,lineDataAccessor:B,summaryDataAccessor:V,yAccessor:I,xAccessor:_,useSummariesAsInteractionLayer:W,filterRenderedLines:G,filterRenderedSummaries:X,filterRenderedPoints:Y,annotations:q}=e;let{projectedLines:H,projectedPoints:K,projectedSummaries:Z,summaries:J,fullDataset:Q}=e;b&&R&&!J?J=[{coordinates:R}]:b&&"linebounds"===b.type&&s&&!J&&(J=s);const U=D.domain?D:D(),ee=w.domain?w:w(),te=o.annotatedSettings(_,I,V,B,g,v,b,N),ae=Object.assign(Object.assign({},te),{lineType:_e(v),summaryType:_e(b),summaries:!J||Array.isArray(J)&&0===J.length?void 0:Array.isArray(J)?V||J[0].coordinates?J:[{coordinates:J}]:[J],lines:!s||Array.isArray(s)&&0===s.length?void 0:Array.isArray(s)?B||s[0].coordinates?s:[{coordinates:s}]:[s],title:"object"!=typeof C||x.isValidElement(C)||null===C?{title:C,orient:"top"}:C,xExtent:Array.isArray($)?$:$?$.extent:void 0,yExtent:Array.isArray(P)?P:P?P.extent:void 0});"area"===ae.lineType.type&&(ae.lineType.y1=()=>0,ae.lineType.simpleLine=!1);const{summaryStyleFn:ne,summaryClassFn:oe,summaryRenderModeFn:re}=o.summaryStyleFns(S,u,M),se=e.axes&&e.axes.map(t=>"function"==typeof t?t({size:e.size}):t),{margin:ie,adjustedPosition:le,adjustedSize:ue}=o.marginCalc(e.margin,se,ae.title,e.size);let pe,me,ye,he,fe,xe,ge,ve,be=[],ke=[];ye="object"==typeof $?$:{extent:$},he="object"==typeof P?P:{extent:P},n||e.dataVersion&&e.dataVersion!==a.dataVersion?(me&&pe&&Q&&(H||K||Z)||({xExtent:me,yExtent:pe,projectedLines:H,projectedPoints:K,projectedSummaries:Z,fullDataset:Q,calculatedXExtent:be,calculatedYExtent:ke}=Ot({lineDataAccessor:ae.lineDataAccessor,summaryDataAccessor:ae.summaryDataAccessor,xAccessor:ae.xAccessor,yAccessor:ae.yAccessor,lineType:ae.lineType,summaryType:ae.summaryType,summaries:ae.summaries,points:R,lines:ae.lines,showLinePoints:F,showSummaryPoints:L,xExtent:$,yExtent:P,invertX:T,invertY:z,adjustedSize:ue,margin:ie,summaryStyleFn:ne,summaryClassFn:oe,summaryRenderModeFn:re,chartSize:f,defined:h,filterRenderedLines:G,filterRenderedSummaries:X,filterRenderedPoints:Y,annotations:q})),({xScale:fe,yScale:xe}=Pt({xExtent:me,yExtent:pe,adjustedSize:ue,xScaleType:U.copy(),yScaleType:ee.copy()}))):(({xExtent:me,yExtent:pe,projectedLines:H,projectedPoints:K,projectedSummaries:Z,fullDataset:Q,calculatedXExtent:be,calculatedYExtent:ke}=a),ue[0]===a.adjustedSize[0]&&ue[1]===a.adjustedSize[1]?(fe=a.xScale,xe=a.yScale):({xScale:fe,yScale:xe}=Pt({xExtent:me,yExtent:pe,adjustedSize:ue,xScaleType:U,yScaleType:ee}))),me=Array.isArray(ye.extent)&&2===ye.extent.length?ye.extent:me,pe=Array.isArray(he.extent)&&2===he.extent.length?he.extent:pe;const je={};let Ee;if(se&&(ve=[],ge=se.map((t,a)=>{let n=t.className||"";n+=" axis";let o,r=xe;je[t.orient]&&(t.baseline=t.baseline||!1),je[t.orient]=!0,"top"===t.orient||"bottom"===t.orient?(n+=" x",r=fe):n+=" y",n+=" "+t.orient,t.tickValues&&Array.isArray(t.tickValues)?o=t.tickValues:t.tickValues instanceof Function&&(o=t.tickValues(Q,e.size,r));const s=[ue[0],ue[1]],i=ce({padding:t.padding,tickValues:o,scale:r,ticks:t.ticks,orient:t.orient,size:s,footer:t.footer,tickSize:t.tickSize,jaggedBase:t.jaggedBase}),l=x.createElement("g",{key:"axes-tick-lines-"+a,className:"axis "+n},de({axisParts:i,orient:t.orient,tickLineGenerator:t.tickLineGenerator,className:n,jaggedBase:t.jaggedBase,scale:r,showOutboundTickLines:t.showOutboundTickLines}),"under"===t.baseline&&((e,t,a)=>{const n={left:{x:0,y:0,width:0,height:t?t[1]:0},right:{x:t?t[0]:0,y:0,width:0,height:t?t[1]:0},top:{x:0,y:0,width:t?t[0]:0,height:0},bottom:{x:0,y:t?t[1]:0,width:t?t[0]:0,height:0}}[e];return x.createElement("line",{key:"baseline",className:"axis-baseline "+a,stroke:"currentColor",strokeLinecap:"square",x1:n.x,x2:n.x+n.width,y1:n.y,y2:n.y+n.height})})(t.orient,ue,t.className));return ve.push(l),x.createElement(Re,Object.assign({},t,{key:t.key||"axis-"+a,annotationFunction:t.axisAnnotationFunction,axisParts:i,size:s,margin:ie,tickValues:o,scale:r,className:n,xyPoints:Q}))})),r&&(Ee=!0===r?{}:r,H&&!Ee.legendGroups)){const t=ae.lineType.type,a=[{styleFn:e.lineStyle,type:"string"==typeof t&&-1===["stackedarea","stackedpercent","bumparea"].indexOf(t)?"line":"fill",items:H.map(e=>Object.assign({label:ae.lineIDAccessor(e)},e))}];Ee.legendGroups=a}const Se=[];if(ae.summaryType.label&&Z)Z.forEach((e,t)=>{e.bounds&&(Array.isArray(e.bounds)?e.bounds:[e.bounds]).forEach(a=>{const n="function"==typeof ae.summaryType.label?ae.summaryType.label(e):ae.summaryType.label;if(n&&null!==n){const o=n.position||"center",r=[fe(a[o][0]),xe(a[o][1])],s=n.content||(e=>e.value||e.id||t);Se.push({x:r[0],y:r[1],dx:n.dx,dy:n.dy,className:n.className,type:n.type||"callout",note:n.note||{title:s(e)},subject:n.subject||{text:s(e)},connector:n.connector})}})});else if(ae.summaryType.showSlope&&Z&&Z[0]){const e=Z[0],t=e._xyfCoordinates[0],a=e._xyfCoordinates[e._xyfCoordinates.length-1];Se.push({x:t[0],y:t[1],x1:a[0],x2:a[1],type:"trendline-annotation",value:e.value,r2:e.r2})}const Me=void 0!==ae.lineType.type&&"string"==typeof ae.lineType.type&&Ct[ae.lineType.type],Ae={lines:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t].data[e[t].data.length-1]),{type:"frame-hover"}),data:H},o.lineStyleFns(A,i,O,p)),{customMark:k,type:ae.lineType,defined:h,renderKeyFn:ae.renderKeyFn,ariaLabel:Me,axesData:se,behavior:Pe}),summaries:{accessibleTransform:(e,t)=>Object.assign(Object.assign({},e[t]),{type:"frame-hover"}),data:Z,styleFn:ne,classFn:oe,renderMode:re,canvasRender:o.summaryCanvasRender(y),customMark:E,type:ae.summaryType,renderKeyFn:ae.renderKeyFn,behavior:Ce},points:Object.assign(Object.assign({accessibleTransform:(e,t)=>Object.assign({type:"frame-hover"},e[t].data||e[t]),data:K},o.pointStyleFns(l,d,c,m)),{customMark:j,renderKeyFn:ae.renderKeyFn,showLinePoints:F,behavior:$e})};let Oe;return ye.onChange&&a.calculatedXExtent.join(",")!==be.join(",")&&ye.onChange(be),he.onChange&&a.calculatedYExtent.join(",")!==ke.join(",")&&he.onChange(ke),W&&Z&&(Oe=Ce({xScale:fe,yScale:xe,data:Z}).map((e,t)=>Object.assign(Object.assign({},e.props),{style:{fillOpacity:0},overlayData:Z&&Z[t]}))),{lineData:e.lines,pointData:e.points,summaryData:e.summaries,dataVersion:e.dataVersion,projectedLines:H,projectedPoints:K,projectedSummaries:Z,canvasDrawing:[],fullDataset:Q,adjustedPosition:le,adjustedSize:ue,backgroundGraphics:e.backgroundGraphics,foregroundGraphics:e.foregroundGraphics,axesData:se,axes:ge,axesTickLines:ve,renderNumber:a.renderNumber+1,xScale:fe,yScale:xe,xAccessor:ae.xAccessor,yAccessor:ae.yAccessor,xExtent:[void 0===me[0]?be[0]:me[0],void 0===me[1]?be[1]:me[1]],yExtent:[void 0===pe[0]?ke[0]:pe[0],void 0===pe[1]?ke[1]:pe[1]],calculatedXExtent:be,calculatedYExtent:ke,margin:ie,legendSettings:Ee,areaAnnotations:Se,xyFrameRender:Ae,size:f,annotatedSettings:ae,overlay:Oe,props:e}},wt=()=>({}),Nt=()=>"",Tt=["lines","points","summaries","xAccessor","yAccessor","lineDataAccessor","areaDataAccessor","summaryDataAccessor","lineIDAccessor","lineType","summaryType","showLinePoints","showSummaryPoints","defined","xExtent","yExtent","xScaleType","yScaleType","invertX","invertY","filterRenderedLines","filterRenderedPoints","filterRenderedSummaries"],zt=["size","margin","title","axes",...Tt];let Ft="";for(let e=32;e>0;--e)Ft+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];const Lt={y:X,x:G,yMiddle:Y,yTop:q,yBottom:H,xMiddle:K,xTop:Z,xBottom:J},Rt={annotations:[],foregroundGraphics:void 0,size:[500,500],className:"",lineType:"line",name:"xyframe",dataVersion:void 0};function Bt(a){const n=Object.assign(Object.assign({},Rt),a),o=e.useRef({annotatedSettings:k.default((e,t,a,n,o,r,s,i)=>({xAccessor:Mt(e,e=>e[0]),yAccessor:Mt(t,e=>e[1]),summaryDataAccessor:Mt(a,e=>Array.isArray(e)?e:e.coordinates),lineDataAccessor:Mt(n,e=>Array.isArray(e)?e:e.coordinates),renderKeyFn:St(o,(e,t)=>"line-"+t,!0),lineIDAccessor:St(i,e=>e.semioticLineID)})),marginCalc:k.default((e,t,a,n)=>{const o=Ie({margin:e,axes:t,title:a,size:n}),{adjustedPosition:r,adjustedSize:s}=We({size:n,margin:o});return{margin:o,adjustedPosition:r,adjustedSize:s}}),summaryStyleFns:k.default((e,t,a)=>({summaryStyleFn:St(e,wt,!0),summaryClassFn:St(t,Nt,!0),summaryRenderModeFn:St(a,void 0,!0)})),lineStyleFns:k.default((e,t,a,n)=>({styleFn:St(e,wt,!0),classFn:St(t,Nt,!0),renderMode:St(a,void 0,!0),canvasRender:St(n,void 0,!0)})),pointStyleFns:k.default((e,t,a,n)=>({styleFn:St(e,wt,!0),classFn:St(t,Nt,!0),renderMode:St(a,void 0,!0),canvasRender:St(n,void 0,!0)})),summaryCanvasRender:k.default(e=>St(e,void 0,!0))}),s={size:[500,500],dataVersion:void 0,lineData:void 0,pointData:void 0,summaryData:void 0,projectedLines:void 0,projectedPoints:void 0,projectedSummaries:void 0,fullDataset:[],adjustedPosition:[0,0],adjustedSize:[500,500],backgroundGraphics:null,foregroundGraphics:null,axesData:void 0,axes:void 0,axesTickLines:void 0,renderNumber:0,margin:{top:0,bottom:0,left:0,right:0},calculatedXExtent:[0,0],calculatedYExtent:[0,0],xAccessor:[e=>e.x],yAccessor:[e=>e.y],xExtent:[0,0],yExtent:[0,0],areaAnnotations:[],xScale:t.scaleLinear(),yScale:t.scaleLinear(),title:null,legendSettings:void 0,xyFrameRender:{},canvasDrawing:[],annotatedSettings:{xAccessor:void 0,yAccessor:void 0,summaryDataAccessor:void 0,lineDataAccessor:void 0,renderKeyFn:void 0,lineType:void 0,summaryType:void 0,lineIDAccessor:void 0,summaries:void 0,lines:void 0,title:void 0,xExtent:void 0,yExtent:void 0},overlay:void 0,props:n},d=e.useMemo(()=>Object.assign(Object.assign({},s),Dt(n,s,!0,o.current)),[]),u=function(t,a,n){let r=e.useRef(n),s=e.useMemo(()=>{let e=r.current,t=function(e,t,a){const{props:n}=t,{xExtent:o=[],yExtent:r=[],size:s,dataVersion:i,lineData:l,summaryData:c,pointData:d}=t,{xExtent:u,yExtent:p,size:m,dataVersion:y,lines:h,summaries:f,points:x}=e,g=vt(u),v=vt(p),b=o[0]!==g[0]&&void 0!==g[0]||r[0]!==v[0]&&void 0!==v[0]||o[1]!==g[1]&&void 0!==g[1]||r[1]!==v[1]&&void 0!==v[1],k=l!==h,j=c!==f,E=d!==x,S=!i&&Tt.some(t=>n[t]!==e[t]),M=!i&&zt.some(t=>n[t]!==e[t]),A=s[0]!==m[0]||s[1]!==m[1];return i&&i!==y||!t.fullDataset||k||j||E||b||S?Dt(e,t,!0,a):A||M?Dt(e,t,!1,a):null}(a,e,o.current);return null!=t?Object.assign(Object.assign({},e),t):e},[a]);return r.current=s,s}(0,n,d),{size:p,className:m,annotationSettings:y,annotations:h,additionalDefs:f,hoverAnnotation:g,interaction:b,customClickBehavior:j,customHoverBehavior:E,customDoubleClickBehavior:S,canvasPostProcess:M,canvasSummaries:A,canvasPoints:O,canvasLines:$,afterElements:C,beforeElements:D,renderOrder:w,matte:N,frameKey:T,showLinePoints:z,sketchyRenderingEngine:F,disableContext:L,frameRenderOrder:R,disableCanvasInteraction:B,interactionSettings:V,disableProgressiveRendering:I,transition:_}=n,{backgroundGraphics:W,foregroundGraphics:q,adjustedPosition:H,adjustedSize:Z,margin:J,axes:Q,axesTickLines:U,xScale:ee,yScale:te,fullDataset:ae,dataVersion:ne,areaAnnotations:oe,legendSettings:re,xyFrameRender:se,annotatedSettings:ie,overlay:le}=u;!function(t,a){let n=e.useRef();n.current=[t,a],e.useEffect(()=>()=>{const[e,t]=n.current,a=e.onUnmount;a&&a(e,t)},[])}(n,u);const ce=e.useRef(n);ce.current=n;const de=e.useRef(u);de.current=u;const ue=e.useCallback(e=>function(e,t,{d:a,i:n,lines:o,summaries:s,points:d,annotationLayer:u}){const{showLinePoints:p,defined:m,margin:y,size:h,svgAnnotationRules:f}=e,{xyFrameRender:g,xScale:b,yScale:k,xAccessor:j,yAccessor:E,axesData:S,annotatedSettings:M}=t;let A=[];const O=M.lineIDAccessor;if("highlight"===a.type)return(({d:e,i:t,points:a={data:[]},lines:n={data:[],type:{}},summaries:o={data:[]},idAccessor:r,xScale:s,yScale:l,xyFrameRender:c,defined:d})=>{let u;const p=r(Object.assign(Object.assign({},e),e.data),t);void 0!==p?u=p:e.parentLine&&void 0!==r(e.parentLine,t)?u=r(e.parentLine,t):e.parentSummary&&void 0!==r(e.parentSummary,t)&&(u=r(e.parentSummary,t));const m=a.data.filter((e,t)=>r(Object.assign(Object.assign({},e),e.data),t)===u).map((t,a)=>{const n=c.points.styleFn(Object.assign(Object.assign({},t),t.data)),o="function"==typeof e.style?e.style(Object.assign(Object.assign({},t),t.data),a):e.style||{};return x.createElement("circle",{key:"highlight-point-"+a,cx:s(t.x),cy:l(t.y),r:5,fill:"none",stroke:"currentColor",strokeWidth:2,style:Object.assign(Object.assign({},n),o),className:"highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(Object.assign(Object.assign({},t),t.data),a)||e.class&&e.class||"")})}),y=i.area().x(e=>s(e.x)).y0(e=>l(e.yBottom)).y1(e=>l(e.yTop)),h=n.type.interpolator||n.type.curve,f="string"==typeof h?Ae[h]:h;f&&y.curve(f),d&&y.defined((e,t)=>d(e.data,t));const g=n.data.filter((e,t)=>r(e,t)===u).map((t,a)=>{const n=c.lines.styleFn(t,a),o="function"==typeof e.style?e.style(t,a):e.style||{};return x.createElement("path",{className:"highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(t,a)||e.class&&e.class||""),key:"highlight-summary-"+a,d:y(t.data),fill:"none",stroke:"currentColor",strokeWidth:1,style:Object.assign(Object.assign({},n),o)})});return[...o.data.filter((e,t)=>r(e,t)===u).map((t,a)=>{const n=c.summaries.styleFn(t,a),o="function"==typeof e.style?e.style(t,a):e.style||{};return x.createElement("path",{className:"highlight-annotation "+(e.class&&"function"==typeof e.class&&e.class(t,a)||e.class&&e.class||""),key:"highlight-summary-"+a,d:"M"+t.coordinates.join("L"),fill:"none",stroke:"currentColor",strokeWidth:1,style:Object.assign(Object.assign({},n),o)})}),...g,...m]})({d:a,i:n,idAccessor:O,lines:o,summaries:s,points:d,xScale:b,yScale:k,xyFrameRender:g,defined:m});const $=a.coordinates?a:gt({point:a,idAccessor:O,lines:o,xScale:b,projectedX:G,xAccessor:j});if(!$)return null;const C=Ie({margin:y,axes:S,title:M.title,size:h}),{adjustedPosition:D,adjustedSize:w}=We({size:h,margin:C});$.coordinates||$.bounds?$.bounds||(A=$.coordinates.reduce((e,t)=>{const a=xt({point:t,projectedXMiddle:K,projectedX:G,xAccessor:j,xScale:b}),n=ft({point:t,projectedY:X,yAccessor:E,yScale:k});return Array.isArray(n)?[...e,[a,Math.min(...n)],[a,Math.max(...n)]]:Array.isArray(a)?[...e,[Math.min(...a),n],[Math.max(...a),n]]:[...e,[a,n]]},[])):A=[xt({point:$,projectedXMiddle:K,projectedX:G,xAccessor:j,xScale:b})||0,ft({point:$,projectedY:X,yAccessor:E,yScale:k,showLinePoints:p})||0];const{voronoiHover:N}=u,T=f&&f({d:$,i:n,screenCoordinates:A,xScale:b,yScale:k,xAccessor:j,yAccessor:E,xyFrameProps:e,xyFrameState:t,summaries:s,points:d,lines:o,voronoiHover:N,adjustedPosition:D,adjustedSize:w,annotationLayer:u});return void 0!==f&&null!==T?T:"desaturation-layer"===$.type?(({style:e={fill:"white",fillOpacity:.5},size:t,i:a,key:n})=>x.createElement("rect",{"data-testid":"desaturation-layer",key:n||"desaturation-"+a,x:-5,y:-5,width:t[0]+10,height:t[1]+10,style:e}))({style:$.style instanceof Function?$.style($,n):$.style,size:w,i:n,key:$.key}):"xy"===$.type||"frame-hover"===$.type?(({screenCoordinates:e,i:t,d:a})=>{let n;a.color&&(n={fill:a.color});const o=x.createElement("circle",{className:`annotation ${a.type} ${a.className||""} `,key:"annotationpoint"+t,cx:e[0],cy:e[1],style:n,fill:"none",stroke:"currentColor",r:5});let r;return"xy"===a.type&&(r=x.createElement("text",{key:`${a.label}annotationtext${t}`,x:e[0],y:10+e[1],"data-testid":"annotation-xy-label",className:`annotation annotation-xy-label ${a.className||""} `},a.label)),[o,r]})({d:$,i:n,screenCoordinates:A}):"function"==typeof $.type||Vt.has($.type)?(({screenCoordinates:e,d:t,i:a})=>{const n=Object.assign({dx:0,dy:0,note:{label:t.label,orientation:t.orientation,align:t.align},connector:{end:"arrow"}},t,{type:t.type,screenCoordinates:e,i:a});return n.x=n.fixedX?n.fixedX:e[0],n.y=n.fixedY?n.fixedY:e[1],x.createElement(P,{key:t.key||"annotation-"+a,noteData:n})})({d:$,screenCoordinates:A,i:n}):"enclose"===$.type?(({screenCoordinates:e,d:t,i:a})=>(({d:e,i:t,circle:a})=>{const{padding:n=2,radiusPadding:o=n,label:r}=e,s=Object.assign({dx:0,dy:0,note:{label:r},connector:{end:"arrow"}},e,{coordinates:void 0,x:a.x,y:a.y,type:"callout-circle",subject:{radius:a.r,radiusPadding:o},i:t});if(s.rp)switch(s.rp){case"top":s.dx=0,s.dy=-a.r-s.rd;break;case"bottom":s.dx=0,s.dy=a.r+s.rd;break;case"left":s.dx=-a.r-s.rd,s.dy=0;break;default:s.dx=a.r+s.rd,s.dy=0}return x.createElement(P,{key:e.key||"annotation-"+t,noteData:s})})({d:t,circle:l.packEnclose(e.map(e=>({x:e[0],y:e[1],r:2}))),i:a}))({d:$,screenCoordinates:A,i:n}):"enclose-rect"===$.type?(({d:e,i:t,screenCoordinates:a})=>(({bboxNodes:e,d:t,i:a})=>{const{padding:n=0,dx:o=-25,dy:r=-25,label:s}=t,i=[[Math.min(...e.map(e=>e.x0))-n,Math.min(...e.map(e=>e.y0))-n],[Math.max(...e.map(e=>e.x1))+n,Math.max(...e.map(e=>e.y1))+n]],l=Object.assign({dx:o,dy:r,note:{label:s},connector:{end:"arrow"}},t,{type:"callout-rect",x:i[0][0],y:i[0][1],subject:{width:i[1][0]-i[0][0],height:i[1][1]-i[0][1]}});return x.createElement(P,{key:t.key||"annotation-"+a,noteData:l})})({bboxNodes:a.map(e=>({x0:e.x0=e[0],x1:e.x1=e[0],y0:e.y0=e[1],y1:e.y1=e[1]})),d:e,i:t}))({d:$,screenCoordinates:A,i:n}):"enclose-hull"===$.type?(({screenCoordinates:e,d:t,i:a})=>(({points:e,d:t,i:a})=>{const{color:n="currentColor",dx:o=-25,dy:r=-25,label:s,padding:i=10,buffer:l=i,strokeWidth:d=10}=t,u=c.polygonHull(e),p=(new v.default).data([...u,u[0]]).margin(l)[0],m=`M${p.map(e=>e.join(",")).join("L")}Z`,y=p[0],{nx:h=y[0]+o,ny:f=y[1]+r}=t,g=p.reduce((e,t)=>(Math.hypot(h-e[0],f-e[1])>Math.hypot(h-t[0],f-t[1])&&(e=t),e),y),b=Object.assign({dx:o,dy:r,note:{label:s},connector:{end:"arrow"}},t,{type:"callout-custom",x:g[0],y:g[1],subject:{custom:[x.createElement("path",{key:"hull-drawing",d:m,strokeWidth:d,strokeMiterlimit:"10",strokeLinejoin:"miter",strokeLinecap:"butt",fill:"none",stroke:n,transform:`translate(${-g[0]},${-g[1]})`})],customID:"hull-annotation"}});return x.createElement(P,{key:t.key||"annotation-"+a,noteData:b})})({points:e,d:t,i:a}))({d:$,screenCoordinates:A,i:n}):"x"===$.type?(({screenCoordinates:e,d:t,i:a,adjustedSize:n})=>{const o=Object.assign({dx:50,dy:20,y:0,note:{label:t.label},connector:{end:"arrow"}},t,{type:"xy-threshold",x:e[0],subject:{x:e[0],y1:0,y2:n[1]},i:a});return x.createElement(P,{key:t.key||"annotation-"+a,noteData:o})})({d:$,screenCoordinates:A,i:n,adjustedSize:w}):"y"===$.type?(({screenCoordinates:e,d:t,i:a,adjustedSize:n,adjustedPosition:o})=>{const r=Object.assign({dx:50,dy:-20,x:25*a,note:{label:t.label},connector:{end:"arrow"}},t,{type:"xy-threshold",y:e[1],subject:{y:e[1],x1:0,x2:n[0]+o[0]},i:a});return x.createElement(P,{key:t.key||"annotation-"+a,noteData:r})})({d:$,screenCoordinates:A,i:n,adjustedSize:w,adjustedPosition:D}):"bounds"===$.type?(({d:e,i:t,adjustedSize:a,xAccessor:n,yAccessor:o,xScale:r,yScale:s})=>{const i=ot(n,e.bounds[0]),l=ot(o,e.bounds[0]),c=ot(n,e.bounds[1]),d=ot(o,e.bounds[1]),u=i?r(i):0,p=l?s(l):a[1],m=c?r(c):a[0],y=d?s(d):0,h=Object.assign({dx:250,dy:-20,note:{label:e.label},connector:{end:"arrow"}},e,{type:"callout-rect",x:Math.min(u,m),y:Math.min(p,y),subject:{width:Math.abs(m-u),height:Math.abs(p-y)},i:t});return x.createElement(P,{key:e.key||"annotation-"+t,noteData:h})})({d:$,i:n,adjustedSize:w,xAccessor:j,yAccessor:E,xScale:b,yScale:k}):"line"===$.type?(({d:e,i:t,screenCoordinates:a})=>{const n=i.line().x(e=>e[0]).y(e=>e[1])(a);return[x.createElement("path",{key:`${e.label}annotationline${t}`,d:n,className:`annotation annotation-line ${e.className||""} `}),x.createElement("text",{key:`${e.label}annotationlinetext${t}`,x:(a[0][0]+a[1][0])/2,y:(a[0][1]+a[1][1])/2,className:`annotation annotation-line-label ${e.className||""} `},e.label)]})({d:$,i:n,screenCoordinates:A}):"area"===$.type?(({d:e,i:t,xScale:a,xAccessor:n,yScale:o,yAccessor:s,annotationLayer:i})=>{const l=`M${e.coordinates.map(e=>[a(ot(n,e)),o(ot(s,e))]).join("L")}Z`,c=r.extent(e.coordinates.map(e=>a(ot(n,e)))),d=r.extent(e.coordinates.map(e=>o(ot(s,e)))),u=(c[0]+c[1])/2,p=(d[0]+d[1])/2;return[x.createElement("path",{key:`${e.label}-annotation-area-${t}`,d:l,className:`annotation annotation-area ${e.className||""} `}),x.createElement("text",{key:`${e.label}-annotationtext-${t}`,x:u,y:p,transform:`translate(${i.position})`,className:`annotation annotation-area-label ${e.className||""} `,style:{textAnchor:"middle"}},e.label)]})({d:$,i:n,xScale:b,xAccessor:j,yScale:k,yAccessor:E,annotationLayer:u}):"horizontal-points"===$.type?st({d:$,lines:o.data,points:d.data,xScale:b,yScale:k,pointStyle:d.styleFn}):"vertical-points"===$.type?it({d:$,lines:o.data,points:d.data,xScale:b,yScale:k,pointStyle:d.styleFn}):null}(ce.current,de.current,e),[]),pe=e.useCallback(e=>function(e,t,{d:a,i:n,lines:o,summaries:r,points:s,annotationLayer:i}){const{xAccessor:l,yAccessor:c,xScale:d,yScale:u,annotatedSettings:p,axesData:m}=t,{voronoiHover:y}=i;let h=[];const{tooltipContent:f,optimizeCustomTooltipPosition:g,htmlAnnotationRules:v,size:b,showLinePoints:k,margin:j}=e,E=p.lineIDAccessor,S=gt({point:a,idAccessor:E,lines:o,xScale:d,projectedX:G,xAccessor:l});if(!S)return null;const M=S[K]||S[G]||ot(l,S),A=S[Y]||S[X]||ot(c,S),O=M&&M.toString?""+M:M,$=A&&A.toString?""+A:A,P=Ie({margin:j,axes:m,title:p.title,size:b}),{adjustedPosition:C,adjustedSize:D}=We({size:b,margin:P});h=S.coordinates?S.coordinates.map(e=>{const t=gt({point:Object.assign({x:0,y:0},e),idAccessor:E,lines:o,xScale:d,projectedX:G,xAccessor:l});return[(d(ot(l,S))||0)+C[0],(ft({point:t,projectedY:X,yAccessor:c,yScale:u})||0)+C[1]]}):[d(M)||0,ft({point:S,projectedY:X,showLinePoints:k,yAccessor:c,yScale:u})||0];const w=v&&v({d:S,i:n,screenCoordinates:h,xScale:d,yScale:u,xAccessor:l,yAccessor:c,xyFrameProps:e,xyFrameState:t,summaries:r,points:s,lines:o,voronoiHover:y,adjustedPosition:C,adjustedSize:D,annotationLayer:i});if(v&&null!==w)return w;if("frame-hover"===S.type){let e=x.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},x.createElement("p",{key:"html-annotation-content-1"},O),x.createElement("p",{key:"html-annotation-content-2"},$),S.percent?x.createElement("p",{key:"html-annotation-content-3"},Math.floor(1e3*S.percent)/10,"%"):null);return"frame-hover"===S.type&&f&&(e=g?x.createElement(nt,{tooltipContent:f,tooltipContentArgs:S}):f(S)),(({content:e,screenCoordinates:t,i:a,d:n,adjustedSize:o})=>{const r={position:"absolute",top:t[1]+"px"};return o&&t[0]>o[0]/2?r.right=o[0]-t[0]+"px":r.left=t[0]+"px",x.createElement("div",{key:"xylabel-"+a,className:`annotation annotation-xy-label ${n.className||""} `,style:r},e)})({content:e,screenCoordinates:h,i:n,d:S,adjustedSize:D})}return null}(ce.current,de.current,e),[]),me=e.useMemo(()=>oe.length>0?[...h,...oe]:h,[h,oe]),ye=e.useMemo(()=>"string"==typeof z?z:void 0,[z]),he=e.useMemo(()=>!!(A||O||$),[A,O,$]);return x.createElement(tt,{name:"xyframe",renderPipeline:se,adjustedPosition:H,size:p,projectedCoordinateNames:Lt,xScale:ee,yScale:te,axes:Q,axesTickLines:U,title:ie.title,dataVersion:ne,matte:N,className:m,adjustedSize:Z,frameKey:T||Ft,additionalDefs:f,hoverAnnotation:g,defaultSVGRule:ue,defaultHTMLRule:pe,annotations:me,annotationSettings:y,legendSettings:re,projectedYMiddle:Y,interaction:b,customClickBehavior:j,customHoverBehavior:E,customDoubleClickBehavior:S,points:ae,showLinePoints:ye,margin:J,backgroundGraphics:W,foregroundGraphics:q,beforeElements:D,afterElements:C,disableContext:L,canvasPostProcess:M,canvasRendering:he,renderOrder:w,overlay:le,sketchyRenderingEngine:F,frameRenderOrder:R,disableCanvasInteraction:B,interactionSettings:V,disableProgressiveRendering:I,transition:_})}const Vt=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);Bt.displayName="XYFrame";const It=x.memo(Bt),_t=e=>{const{brushStart:t,brush:a,brushEnd:n,xBrushable:o,yBrushable:r,yBrushExtent:s,xBrushExtent:i}=e,l=W(e,["brushStart","brush","brushEnd","xBrushable","yBrushable","yBrushExtent","xBrushExtent"]),c={start:t,during:a,end:n};return o&&r?(c.brush="xyBrush",(i||s)&&(c.extent=[[0,0],[...e.size]]),i&&(c.extent[0]=i),s&&(c.extent[1]=s)):o?(c.brush="xBrush",i&&(c.extent=i)):r&&(c.brush="yBrush",s&&(c.extent=s)),x.createElement(It,Object.assign({},l,{interaction:c}))},Wt=(t=>{function a(a){const{responsiveWidth:n,responsiveHeight:o,size:r=[500,500],dataVersion:s,debounce:i=200,gridDisplay:l}=a,c=W(a,["responsiveWidth","responsiveHeight","size","dataVersion","debounce","gridDisplay"]),d=[...r];let u=!1,p=e.useRef(),m=function(t){const[a,n]=e.useState(null);return e.useLayoutEffect(()=>{const e=t.current;if(null!=e){n(e.getBoundingClientRect());const t=new ResizeObserver(e=>{e.length>0&&n(e[0].contentRect)});return t.observe(e),()=>t.disconnect()}},[]),a}(p);return n&&(null==m?u=!0:d[0]=m.width),o&&(null==m?u=!0:d[1]=m.height),x.createElement("div",{"data-testid":"responsive-container",className:"responsive-container",style:l?{minWidth:"0px",minHeight:"0px"}:{height:"100%",width:"100%"},ref:p},!u&&x.createElement(t,Object.assign({},c,{size:d,dataVersion:s?s+""+d+i:void 0})))}return a.isResizing=setTimeout(()=>{}),a.displayName="Responsive"+t.displayName,a})(It),Gt={margin:0},Xt={tickFormat:()=>"",baseline:!1};function Yt(t,a,n){return n=>{const{size:o=[],sparkStyle:r={}}=n,[s,i]=e.useState(30),l=[];l[0]="number"==typeof o?o:o[0]?o[0]:s,l[1]=s;const c=e.useCallback(e=>{if(e){const t=+window.getComputedStyle(e).lineHeight.split("px")[0]-5;i(isNaN(t)?e.offsetHeight:t)}},[]);return x.createElement("div",{style:Object.assign({width:l[0]+"px",height:l[1]+"px",display:"inline-block",marginLeft:"5px",marginRight:"5px"},r),ref:c},x.createElement(t,Object.assign({},a(n),{size:l})))}}const qt=Yt(It,e=>Object.assign(Object.assign(Object.assign({},Gt),e),{hoverAnnotation:e.hoverAnnotation,axes:e.axes?e.axes.map(e=>Object.assign(Object.assign({},Xt),e)):e.axes}));exports.Annotation=P,exports.AnnotationLayer=B,exports.Axis=Re,exports.Brush=_,exports.DividedLine=function(e){const t=(e=>{const{parameters:t,className:a,interpolate:n=i.curveLinear,customAccessors:o,lineDataAccessor:r,data:s,searchIterations:l}=e,c=W(e,["parameters","className","interpolate","customAccessors","lineDataAccessor","data","searchIterations"]),{x:d,y:u}=o,p=ct({data:s,lineDataAccessor:[r],xProp:"x",yProp:"y",xAccessor:[d],yAccessor:[u]});for(const e of p)e.data=e.data.map(e=>Object.assign(Object.assign({},e.data),e));const m=((e,t,a=10)=>{let n=e(t[0],0),o=[];const r=[{key:n,points:o}];return t.forEach((t,s)=>{const i=e(t,s);let l=i===n;const c=JSON.stringify(i),d=JSON.stringify(n);if("object"==typeof n&&(l=c===d),l)o.push(t);else{let s=o[o.length-1],l=t,d=c,u=0;for(;a>u&&c===d;){const t=yt({pointA:s,pointB:l,currentParameters:n,parameters:e,keys:Object.keys(s)});s=t[0],l=t[1],d=JSON.stringify(e(l)),u++}o.push(l),o=[l,t],r.push({key:i,points:o}),n=i}}),r})(t,p[0].data,l),y=i.line().curve(n).x(e=>e.x).y(e=>e.y);return m.map((e,t)=>x.createElement("path",Object.assign({},c,{className:a,key:"DividedLine-"+t,style:e.key,d:y(e.points)})))})(e);return x.createElement("g",null,t)},exports.Legend=M,exports.MiniMap=_t,exports.MinimapXYFrame=function(e){const t=(e=>{const{xAccessor:t,yAccessor:a,points:n,lines:o,minimap:r,summaries:s,size:i,lineDataAccessor:l,lineType:c,lineStyle:d,summaryStyle:u,pointStyle:p,lineClass:m,summaryClass:y,pointClass:h,lineRenderMode:f,pointRenderMode:g,summaryRenderMode:v,canvasLines:b,canvasPoints:k,canvasSummaries:j,axes:E,margin:S,name:M,annotations:A,summaryType:O,interactionSettings:$}=e,P=Object.assign(Object.assign(Object.assign({},{position:[0,0],size:[i[0],.25*i[1]],xAccessor:t,yAccessor:a,points:n,lines:o,summaries:s,lineDataAccessor:l,xBrushable:!0,yBrushable:!0,brushStart:()=>{},brush:()=>{},brushEnd:()=>{},lineType:c,lineStyle:d,summaryStyle:u,pointStyle:p,lineClass:m,summaryClass:y,pointClass:h,lineRenderMode:f,pointRenderMode:g,summaryRenderMode:v,canvasLines:b,canvasPoints:k,canvasSummaries:j,axes:E,margin:S,name:M,annotations:A,summaryType:O,interactionSettings:$}),r),{hoverAnnotation:!1});return x.createElement(_t,Object.assign({},P))})(e),a={},{renderBefore:n}=e,o=W(e,["minimap","renderBefore"]);return n?a.beforeElements=t:a.afterElements=t,x.createElement(It,Object.assign({},o,a))},exports.ResponsiveXYFrame=Wt,exports.SparkXYFrame=qt,exports.XYFrame=It,exports.calculateDataExtent=Ot,exports.funnelize=function({data:e,steps:t,key:a}){const n=[];return Array.isArray(e)||(e=[e]),t||(t=e.map(e=>Object.keys(e)).reduce((e,t)=>e.concat(t),[])),e.forEach((e,o)=>{const r=a?e[a]:o;t.forEach(t=>{const a={funnelKey:r,stepName:"",stepValue:0};a.stepName=t,a.stepValue=e[t]?e[t]:0,n.push(a)})}),n},exports.heatmapping=Ee,exports.hexbinning=ke;
|