semiotic 2.0.2 → 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/Annotation.d.ts +3 -0
- package/dist/AnnotationLayer/AnnotationLayer.d.ts +25 -0
- package/dist/Axis/Axis.d.ts +7 -0
- package/dist/Axis/axisTitle.d.ts +10 -0
- package/dist/Axis/index.d.ts +2 -0
- package/dist/Axis/summaryGraphic.d.ts +17 -0
- package/dist/Brush.d.ts +12 -0
- package/dist/DividedLine.d.ts +16 -0
- package/dist/FacetController.d.ts +12 -0
- package/dist/Frame.d.ts +2 -0
- package/dist/InteractionLayer.d.ts +3 -0
- package/dist/Legend.d.ts +3 -0
- package/dist/MiniMap.d.ts +14 -0
- package/dist/MinimapXYFrame.d.ts +10 -0
- package/dist/NetworkFrame.d.ts +8 -0
- package/dist/OrdinalFrame.d.ts +8 -0
- package/dist/ResponsiveFrame.d.ts +22 -0
- package/dist/ResponsiveMinimapXYFrame.d.ts +3 -0
- package/dist/ResponsiveNetworkFrame.d.ts +3 -0
- package/dist/ResponsiveOrdinalFrame.d.ts +3 -0
- package/dist/ResponsiveXYFrame.d.ts +3 -0
- package/dist/SparkFrame.d.ts +14 -0
- package/dist/SparkNetworkFrame.d.ts +5 -0
- package/dist/SparkOrdinalFrame.d.ts +5 -0
- package/dist/SparkXYFrame.d.ts +5 -0
- package/dist/Tooltip/Tooltip.d.ts +141 -0
- package/dist/TooltipPositioner/index.d.ts +7 -0
- package/dist/VisualizationLayer.d.ts +33 -0
- package/dist/XYFrame.d.ts +8 -0
- package/dist/annotationLayerBehavior/annotationHandling.d.ts +19 -0
- package/dist/annotationLayerBehavior/d3labeler.d.ts +9 -0
- package/dist/annotationRules/baseRules.d.ts +25 -0
- package/dist/annotationRules/networkframeRules.d.ts +48 -0
- package/dist/annotationRules/orframeRules.d.ts +103 -0
- package/dist/annotationRules/xyframeRules.d.ts +117 -0
- package/dist/batchWork.d.ts +6 -0
- 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/coordinateNames.d.ts +8 -0
- package/dist/constants/frame_props.d.ts +13 -0
- package/dist/constants/jsx.d.ts +19 -0
- package/dist/data/dataFunctions.d.ts +45 -0
- package/dist/data/multiAccessorUtils.d.ts +1 -0
- package/dist/data/networkPipelineCache.d.ts +27 -0
- package/dist/data/ordinalPipelineCache.d.ts +33 -0
- package/dist/data/unflowedFunctions.d.ts +1 -0
- package/dist/data/xyPipelineCache.d.ts +35 -0
- package/dist/generic_utilities/functions.d.ts +1 -0
- package/dist/index.d.ts +133 -0
- package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +20 -0
- 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 +13 -0
- 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 +111 -0
- package/dist/processing/networkDefaults.d.ts +36 -0
- package/dist/processing/networkLayoutHelpers.d.ts +54 -0
- package/dist/processing/ordinal.d.ts +102 -0
- 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 +140 -0
- 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 +51 -0
- package/dist/semiotic.js +18723 -12996
- package/dist/semiotic.js.map +1 -0
- package/dist/semiotic.min.js +1 -0
- package/dist/semiotic.module.js +18666 -12965
- 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/store/TooltipStore.d.ts +2 -0
- package/dist/store/createStore.d.ts +1 -0
- package/dist/svg/SvgHelper.d.ts +33 -0
- package/dist/svg/areaDrawing.d.ts +21 -0
- 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/ckmeans.d.ts +69 -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 +108 -0
- package/dist/svg/graphAlgorithms.d.ts +14 -0
- package/dist/svg/hexbinLayout.d.ts +7 -0
- package/dist/svg/lineDrawing.d.ts +99 -0
- package/dist/svg/networkDrawing.d.ts +16 -0
- package/dist/svg/nodeGenerators.d.ts +58 -0
- package/dist/svg/pieceDrawing.d.ts +12 -0
- package/dist/svg/pieceLayouts.d.ts +53 -0
- package/dist/svg/sankeyLinks.d.ts +3 -0
- package/dist/svg/summaryAxis.d.ts +6 -0
- package/dist/svg/summaryLayouts.d.ts +53 -0
- package/dist/svg/swarmLayout.d.ts +13 -0
- package/dist/types/annotationTypes.d.ts +135 -0
- package/dist/types/canvasTypes.d.ts +9 -0
- package/dist/types/generalTypes.d.ts +238 -0
- package/dist/types/interactionTypes.d.ts +72 -0
- package/dist/types/legendTypes.d.ts +20 -0
- package/dist/types/networkTypes.d.ts +175 -0
- package/dist/types/ordinalTypes.d.ts +112 -0
- package/dist/types/xyTypes.d.ts +115 -0
- package/dist/useBoundingRect.d.ts +2 -0
- package/dist/useDerivedStateFromProps.d.ts +1 -0
- package/dist/useLegacyUnmountCallback.d.ts +2 -0
- package/dist/visualizationLayerBehavior/axis.d.ts +36 -0
- package/dist/visualizationLayerBehavior/general.d.ts +80 -0
- 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 -65
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"react";import t,{createContext as n,useMemo as a,useContext as o,useState as r,useLayoutEffect as s,useEffect as i,useRef as l,useCallback as c}from"react";import d from"labella";import{brushX as p,brushY as u,brush as y}from"d3-brush";import{select as m}from"d3-selection";import{extent as h,quantile as g,histogram as f,max as x,sum as b,min as v}from"d3-array";import{Delaunay as k}from"d3-delaunay";import{scaleLinear as E}from"d3-scale";import j from"regression";import{arc as $,line as M,curveLinearClosed as w,curveCardinal as O,curveNatural as P,curveMonotoneY as S,curveMonotoneX as A,curveCatmullRom as D,curveLinear as N,curveBasis as z,curveStepAfter as F,curveStepBefore as C,curveStep as R,area as T,linkVertical as I,linkHorizontal as L}from"d3-shape";import{contourDensity as W}from"d3-contour";import{hexbin as B}from"d3-hexbin";import{packEnclose as V,partition as _,treemap as H,cluster as G,pack as Y,tree as X,hierarchy as q}from"d3-hierarchy";import{polygonHull as K}from"d3-polygon";import Z from"polygon-offset";import{d as Q}from"d3-glyphedge";import{pathArrows as U}from"d3-path-arrows";import{interpolateNumber as J}from"d3-interpolate";import ee from"memoize-one";import{ribbon as te,chord as ne}from"d3-chord";import ae from"svg-path-bounding-box";import{sankeyJustify as oe,sankeyCenter as re,sankeyRight as se,sankeyLeft as ie,sankeyCircular as le}from"d3-sankey-circular";import{forceLink as ce,forceSimulation as de,forceManyBody as pe,forceX as ue,forceY as ye}from"d3-force";const me=(e,t,n,a)=>{const o=(e.note.label||e.note.title).length;return[Math.min(e.note.wrap||120,o*t)+2*a,Math.ceil(o*t/120)*n+2*a]};const he={fill:t=>e.createElement("rect",{style:t,width:20,height:20}),line:t=>e.createElement("line",{style:t,x1:0,y1:0,x2:20,y2:20})};function ge(e,t,n,a){let o;return o="function"==typeof n?n(e):(0,he[n])(a(e,t)),o}function fe(t){const{legendGroups:n,customClickBehavior:a,title:o="Legend",width:r=100,height:s=20,orientation:i="vertical"}=t,l="vertical"===i?(({legendGroups:t,width:n,customClickBehavior:a})=>{let o=30;const r=[];return t.forEach((t,s)=>{o+=5,r.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+s,stroke:"gray",x1:0,y1:o,x2:n,y2:o})),o+=10,t.label&&(o+=20,r.push(e.createElement("text",{key:"legend-text-"+s,y:o,className:"legend-group-label"},t.label)),o+=10),r.push(e.createElement("g",{key:"legend-group-"+s,className:"legend-item",transform:`translate(0,${o})`},((t,n)=>{const{type:a="fill",styleFn:o,items:r}=t,s=[];let i=0;return r.forEach((t,r)=>{const l=ge(t,r,a,o);s.push(e.createElement("g",{key:"legend-item-"+r,transform:`translate(0,${i})`,onClick:n?()=>n(t):void 0,style:{cursor:n?"pointer":"default"}},l,e.createElement("text",{y:15,x:30},t.label))),i+=25}),s})(t,a))),o+=25*t.items.length+10}),r})({legendGroups:n,width:r,customClickBehavior:a}):(({legendGroups:t,title:n,height:a,customClickBehavior:o})=>{let r=0;const s=[],i=!1===n?10:40;return t.forEach((n,l)=>{n.label&&(s.push(e.createElement("text",{key:"legend-text-"+l,transform:`translate(${r},${i}) rotate(90)`,textAnchor:"start",className:"legend-group-label"},n.label)),r+=20);const c=((t,n)=>{const{type:a="fill",styleFn:o,items:r}=t,s=[];let i=0;return r.forEach((t,r)=>{const l=ge(t,r,a,o);s.push(e.createElement("g",{key:"legend-item-"+r,transform:`translate(${i},0)`,onClick:n?()=>n(t):void 0,style:{cursor:n?"pointer":"default"}},l,e.createElement("text",{y:15,x:25},t.label))),i+=35,i+=8*t.label.length}),{items:s,offset:i}})(n,o);s.push(e.createElement("g",{key:"legend-group-"+l,className:"legend-item",transform:`translate(${r},${i})`},c.items)),r+=c.offset+5,t[l+1]&&s.push(e.createElement("line",{key:"legend-top-line legend-symbol-"+l,stroke:"gray",x1:r,y1:i-10,x2:r,y2:a+i+10})),r+=15}),e.createElement("g",null,!1!==n&&e.createElement("line",{x1:0,x2:r+10,y1:i-10,y2:i-10,stroke:"gray",className:"title-neatline"}),s)})({legendGroups:n,title:o,height:s,customClickBehavior:a});return e.createElement("g",null,void 0!==o&&e.createElement("text",{className:"legend-title",y:20,x:"horizontal"===i?0:r/2,textAnchor:"horizontal"===i?"start":"middle"},o),l)}function xe(e,t=120,n=8){if(!e)return[];const a=Math.max(1,Math.floor(t/n)),o=e.split(/\s+/),r=[];let s="";for(const e of o)s&&s.length+1+e.length>a?(r.push(s),s=e):s=s?`${s} ${e}`:e;return s&&r.push(s),r}function be(e,t,n,a){return"curly"===e?a?`M0,0 C${.6*n},0 ${.4*n},${t/2} ${n},${t/2} C${.4*n},${t/2} ${.6*n},${t} 0,${t}`:`M0,0 C0,${.6*n} ${t/2},${.4*n} ${t/2},${n} C${t/2},${.4*n} ${t},${.6*n} ${t},0`:a?`M0,0 L${n},0 L${n},${t} L0,${t}`:`M0,0 L0,${n} L${t},${n} L${t},0`}function ve(t){const{x:n=0,y:a=0,dx:o,dy:r,nx:s,ny:i,note:l,connector:c,subject:d,type:p,color:u,className:y,disable:m,events:h={},"data-testid":g}=t,f=new Set(Array.isArray(m)?m:[]);let x=o||0,b=r||0;null!=s&&(x=s-n),null!=i&&(b=i-a);const v="string"==typeof p?p:"label";if("bracket"===v&&d&&0===x&&0===b)if(void 0!==d.width){x=d.width/2;const e=d.depth||30;b=e+(0>e?-5:5)}else if(void 0!==d.height){const e=d.depth||30;x=e+(0>e?-5:5),b=d.height/2}return e.createElement("g",Object.assign({className:("annotation "+(y||"")).trim(),transform:`translate(${n},${a})`,"data-testid":g},h),!f.has("connector")&&function(t,n,a,o,r,s){const i=[];let l=0,c=0;if("callout-circle"!==r&&"label"!==r||!(null==s?void 0:s.radius)){if("callout-rect"===r&&s){const e=s.width||0,a=s.height||0;if(e>0||a>0){const o=e/2,r=a/2,s=t-o,i=n-r;if(0!==s||0!==i){const t=Math.abs(s),n=Math.abs(i),d=e/2,p=a/2,u=t*p>n*d?d/t:p/n;l=o+s*u,c=r+i*u}}}else if("bracket"===r&&s){const e=s.width,t=s.height,n=s.depth||30;void 0!==e?(l=e/2,c=n):void 0!==t&&(l=n,c=t/2)}}else{const e=(s.radius||0)+(s.radiusPadding||0);if(e>0&&(0!==t||0!==n)){const a=Math.atan2(n,t);l=Math.cos(a)*e,c=Math.sin(a)*e}}if(Math.sqrt(Math.pow(t-l,2)+Math.pow(n-c,2))>.5&&(i.push(e.createElement("line",{key:"connector-line",x1:l,y1:c,x2:t,y2:n,stroke:o||"currentColor"})),"arrow"===(null==a?void 0:a.end))){const a=10,r=16/180*Math.PI,s=Math.atan2(n-c,t-l);i.push(e.createElement("path",{key:"connector-arrow",d:`M${l},${c}L${l+a*Math.cos(s+r)},${c+a*Math.sin(s+r)}L${l+a*Math.cos(s-r)},${c+a*Math.sin(s-r)}Z`,fill:o||"currentColor",stroke:"none"}))}return e.createElement("g",{className:"annotation-connector"},i)}(x,b,c,u,v,d),!f.has("subject")&&function(t,n,a,o,r){var s;const i=[];switch(t){case"callout-circle":{const t=((null==n?void 0:n.radius)||0)+((null==n?void 0:n.radiusPadding)||0);t>0&&i.push(e.createElement("circle",{key:"subject-circle",r:t,fill:"none",stroke:a||"currentColor"}));break}case"callout-rect":{const t=(null==n?void 0:n.width)||0,o=(null==n?void 0:n.height)||0;(t>0||o>0)&&i.push(e.createElement("rect",{key:"subject-rect",width:t,height:o,fill:"none",stroke:a||"currentColor"}));break}case"callout-custom":(null==n?void 0:n.custom)&&i.push(...Array.isArray(n.custom)?n.custom:[n.custom]);break;case"xy-threshold":{const t=o||0,s=r||0;if(void 0!==(null==n?void 0:n.x)){const o=(n.x||0)-t;i.push(e.createElement("line",{key:"threshold-line",x1:o,y1:(n.y1||0)-s,x2:o,y2:(n.y2||0)-s,stroke:a||"currentColor",strokeDasharray:"5,5"}))}else if(void 0!==(null==n?void 0:n.y)){const o=(n.y||0)-s;i.push(e.createElement("line",{key:"threshold-line",x1:(n.x1||0)-t,y1:o,x2:(n.x2||0)-t,y2:o,stroke:a||"currentColor",strokeDasharray:"5,5"}))}else void 0!==(null==n?void 0:n.x1)||void 0!==(null==n?void 0:n.x2)?i.push(e.createElement("line",{key:"threshold-line",x1:(n.x1||0)-t,y1:0,x2:(n.x2||0)-t,y2:0,stroke:a||"currentColor",strokeDasharray:"5,5"})):void 0===(null==n?void 0:n.y1)&&void 0===(null==n?void 0:n.y2)||i.push(e.createElement("line",{key:"threshold-line",x1:0,y1:(n.y1||0)-s,x2:0,y2:(n.y2||0)-s,stroke:a||"currentColor",strokeDasharray:"5,5"}));break}case"bracket":{const t=null!==(s=null==n?void 0:n.width)&&void 0!==s?s:null==n?void 0:n.height;void 0!==t&&i.push(e.createElement("path",{key:"bracket-path",d:be((null==n?void 0:n.type)||"curly",t,(null==n?void 0:n.depth)||30,void 0===(null==n?void 0:n.width)),fill:"none",stroke:a||"currentColor"}));break}}return e.createElement("g",{className:"annotation-subject"},i)}(v,d,u,n,a),!f.has("note")&&function(t,n,a,o){if(!t)return e.createElement("g",{className:"annotation-note"});const{label:r,title:s,orientation:i,align:l,wrap:c=120,noWrap:d}=t;if(!r&&!s)return e.createElement("g",{className:"annotation-note"});let p=i;p||(p=Math.abs(n)>Math.abs(a)?"leftRight":"topBottom");let u=l;u&&"dynamic"!==u||(u="topBottom"===p?0>n?"right":"left":0>a?"bottom":"top");let y="start";"topBottom"===p?"right"===u?y="end":"middle"===u&&(y="middle"):y=0>n?"end":"start";const m=16,h=s?d?[s]:xe(s,c):[],g=r?d?[r]:xe(r,c):[],f="leftRight"===p?"end"===y?-4:4:0;let x=0;const b=[];h.length>0&&(b.push(e.createElement("text",{key:"annotation-note-title",className:"annotation-note-title",fill:o||void 0,textAnchor:y,fontWeight:"bold"},h.map((t,n)=>e.createElement("tspan",{key:n,x:f,dy:0===n?0:m},t)))),x=h.length*m),g.length>0&&b.push(e.createElement("text",{key:"annotation-note-label",className:"annotation-note-label",fill:o||void 0,textAnchor:y,y:x},g.map((t,n)=>e.createElement("tspan",{key:n,x:f,dy:m},t))));let v=null;if((s||r)&&(0!==n||0!==a))if("topBottom"===p){const t=Math.min(c,120);let n=0,a=t;"end"===y?(n=-t,a=0):"middle"===y&&(n=-t/2,a=t/2),v=e.createElement("line",{className:"note-line",x1:n,x2:a,y1:0,y2:0,stroke:o||"currentColor"})}else{const t=(h.length+g.length)*m+(g.length>0?m:0);let n=0,a=t;"bottom"===u?(n=-t,a=0):"middle"===u&&(n=-t/2,a=t/2),v=e.createElement("line",{className:"note-line",x1:0,x2:0,y1:n,y2:a,stroke:o||"currentColor"})}const k=(h.length+g.length)*m+(g.length>0?m:0);let E=0;return"topBottom"===p?0>a&&(E=-k):"leftRight"===p&&("middle"===u?E=-k/2:("bottom"===u||0>a)&&(E=-k)),e.createElement("g",{className:"annotation-note",transform:`translate(${n},${a})`},e.createElement("g",{className:"annotation-note-content",transform:0!==E?`translate(0,${E})`:void 0},b),v)}(l,x,b,u))}function ke(t){const{noteData:n}=t,{screenCoordinates:a}=n,o="string"==typeof n.type?n.type:"label",r=n.eventListeners||n.events||{};if(n.coordinates&&a){const t=n.nx||a[0][0]+n.dx,r=n.ny||a[0][1]+n.dy,s=a.map((a,s)=>{const i=Object.assign({},n,{note:0===s?n.note:{label:""},x:a[0],y:a[1],nx:t,ny:r});return e.createElement(ve,Object.assign({"data-testid":"semiotic-annotation",key:"multi-annotation-"+s},i,{type:o}))});return e.createElement("g",null,s)}const s=n.note||{title:"none",label:n.label};return e.createElement(ve,Object.assign({"data-testid":"semiotic-annotation",key:`${s.label}-${s.title}-${n.i}`,events:r},n,{type:o}))}let[Ee,je]=function(t){let i=n(null);return[function({children:n}){let o=a(()=>function(e){let t=new EventTarget,n=e(function e(a){n=Object.assign(n,a(e)),t.dispatchEvent(new CustomEvent("update"))});return{getState:()=>n,subscribe:function(e){return t.addEventListener("update",e),()=>t.removeEventListener("update",e)}}}(t),[]);return e.createElement(i.Provider,{value:o,children:n})},e=>{let t=o(i);return function(e,t){const[n,a]=r(t);return s(()=>e(()=>a(t)),[e]),n}(null==t?void 0:t.subscribe,()=>e(t.getState()))}]}(e=>({tooltip:null,changeTooltip(t){e(()=>({tooltip:t}))}}));function $e(e,t,n){return"number"==typeof n?n:t&&t.find(t=>t.props.orient===e)?50:10}const Me=(e,t,n)=>`${e.map(we).join(",")}${JSON.stringify(t)}${n.join(",")}`;function we(e){if(!e||!e.props||!e.props.noteData)return"";const{note:t={}}=e.props.noteData,{label:n,title:a}=t;return`${e.props.noteData.id||`${e.props.noteData.x}-${e.props.noteData.y}`}-${n}=${a}`}function Oe(e,n=8,a){const{noteWidth:o=a}=e;let r=o;"number"==typeof o&&(r=()=>o);const s=e.note&&e.note.wrap||120,i=e.note.label||e.note.label||"";return o&&r(e)||(t.isValidElement(e.note)?100:Math.min(s,i.length*n))}function Pe(e,n=8,a=20,o){const{noteHeight:r=o}=e;let s=r;"number"==typeof r&&(s=()=>r);const i=e.note&&e.note.wrap||120,l=e.note.label||e.note.title||"";return r&&s(e)||(t.isValidElement(e.note)?30:Math.ceil(l.length*n/i)*a+(e.note.label&&e.note.title?a:0))}const Se=(e,t)=>{const n=t.map((t,n)=>e.svgAnnotationRule(t,n,e)).filter(e=>null!=e);return n},Ae=(t,n)=>{let a=n.adjustedAnnotations,o=n.adjustedAnnotationsKey,r=n.adjustableAnnotations,s=n.fixedAnnotations,i=[],l=[];const c=n.adjustedAnnotationsKey,p=n.adjustedAnnotationsDataVersion,{annotations:u,annotationHandling:y=!1,size:m,svgAnnotationRule:h,htmlAnnotationRule:g}=t,f="object"==typeof y?y:{layout:{type:y},dataVersion:""},{dataVersion:x=""}=f;if(h){const n=Se(t,u);o=Me(n,f,m),!1===y&&(a=r),a=a.length!==r.length||c!==o||p!==x?((t,n,a)=>{const{layout:o={type:!1,noteHeight:void 0,noteWidth:void 0}}=n;if(!1===o.type)return t;const{noteWidth:r,noteHeight:s}=o;let{margin:i={top:0,bottom:0,left:0,right:0}}=a;const{size:l,axes:c=[]}=a;if(i="number"==typeof i?{top:i,left:i,right:i,bottom:i}:i,"bump"===o.type)return function(e,t,n,a,o){const{padding:r=1,characterWidth:s=8,lineHeight:i=20,iterations:l=500,pointSizeFunction:c=a,labelSizeFunction:d=o||me}=t,p=e.map((e,t)=>{const n=(e.props.noteData.x[0]||e.props.noteData.x)+(void 0!==e.props.noteData.dx?e.props.noteData.dx:-10*(t%3-1)),a=(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:n,y:a,above:e.props.noteData.y>a,left:e.props.noteData.x>n,width:o,height:l,type:"label",name:"",originalNote:e}}),u=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})),y=function(){let e,t=[],n=[],a=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 a=t.length,o=0,r=t[e].x-n[e].x,s=n[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,p,u,y,m,h,g=t[e].x,f=t[e].y-t[e].height+2,x=t[e].x+t[e].width,b=t[e].y+2;for(let r=0;a>r;r++)r!==e&&(d(n[e].x,t[e].x,n[r].x,t[r].x,n[e].y,t[e].y,n[r].y,t[r].y)&&(o+=1),l=t[r].x,p=t[r].y-t[r].height+2,c=t[r].x+t[r].width,u=t[r].y+2,y=Math.max(0,Math.min(c,x)-Math.max(l,g)),m=Math.max(0,Math.min(u,b)-Math.max(p,f)),h=y*m,o+=30*h),l=n[r].x-n[r].r,p=n[r].y-n[r].r,c=n[r].x+n[r].r,u=n[r].y+n[r].r,y=Math.max(0,Math.min(c,x)-Math.max(l,g)),m=Math.max(0,Math.min(u,b)-Math.max(p,f)),h=y*m,o+=30*h;return o},l=function(r){let l,c,d=Math.floor(Math.random()*t.length),p=t[d].x,u=t[d].y;l=s?e(d,t,n):i(d),t[d].x+=5*(Math.random()-.5),t[d].y+=5*(Math.random()-.5),t[d].x>a&&(t[d].x=p),0>t[d].x&&(t[d].x=p),t[d].y>o&&(t[d].y=u),0>t[d].y&&(t[d].y=u),c=s?e(d,t,n):i(d);let y=c-l;Math.random()<Math.exp(-y/r)||(t[d].x=p,t[d].y=u)},c=function(r){let l,c=Math.floor(Math.random()*t.length),d=t[c].x,p=t[c].y;l=s?e(c,t,n):i(c);let u=.5*(Math.random()-.5),y=Math.sin(u),m=Math.cos(u);t[c].x-=n[c].x,t[c].y-=n[c].y;let h,g=t[c].x*y+t[c].y*m;t[c].x=t[c].x*m-t[c].y*y+n[c].x,t[c].y=g+n[c].y,t[c].x>a&&(t[c].x=d),0>t[c].x&&(t[c].x=d),t[c].y>o&&(t[c].y=p),0>t[c].y&&(t[c].y=p),h=s?e(c,t,n):i(c);let f=h-l;Math.random()<Math.exp(-f/r)||(t[c].x=d,t[c].y=p)},d=function(e,t,n,a,o,r,s,i){let l,c,d,p,u;return d=(i-s)*(t-e)-(a-n)*(r-o),p=(a-n)*(o-s)-(i-s)*(e-n),u=(t-e)*(o-s)-(r-o)*(e-n),l=p/d,c=u/d,!(0>l||l>1||0>c||c>1)},p=function(e,t,n){return e-t/n};return r.start=function(e){let n=t.length,a=1;for(let t=0;e>t;t++){for(let e=0;n>e;e++).5>Math.random()?l(a):c(a);a=p(a,1,e)}},r.width=function(e){return arguments.length?(a=e,r):a},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?(n=e,r):n},r.alt_energy=function(t){return arguments.length?(e=t,s=!0,r):i},r.alt_schedule=function(e){return arguments.length?r:p},r}();return y.label(p),y.anchor(u),y.width(n[0]),y.height(n[1]),y.start(l),p.forEach(e=>{if("label"===e.type){const t=function(e,t,n){return e.y>t.y?[t.x+t.width/2+n/2,t.y-t.height+n/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}(t,o,l,a.pointSizeFunction,a.labelSizeFunction);if("marginalia"===o.type){const{marginOffset:n,orient:a="nearest",characterWidth:p=8,lineHeight:u=20,padding:y=2,axisMarginOverride:m={}}=o,h="nearest"===a?["left","right","top","bottom"]:Array.isArray(a)?a:[a],g=h.find(e=>"left"===e),f=h.find(e=>"right"===e),x=h.find(e=>"top"===e),b=h.find(e=>"bottom"===e),v=[],k=[],E=[],j=[];for(const e of t){const t=e.props.noteData,n=t.x[0]||t.x,a=t.y[0]||t.y,o=g?n:1/0,r=f?l[0]-n:1/0,s=x?a:1/0,i=Math.min(o,r,s,b?l[1]-a:1/0);o===i?v.push(e):r===i?k.push(e):s===i?E.push(e):j.push(e)}const $=new d.Force({minPos:void 0!==m.top?0+m.top:0-i.top,maxPos:void 0!==m.bottom?l[1]-m.bottom:b?l[1]:l[1]+i.bottom}).nodes(v.map(e=>new d.Node(e.props.noteData.y[0]||e.props.noteData.y,Pe(e.props.noteData,p,u,r)+y))).compute(),M=new d.Force({minPos:void 0!==m.top?0+m.top:x?0:0-i.top,maxPos:void 0!==m.bottom?l[1]-m.bottom:l[1]+i.bottom}).nodes(k.map(e=>new d.Node(e.props.noteData.y[0]||e.props.noteData.y,Pe(e.props.noteData,p,u,r)+y))).compute(),w=new d.Force({minPos:void 0!==m.left?0+m.left:g?0:0-i.left,maxPos:void 0!==m.right?l[0]-m.right:l[0]+i.right}).nodes(E.map(e=>new d.Node(e.props.noteData.x[0]||e.props.noteData.x,Oe(e.props.noteData,p,s)+y))).compute(),O=new d.Force({minPos:void 0!==m.left?0+m.left:0-i.left,maxPos:void 0!==m.right?l[0]-m.right:f?l[0]:l[0]+i.right}).nodes(j.map(e=>new d.Node(e.props.noteData.x[0]||e.props.noteData.x,Oe(e.props.noteData,p,s)+y))).compute(),P=Math.max(...j.map(e=>Pe(e.props.noteData,p,u,r)+y)),S=Math.max(...E.map(e=>Pe(e.props.noteData,p,u,r)+y)),A=Math.max(...v.map(e=>Oe(e.props.noteData,p,s)+y)),D=Math.max(...k.map(e=>Oe(e.props.noteData,p,s)+y)),N=$.nodes(),z=M.nodes(),F=w.nodes(),C=O.nodes();return v.forEach((t,a)=>{const o=0-N[a].layerIndex*A-$e("left",c,n),r=N[a].currentPos;t.props.noteData.nx=o,t.props.noteData.ny=r,t.props.noteData.note&&!e.isValidElement(t)&&(t.props.noteData.note.orientation=t.props.noteData.note.orientation||"leftRight",t.props.noteData.note.align=t.props.noteData.note.align||"right")}),k.forEach((t,a)=>{const o=l[0]+z[a].layerIndex*D+$e("right",c,n),r=z[a].currentPos;t.props.noteData.nx=o,t.props.noteData.ny=r,t.props.noteData.note&&!e.isValidElement(t)&&(t.props.noteData.note.orientation=t.props.noteData.note.orientation||"leftRight",t.props.noteData.note.align=t.props.noteData.note.align||"left")}),E.forEach((e,t)=>{const a=F[t].currentPos,o=0-F[t].layerIndex*S-$e("top",c,n);e.props.noteData.nx=a,e.props.noteData.ny=o}),j.forEach((e,t)=>{const a=C[t].currentPos,o=l[1]+C[t].layerIndex*P+$e("bottom",c,n);e.props.noteData.nx=a,e.props.noteData.ny=o}),t}return t})(r,f,t):r.map((t,n)=>{const o=Object.assign(Object.assign({},a[n].props.noteData),t.props.noteData);return e.createElement(ke,{key:t.key,noteData:o})}),i=[...a,...s]}return g&&(l=((e,t)=>{const n=t.map((t,n)=>e.htmlAnnotationRule(t,n,e)).filter(e=>null!=e);return n})(t,u)),{svgAnnotations:i,htmlAnnotations:l,adjustedAnnotations:a,adjustedAnnotationsKey:o,adjustedAnnotationsDataVersion:x}};function De(t){const{legendSettings:n,margin:a,size:o,annotations:s,annotationHandling:l}=t,c=je(e=>e.tooltip);let d=null!=c?s.concat(c):s,p=je(e=>e.changeTooltip);const u=Object.assign(Object.assign({},t),{annotations:d,voronoiHover:e=>{p(e)}}),y="object"==typeof l?l:{layout:{type:l},dataVersion:""},{dataVersion:m=""}=y,[h,g]=r([]),[f,x]=r([]),[b,v]=r([]),[k,E]=r(""),[j,$]=r(m),M=Se(u,d),w=M.filter(e=>e.props&&e.props.noteData&&!e.props.noteData.fixedPosition),O=Me(w,y,o);let P;if(i(()=>{const e=M.filter(e=>!e.props||!e.props.noteData||e.props.noteData.fixedPosition),t=Ae(u,{adjustedAnnotations:h,adjustedAnnotationsKey:k,adjustedAnnotationsDataVersion:j,adjustableAnnotations:w,fixedAnnotations:e});g(t.adjustedAnnotations),E(t.adjustedAnnotationsKey),$(t.adjustedAnnotationsDataVersion),x(t.svgAnnotations),v(t.htmlAnnotations)},[O,m,d.length,d.map(e=>function(e){const t=new Set;return JSON.stringify(e,(e,n)=>t.has(n)?"...":"object"==typeof n?(t.add(n),"note"===e?`${n.label}-${n.title}`:"connector"===e?`${n.end}-${n.type}`:"subject"===e?""+n.radius:"object"==typeof n.column?`${n.column.x}-${n.column.y}-${n.column.name}`:n.voronoiX||n.voronoiY||n.x||n.y||n.dx||n.dy||n.label||n.type||n.key||n.hierarchicalID||n.id||n.name?`${n.voronoiX}-${n.voronoiY}-${n.dx}-${n.dy}-${n.x}-${n.y}-${n.label}-${n.type}-${n.key}-${n.hierarchicalID}-${n.id}-${n.name}`:"..."):n)}(e)).join("-")]),n){const t={left:[15,15],right:[o[0]+15,15]},{position:a="right",title:r="Legend"}=n;P=e.createElement("g",{transform:`translate(${t[a].join(",")})`},e.createElement(fe,Object.assign({},n,{title:r,position:a})))}return 0!==d.length||n?e.createElement("div",{className:"annotation-layer",style:{position:"absolute",pointerEvents:"none",background:"none"}},e.createElement("svg",{className:"annotation-layer-svg",height:o[1],width:o[0],style:{background:"none",pointerEvents:"none",position:"absolute",left:a.left+"px",top:a.top+"px",overflow:"visible"}},e.createElement("g",null,P,f)),e.createElement("div",{className:"annotation-layer-html",style:{background:"none",pointerEvents:"none",position:"absolute",height:o[1]+"px",width:o[0]+"px",left:a.left+"px",top:a.top+"px"}},b)):null}const Ne=e=>e.reduce((e,t)=>e.concat(Array.isArray(t)?Ne(t.slice().sort((e,t)=>e-t)):t),[]);function ze(e=[]){if(!Array.isArray(e))return"not-array";let t=e.slice();Array.isArray(t[0])||(t=t.slice().sort((e,t)=>e-t));const n=""+Ne(t).map(e=>e instanceof Date&&""+e||void 0!==e&&e.toFixed&&e.toFixed(2)||"empty");return n}function Fe(t){const{extent:n,selectedExtent:a}=t,o=l(null),r=ze(n),s=ze(a);i(()=>{(null==o?void 0:o.current)&&((e,t)=>{const{svgBrush:n,selectedExtent:a}=t;if(m(e).call(n),a){let t=a;if(Array.isArray(a[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]]]}m(e).call(n.move,t)}})(o.current,t)},[r,s,o]);const{position:c=[0,0]}=t;return e.createElement("g",{transform:`translate(${c})`,ref:o,className:"xybrush"})}function Ce(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);a.length>o;o++)0>t.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]])}return n}"function"==typeof SuppressedError&&SuppressedError;const Re="x",Te="y",Ie="yMiddle",Le="yTop",We="yBottom",Be="xMiddle",Ve="xTop",_e="xBottom",He=(e,t)=>void 0===e?e:Object.assign(e&&e.data?Object.assign({points:t},e.data):{points:t},e),Ge=(e,t,n,a,o,r)=>{const s=He(t,o);if(a&&a(s),t){if(!0===n){const t=Object.assign({},s);t.type="column-hover"===t.type?"column-hover":"frame-hover",e(t,r)}else if(n){const t=(Array.isArray(n)?n:[n]).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)},Ye=(e,t,n,a)=>{const o=He(e,n);t&&t(o,a)},Xe=(e,t,n,a)=>{const o=He(e,n);t&&t(o,a)},qe=(e,t,n,a,o)=>{o&&o.start&&o.start(e,t,n,a)},Ke=(e,t,n,a,o)=>{o&&o.during&&o.during(e,t,n,a)},Ze=(e,t,n,a,o)=>{o&&o.end&&o.end(e,t,n,a)},Qe=()=>({}),Ue=2*Math.PI,Je=(e=1)=>(t,n)=>{const a=t[t.length-1];return a&&Math.round(a.x/e)===Math.round(n.x/e)&&Math.round(a.y/e)===Math.round(n.y/e)||t.push(n),t};function et(){const e=M();let t=function(e){return e.x},n=function(e){return e.y},a=function(e){return e.r},o=w;function r(r){if(r.multiple){const s=a,l=r.multiple.reduce((e,t)=>e+t.weight,0);a=()=>l;let c=i(r.points).filter(e=>"forward"===e.direction).reduce(Je(),[]);const d=[];return r.multiple.forEach((e,t)=>{a=()=>e.weight;const n=i(c);d.push(n);const o=r.multiple[t+1];if(o){const e=n.reverse().filter(e=>"back"===e.direction).reduce(Je(),[]);a=()=>o.weight;const t=i(e);c=t.reverse().filter(e=>"back"===e.direction).reduce(Je(),[])}}),a=s,d.map(a=>e.x(t).y(n).curve(o)(a))}const s=i(r).reduce(Je(),[]);return e.x(t).y(n).curve(o)(s)}return r.x=function(e){return arguments.length?(t=e,r):t},r.y=function(e){return arguments.length?(n=e,r):n},r.r=function(e){return arguments.length?(a=e,r):a},r.interpolate=function(e){return arguments.length?(o=e,r):o},r;function s(e){const o=n(e.target)-n(e.source),r=t(e.target)-t(e.source),s=Math.atan2(r,o)+Math.PI/2,i=s+.5*Math.PI,l=s+.5*Math.PI;return{x1:t(e.source)+a(e.source)*Math.cos(i),y1:n(e.source)-a(e.source)*Math.sin(i),x2:t(e.target)+a(e.target)*Math.cos(l),y2:n(e.target)-a(e.target)*Math.sin(l)}}function i(e){const t=[];let n=0,a={x1:0,y1:0,x2:0,y2:0};for(;e.length>n;){if(n!==e.length-1&&(a=s({source:e[n],target:e[n+1]}),t.push({x:a.x1,y:a.y1,direction:"forward"},{x:a.x2,y:a.y2,direction:"forward"}),t.length>3)){const e=t.length-1,n={a:t[e-3],b:t[e-2]},a={a:t[e-1],b:t[e]},o=l(n.a.x,n.a.y,n.b.x,n.b.y,a.a.x,a.a.y,a.b.x,a.b.y);!0===o.found&&(n.b.x=o.x,n.b.y=o.y,a.a.x=o.x,a.a.y=o.y)}n++}for(n--;n>=0;){if(0!==n&&(a=s({source:e[n],target:e[n-1]}),t.push({x:a.x1,y:a.y1,direction:"back"},{x:a.x2,y:a.y2,direction:"back"}),t.length>3)){const e=t.length-1,n={a:t[e-3],b:t[e-2]},a={a:t[e-1],b:t[e]},o=l(n.a.x,n.a.y,n.b.x,n.b.y,a.a.x,a.a.y,a.b.x,a.b.y);!0===o.found&&(n.b.x=o.x,n.b.y=o.y,a.a.x=o.x,a.a.y=o.y)}n--}return t}function l(e,t,n,a,o,r,s,i){let l,c;const d={x:null,y:null,found:!1},p=(i-r)*(n-e)-(s-o)*(a-t);if(0===p)return d;l=t-r,c=e-o;const u=(n-e)*l-(a-t)*c;return l=((s-o)*l-(i-r)*c)/p,c=u/p,d.x=e+l*(n-e),d.y=t+l*(a-t),l>0&&1>l&&c>0&&1>c&&(d.found=!0),d}}const tt=({xy:t,orient:n,i:a,className:o="",jaggedBase:r})=>{let s=`M${t.x1},${t.y1}L${t.x2},${t.y2}`;return r&&0===a&&(s=((e,t)=>{let n="";const{x1:a,x2:o,y1:r,y2:s}=t;if("left"===e||"right"===e){const t=Math.abs(o-a);n=((e,t,n,a)=>{const o=e/t;let r=0,s="M0,"+n;const i="right"===a?-1:1;for(;e>=r;)s+=`L${r},${n}`,e>r&&(s+=`L${r+o/2},${n+10*i}`),r+=o;return s})(t,Math.ceil(t/40),"right"===e?0:r,e)}else{const t=Math.abs(s-r);n=((e,t,n,a)=>{const o=e/t;let r=0,s=`M${n},0`;const i="bottom"===a?-1:1;for(;e>=r;)s+=`L${n},${r}`,e>r&&(s+=`L${n+10*i},${r+o/2}`),r+=o;return s})(t,Math.ceil(t/40),a,e)}return n})(n,t)),e.createElement("path",{key:a,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:s,className:`tick-line tick ${n} ${o}`})};function nt(e,t,n){const a=Math.abs(n.range()[1]-n.range()[0]);return e||(t||(t=Math.max(1,Math.floor(a/40))),e=n.ticks&&n.ticks(t)||n.domain()),e}function at({t:e,o:t,w:n}){return"contour"!==e&&"boxplot"!==e||"left"!==t&&"right"!==t?0:n/2}function ot({t:e,o:t,w:n}){return"contour"!==e&&"boxplot"!==e||"top"!==t&&"bottom"!==t?0:n/2}function rt(e){const{translation:n,orient:a,decoratedSummaryType:o,summaryWidth:r,renderedSummary:s,points:i}=e;return t.createElement("g",{className:"marginal-graphics",transform:`translate(${n[a]})`},t.createElement("g",{transform:`translate(${at({t:o.type,o:a,w:r})},${ot({t:o.type,o:a,w:r})})`},s),i)}function st(e){const{className:n,translation:a,position:o,rotation:r,labelName:s,anchorMod:i}=e;return t.createElement("g",{className:"axis-title "+n,transform:`translate(${[a[0]+o[0],a[1]+o[1]]}) rotate(${r})`},t.isValidElement(s)?s:t.createElement("text",{textAnchor:i},s))}function it(e,t,n){const a=Math.PI*(t+.75)*2;return[e[0]+n*Math.cos(a),e[1]+n*Math.sin(a)]}const lt=()=>({});function ct(e,t){for(var n=[],a=0;e>a;a++){for(var o=[],r=0;t>r;r++)o.push(0);n.push(o)}return n}function dt(e,t,n,a){var o;if(e>0){var r=(n[t]-n[e-1])/(t-e+1);o=a[t]-a[e-1]-(t-e+1)*r*r}else o=a[t]-n[t]*n[t]/(t+1);return 0>o?0:o}function pt(e,t,n,a,o,r,s){if(t>=e){var i=Math.floor((e+t)/2);a[n][i]=a[n-1][i-1],o[n][i]=i;var l=n;e>n&&(l=Math.max(l,o[n][e-1]||0)),l=Math.max(l,o[n-1][i]||0);var c,d,p,u,y=i-1;a[0].length-1>t&&(y=Math.min(y,o[n][t+1]||0));for(var m=y;m>=l&&(c=dt(m,i,r,s))+a[n-1][l-1]<a[n][i];--m)d=dt(l,i,r,s),a[n][i]>(p=d+a[n-1][l-1])&&(a[n][i]=p,o[n][i]=l),l++,a[n][i]>(u=c+a[n-1][m-1])&&(a[n][i]=u,o[n][i]=m);pt(e,i-1,n,a,o,r,s),pt(i+1,t,n,a,o,r,s)}}function ut({summaryType:e,data:t,finalXExtent:n,finalYExtent:a}){let o=[];e.type||(e={type:e});const{resolution:r=500,thresholds:s=10,bandwidth:i=20,neighborhood:l}=e,c=E().domain(n).rangeRound([0,r]).nice(),d=E().domain(a).rangeRound([r,0]).nice();return t.forEach(e=>{let t=W().size([r,r]).x(e=>c(e[0])).y(e=>d(e[1])).thresholds(s).bandwidth(i)(e._xyfCoordinates);l&&(t=[t[0]]);const n=Math.max(...t.map(e=>e.value));t.forEach(t=>{t.parentSummary=e,t.bounds=[],t.percent=t.value/n,t.coordinates.forEach(e=>{e.forEach((n,a)=>{e[a]=n.map(e=>[c.invert(e[0]),d.invert(e[1])]),0===a&&t.bounds.push(function(e){let t=[1/0,0],n=[-1/0,0],a=[0,1/0],o=[0,-1/0];return e.forEach(e=>{t=t[0]>e[0]?e:t,n=e[0]>n[0]?e:n,o=e[1]>o[1]?e:o,a=a[1]>e[1]?e:a}),{center:[(t[0]+n[0])/2,(a[1]+o[1])/2],top:a,left:t,right:n,bottom:o}}(e[a]))})})}),o=[...o,...t]}),o}const yt=(e,t,n,a)=>{const o=e.map((e,a)=>[e[0],e[1]+n(t[a])]),r=e.map((e,n)=>[e[0],e[1]-a(t[n])]);return[...o,...r.reverse()]},mt=e=>[e.xy.x,e.xy.y],ht={step:R,stepbefore:C,stepafter:F,cardinal:O,basis:z,linear:N,catmullrom:D,monotone:S,monotonex:A,monotoney:S,natural:P},gt=(e,t)=>e.xy.y-t.xy.y,ft=(e,t)=>t.xy.x-e.xy.x,xt=()=>({});function bt({summary:t,summaryI:n,axisSettings:a,axisCreator:o,projection:r,actualMax:s,adjustedSize:i,columnWidth:l}){let c=`translate(${t.x},0)`,d=[0,s];"horizontal"===r?(c=`translate(0,${t.x})`,d=[s,0]):"radial"===r&&(c="translate(0, 0)"),a.size=["horizontal"===r?i[0]:l,"vertical"===r?i[1]:l];const p=o(a,n,E().domain(d).range([0,l]));return e.createElement("g",{className:"summary-axis",key:"summaryPiece-axis-"+n,transform:c},p)}function vt({data:e,type:t,eventListenersGenerator:n,styleFn:a,classFn:o,projection:r,adjustedSize:s,chartSize:i,axisCreator:l}){const c=[],d=[],p=t.bins||25,u=!!t.relative&&{},y=t.binValue||(e=>e.length),m=t.elementStyleFn||xt;let h;t.axis&&(t.axis.orient="horizontal"===r&&-1===["left","right"].indexOf(t.axis.orient)?"left":t.axis.orient,t.axis.orient="vertical"===r&&-1===["bottom","top"].indexOf(t.axis.orient)?"bottom":t.axis.orient,h=l,"radial"===r&&(console.error("Summary axes cannot be drawn for radial histograms"),h=()=>null));let v=i/p;const k=Object.keys(e);let E=0;const j=f(),w=[0,i],O=[];for(let e=0;p>e;e++)O.push(w[0]+e/p*i);const P="vertical"===r?e=>e.piece.scaledVerticalValue:e=>e.piece.scaledValue,S=j.domain(w).thresholds(O).value(P),A=k.map((n,a)=>{const o=e[n],s=o.xyData,l=s.sort("vertical"===r?gt:ft);let c;if(!1===t.useBins){const e=l.map(e=>P(e));c=l.map((t,n)=>{const a=[];return a.x0=e[n]-1,a.x1=e[n]+1,a.push(t),a}).sort((e,t)=>e.x0-t.x0),v=i/c.length}else c=S(l);c=c.map(e=>({y:e.x0,y1:e.x1-e.x0,pieces:e,value:y(e.map(e=>e.piece.data))})),"histogram"!==t.type&&"heatmap"!==t.type||(c=c.filter(e=>0!==e.value));const d=0===c.length?0:x(c.map(e=>e.value));return u&&(u[n]=d),E=Math.max(E,d),{bins:c,summary:o,summaryI:a,thisSummaryData:s}}),z=t.horizon?E/t.horizon:t.numHorizons||4,F=t.horizon||E/z;return A.forEach(({bins:e,summary:i,summaryI:l,thisSummaryData:p})=>{const f=n(i,l),k=i.width;let j=p[0]?a(p[0].piece.data,l):{},w=p[0]?o(p[0].piece.data,l):"",O=[i.middle,0];"horizontal"===r?O=[v,i.middle]:"radial"===r&&(O=[s[0]/2,s[1]/2]);const P=u&&u[i.name]||E;if("heatmap"===t.type||"histogram"===t.type){const n=(({bins:e,binMax:t,relativeBuckets:n,columnWidth:a,projection:o,adjustedSize:r,summaryI:s,summary:i,summaryStyle:l,type:c})=>{const d=[],p=[],u=n&&n[i.name]||t,y=c.elementStyleFn||Qe,m=c.padding||0;return e.forEach((e,t)=>{const n=e.value/u,h=y(e.value,n,e.pieces),g=Object.assign("heatmap"===c.type?{opacity:n,fill:l.fill}:Object.assign({},l),h),f=Math.max(1,e.y1-2*m),x="heatmap"===c.type?a:a*n;let b=e.y+m,v="heatmap"===c.type||c.flip?-a/2:a/2-x,k=f,E=x,j="heatmap"===c.type?x/2:x,M=e.y1/2;if("horizontal"===o)b="heatmap"===c.type||c.flip?-a/2:a/2-x,v=e.y-e.y1+m,k=x,E=f,M="heatmap"===c.type?x/2:x,j=e.y1/2;else if("radial"===o){const a=$().innerRadius(e.y/2).outerRadius((e.y+e.y1)/2),o=i.pct-i.pct_padding;let l=i.pct_middle-i.pct_padding,u="heatmap"===c.type?l+o:l+o*n;l*=Ue,u*=Ue;const y=r[0]/2,m=r[1]/2,h=`translate(${y},${m})`,f=a.centroid({startAngle:l,endAngle:u});p.push({key:i.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:f[0]+y,y:f[1]+m}),d.push({markType:"path",transform:h,key:`groupIcon-${s}-${t}`,d:a({startAngle:l,endAngle:u}),style:g})}"radial"!==o&&(p.push({key:i.name,value:e.value,pieces:e.pieces.map(e=>e.piece),label:"Heatmap",x:v+j,y:b+M}),d.push({markType:"rect",key:`groupIcon-${s}-${t}`,x:v,y:b,height:k,width:E,style:g}))}),{marks:d,points:p}})({bins:e,binMax:E,relativeBuckets:u,columnWidth:k,projection:r,adjustedSize:s,summaryI:l,summary:i,summaryStyle:j,type:t}),a=n.marks;"radial"===r&&(O=[0,0]),t.axis&&"histogram"===t.type&&c.push({type:"svg-only-mark",Mark:bt({summary:i,summaryI:l,axisSettings:t.axis,axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),n.points.forEach(e=>{e.x+=O[0],e.y+=O[1]}),d.push(...n.points),c.push({containerProps:Object.assign(Object.assign({},f),{transform:`translate(${O})`,className:w,key:"summaryPiece-"+l,role:"img",tabIndex:-1,"data-o":i.name,"aria-label":`${i.name} ${t.type}`}),elements:a})}else if("violin"===t.type){const{iqr:n}=t,s=t.subsets||[!1],u=[];e[0].y=e[0].y-v/2,e[e.length-1].y=e[e.length-1].y+v/2,s.forEach((s,c)=>{let h=e;s&&(j=p[0]?a(p[0].piece.data,l,c):{},w=p[0]?o(p[0].piece.data,l,c):"",h=e.map(e=>{const t=e.pieces.filter((e,t)=>s(e.piece,t)).map(e=>e),n=y(t);return Object.assign(Object.assign({},e),{pieces:t,value:n})}));let x=T().curve(t.curve||D),b=[];if("horizontal"===r)h.forEach(e=>{const t=e.y-v/2,n=e.value/P*k/2;b.push({x:t,y0:-n,y1:n}),d.push({key:i.name,x:t+O[0],y:n+O[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),x.x(e=>e.x).y0(e=>e.y0).y1(e=>e.y1).defined((e,t)=>0!==e.y0||b[t-1]&&0!==b[t-1].y0||b[t+1]&&0!==b[t+1].y0);else if("vertical"===r)h.forEach(e=>{const t=e.y+v/2,n=e.value/P*k/2;b.push({y:t,x0:-n,x1:n}),d.push({key:i.name,x:n+O[0],y:t+O[1],pieces:e.pieces.map(e=>e.piece),value:e.value})}),x.y(e=>e.y).x0(e=>e.x0).x1(e=>e.x1).defined((e,t)=>0!==e.x0||b[t-1]&&0!==b[t-1].x0||b[t+1]&&0!==b[t+1].x0);else if("radial"===r){const e=i.pct-i.pct_padding/2,t=i.pct_middle;b=h,x=n=>{const a=[],o=[];return n.forEach(n=>{const r=it([0,0],t+e*n.value/P/2,(n.y+n.y1-v/2)/2),s=it([0,0],t-e*n.value/P/2,(n.y+n.y1-v/2)/2);d.push({key:i.name,x:s[0]+O[0],y:s[1]+O[1],pieces:n.pieces.map(e=>e.piece),value:n.value}),d.push({key:i.name,x:r[0]+O[0],y:r[1]+O[1],pieces:n.pieces.map(e=>e.piece),value:n.value}),a.push(r),o.push(s)}),`M${a.map(e=>e.join(",")).join("L")}L${o.reverse().map(e=>e.join(",")).join("L")}Z`}}if(u.push(Object.assign(Object.assign({},f),{transform:`translate(${O})`,key:`summaryPiece-${l}-${c}`,markType:"path",className:w,style:j,d:x(b),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})),n){let e=[];h.forEach(t=>{e.push(...t.pieces)}),e=e.map(e=>"vertical"===r?e.piece.scaledVerticalValue:e.piece.scaledValue).sort((e,t)=>e-t);const t=[g(e,.25),g(e,.5),g(e,.75)],n="vertical"===r?(e,t,n)=>`M${n[0]},${e}L${n[0]},${t}`:(e,t,n)=>`M${e},${n[1]}L${t},${n[1]}`;u.push(Object.assign(Object.assign({},f),{key:`summaryPiece-${l}-${c}-iqr-line`,markType:"path",className:w,style:Object.assign(Object.assign({stroke:"black",strokeWidth:"2px"},j),m("iqr")),d:n(t[0],t[2],O),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})),u.push(Object.assign(Object.assign({},f),{key:`summaryPiece-${l}-${c}-iqr-median`,markType:"circle",className:w,style:Object.assign(Object.assign({stroke:"black",fill:"black",strokeWidth:"1px",r:"3px"},j),m("median")),cx:"vertical"===r?O[0]:t[1],cy:"vertical"===r?t[1]:O[1],role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"}))}}),c.push({elements:u})}else if("ridgeline"===t.type){const n=Object.assign({},e[0],{value:0}),a=Object.assign({},e[e.length-1],{value:0});n.y=n.y-v/2,a.y=a.y+v/2;const o=[n,...e,a];let p=[];const u=t.curve||t.interpolator,y="string"==typeof u?ht[u]:u;let m=M().curve(y||D).x(e=>e.x).y(e=>e.y);const g=t.amplitude||0;if(t.axis&&"histogram"===t.type&&c.push({type:"svg-only-mark",Mark:bt({summary:i,summaryI:l,axisSettings:Object.assign({baseline:!1},t.axis),axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),"horizontal"===r)o.forEach((e,n)=>{const a=e.y-v/2,r=t.flip?e.value/P*(k+g)-k/2:-e.value/P*(k+g)+k/2;p.push({y:r,x:a}),0!==n&&n!==o.length-1&&d.push({key:i.name,x:a+O[0],y:r+O[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("vertical"===r)o.forEach(e=>{const n=e.y+v/2,a=!0===t.flip?e.value/P*(k+g)-k/2:-e.value/P*(k+g)+k/2;p.push({y:n,x:a}),d.push({key:i.name,x:a+O[0],y:n+O[1],pieces:e.pieces.map(e=>e.piece),value:e.value})});else if("radial"===r){const e=i.pct-i.pct_padding/2,t=i.pct_start+i.pct_padding/2;O=[0,0],p=o,m=n=>{const a=[];return n.forEach(n=>{const o=it([s[0]/2,s[1]/2],t+e*n.value/P,(n.y+n.y1-v/2)/2);d.push({key:i.name,x:o[0]+O[0],y:o[1]+O[1],pieces:n.pieces.map(e=>e.piece),value:n.value}),a.push(o)}),`M${a.map(e=>e.join(",")).join("L")}Z`}}t.axis&&c.push({type:"svg-only-mark",Mark:bt({summary:i,summaryI:l,axisSettings:t.axis,axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),c.push({elements:[Object.assign(Object.assign({},f),{transform:`translate(${O})`,key:"summaryPiece-"+l,markType:"path",className:w,style:j,d:m(p),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})]})}else if("horizon"===t.type){const n=Object.assign({},e[0],{value:0}),a=Object.assign({},e[e.length-1],{value:0});n.y=n.y-v/2,a.y=a.y+v/2;const o=[n,...e,a];let p=[],u=!0,y=0;for(;!0===u;){const e=o.map(e=>Object.assign(Object.assign({},e),{value:Math.max(0,Math.min(e.value-y,F))}));p.push(e.map(e=>Object.assign(Object.assign({},e),{value:e.value*z}))),y+=F,x(e.map(e=>e.value))<F&&(u=!1)}p=p.filter(e=>b(e,e=>e.value)>0),o.forEach((e,n)=>{0!==n&&n!==o.length-1&&("horizontal"===r?d.push({key:i.name,x:e.y-v/2+O[0],y:-e.value/P*k+k/2+O[1],pieces:e.pieces.map(e=>e.piece),value:e.value}):"vertical"===r&&d.push({key:i.name,x:(!0===t.flip?e.value/P*k-k/2:-e.value/P*k+k/2)+O[0],y:e.y+v/2+O[1],pieces:e.pieces.map(e=>e.piece),value:e.value}))});const g=p.map((e,n)=>{let a=[];const o=t.curve||t.interpolator,c="string"==typeof o?ht[o]:o;let d=M().curve(c||N).x(e=>e.x).y(e=>e.y);if("horizontal"===r)e.forEach(e=>{a.push({y:-e.value/P*k+k/2,x:e.y-v/2})});else if("vertical"===r)e.forEach(e=>{a.push({y:e.y+v/2,x:!0===t.flip?e.value/P*k-k/2:-e.value/P*k+k/2})});else if("radial"===r){const t=i.pct-i.pct_padding/2,n=i.pct_start+i.pct_padding/2;O=[0,0],a=e,d=e=>{const a=[];return e.forEach(e=>{const o=it([s[0]/2,s[1]/2],n+t*e.value/P,(e.y+e.y1-v/2)/2);a.push(o)}),`M${a.map(e=>e.join(",")).join("L")}Z`}}return Object.assign(Object.assign({},f),{transform:`translate(${O})`,key:`summaryPiece-${l}-${n}`,markType:"path",className:w,style:Object.assign(Object.assign({},j),m(e,n)),d:d(a),role:"img",tabIndex:-1,"data-o":i.name,"aria-label":i.name+" distribution"})});t.axis&&c.push({type:"svg-only-mark",Mark:bt({summary:i,summaryI:l,axisSettings:t.axis,axisCreator:h,projection:r,actualMax:P,adjustedSize:s,columnWidth:k})}),c.push({elements:g})}}),{marks:c,xyPoints:d,thresholds:O}}const kt={contour:function({data:e,type:t,eventListenersGenerator:n,styleFn:a,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 p=[{id:d,_xyfCoordinates:d.xyData.map(mt)}],u=ut({summaryType:t,data:p,finalXExtent:[0,r[0]],finalYExtent:[0,r[1]]}),y=[];u.forEach((e,t)=>{e.coordinates.forEach((r,s)=>{const i=n(e,t);y.push(Object.assign(Object.assign({},i),{key:`${t}-${s}`,style:a(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:y})}),{marks:s,xyPoints:i}},boxplot:function({data:e,type:t,eventListenersGenerator:n,styleFn:a,classFn:o,projection:r,adjustedSize:s}){const i=t.elementStyleFn||lt,{outliers:l,fixedInput:c}=t,d=[],p=[];return Object.keys(e).forEach((t,u)=>{const y=e[t],m=n(y,u),h=y.width,f=y.pieceData,x=a(f[0].data,u),b=o(f[0].data,u);let v,k,E,j,M,w,O,P,S,A,D,N,z,F,C,R,T,I,L,W,B,V,_,H,G,Y,X,q,K,Z,Q;k=f.map(e=>e.value).sort((e,t)=>e-t),!0===c&&5===k.length||(k=[g(k,0),g(k,.25),g(k,.5),g(k,.75),g(k,1)]);const U=k[3]-k[1];let J,ee;l&&(J=k[1]-1.5*U,ee=k[3]+1.5*U,k[0]=Math.max(k[0],J),k[4]=Math.min(k[4],ee));const te="vertical"===r?e=>e.scaledVerticalValue:e=>e.scaledValue,ne=[...f].sort((e,t)=>e.value-t.value),ae=ne[0].value,oe=ne[ne.length-1].value,re=te(ne[0]),se=te(ne[ne.length-1]);if(v=k.map(e=>oe===ae?(re+se)/2:re+(e-ae)/(oe-ae)*(se-re)),"vertical"===r){E=`translate(${y.x+y.width/2},0)`,j=0,M=0,w=v[0],O=v[4],P=-h/2,S=h/2,A=-h/2,D=h/2,N=-h/2,z=h/2,I=h,L=v[1]-v[2],W=v[2],B=-h/2,F=h,C=v[2]-v[3],V=h,_=v[1]-v[3],H=v[3],G=-h/2,R=v[3],T=-h/2,Y=v[0],X=v[0],q=v[4],K=v[4],Z=v[2],Q=v[2];const e=y.x+y.width/2;p.push({label:"Maximum",key:t,summaryPieceName:"max",x:e,y:v[4],value:k[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:e,y:v[3],value:k[3]},{label:"Median",key:t,summaryPieceName:"median",x:e,y:v[2],value:k[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:e,y:v[1],value:k[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:e,y:v[0],value:k[0]})}else if("horizontal"===r){const e=y.x+y.width/2;E=`translate(0,${e})`,w=0,O=0,j=v[0],M=v[4],Y=-h/2,X=h/2,Z=-h/2,Q=h/2,q=-h/2,K=h/2,C=h,F=v[3]-v[2],T=v[2],R=-h/2,L=h,I=v[2]-v[1],B=v[1],W=-h/2,_=h,V=v[3]-v[1],G=v[1],H=-h/2,P=v[0],S=v[0],N=v[4],z=v[4],A=v[2],D=v[2],p.push({label:"Maximum",key:t,summaryPieceName:"max",x:v[4],y:e,value:k[4]},{label:"3rd Quartile",key:t,summaryPieceName:"q3area",x:v[3],y:e,value:k[3]},{label:"Median",key:t,summaryPieceName:"median",x:v[2],y:e,value:k[2]},{label:"1st Quartile",key:t,summaryPieceName:"q1area",x:v[1],y:e,value:k[1]},{label:"Minimum",key:t,summaryPieceName:"min",x:v[0],y:e,value:k[0]})}if("radial"===r){j=0,M=0,w=v[0],O=v[4],P=-h/2,S=h/2,A=-h/2,D=h/2,N=-h/2,z=h/2,F=h,C=v[1]-v[3],R=v[3],T=-h/2,I=h,L=v[1]-v[3],W=v[3],B=-h/2,Y=v[0],X=v[0],q=v[4],K=v[4],Z=v[2],Q=v[2];const e=2*Math.PI,n=$().innerRadius(q/2).outerRadius(q/2),a=$().innerRadius(Y/2).outerRadius(Y/2),o=$().innerRadius(Z/2).outerRadius(Z/2),r=$().innerRadius(v[1]/2).outerRadius(Z/2),l=$().innerRadius(Z/2).outerRadius(v[3]/2),c=$().innerRadius(v[1]/2).outerRadius(v[3]/2);let g=y.pct_start+y.pct_padding/2,V=y.pct+y.pct_start-y.pct_padding/2;const _=y.pct/2+y.pct_start;g*=e,V*=e;const H=s[0]/2,G=s[1]/2,U=it([0,0],_,v[4]/2),J=it([0,0],_,v[0]/2),ee=it([0,0],_,v[3]/2),te=it([0,0],_,v[2]/2),ne=it([0,0],_,v[1]/2);p.push({label:"Minimum",key:t,summaryPieceName:"min",x:J[0]+H,y:J[1]+G,value:k[0]},{label:"1st Quartile",key:t,summaryPieceName:"q3area",x:ne[0]+H,y:ne[1]+G,value:k[1]},{label:"Median",key:t,summaryPieceName:"median",x:te[0]+H,y:te[1]+G,value:k[2]},{label:"3rd Quartile",key:t,summaryPieceName:"q1area",x:ee[0]+H,y:ee[1]+G,value:k[3]},{label:"Maximum",key:t,summaryPieceName:"max",x:U[0]+H,y:U[1]+G,value:k[4]}),E=`translate(${H},${G})`,d.push({containerProps:Object.assign(Object.assign({},m),{className:b,transform:E,key:"summaryPiece-"+u,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${p.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[{markType:"line",x1:U[0],x2:J[0],y1:U[1],y2:J[1],style:Object.assign({strokeWidth:2},x,i("whisker",f))},{markType:"path",d:a({startAngle:g,endAngle:V}),style:Object.assign({strokeWidth:4},x,{fill:"none"},i("max",f))},{markType:"path",d:o({startAngle:g,endAngle:V}),style:Object.assign({strokeWidth:4},x,{fill:"none"},i("median",f))},{markType:"path",d:n({startAngle:g,endAngle:V}),style:Object.assign({strokeWidth:4},x,{fill:"none"},i("min",f))},{markType:"path",d:c({startAngle:g,endAngle:V}),style:Object.assign({strokeWidth:4},x,i("iqrarea",f))},{markType:"path",d:r({startAngle:g,endAngle:V}),style:Object.assign({},x,{fill:"none",stroke:"none"},i("q3area",f))},{markType:"path",d:l({startAngle:g,endAngle:V}),style:Object.assign({},x,{fill:"none",stroke:"none"},i("q1area",f))}]})}else{const e=[{markType:"line",x1:j,x2:M,y1:w,y2:O,style:Object.assign({strokeWidth:2},x,i("whisker",f))},{markType:"line",x1:P,x2:S,y1:Y,y2:X,style:Object.assign({strokeWidth:2},x,i("min",f))},{markType:"line",x1:N,x2:z,y1:q,y2:K,style:Object.assign({strokeWidth:2},x,i("max",f))},{markType:"rect",x:G,width:V,y:H,height:_,style:Object.assign({strokeWidth:1},x,i("iqrarea",f))},{markType:"rect",x:T,width:F,y:R,height:C,style:Object.assign({},x,{fill:"none",stroke:"none"},i("q3area",f))},{markType:"rect",x:B,width:I,y:W,height:L,style:Object.assign({},x,{fill:"none",stroke:"none"},i("q1area",f))},{markType:"line",x1:A,x2:D,y1:Z,y2:Q,style:Object.assign({strokeWidth:2},x,i("median",f))}],n=[];if(l){const e=f.filter(e=>e.value>ee||J>e.value);e.forEach(e=>{n.push({markType:"circle",cx:"horizontal"===r?e.scaledValue:0,cy:"vertical"===r?e.scaledVerticalValue:0,style:Object.assign({strokeWidth:"1px",stroke:"black",fill:"none",r:2},x,i("outlier",f))})})}d.push({containerProps:Object.assign(Object.assign({},m),{className:b,transform:E,key:"summaryPiece-"+u,role:"img",tabIndex:-1,"data-o":t,"aria-label":`${t} boxplot showing ${p.filter(e=>e.key===t).map(e=>`${e.label} ${e.value}`)}`}),elements:[...e,...n]})}}),{marks:d,xyPoints:p}},violin:vt,heatmap:vt,ridgeline:vt,histogram:vt,horizon:vt,ckbins:function(e){const{data:t,eventListenersGenerator:n,styleFn:a,classFn:o}=e,r=[];let s=0;const i=[];return Object.keys(t).forEach((e,r)=>{const l=t[e];n(l,r);const c=l.pieceData.sort((e,t)=>e.value-t.value),d=c[0],p=c[c.length-1],u=E().domain([d.value,p.value]).range([d.scaledValue,p.scaledValue]),y=a(c[0].data,r),m=o(c[0].data,r),h=c.map(e=>e.value),g=function(e,t){if(t>e.length)throw Error("Cannot generate more classes than there are data values");var n=e.length,a=e.slice().sort(function(e,t){return e-t}),o=function(e){for(var t,n=0,a=0;e.length>a;a++)0!==a&&e[a]===t||(t=e[a],n++);return n}(a);if(1===o)return[a[0]];var r=ct(t=Math.min(o,t),n),s=ct(t,n);!function(e,t,n){for(var a=t[0].length,o=Array(a),r=Array(a),s=e[Math.floor(a/2)],i=0;a>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]=dt(0,i,o,r),n[0][i]=0;for(var l=1;t.length>l;++l)pt(t.length-1>l?l:a-1,a-1,l,t,n,o,r)}(a,r,s);for(var i=[],l=s[0].length-1,c=s.length-1;c>=0;c--){var d=s[c][l];i[c]=a[d],c>0&&(l=d-1)}return i}(h,5);let f=[];g.forEach((t,n)=>{var a;const o=null!==(a=g[n+1])&&void 0!==a?a:p.value;f.push({start:t,end:o,key:e,summary:l,calculatedSummaryStyle:y,calculatedSummaryClass:m,scaledStart:u(t),scaledEnd:u(o),values:[]})}),i.push(f);let x=0;for(const e of c)f[x].end>e.value||f[x+1]&&x++,f[x].values.push(e);f.forEach(e=>{s=Math.max(e.values.length,s)})}),i.forEach((e,t)=>{const n=e.map(e=>{const{calculatedSummaryStyle:t}=e,{fill:n="black",stroke:a="black"}=t,o=E().domain([1,s]).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},t,{fill:o(e.values.length),strokeWidth:1,stroke:a})}});r.push({containerProps:{transform:"",key:"summaryPiece-"+t,role:"img",tabIndex:-1},elements:n})}),{marks:r,xyPoints:[]}}};function Et(t){const{rotate:n,label:a,dynamicLabelPosition:o,orient:s="left",marginalSummaryType:c,tickFormat:d=(c?()=>"":e=>e),size:p,width:u=p&&p[0]||0,height:y=p&&p[1]||0,className:m,padding:h,tickValues:g,scale:f,ticks:x,footer:b,tickSize:v,tickLineGenerator:k,baseline:E=!0,margin:j={top:0,bottom:0,left:0,right:0},center:$=!1,annotationFunction:M,glyphFunction:w,xyPoints:O}=t,[P,S]=r(0),[A,D]=r(void 0),N=l(null);i(()=>{if(!(null==a?void 0:a.position)&&o){const e=((e,t)=>{const n=e.current;if(!n)return 30;const a="left"===t||"right"===t?"width":"height",o=Math.max(...[...n.querySelectorAll(".axis-label")].map(e=>e.getBBox&&e.getBBox()||{height:30,width:30}).map(e=>e[a]))+25;return o})(N,s);e!==A&&D(e)}},[a,o]);let z,{axisParts:F,position:C=[0,0]}=t;if(F||(F=function({renderMode:e=()=>{},padding:t=5,scale:n,ticks:a,tickValues:o=nt(void 0,a,n),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,p,u,y,m,h,g=[],f=0,x=0,b="middle";switch(r){case"top":d="x1",p="x2",u="y1",y="y2",g=[0,l],m="tx",h="ty",f-=20-t;break;case"bottom":d="x1",p="x2",u="y2",y="y1",g=s?[s[1],s[1]-l]:[0,-l],m="tx",h="ty",f+=20+t;break;case"right":d="y2",p="y1",u="x2",y="x1",g=s?[s[0],s[0]-l]:[0,-l],m="ty",h="tx",f+=5+t,x+=5,b="start";break;default:d="y1",p="y2",u="x1",y="x2",g=[0,l],m="ty",h="tx",f-=5+t,x+=5,b="end"}let v=o instanceof Function?o({orient:r}):o;return c&&void 0===v.find(e=>e===n.domain()[0])&&(v=[n.domain()[0],...v]),v.map((t,a)=>{const o=n(t);return{[d]:o,[p]:o,[u]:g[0],[y]:g[1],[m]:o+x,[h]:g[0]+f,defaultAnchor:b,renderMode:e(t,a),value:t}})}({padding:h,tickValues:g,scale:f,ticks:x,orient:s,size:[u,y],footer:b,tickSize:v}),z=e.createElement("g",{className:"axis "+m},(({axisParts:t,orient:n,tickLineGenerator:a=tt,className:o,jaggedBase:r,scale:s,showOutboundTickLines:i=!1})=>{const l=t.map((e,t)=>a({xy:e,orient:n,i:t,className:o,jaggedBase:r,scale:s})),c=i?t.map((t,a)=>(({xy:t,orient:n,i:a,className:o=""})=>{let r=`M-4,${t.y1}L${t.x1},${t.y2}`;return"left"===n?r=`M${t.x1-8},${t.y1}L${t.x1},${t.y2}`:"right"===n?r=`M${t.x2},${t.y1}L${t.x2+8},${t.y2}`:"top"===n?r=`M${t.x1},${t.y1-8}L${t.x1},${t.y1}`:"bottom"===n&&(r=`M${t.x1},${t.y2}L${t.x1},${t.y2+8}`),e.createElement("path",{key:a,fill:"none",stroke:"currentColor",strokeWidth:"1px",d:r,className:`outbound-tick-line tick ${n} ${o}`})})({xy:t,orient:n,i:a,className:o})):[];return[...l,c]})({axisParts:F,orient:s,tickLineGenerator:k,className:m,scale:f}))),0===F.length)return null;let R,T,I,L,W=50,B=y,V=-50,_=0,H=0,G=0,Y=0,X=y,q=25,K=-25,Z=18,Q=u+25,U=0,J=P,ee=0,te="y";switch(s){case"right":C=[C[0],C[1]],V=u,Y=H=u,ee=j.top,Q=-u-25,K=5,R=e=>{S(e.nativeEvent.offsetY-ee)},!0===$&&(Y=H=u/2);break;case"top":C=[C[0],0],W=u,B=50,_=-50,V=0,ee=j.left,te="x",Y=u,X=0,!0===$&&(X=G=y/2),R=e=>{S(e.nativeEvent.offsetX-ee)},q=P,J=25,K=0,Z=-10,Q=0,U=y+25;break;case"bottom":C=[C[0],0],W=u,B=50,G=X=_=y,H=V=0,Y=u,ee=j.left,R=e=>{S(e.nativeEvent.offsetX-ee)},q=P,J=25,K=0,Z=15,Q=0,U=-y-25,te="x",!0===$&&(X=G=y/2);break;default:C=[C[0],C[1]],ee=j.top,!0===$&&(Y=H=u/2),R=e=>{S(e.nativeEvent.offsetY-ee)}}if(M){const n=function(e,t){return t.tickFormat?t.tickFormat(e):e.toString?""+e:e}(f.invert(P),t),a=w?w({lineHeight:U,lineWidth:Q,value:f.invert(P)}):e.createElement("g",null,e.isValidElement(n)?e.createElement("g",{transform:`translate(${K},${Z})`},n):e.createElement("text",{x:K,y:Z},n),e.createElement("circle",{r:5}),e.createElement("line",{x1:Q,y1:U,style:{stroke:"black"}})),o=P?e.createElement("g",{style:{pointerEvents:"none"},transform:`translate(${q},${J})`},a):null;T=e.createElement("g",{className:"annotation-brush",transform:`translate(${V},${_})`},e.createElement("rect",{style:{fillOpacity:0},height:B,width:W,onMouseMove:R,onClick:e=>M({className:"dynamic-axis-annotation",type:te,value:f.invert(P),e:e}),onMouseOut:()=>{S(void 0)}}),o)}if(c&&O){const t=Math.max(j[s]-6,5),n="string"==typeof c?{type:c}:c;void 0!==n.flip||"bottom"!==s&&"right"!==s||(n.flip=!0);const a=n.summaryStyle?()=>n.summaryStyle:()=>({fill:"black",fillOpacity:.5,stroke:"black",strokeDasharray:"0"}),o=n.renderMode?()=>n.renderMode:()=>{},r=n.summaryClass?()=>n.summaryClass:()=>"",i=n.filter||(()=>!0),l=O.filter(e=>void 0!==e.x&&void 0!==e.y&&i(e.data)).map(e=>Object.assign(Object.assign({},e),{xy:{x:"top"===s||"bottom"===s?f(e.x):0,y:"left"===s||"right"===s?f(e.y):0},piece:{scaledVerticalValue:f(e.y),scaledValue:f(e.x)},value:f("top"===s||"bottom"===s?e.y:e.x),scaledValue:f(e.x),scaledVerticalValue:f(e.y)})),d=function(t){const n=[];for(const a of t){const t=[],{elements:o,containerProps:r}=a;if(a.Mark)n.push(a.Mark);else{for(let n=0;o.length>n;n++){const a=o[n],{markType:r,style:s={}}=a,i=Ce(a,["markType","style"]),l=Object.assign({},i);void 0!==s.fill&&(l.fill=s.fill),void 0!==s.stroke&&(l.stroke=s.stroke),void 0!==s.strokeWidth&&(l.strokeWidth=s.strokeWidth),void 0!==s.opacity&&(l.opacity=s.opacity),void 0!==s.fillOpacity&&(l.fillOpacity=s.fillOpacity),void 0!==s.strokeOpacity&&(l.strokeOpacity=s.strokeOpacity);const c=Object.assign({},s);delete c.fill,delete c.stroke,delete c.strokeWidth,delete c.opacity,delete c.fillOpacity,delete c.strokeOpacity,Object.keys(c).length>0&&(l.style=c),l.key=a.key||n,r&&t.push(e.createElement(r,l))}r?n.push(e.createElement("g",Object.assign({},r),t)):n.push(...t)}}return n}((({data:e,type:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,margin:l,axisCreator:c})=>{if(t&&t.type)return function({data:e,type:t,renderMode:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:l,margin:c,axisCreator:d}){let p;if("function"==typeof t.type)p=t.type;else{if(!kt[t.type])return console.error(`Invalid summary type: ${t.type} - Must be a function or one of the following strings: ${Object.keys(kt).join(", ")}`),{};p=kt[t.type]}return p({data:e,type:t,renderMode:n,eventListenersGenerator:a,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:n,eventListenersGenerator:a,styleFn:o,classFn:r,projection:s,adjustedSize:i,chartSize:"vertical"===s?i[1]:i[0],margin:l,axisCreator:c})})({data:{column:{middle:t/2,pieceData:l,width:t,xyData:l}},type:n,renderMode:o,eventListenersGenerator:n.eventListenersGenerator||(()=>({})),styleFn:a,classFn:r,projection:"top"===s||"bottom"===s?"horizontal":"vertical",adjustedSize:p,margin:{top:0,bottom:0,left:0,right:0}}).marks);let u;if(!0===n.showPoints){const a=((e,t,n)=>{const a="left"===e||"right"===e?t/2:0,o="bottom"===e||"top"===e?t/2:0;return n.map(e=>[e.xy.x+a,e.xy.y+o])})(s,t,l);u=a.map((t,a)=>e.createElement("circle",{key:"axis-summary-point-"+a,cx:t[0],cy:t[1],r:n.r||3,style:n.pointStyle||{fill:"black",fillOpacity:.1}}))}I=e.createElement(rt,{translation:{left:[2-j.left,0],right:[p[0]+2,0],top:[0,2-j.top],bottom:[0,p[1]+2]},orient:s,decoratedSummaryType:n,summaryWidth:t,renderedSummary:d,points:u})}const ne=(({axisParts:t,tickFormat:n,rotate:a=0,center:o=!1,orient:r})=>t.map((t,s)=>{let i=n(t.value,s);("object"!=typeof i||i instanceof Date)&&(i=e.createElement("text",{textAnchor:t.defaultAnchor,className:"axis-label"},i.toString?""+i:i));let l=t.tx,c=t.ty;if(o)switch(r){case"right":l-=(t.x2-t.x1)/2;break;case"left":l+=(t.x2-t.x1)/2;break;case"top":c+=(t.y2-t.y1)/2;break;case"bottom":c-=(t.y2-t.y1)/2}return e.createElement("g",{key:s,pointerEvents:"none",transform:`translate(${l},${c}) rotate(${a})`,className:"axis-label"},i)}))({tickFormat:d,axisParts:F,orient:s,rotate:n,center:$});if(a){const t=a.name||a,n=a.position||{};let o=n.anchor||"middle";const r=a.locationDistance||A,i=n.rotation||{left:-90,right:90,top:0,bottom:0}[s],l={left:{start:[0,p[1]],middle:[0,p[1]/2],end:[0,0],inside:[r||15,0],outside:[-(r||45),0]},right:{start:[p[0]+0,p[1]],middle:[p[0]+0,p[1]/2],end:[p[0]+0,0],inside:[-(r||15),0],outside:[r||45,0]},top:{start:[0,0],middle:[0+p[0]/2,0],end:[0+p[0],0],inside:[0,r||15],outside:[0,-(r||40)]},bottom:{start:[0,p[1]],middle:[0+p[0]/2,p[1]],end:[0+p[0],p[1]],inside:[0,-(r||5)],outside:[0,r||50]}},c=l[s][o],d=l[s][n.location||"outside"];c[0]=c[0]+d[0],c[1]=c[1]+d[1],"start"===o&&"right"===s?o="end":"end"===o&&"right"===s&&(o="start"),L=e.createElement(st,{className:m,translation:c,position:C,rotation:i,labelName:t,anchorMod:o})}const ae=`${s} axis ${F&&F.length>0&&`from ${d(F[0].value,0)} to ${d(F[F.length-1].value,F.length-1)}`||"without ticks"}`;return e.createElement("g",{className:m,"aria-label":ae,ref:N},T,ne,z,!0===E?e.createElement("line",{key:"baseline",className:"axis-baseline "+m,stroke:"black",strokeLinecap:"square",x1:H,x2:Y,y1:G,y2:X}):null,L,I)}const jt=e=>{let t=null,n="top";return"string"==typeof e?t=e:"title"in e?(t=e.title,n=e.orient||"top"):t=e,{orient:n,title:t}},$t=({margin:e,size:t,inset:n=0})=>{const a=[t[0]-n,t[1]-n];return`M0,0 h${t[0]} v${t[1]} h-${t[0]}Z M${e.left-n},${e.top-n} v${t[1]+2*n-e.top-e.bottom} h${a[0]+3*n-e.left-e.right} v-${a[1]+3*n-e.top-e.bottom}Z`},Mt=(e,t,n,a)=>{const o=e.getContext("2d",{willReadFrequently:!0}),r=o.getImageData(a.offsetX,a.offsetY,1,1);let s=t[n.get(`rgba(${r.data[0]},${r.data[1]},${r.data[2]},255)`)];if(!s){const e=o.getImageData(a.offsetX-2,a.offsetY-2,5,5);let r=0;for(;!s&&100>r;)s=t[n.get(`rgba(${e.data[r]},${e.data[r+1]},${e.data[r+2]},255)`)],r+=4}return s},wt=e.memo(function({width:t,height:n,overlayRegions:a,margin:o,voronoiHover:r}){let i=l();return s(()=>{Ot(i.current,r,n,t,a,o)},[t,n,a]),e.createElement("canvas",{className:"frame-canvas-interaction",ref:e=>{null!=e&&i.current!==e&&(i.current=e,Ot(e,r,n,t,a,o))},style:{position:"absolute",left:"0px",top:"0px",imageRendering:"pixelated",pointerEvents:"all",opacity:0},width:t,height:n})});function Ot(e,t,n,a,o,r){const s=new Map;if(null===e||!o)return;const i=Mt.bind(null,e,o,s);e.onmousemove=e=>{var n,a,o,r;const s=i(e);(null===(n=null==s?void 0:s.props)||void 0===n?void 0:n.onMouseEnter)?null===(a=null==s?void 0:s.props)||void 0===a||a.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,n,a,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onClick)?null===(n=null==r?void 0:r.props)||void 0===n||n.onClick():(null===(o=null===(a=null==r?void 0:r.props)||void 0===a?void 0:a.children)||void 0===o?void 0:o[0])&&r.props.children[0].props.onClick(e)},e.ondblclick=e=>{var t,n,a,o;const r=i(e);(null===(t=null==r?void 0:r.props)||void 0===t?void 0:t.onDoubleClick)?null===(n=null==r?void 0:r.props)||void 0===n||n.onDoubleClick():(null===(o=null===(a=null==r?void 0:r.props)||void 0===a?void 0:a.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,a,n),l.lineWidth=1,o.forEach((e,t)=>{var n,a,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 p=e.props;if(l.fillStyle=d,l.strokeStyle=d,p.d||(null===(o=null===(a=null===(n=p.children)||void 0===n?void 0:n[0])||void 0===a?void 0:a.props)||void 0===o?void 0:o.d)){const e=p.d||p.children[0].props.d,t=p.transform||(null===(c=null===(i=null===(r=p.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)",[n,a]=t.replace("translate(","").replace(")","").split(",").map(Number);l.translate(n,a);const o=new Path2D(e);l.stroke(o),l.fill(o),l.translate(-n,-a)}else"rect"===p.markType&&(l.fillRect(p.x,p.y,p.width,p.height),l.strokeRect(p.x,p.y,p.width,p.height))})}function Pt(t){let n=null;const{interaction:a,svgSize:o=[500,500],margin:s={left:0,right:0,top:0,bottom:0},overlay:l,points:c,xScale:d,yScale:g,hoverAnnotation:f,customClickBehavior:x,customDoubleClickBehavior:b,customHoverBehavior:v,disableCanvasInteraction:E,canvasRendering:j}=t;let{enabled:$}=t,M=je(e=>e.changeTooltip);const w=e=>{M(e)},[O,P]=r([]),[S,A]=r(null);return i(()=>{let n,a;E||!O?(n=null,a=null):(n=((t,n)=>{let a=[];const{xScale:o,yScale:r,points:s,projectedX:i,showLinePoints:l,size:c,overlay:d,interactionOverflow:p={top:0,bottom:0,left:0,right:0},customClickBehavior:u,customDoubleClickBehavior:y,customHoverBehavior:m,hoverAnnotation:g,margin:f,advancedSettings:x={}}=t,b={top:Le,bottom:We},v=u||y?{cursor:"pointer"}:{};if(s&&g&&!d){const{voronoiFilter:t=()=>!0}=x,d=[],E=new Map;for(const e of s)if(t(Object.assign(Object.assign({},e),e.data))){const t=Math.floor(o(e[i])),n=Math.floor(r(l&&void 0!==e[b[l]]?e[b[l]]:void 0!==e[Ie]?e[Ie]:e[Te]));if(!(0-f.left>t||t>c[0]+f.right||0-f.top>n||n>c[1]+f.bottom||void 0===t||void 0===n||!1!==isNaN(t)||!1!==isNaN(n))){const a=`${t},${n}`;if(E.has(a))E.get(a).coincidentPoints.push(e);else{const o=Object.assign(Object.assign({},e),{coincidentPoints:[e],voronoiX:t,voronoiY:n});d.push(o),E.set(a,o)}}}let j=h(d.map(e=>e.voronoiX)),$=h(d.map(e=>e.voronoiY));null!=j[0]&&null!=$||(j=[0,0],$=[0,0]);const M=[Math.min(j[0]-5,-p.left),Math.min($[0]-5,-p.top),Math.max(j[1]+5,c[0]+p.right),Math.max($[1]+5,c[1]+p.bottom)],w=k.from(d,e=>e.voronoiX,e=>e.voronoiY),O=w.voronoi(M);return a=d.map((t,a)=>{let o=null;return x.voronoiClipping&&(o=e.createElement("clipPath",{id:"voronoi-"+a},e.createElement("circle",{r:!0===x.voronoiClipping?50:x.voronoiClipping,cx:t.voronoiX,cy:t.voronoiY}))),e.createElement("g",{key:"voronoi-"+a},e.createElement("path",{onClick:e=>{Ye(d[a],u,s,e)},onDoubleClick:e=>{Xe(d[a],y,s,e)},onMouseEnter:e=>{Ge(n,d[a],g,m,s,e)},onMouseLeave:e=>{Ge(n,void 0,void 0,m,void 0,e)},key:"interactionVoronoi"+a,d:O.renderCell(a),style:Object.assign({fillOpacity:0},v),clipPath:`url(#voronoi-${a})`}),o)},window),a}if(d)return d.map((a,o)=>{const{overlayData:r}=a,i=Ce(a,["overlayData"]),l={key:"overlay-"+o,onMouseEnter:e=>{Ge(n,r,t.hoverAnnotation,m,s,e)},onMouseLeave:e=>{Ge(n,void 0,void 0,m,void 0,e)},onClick:e=>{Ye(r,u,s,e)},onDoubleClick:e=>{Xe(r,y,s,e)},style:Object.assign({opacity:0},v)};if(e.isValidElement(a.renderElement))return e.cloneElement(a.renderElement,l);{const t=i,{markType:n}=t,a=Ce(t,["markType"]);return e.createElement(n||"path",Object.assign(Object.assign(Object.assign({},a),{key:"overlay-"+o}),l))}})})(t,w),j&&(a=e.createElement(wt,{height:o[1],width:o[0],overlayRegions:n,margin:s,voronoiHover:w}))),P(n),A(a)},[l,c,d,g,!!f,!!x,!!b,!!v]),a&&a.brush&&($=!0,n=((t,n)=>{let a,o,r,s;const{xScale:i,yScale:l,size:c,renderPipeline:d}=n,h={};Object.entries(d).forEach(([e,t])=>{t.data&&t.data.length>0&&(h[e]=t.data)});const{projection:g,projectedColumns:f}=t,x="oBrush"===t.brush?"horizontal"===g?"yBrush":"xBrush":t.brush;let{extent:b}=t;if(b||(b="xyBrush"===x?[[i.invert(0),l.invert(0)],[i.invert(c[0]),l.invert(c[1])]]:"xBrush"===x?[i.invert(0),i.invert(c[0])]:[l.invert(0),l.invert(c[1])]),b.indexOf&&-1!==b.indexOf(void 0))return e.createElement("g",null);if("xBrush"===x){const e=[...b];o=e=>e?[i.invert(e[0]),i.invert(e[1])]:null,a=p(),r=e.map(e=>i(e)),s=o}else if("yBrush"===x){const e=[...b];o=e=>e?[l.invert(e[0]),l.invert(e[1])].sort((e,t)=>e-t):null,a=u(),r=e.map(e=>l(e)).sort((e,t)=>e-t),s=o}else{const t=[...b.map(e=>[...e])];if(-1!==t.indexOf(void 0)||-1!==t[0].indexOf(void 0)||-1!==t[1].indexOf(void 0))return e.createElement("g",null);a=y(),o=e=>{if(!e)return null;const t=[l.invert(e[0][1]),l.invert(e[1][1])].sort((e,t)=>e-t);return[[i.invert(e[0][0]),t[0]],[i.invert(e[1][0]),t[1]]]};const n=[l(b[0][1]),l(b[1][1])].sort((e,t)=>e-t);r=t.map((e,t)=>[i(e[0]),n[t]]),s=o}if("oBrush"===t.brush){if(r=null,t.extent){const[e,n]=t.extent;"string"!=typeof e&&"number"!=typeof e||"string"!=typeof n&&"number"!=typeof n||(r=[f[e].x,f[n].x+f[n].width])}o=(e=>t=>t?Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]):null)(f),s=(e=>(t,n)=>{if(t&&n.sourceEvent&&n.sourceEvent.path&&n.sourceEvent.path[1]&&n.sourceEvent.path[1].classList.contains("xybrush")&&n.target.move){const a=Object.values(e).filter(e=>t[1]>=e.x&&e.x+e.width>=t[0]),o=a[0]||{x:0,width:0},r=a[a.length-1]||{x:0,width:0},s=[o.x+Math.min(5,o.width/10),r.x+r.width-Math.min(5,r.width/10)];return m(n.sourceEvent.path[1]).transition(750).call(n.target.move,s),a}return null})(f)}return a.extent([[0,0],[c[0],c[1]]]).on("start",e=>{qe(o(e.selection),void 0,h,void 0,t)}).on("brush",e=>{Ke(o(e.selection),void 0,h,void 0,t)}).on("end",e=>{Ze(s(e.selection,e),void 0,h,void 0,t)}),e.createElement("g",{className:"brush"},e.createElement(Fe,{selectedExtent:r,extent:b,svgBrush:a}))})(a,t)),a&&a.columnsBrush&&($=!0,n=((t,n)=>{const{projection:a,rScale:o,oColumns:r,renderPipeline:s}=n;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 y=o.range(),m=r;let h,g;const f=Object.keys(m).map(n=>(a&&"horizontal"===a?(g=t.extent[n]?t.extent[n].map(e=>o(e)):t.startEmpty?null:y,h=[0,m[n].x],l=p(),l.extent([[y[0],0],[y[1],m[n].width]]).on("start",e=>{qe(c(e.selection),n,i,m[n],t)}).on("brush",e=>{Ke(c(e.selection),n,i,m[n],t)}).on("end",e=>{Ze(c(e.selection),n,i,m[n],t)})):(g=t.extent[n]?t.extent[n].map(e=>y[1]-o(e)).reverse():t.startEmpty?null:y,h=[m[n].x,0],l=u(),l.extent([[0,y[0]],[m[n].width,y[1]]]).on("start",e=>{qe(c(e.selection),n,i,m[n],t)}).on("brush",e=>{Ke(c(e.selection),n,i,m[n],t)}).on("end",e=>{Ze(c(e.selection),n,i,m[n],t)})),e.createElement("g",{key:"column-brush-"+n,className:"brush"},e.createElement(Fe,{key:"orbrush"+n,selectedExtent:g,svgBrush:l,position:h}))));return f})(a,t)),O||n?e.createElement("div",{className:"interaction-layer","data-testid":"interaction-layer",style:{position:"absolute",background:"none",pointerEvents:"none",height:"100%",width:"100%",overflow:"hidden"}},S||e.createElement("svg",{height:o[1],width:o[0],style:{background:"none",pointerEvents:"none"}},e.createElement("g",{className:"interaction-overlay",transform:`translate(${s.left},${s.top})`,style:{pointerEvents:$?"all":"none"}},e.createElement("g",{className:"interaction-regions"},O),n))):null}function St(t){const{matte:n,matteClip:o,axes:s,frameKey:l="",margin:d={left:0,right:0,bottom:0,top:0},title:p,ariaTitle:u,axesTickLines:y,frameRenderOrder:m,additionalVizElements:h,transition:g}=t;let f=je(e=>e.changeTooltip);const x=c(e=>{f(e)},[f]),[b,v]=r(null),[k,E]=r(null),j=a(()=>(({focusedPieceIndex:e,changeFocusedPieceIndex:t,changeFocusedVisualizationGroup:n})=>({e:{keyCode:a},vizgroup:o,props:r,piecesGroup:s})=>{const{renderPipeline:i,voronoiHover:l}=r,c=a;if(37!==c&&39!==c&&13!==c)return;let d=0;const p={};null===e||13===c?p.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),n(p.focusedVisualizationGroup)})({focusedPieceIndex:b,changeFocusedPieceIndex:v,changeFocusedVisualizationGroup:E}),[b,v,E]),$=((t,n,a)=>{const{xScale:o,yScale:r,dataVersion:s,projectedCoordinateNames:i,renderPipeline:l={},renderOrder:c=[],transition:d}=t,p=[],u={},y=[],m=c.concat(Object.keys(l).filter(e=>-1===c.indexOf(e)));return m.forEach(s=>{const c=l[s];if(c&&(c.data&&"object"==typeof c.data&&!Array.isArray(c.data)||c.data&&c.data.length>0)){const l=c.behavior(Object.assign({xScale:o,yScale:r,canvasDrawing:p,projectedCoordinateNames:i},c));l&&l.length>0&&y.push(e.createElement("g",Object.assign({key:s,className:s,"data-testid":s,role:"group",tabIndex:0},d?{"data-semiotic-transition":""}:void 0,{"aria-label":c.ariaLabel&&`${l.length} ${c.ariaLabel.items}s in a ${c.ariaLabel.chart}`||s,onKeyDown:e=>n({e:e,k:s,props:t,piecesGroup:u}),onBlur:()=>{a(void 0)},ref:e=>e&&(u[s]=e.childNodes)}),l))}}),{renderedElements:y,dataVersion:s,canvasDrawing:p,piecesGroup:u}})(t,j,x),{renderedElements:M}=$;i(()=>{var e,n;const a=null===(e=t.canvasContext)||void 0===e?void 0:e.current;let o=new AbortController;if(t.disableContext||!a)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];a.width=d[0],a.height=d[1],a.style.width=d[0],a.style.height=d[1];const p=a.getContext("2d");p.scale(devicePixelRatio,devicePixelRatio),p.setTransform(1,0,0,1,l.left,l.top),p.clearRect(-l.left,-l.top,d[0],d[1]);const u=function(e,t,n,a,o,r){const s={fill:"black",stroke:"black",opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1},{position:i=[0,0]}=a;return a=>{var l,c,d;const p=Object.assign(Object.assign({},a.d),a.d.data),u=a.styleFn&&a.styleFn(p,a.i)||s,y=u.fill?u.fill:"black",m=u.stroke?u.stroke:"black";t.setTransform(1,0,0,1,n.left,n.top),t.translate(i[0],i[1]),t.translate(a.tx,a.ty),t.fillStyle=y,t.strokeStyle=m,t.lineWidth=u.strokeWidth?u.strokeWidth:0;let h={};const g=a.renderFn&&a.renderFn(p,a.i);let f=g&&g.renderMode||g;if(f)if(o){const n=o.canvas;n?(r=r||n(e),h=Object.assign({fill:y,stroke:m,strokeWidth:t.lineWidth},"object"==typeof g&&g||{})):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"),f=void 0;if("circle"===a.markProps.markType||"rect"===a.markProps.markType&&a.markProps.rx>0){let e=null!==(l=a.markProps.cx)&&void 0!==l?l:0,n=null!==(c=a.markProps.cy)&&void 0!==c?c:0,o=null!==(d=u.r)&&void 0!==d?d:a.markProps.r;if(a.markProps.width){const t=a.markProps.width/2;e=a.markProps.x+t,n=a.markProps.y+t,o=t}"sketchy"===f?0!==t.globalAlpha&&r.circle(e,n,o,h):(t.beginPath(),t.arc(e,n,o,0,2*Math.PI),t.globalAlpha=u.fillOpacity||u.opacity||1,u.fill&&"none"!==u.fill&&0!==t.globalAlpha&&t.fill(),t.globalAlpha=u.strokeOpacity||u.opacity||1,u.stroke&&"none"!==u.stroke&&0!==t.globalAlpha&&t.stroke())}else if("rect"===a.markProps.markType)"sketchy"===f?(t.globalAlpha=u.opacity||1,0!==t.globalAlpha&&r.rectangle(a.markProps.x,a.markProps.y,a.markProps.width,a.markProps.height,h)):(t.globalAlpha=u.fillOpacity||u.opacity||1,u.fill&&"none"!==u.fill&&0!==t.globalAlpha&&t.fillRect(a.markProps.x,a.markProps.y,a.markProps.width,a.markProps.height),t.globalAlpha=u.strokeOpacity||u.opacity||1,u.stroke&&"none"!==u.stroke&&0!==t.globalAlpha&&t.strokeRect(a.markProps.x,a.markProps.y,a.markProps.width,a.markProps.height));else if("path"===a.markProps.markType)if("sketchy"===f)t.globalAlpha=u.opacity||1,r.path(a.markProps.d,h);else{const e=new Path2D(a.markProps.d);t.globalAlpha=u.strokeOpacity||u.opacity||1,u.stroke&&"none"!==u.stroke&&0!==t.globalAlpha&&t.stroke(e),t.globalAlpha=u.fillOpacity||u.opacity||1,u.fill&&"none"!==u.fill&&0!==t.globalAlpha&&t.fill(e)}else"line"===a.markProps.markType?"sketchy"===f?(t.globalAlpha=u.opacity||1,r.line(a.markProps.x1,a.markProps.y1,a.markProps.x2,a.markProps.y2,h)):(t.globalAlpha=u.strokeOpacity||u.opacity||1,t.beginPath(),t.moveTo(a.markProps.x1,a.markProps.y1),t.lineTo(a.markProps.x2,a.markProps.y2),u.stroke&&"none"!==u.stroke&&0!==t.globalAlpha&&t.stroke()):console.error("CURRENTLY UNSUPPORTED MARKTYPE FOR CANVAS RENDERING")}}(a,p,l,t,r,void 0);if(p.clearRect(-l.left,-l.top,d[0],d[1]),c)for(const e of $.canvasDrawing)u(e);else o=new AbortController,function(e,t,n){let a=0;!function(e){var t,n,a,o;t=this,n=arguments,o=function*(e,{signal:t,timeFrameMs:n=30}={}){return new Promise((a,o)=>{requestAnimationFrame(function r(){let s=performance.now(),i=0,l=!1,c=null!=t&&t.aborted;try{if(c)return a();do{l=e(),i=performance.now()-s,c=null!=t&&t.aborted}while(!c&&l&&n>i);!c&&l?requestAnimationFrame(r):a()}catch(e){o(e)}})})},new((a=void 0)||(a=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 n;t.done?e(t.value):(n=t.value,n instanceof a?n:new a(function(e){e(n)})).then(s,i)}l((o=o.apply(t,n||[])).next())})}(()=>{let n=Math.min(a+1e3,t.length);for(let o=a;n>o;o++)e(t[o]);return a+=1e3,t.length>a},n)}(u,$.canvasDrawing,{signal:o.signal});if(p.setTransform(1,0,0,1,0,0),p.globalAlpha=1,t.canvasPostProcess&&t.canvasPostProcess(null===(n=t.canvasContext)||void 0===n?void 0:n.current,p,d),null!==k&&$.piecesGroup[k]&&null!==b){const e=$.piecesGroup[k][b],t=e&&[...e.childNodes].find(e=>e.getAttribute("aria-label"))||e;t&&t.focus&&t.focus()}return function(){o.abort()}},[n,o,s,l,d,u,y,m,h]);const w=function(t){if(!t)return null;const n="object"==typeof t&&null!=t.ease?t.ease:"ease",a=("object"==typeof t&&null!=t.duration?t.duration:300)+"ms";return e.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} ${n},\n stroke ${a} ${n},\n opacity ${a} ${n},\n transform ${a} ${n};\n animation: semiotic-enter ${a} ${n};\n}\n`)}(g),O=Object.assign({"axes-tick-lines":y&&e.createElement("g",{key:"visualization-tick-lines",className:"axis axis-tick-lines","aria-hidden":!0},y),"axes-labels":s&&e.createElement("g",{key:"visualization-axis-labels",className:"axis axis-labels"},s),matte:n,"viz-layer":M&&M.length>0?e.createElement(e.Fragment,{key:"viz-layer"},w,M):null},h);let P="";P=`Visualization ${p&&u||p?"string"!=typeof p&&p.props&&"string"==typeof p.props.children?"titled "+p.props.children:"with a complex title":"with no title"}. Use arrow keys to navigate elements.`;const S=[];return m.forEach(e=>{O[e]&&S.push(O[e])}),S.length>0&&e.createElement("g",{className:"data-visualization","data-testid":"data-visualization",key:"visualization-clip-path","aria-label":P,role:"group",clipPath:o&&n?`url(#matte-clip${l})`:void 0,transform:`translate(${d.left},${d.top})`},S)||null}const At=[],Dt={},Nt=[0,0],zt={x:"x",y:"y"},Ft=["axes-tick-lines","viz-layer","matte","axes-labels","labels"],Ct={top:0,bottom:0,left:0,right:0};function Rt(t){const{axes:n,axesTickLines:a,className:o="",name:s="",frameKey:d,projectedCoordinateNames:p=zt,renderPipeline:u,size:y,adjustedSize:m=y,title:h,xScale:g,yScale:f,dataVersion:x,annotations:b,projectedYMiddle:v,interaction:k,customClickBehavior:E,customHoverBehavior:j,customDoubleClickBehavior:$,points:M,margin:w=Ct,backgroundGraphics:O,foregroundGraphics:P,beforeElements:S,afterElements:A,defaultSVGRule:D,defaultHTMLRule:N,adjustedPosition:z=Nt,legendSettings:F,annotationSettings:C=Dt,overlay:R,columns:T,rScale:I,projection:L,interactionOverflow:W,canvasPostProcess:B,canvasRendering:V,renderOrder:_=At,showLinePoints:H,disableCanvasInteraction:G=!1,sketchyRenderingEngine:Y,disableContext:X,frameRenderOrder:q=Ft,additionalVizElements:K=Dt,interactionSettings:Z,disableProgressiveRendering:Q,additionalDefs:U,transition:J}=t;let{hoverAnnotation:ee}=t;const te=l(null),[ne,ae]=r(null),[oe,re]=r(null);i(()=>{const t=(({matte:t,size:n,margin:a,frameKey:o,additionalDefs:r,name:s})=>{let i;"function"==typeof t?i=t({size:n,margin:a}):e.isValidElement(t)?i=t:!0===t&&(i=e.createElement("path",{fill:"white",transform:`translate(${-a.left},${-a.top})`,d:$t({margin:a,size:n,inset:0}),className:s+"-matte"}));const l=(({matte:t,key:n,additionalDefs:a})=>e.createElement("defs",null,e.createElement("filter",{id:"paintyFilterHeavy"},e.createElement("feGaussianBlur",{id:"gaussblurrer",in:"SourceGraphic",stdDeviation:4,colorInterpolationFilters:"sRGB",result:"blur"}),e.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"})),e.createElement("filter",{id:"paintyFilterLight"},e.createElement("feGaussianBlur",{id:"gaussblurrer",in:"SourceGraphic",stdDeviation:2,colorInterpolationFilters:"sRGB",result:"blur"}),e.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"})),e.createElement("clipPath",{id:"matte-clip-"+n},t),a))({matte:i,key:t&&(o||s),additionalDefs:r});return{defs:l,matte:i}})({matte:oe,size:y,margin:w,frameKey:d,additionalDefs:U,name:s});ae(t.defs),re(t.matte)},[y[0],y[1],w.top,w.bottom,w.right,w.left,w.top,oe,U]),!ee&&(E||j||$)&&(ee=At);const se=[],ie=b?[...b,...se]:se,le=l(D);le.current=D;const ce=l(N);ce.current=N;const de=l(u);de.current=u;const pe=c((e,t,n)=>le.current(Object.assign({d:e,i:t,annotationLayer:n},de.current)),[]),ue=c((e,t,n)=>ce.current(Object.assign({d:e,i:t,annotationLayer:n},de.current)),[]),ye=e.createElement(De,{legendSettings:F,margin:w,axes:n,annotationHandling:C,pointSizeFunction:C.layout&&C.layout.pointSizeFunction,labelSizeFunction:C.layout&&C.layout.labelSizeFunction,annotations:ie,svgAnnotationRule:pe,htmlAnnotationRule:ue,size:m,position:[z[0]+w.left,z[1]+w.top]}),me=function({title:t={title:"",orient:"top"},size:n}){let a=null;const{title:o,orient:r}=jt(t);let s,i=0,l=0;switch(r){case"top":i=n[0]/2,l=25;break;case"bottom":i=n[0]/2,l=n[1]-25;break;case"left":i=25,l=n[1]/2,s="rotate(-90)";break;case"right":i=n[0]-25,l=n[1]/2,s="rotate(90)"}const c=`translate(${i},${l})`;return"string"==typeof o&&o.length>0?a=e.createElement("g",{transform:c},e.createElement("text",{className:"frame-title",transform:s,style:{textAnchor:"middle",pointerEvents:"none"}},o)):o&&(a=e.createElement("g",{transform:c},o)),a}({title:h,size:y}),he="function"==typeof O?O({size:y,margin:w}):O,ge="function"==typeof P?P({size:y,margin:w}):P;return e.createElement("div",{className:`${o} frame ${s}`,style:{background:"none"}},S&&e.createElement("div",{className:s+" frame-before-elements"},S),e.createElement("div",{className:"frame-elements",style:{height:y[1]+"px",width:y[0]+"px"}},e.createElement(Ee,null,e.createElement("div",{className:"visualization-layer",style:{position:"absolute"}},O&&e.createElement("svg",{className:"background-graphics",style:{position:"absolute"},width:y[0],height:y[1]},O&&e.createElement("g",{"aria-hidden":!0,className:"background-graphics"},he)),e.createElement("svg",{className:"visualization-layer",style:{position:"absolute"},width:y[0],height:y[1]},ne,e.createElement(St,{disableContext:X,renderPipeline:u,position:z,width:m[0],height:m[1],projectedCoordinateNames:p,xScale:g,yScale:f,axes:n,title:me,frameKey:d,canvasContext:te,dataVersion:x,matte:oe,margin:w,canvasPostProcess:B,renderOrder:_,sketchyRenderingEngine:Y,axesTickLines:a,additionalVizElements:K,frameRenderOrder:q,disableProgressiveRendering:Q,transition:J}),me&&e.createElement("g",{className:"frame-title"},me),P&&e.createElement("g",{"aria-hidden":!0,className:"foreground-graphics"},ge))),V&&e.createElement("canvas",{className:"frame-canvas",ref:te,style:{pointerEvents:"none",position:"absolute"},width:y[0]/2,height:y[1]/2}),e.createElement(Pt,{hoverAnnotation:ee,projectedX:p.x,projectedY:p.y,projectedYMiddle:v,interaction:k,customClickBehavior:E,customHoverBehavior:j,customDoubleClickBehavior:$,points:M,showLinePoints:H,canvasRendering:V,position:z,margin:w,size:m,svgSize:y,xScale:g,yScale:f,enabled:!0,overlay:R,oColumns:T,rScale:I,projection:L,interactionOverflow:W,disableCanvasInteraction:G,renderPipeline:u,advancedSettings:Z}),ye)),A&&e.createElement("div",{className:s+" frame-after-elements"},A))}const Tt=e=>e instanceof Date?e.getTime():e,It=({type:e="stackedarea",data:t,xProp:n,yProp:a,yPropMiddle:o,sort:r,yPropTop:s,yPropBottom:i})=>{const l=new Map,c=t.map(()=>0);let d=0;for(const e of t){e.__lineIndex=d;for(const t of e.data){const e=Tt(t[n]);c[d]+=t[a],l.has(e)||l.set(e,[]),l.get(e)[d]=t}d++}let p=(e,t)=>c[t.key]-c[e.key];"stackedpercent-invert"!==e&&"stackedarea-invert"!==e||(p=(e,t)=>c[e.key]-c[t.key]),null!==(r=void 0===r?p:r)&&(t=t.sort(r));const u=t.map(e=>e.__lineIndex);for(const[,t]of l){let n=0,r=0;const l=b(t,e=>(null==e?void 0:e[a])>0?e[a]:0),c=b(t,e=>0>(null==e?void 0:e[a])?e[a]:0);for(const d of u){const p=t[d];if(p)if(0>p[a]){if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=p[a]/c;if(p.percent=t,"linepercent"===e)p[i]=p[i]=p[s]=p[o]=t;else{const e=0>c?t:0;p[i]=0===c?0:-n/c,p[s]=p[i]-e,p[o]=p[i]-e/2}}else p[i]=n,p[s]=n+p[a],p[o]=n+p[a]/2;n+=p[a]}else{if("linepercent"===e||"stackedpercent"===e||"stackedpercent-invert"===e){const t=p[a]/l;if(p.percent=t,"linepercent"===e)p[i]=p[s]=p[o]=t;else{const e=l>0?t:0;p[i]=0===l?0:r/l,p[s]=p[i]+e,p[o]=p[i]+e/2}}else p[i]=r,p[s]=r+p[a],p[o]=r+p[a]/2;r+=p[a]}}}return t},Lt=({data:e,y1:t,x1:n,yPropTop:a,yPropMiddle:o,yPropBottom:r,xPropTop:s,xPropMiddle:i,xPropBottom:l})=>{if(t)for(const n of e)for(const e of n.data)e[r]=t(e),e[o]=e[a];if(n)for(const t of e)for(const e of t.data)e[l]=n(e),e[i]=(e[l]+e[s])/2;return e},Wt=({data:e,y1:t,yPropTop:n,yPropMiddle:a,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[n],r[o]=r[n]=r[a]=e,t&&(r[o]=t(r),r[a]=r[o]+r[n]/2)}return e},Bt=({type:e="bumpline",data:t,xProp:n,yProp:a,yPropMiddle:o,yPropTop:r,yPropBottom:s})=>{const i=new Map;for(const e of t)for(const t of e.data){const e=Tt(t[n]);i.has(e)||i.set(e,[]),i.get(e).push(t)}let l=(e,t)=>e[a]>t[a]?1:-1;"bumparea-invert"!==e&&"bumpline-invert"!==e||(l=(e,t)=>t[a]>e[a]?1:-1);for(const[,t]of i){let n=0,i=0;t.sort(l);let c=1;for(const l of t)"bumparea"===e||"bumparea-invert"===e?0>l[a]?(l[r]=n+l[a],l[o]=n+l[a]/2,l[s]=n,n+=l[a]):(l[r]=i+l[a],l[o]=i+l[a]/2,l[s]=i,i+=l[a]):(l[a]=c,l[r]=c,l[s]=c),c++}return t},Vt=e=>e&&e.extent||Array.isArray(e)&&e||[],_t=()=>!0,Ht={top:Le,bottom:We,orphan:Te},Gt={top:Ve,bottom:_e,orphan:Re},Yt={stackedarea:It,"stackedarea-invert":It,stackedpercent:It,"stackedpercent-invert":It,linepercent:It,difference:({data:e,yProp:t,yPropTop:n,yPropBottom:a})=>(e.forEach((o,r)=>{o.data.forEach((o,s)=>{const i=0===r?1:0;o[t]>e[i].data[s][t]?(o[a]=e[i].data[s][t],o[n]=o[t]):(o[n]=o[t],o[a]=o[t])})}),e),bumparea:Bt,bumpline:Bt,"bumparea-invert":Bt,line:Lt,area:Lt,cumulative:Wt,"cumulative-reverse":Wt};function Xt(e,t,n){if(!e&&t)return t;if("object"==typeof e)return()=>e;if(e instanceof Function)return e;if(!0===n){const t=e;return()=>t}return"string"==typeof e?t=>t?t[e]:void 0:()=>{}}function qt(e,t){const n=[];for(const e of t)n.push(Object.assign({},e));for(const t of e)t.parentSummary||n.push(t);return n}const Kt=({lineDataAccessor:t,xAccessor:n,yAccessor:a,summaries:o,points:r,lines:s,lineType:i,showLinePoints:l,showSummaryPoints:c,xExtent:d,yExtent:p,invertX:u,invertY:y,summaryDataAccessor:m,summaryType:h,adjustedSize:g,margin:f,summaryStyleFn:x,summaryClassFn:b,summaryRenderModeFn:v,chartSize:k,filterRenderedLines:$,filterRenderedSummaries:M,filterRenderedPoints:w,defined:P=_t,annotations:S=[]})=>{let A=[],D=[],N=[],z=[],F=[];if(r){n.forEach((e,t)=>{a.forEach((n,a)=>{let o=0;for(const s of r){const r=e(s,o),i=n(s,o),l={x:r,y:i,data:s,xIndex:t,yIndex:a};Array.isArray(i)&&(l[We]=Math.min(...i),l[Le]=Math.max(...i),l[Ie]=(l[We]+l[Le])/2),Array.isArray(r)&&(l[_e]=Math.min(...r),l[Ve]=Math.max(...r),l[Be]=(l[_e]+l[Ve])/2),N.push(l),o++}})});for(const e of N)A.push(Object.assign(Object.assign({},e),{[Re]:e[Ve]||e[_e]||e.x,[Te]:e[Le]||e[We]||e.y}))}if(s){D=(({data:e,lineDataAccessor:t,xProp:n,xPropTop:a,xPropBottom:o,yProp:r,yPropTop:s,yPropBottom:i,xAccessor:l,yAccessor:c})=>{Array.isArray(e)||(e=[e]);const d=[];return t.forEach((t,p)=>{l.forEach((l,u)=>{c.forEach((c,y)=>{e.forEach(e=>{const m=Object.assign(Object.assign({},e),{xIndex:u,yIndex:y,lineIndex:p});m.data=t(e).map((e,t)=>{const d={data:e};return d[n]=l(e,t),d[a]=d[n],d[o]=d[n],d[r]=c(e,t),d[s]=d[r],d[i]=d[r],d}),m.key=m.key||d.length,d.push(m)})})})}),d})({data:s,lineDataAccessor:t,xProp:Re,xPropTop:Ve,xPropBottom:_e,yProp:Te,yPropTop:Le,yPropBottom:We,xAccessor:n,yAccessor:a}),z=function(e,t){return n=>Yt[Zt(e.type,n)](Object.assign(Object.assign(Object.assign({},e),t),{data:n}))}(i,{xProp:Re,yProp:Te,yPropMiddle:Ie,yPropTop:Le,yPropBottom:We,xPropMiddle:Be,xPropTop:Ve,xPropBottom:_e})(D);for(const e of z)for(let t=0;e.data.length>t;t++){const n=e.data[t];if(!P(Object.assign({},n.data,n),t))continue;const a={parentLine:e,y:n.y,x:n.x,xTop:n.xTop,xMiddle:n.xMiddle,xBottom:n.xBottom,yTop:n.yTop,yMiddle:n.yMiddle,yBottom:n.yBottom,data:n.data};n.percent&&(a.percent=n.percent),A.push(a)}if(l){const e=!0===l?Be:Gt[l],t=!0===l?Ie:Ht[l];z.forEach(n=>{n.data.filter((e,t)=>{if(P(Object.assign({},e.data,e))){if("orphan"===l){const e=n.data[t-1],a=n.data[t+1];return!(e&&P(Object.assign({},e.data,e))||a&&P(Object.assign({},a.data,a)))}return!0}return!1}).forEach(a=>{N.push(Object.assign(Object.assign({},a),{parentLine:n,[Te]:void 0!==a[t]?a[t]:void 0!==a[Ie]?a[Ie]:void 0!==a[We]?a[We]:a.y,[Re]:void 0!==a[e]?a[e]:void 0!==a[Be]?a[Be]:void 0!==a[_e]?a[_e]:a.y}))})})}}o&&(F=(({data:e,summaryDataAccessor:t,xAccessor:n,yAccessor:a})=>{const o=[];return t.forEach(t=>{n.forEach(n=>{a.forEach(a=>{const r=e=>t(e).map((e,t)=>[n(e,t),a(e,t)]);e.forEach(e=>{o.push(Object.assign(Object.assign({},e),{_baseData:t(e),_xyfCoordinates:r(e)}))})})})}),o})({data:o,summaryDataAccessor:m,xAccessor:n,yAccessor:a}),F.forEach(e=>{const t=e._baseData;e._xyfCoordinates.length>0&&e._xyfCoordinates[0][0][0]?e._xyfCoordinates[0].forEach(n=>{Array.isArray(n)&&n.map((n,a)=>Object.assign({parentSummary:e},t[a],{[Re]:n[0],[Te]:n[1]})).forEach(e=>{c&&N.push(Object.assign(Object.assign({x:0},e),{[Te]:e[Le]||e[We]||e[Te]})),A.push(Object.assign({x:0,y:0},e))})}):e._xyfCoordinates.length>0&&Array.isArray(e._xyfCoordinates)&&e._xyfCoordinates.map((n,a)=>Object.assign(Object.assign({parentSummary:e},t[a]),{[Re]:n[0],[Te]:n[1]})).forEach(e=>{c&&N.push(Object.assign(Object.assign({x:0},e),{[Te]:e[Le]||e[We]||e[Te]})),A.push(Object.assign({x:0,y:0},e))})}));let C,R,T,I,L=[],W=[];d&&!Array.isArray(d)&&!0===d.includeAnnotations&&n.forEach(e=>{S.forEach((t,n)=>{const a=e(t,n);isFinite(a)&&L.push({[Re]:a})})}),p&&!Array.isArray(p)&&!0===p.includeAnnotations&&a.forEach(e=>{S.forEach((t,n)=>{const a=e(t,n);isFinite(a)&&W.push({[Te]:a})})});for(const e of A){const t=void 0===e[_e]?e[Re]:Math.min(e[Ve],e[_e]),n=void 0===e[Ve]?e[Re]:Math.max(e[_e],e[Ve]),a=void 0===e[We]?e[Te]:Math.min(e[Le],e[We]),o=void 0===e[Le]?e[Te]:Math.max(e[We],e[Le]);void 0===t||void 0!==C&&t>=C||(C=t),void 0===n||void 0!==R&&R>=n||(R=n),void 0===a||void 0!==T&&a>=T||(T=a),void 0===o||void 0!==I&&I>=o||(I=o)}for(const e of L){const t=e[Re];void 0===t||void 0!==C&&t>=C||(C=t),void 0===t||void 0!==R&&R>=t||(R=t)}for(const e of W){const t=e[Te];void 0===t||void 0!==T&&t>=T||(T=t),void 0===t||void 0!==I&&I>=t||(I=t)}const V=[C,R],_=[T,I],H=Vt(d),G=Vt(p);let Y=[G&&void 0!==G[0]?G[0]:_[0],G&&void 0!==G[1]?G[1]:_[1]],X=[H&&void 0!==H[0]?H[0]:V[0],H&&void 0!==H[1]?H[1]:V[1]];return!u||H&&2===H.length||(X=[X[1],X[0]]),"bumpline"!==i.type&&!y||G&&2===G.length||(Y=[Y[1],Y[0]]),h.type&&"contour"===h.type?F=ut({summaryType:h,data:F,finalXExtent:X,finalYExtent:Y}):h.type&&"linebounds"===h.type?F=function({summaryType:e,data:t,defined:n}){let a=[];e.type||(e={type:e});const{boundingAccessor:o,topBoundingAccessor:r=o,bottomBoundingAccessor:s=o}=e;return t.forEach(e=>{const t=e._baseData.map(n);let o=[],i=[];const l=[{xyf:i,base:o}];t.forEach((n,a)=>{!0===n?(o.push(e._baseData[a]),i.push(e._xyfCoordinates[a])):t[a+1]&&(o=[],i=[],l.push({xyf:i,base:o}))}),l.forEach(({xyf:t,base:n})=>{const o={data:e,parentSummary:e,_xyfCoordinates:yt(t,n,r,s)};a=[...a,o]})}),a}({summaryType:h,data:F,defined:P}):h.type&&"hexbin"===h.type?(F=function({preprocess:t=!0,processedData:n=!1,summaryType:a,data:o,finalXExtent:r,finalYExtent:s,size:i,xScaleType:l=E(),yScaleType:c=E(),margin:d,styleFn:p,classFn:u,renderFn:y,chartSize:m}){let h=r,g=s;if(!h){const e=o.coordinates.map(e=>e.x);h=[Math.min(...e),Math.max(...e)]}if(!g){const e=o.coordinates.map(e=>e.y);g=[Math.min(...e),Math.max(...e)]}if(n&&o)return o.coordinates;let f,x=[];f=a.type?a:{type:f};const{bins:b=.05,cellPx:v,binValue:k=e=>e.length,binMax:j,customMark:$}=f;o.coordinates&&!o._xyfCoordinates&&(o._xyfCoordinates=o.coordinates.map(e=>[e.x,e.y]));const M=Array.isArray(o)?o:[o],w=l.domain(h).range([0,i[0]]),O=c.domain(g).range([0,i[1]]),P=v&&v/2||(b>1?1/b:b)*i[0]/2,S=B().x(e=>w(e._xyfPoint[0])).y(e=>O(e._xyfPoint[1])).radius(P).size(i);let A;const D=S.centers();return M.forEach(t=>{A=0;const n=S(t._xyfCoordinates.map((e,n)=>Object.assign({_xyfPoint:e},t.coordinates[n]))),a={};n.forEach(e=>{a[`${parseInt(e.x)}-${parseInt(e.y)}`]=!0}),D.forEach(e=>{if(!a[`${parseInt(e[0])}-${parseInt(e[1])}`]){const t=[];t.x=e[0],t.y=e[1],n.push(t)}}),A=Math.max(...n.map(e=>k(e))),j&&j(A);const o=[[0,-1],[.866,-.5],[.866,.5],[0,1],[-.866,.5],[-.866,-.5]],r=w.invert(P)-h[0],s=O.invert(P)-g[0],l=o.map(e=>[e[0]*r,e[1]*s]),c=n.map(n=>{const a=k(n),r=n.x,s=n.y;n.x=w.invert(n.x),n.y=O.invert(n.y);const c=a/A;return{customMark:$&&e.createElement("g",{transform:`translate(${r},${i[1]-s})`},$({d:Object.assign(Object.assign({},n),{binItems:n,percent:c,value:a,radius:P,hexCoordinates:o.map(e=>[e[0]*P,e[1]*P])}),margin:d,styleFn:p,classFn:u,renderFn:y,chartSize:m,adjustedSize:i})),_xyfCoordinates:l.map(e=>[e[0]+n.x,e[1]+n.y]),value:a,percent:c,data:n,parentSummary:t,centroid:!0}});x=[...x,...c]}),t?(x.forEach(e=>{e.x=e.data.x,e.y=e.data.y}),{type:"hexbin",processedData:!0,coordinates:x,binMax:A}):x}({summaryType:h,data:F[0],processedData:o&&!!o[0].processedData,preprocess:!1,finalXExtent:X,finalYExtent:Y,size:g,margin:f,styleFn:x,classFn:b,renderFn:v,chartSize:k}),A=qt(A,F)):h.type&&"heatmap"===h.type?(F=function({preprocess:t=!0,processedData:n=!1,summaryType:a,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=E(),yScaleType:c=E(),margin:d,styleFn:p,classFn:u,renderFn:y,chartSize:m}){if(n&&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 g,f=[];g=a.type?a:{type:g};const{binValue:x=e=>e.length,xBins:b=g.yBins||.05,yBins:v=b,xCellPx:k=!g.xBins&&g.xCellPx,yCellPx:j=!g.yBins&&g.yCellPx,customMark:$,binMax:M}=g,w=1>b?b:1/b,O=1>v?v:1/v,P=l.domain(r).range([0,i[0]]),S=c.domain(s).range([i[1],0]),A=[Math.ceil((k&&k/i[0]||w)*i[0]*10)/10,Math.ceil((j&&j/i[1]||O)*i[1]*10)/10];let D=-1/0;return h.forEach(t=>{const n=[],a=[];let o,r;for(let e=0;i[0]>Math.ceil(e);e+=A[0]){const s=P.invert(e),l=P.invert(e+A[0]);r=[],n.push(r);for(let n=0;i[1]>Math.ceil(n);n+=A[1]){const i=S.invert(n),c=S.invert(n+A[1]);o={gx:e,gy:n,gw:A[0],gh:A[1],x:(s+l)/2,y:(i+c)/2,binItems:[],value:0,_xyfCoordinates:[[s,i],[l,i],[l,c],[s,c]],parentSummary:t},r.push(o),a.push(o)}r.push(o)}n.push(r),t._xyfCoordinates.forEach((e,a)=>{const o=P(e[0]),r=S(e[1]),s=Math.floor(o/A[0]),i=Math.floor(r/A[1]);n[s][i]&&n[s][i].binItems.push(t.coordinates[a])}),a.forEach(e=>{e.value=x(e.binItems),D=Math.max(D,e.value)}),a.forEach(t=>{t.percent=t.value/D,t.customMark=$&&e.createElement("g",{transform:`translate(${t.gx},${t.gy})`},$({d:t,margin:d,styleFn:p,classFn:u,renderFn:y,chartSize:m,adjustedSize:i}))}),f=[...f,...a]}),M&&M(D),t?{type:"heatmap",processedData:!0,_baseData:[],_xyfCoordinates:[],data:[],bounds:[],x:0,y:0,coordinates:f,binMax:D}:f}({summaryType:h,data:F[0],processedData:o&&!!o[0].processedData,preprocess:!1,finalXExtent:X,finalYExtent:Y,size:g,margin:f,styleFn:x,classFn:b,renderFn:v,chartSize:k}),A=qt(A,F)):h.type&&"trendline"===h.type&&(F=function({preprocess:e=!1,summaryType:t,data:n,finalXExtent:a=[Math.min(...n.coordinates.map(e=>e.x)),Math.max(...n.coordinates.map(e=>e.x))],xScaleType:o=E()}){if(e)return n[0].coordinates;let r,s=[];r=t.type?t:{type:r};const{regressionType:i="linear",order:l=2,precision:c=4,controlPoints:d=20,curve:p=O}=r;let u=i;a[0]>=0||"logarithmic"!==i&&"power"!==i&&"exponential"!==i||(console.error(`Cannot use this ${i} regressionType type with value range that goes below 0, defaulting to linear`),u="linear"),n.coordinates&&!n._xyfCoordinates&&(n._xyfCoordinates=n.coordinates.map(e=>[e.x,e.y]));const y=Array.isArray(n)?n:[n],m=o.domain([0,1]).range(a);return s=[],y.forEach(e=>{const t=j[u](e._xyfCoordinates.map(e=>{let t=e[0],n=e[1];return"number"!=typeof t&&(t=t.getTime()),"number"!=typeof n&&(n=n.getTime()),[t,n]}),{order:l,precision:c}),n=1/d;let a=[0,1];if("linear"!==u){a=[];for(let e=0;1+n>e;e+=n)a.push(e)}const o=[];a.forEach(e=>{o.push(t.predict(m(e)))}),s.push({centroid:!1,customMark:void 0,data:e,parentSummary:e,value:t.string,r2:t.r2,curve:p,_xyfCoordinates:o})}),s}({summaryType:h,data:F[0],preprocess:o&&!!o[0].processedData,finalXExtent:X}),A=qt(A,F)),$&&(z=z.filter($),A=A.filter((e,t)=>!e.parentLine||$(e.parentLine,t,[]))),w&&(A=A.filter(w)),M&&(F=F.filter(M),A=A.filter((e,t)=>!e.parentSummary||M(e.parentSummary,t,[]))),{xExtent:X,yExtent:Y,projectedLines:z,projectedPoints:N,projectedSummaries:F,fullDataset:A,calculatedXExtent:V,calculatedYExtent:_}},Zt=(e,t)=>!Yt[e]||"difference"===e&&2!==t.length?"line":e,Qt=["graph","nodes","edges","nodeIDAccessor","sourceAccessor","targetAccessor","nodeSizeAccessor","edgeWidthAccessor","networkType","edgeType","filterRenderedNodes","renderFn"],Ut=["size","margin","title","nodeLabels",...Qt],Jt=({tooltipRef:e,changeTooltipContentArgsCurrent:t,changeTooltipContainerInitialDimensions:n,changeCollision:a})=>{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(),n(o),a(c)};function en(t){const{tooltipContent:n,tooltipContentArgs:a}=t,[o,s]=r(null),[l,d]=r(null),[p,u]=r(null),[y,m]=r(null),h=c(e=>{m(e),Jt({tooltipRef:e,tooltipContentArgs:a,changeTooltipContentArgsCurrent:u,changeTooltipContainerInitialDimensions:d,changeCollision:s})},[]);i(()=>{s(null),d(null)},[JSON.stringify(a)]),i(()=>{y&&!o&&Jt({tooltipRef:y,tooltipContentArgs:a,changeTooltipContentArgsCurrent:u,changeTooltipContainerInitialDimensions:d,changeCollision:s})},[y,o]);const g={overflow:"hidden",opacity:o&&p===a?1:0},f=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",x={offset:{x:0,y:0},tooltipContainerInitialDimensions:l};return e.createElement("div",{ref:h,style:g,className:f,"data-testid":"TooltipPositioner"},n(Object.assign(Object.assign({},a),{tooltipContainerAttributes:x})))}const tn=e=>()=>e,nn=({d:t,i:n,styleFn:a,key:o,className:r,transform:s})=>{const i=a(t,n);return e.createElement("rect",Object.assign({key:o,transform:s,width:2*t.nodeSize,height:2*t.nodeSize,ry:2*t.nodeSize,rx:2*t.nodeSize,x:-t.nodeSize,y:-t.nodeSize},i,{style:i,className:r,"aria-label":"Node "+t.id,tabIndex:-1}))},an=e=>({x:-e/2,y:-e/2,width:e,height:e}),on=({d:t,styleFn:n,key:a,className:o,transform:r})=>{const s="down"!==t.direction?t.height:t.width,i="down"!==t.direction?t.width:t.height;return t?e.createElement("rect",{key:a,className:o,transform:r,height:s,width:i,x:-i/2,y:-s/2,rx:0,ry:0,style:n(t),"aria-label":"Node "+t.id,tabIndex:-1}):e.createElement("g",null)},rn=({d:t,i:n,styleFn:a,key:o,className:r})=>t?e.createElement("rect",{key:o,transform:"translate(0,0)",width:t.x1-t.x0,height:t.y1-t.y0,x:t.x0,y:t.y0,rx:0,ry:0,style:a(t,n),className:r,"aria-label":"Node "+t.id,tabIndex:-1}):e.createElement("g",null),sn=M().curve(A).x(e=>e.x).y(e=>e.y),ln=M().curve(S).x(e=>e.x).y(e=>e.y);function cn(e,t,n){if(e.circular&&!t.circular)return-1;if(t.circular&&!e.circular)return 1;const a="down"===n?"y":"x",o="down"===n?"x":"y";return e.source[a]===t.source[a]?e.sankeyWidth===t.sankeyWidth?e.source[o]-t.source[o]:t.sankeyWidth-e.sankeyWidth:e.source[a]-t.source[a]}const dn={horizontal:L().x(e=>e.x).y(e=>e.y),vertical:I().x(e=>e.x).y(e=>e.y),radial:Q.lineArc},pn={curve:(e,t="vertical")=>dn[t](e),linearc:e=>Q.lineArc(e),ribbon:e=>Q.ribbon(e,e.width),arrowhead:e=>Q.arrowHead(e,e.target.nodeSize,e.width,1.5*e.width),halfarrow:e=>Q.halfArrow(e,e.target.nodeSize,e.width,1.5*e.width),nail:e=>Q.nail(e,e.source.nodeSize),comet:e=>Q.comet(e,e.target.nodeSize),taffy:e=>Q.taffy(e,e.source.nodeSize/2,e.target.nodeSize/2,(e.source.nodeSize+e.target.nodeSize)/4)},un=e=>`M${e.source.x},${e.source.y}L${e.target.x},${e.target.y}`,yn=t=>{const{d:n,width:a,edgeLength:o,circular:r}=t,s=l(null);return i(()=>{if(null==s?void 0:s.current){const e=Math.max(Math.min(a,r?a:o)/5,2);let t=U().arrowLength(2.5*e).gapLength(100).arrowHeadSize(e).path(n);m(s.current).selectAll("*").remove(),m(s.current).call(t),m(s.current).selectAll(":not(.arrow-head)").style("fill","none").style("stroke-width",e/4).style("stroke","white"),m(s.current).selectAll(".arrow-head").style("fill","white")}},[n]),e.createElement("g",{ref:s})},mn=t=>{const{d:n,i:a,styleFn:o,key:r,className:s,generatedPath:i}=t,{showArrows:l}=n;let c="";if(n.circular){const{circularPathData:e}=n,{sourceX:t,sourceY:a,leftFullExtent:o,rightFullExtent:r,verticalFullExtent:s,targetX:i,targetY:l}=e;c=`M${t},${a}L${o},${a}L${o},${s}L${r},${s}L${r},${l}L${i},${l}`}else{let e=n.source.x1,t=n.target.x0,a=J(e,t),o=a(.5),r=a(.5),s=n.y0,i=n.y1;c=`M${e},${s}C${o},${s} ${r},${i} ${t},${i}`}return e.createElement(e.Fragment,{key:r},e.createElement("path",{className:s,d:i,style:o(n,a),"aria-label":`Connection from ${n.source.id} to ${n.target.id}`,tabIndex:-1}),l&&e.createElement(yn,{d:c,width:n.sankeyWidth,edgeLength:Math.abs(n.target.x-n.source.x),circular:n.circular}))},hn=(e,t,n,a)=>{if(e.children)for(const o of e.children){const e=t.filter(e=>e[1]===o.id);for(const t of e){const e=a.find(e=>n(e)===t[0])||{},r=Object.assign(Object.assign({id:t[0]},e),{children:[],childMap:{}});o.childMap.set(t[0],r),o.children.push(r)}o.children.length>0&&hn(o,t,n,a)}},gn=({data:e,renderKeyFn:t,customMark:n,styleFn:a,classFn:o,renderMode:r,canvasDrawing:s,canvasRenderFn:i,networkSettings:l})=>{const c=n,d=[];if("matrix"!==l.type||!i){if(l){let n=0;for(const l of e){const e=c({d:l,i:n,renderKeyFn:t,styleFn:a,classFn:o,renderMode:r,key:t?t(l,n):l.id||"node-"+n,className:"node "+o(l,n),transform:`translate(${l.x},${l.y})`});if(i&&!0===i(l,n)){const{transform:t="translate(0,0)"}=e.props,[i,c]=t.replace("translate(","").replace(")","").split(","),d={baseClass:"frame-piece",tx:i,ty:c,d:l,i:n,markProps:Object.assign({markType:"string"==typeof e.type?e.type:e.props.markType},e.props),styleFn:a,renderFn:r,classFn:o};s.push(d)}else d.push(e);n++}}return d}},fn=t=>{const{data:n,renderKeyFn:a,customMark:o,styleFn:r,classFn:s,renderMode:i,canvasRenderFn:l,canvasDrawing:c,type:d,networkSettings:p,projection:u,numberOfNodes:y,size:m}=t,{type:h,direction:g,edgeSort:f=cn}=p,x="sankey"===h?n.sort((e,t)=>f(e,t,g)):n;let b=un;const v=[];if(l&&"matrix"===p.type){let e=0;const t=Math.floor(Math.min(...m)/y);for(const n of x){const a={baseClass:"frame-piece",tx:n.source.y,ty:n.target.y,d:n,i:e,markProps:Object.assign({markType:"rect"},an(t)),styleFn:r,renderFn:i,classFn:s};c.push(a),e++}}else if(o){d&&("function"==typeof d?b=d:pn[d]&&(b=e=>pn[d](e,u)));let e=0;for(const t of x){const n=o({d:t,i:e,renderKeyFn:a,styleFn:r,classFn:s,renderMode:i,key:a?a(t,e):"edge-"+e,className:s(t,e)+" edge",transform:`translate(${t.x},${t.y})`,generatedPath:b(t)});n&&n.props&&("path"!==n.props.markType||n.props.d)&&v.push(n),e++}}else{d&&("function"==typeof d?b=d:pn[d]&&(b=e=>pn[d](e,u)));let t=0;for(const n of x){const o=b(n);o&&l&&!0===l(n,t)?c.push({baseClass:"frame-piece",tx:n.x,ty:n.y,d:n,i:t,markProps:{markType:"path",d:o},styleFn:r,renderFn:i,classFn:s}):o&&v.push(e.createElement("path",{key:a?a(n,t):"edge-"+t,className:s(n)+" edge",d:o,style:r(n,t),tabIndex:-1,role:"img","aria-label":`connection from ${n.source.id} to ${n.target.id}`}))}}return v},xn=[],bn={id:void 0,degree:0,inDegree:0,outDegree:0,x:0,y:0,x1:0,x0:0,y1:0,y0:0,height:0,width:0,radius:0,r:0,direction:void 0,textHeight:0,textWidth:0,fontSize:0,scale:1,nodeSize:0,component:-99,shapeNode:!1},vn={hierarchicalNetwork:!1},kn={nodeHash:new Map,edgeHash:new Map,nodes:[],edges:[],hierarchicalNetwork:!1,type:"force"},En={dendrogram:X,tree:X,circlepack:Y,cluster:G,treemap:H,partition:_},jn=({projectedNodes:e,projectedEdges:t})=>(e.forEach(e=>{e.x=void 0===e.x?(e.x0+e.x1)/2:e.x,e.y=void 0===e.y?e.y0:e.y}),{projectedNodes:e,projectedEdges:t}),$n={left:ie,right:se,center:re,justify:oe},Mn=({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a,nodeIDAccessor:o})=>{const{orient:r="center",iterations:s=100,nodePadding:i,nodePaddingRatio:l=(i?void 0:.5),nodeWidth:c=("flowchart"===n.type?2:24),customSankey:d,direction:p="right",showArrows:u=!1}=n,y=$n[r],m=d||le;let h=[[0,0],a];"up"!==n.direction&&"down"!==n.direction||(h=[[0,0],[a[1],a[0]]]);let g=t;const f=e.some(e=>!e.createdByFrame&&e.value>0);if(f){const n=new Map;for(const e of t)n.has(e.source.id)||n.set(e.source.id,{source:0,target:0}),n.has(e.target.id)||n.set(e.target.id,{source:0,target:0}),n.get(e.source.id).source+=e.value,n.get(e.target.id).target+=e.value;for(const a of e)if(!a.createdByFrame){let e=0;n.has(a.id)&&(e=Math.max(n.get(a.id).source,n.get(a.id).target)),a.value>e&&t.push({source:a,target:a,value:a.value-e,ephemeral:!0})}}const x=m().extent(h).links(t).nodes(e).nodeAlign(y).nodeId(o).nodeWidth(c).iterations(s);f&&(g=t.filter(e=>!e.ephemeral)),x.nodePaddingRatio&&l?x.nodePaddingRatio(l):i&&x.nodePadding(i),x(),e.forEach(e=>{e.height=e.y1-e.y0,e.width=e.x1-e.x0,e.x=e.x0+e.width/2,e.y=e.y0+e.height/2,e.radius=e.height/2,e.direction=p});const b=f?g:t;return b.forEach(e=>{e.showArrows=u,e.sankeyWidth=e.width,e.direction=p,e.width=void 0}),{projectedNodes:e,projectedEdges:b}};function wn(t,n,a,o){if(t)return t;const r=[a[0]/2,a[1]/2];switch(n.type){case"sankey":return on;case"partition":case"treemap":return"radial"===n.projection?((t,n,a)=>{const o=$(),{angleRange:r=[0,360]}=a,s=r.map(e=>e/360),i=1>s[1]-s[0]?E().domain([0,1]).range(s):e=>e;return({d:a,i:r,styleFn:s,key:l,className:c})=>a?(o.innerRadius(a.y0/2).outerRadius(a.y1/2),e.createElement("path",{key:l,transform:`translate(${n})`,d:o({startAngle:i(a.x0/t[0])*Math.PI*2,endAngle:i(a.x1/t[0])*Math.PI*2}),style:s(a,r),className:c,"aria-label":"Node "+a.id,tabIndex:-1})):e.createElement("g",null)})(a,r,n):rn;case"circlepack":return nn;case"chord":return(t=>({d:n,i:a,styleFn:o,key:r,className:s})=>n?e.createElement("path",{key:r,className:s,transform:`translate(${t[0]/2},${t[1]/2})`,d:n.d,style:o(n,a),"aria-label":"Node "+n.id,tabIndex:-1}):e.createElement("g",null))(a);case"dagre":return rn;case"matrix":return((t,n)=>{const a=Math.min(...t),o=a/(n.length+1);return({d:t,i:r,styleFn:s,renderMode:i,key:l,className:c})=>{if(!t)return e.createElement("g",null);const d=o>6,p=o>3,u=o>.5,y={textAnchor:"end",fontSize:o/2+"px"},m=s(t,r);return i&&i(t,r),e.createElement("g",{key:l,className:c},u&&e.createElement("rect",{x:o/2,y:t.y-o/2,width:a-o,height:o,style:Object.assign(Object.assign({},m),{stroke:"none"})}),u&&e.createElement("rect",{y:o/2,x:t.y-o/2,height:a-o,width:o,style:Object.assign(Object.assign({},m),{stroke:"none"})}),p&&e.createElement("line",{stroke:"black",x1:0,x2:a-o/2,y1:t.y-o/2,y2:t.y-o/2,style:m}),p&&e.createElement("line",{stroke:"black",y1:0,y2:a-o/2,x1:t.y-o/2,x2:t.y-o/2,style:m}),p&&r===n.length-1&&e.createElement("line",{stroke:"black",x1:0,x2:a-o/2,y1:t.y+o/2,y2:t.y+o/2,style:m}),p&&r===n.length-1&&e.createElement("line",{stroke:"black",y1:0,y2:a-o/2,x1:t.y+o/2,x2:t.y+o/2,style:m}),d&&e.createElement("text",Object.assign({x:0,y:t.y+o/5},y),t.id),d&&e.createElement("text",Object.assign({transform:`translate(${t.y}) rotate(90) translate(0,${o/5})`},y,{y:0}),t.id))}})(a,o)}return nn}const On=e=>({edge:e,x:(e.source.x+e.target.x)/2,y:(e.source.y+e.target.y)/2}),Pn={sankey:e=>({edge:e,x:(e.source.x1+e.target.x0)/2,y:e.circularPathData?e.circularPathData.verticalFullExtent:((e.y0+e.y1)/2+(e.y0+e.y1)/2)/2}),force:On,tree:On,cluster:On,matrix:e=>({edge:e,x:e.source.y,y:e.target.y})},Sn={partition:!0,cluster:!0,tree:!0,dendrogram:!0},An={partition:!0,cluster:!0,tree:!0,dendrogram:!0};function Dn(e,t,n){return t.parent&&(n=`${n}-${Dn(e,Object.assign(Object.assign({},t.parent),t.parent.data),n)}`),`${n}-${e(Object.assign(Object.assign({},t),t.data))}`}const Nn=e=>e.id||e.descendantIndex,zn=(e,t=Nn)=>{var n,a;const o=[],r=[],s=(e.descendants?e:q(e)).descendants();let i=0;for(const e of s)e.descendantIndex=i,i++;for(const e of s){const s=`${null!==(n=t(Object.assign(Object.assign({},e),e.data)))&&void 0!==n?n:Nn(e)}-${e.parent?null!==(a=Dn(t,Object.assign(Object.assign({},e.parent),e.parent.data),""))&&void 0!==a?a:e.parent.name:"root"}`,i=Object.assign(e,e.data||{},{hierarchicalID:s});if(r.push(i),null!==e.parent){const t=Object.assign(e.parent,e.parent.data||{});o.push({source:t,target:i,depth:e.depth,weight:1,value:1,_NWFEdgeKey:s})}}return{edges:o,nodes:r}},Fn=(t,n,a,o)=>{const{graph:r,nodes:s=(Array.isArray(r)||"function"==typeof r?xn:r&&r.nodes||xn),edges:i=("function"==typeof r?xn:Array.isArray(r)?r:r&&r.edges||xn),networkType:l,size:c,nodeStyle:d,nodeClass:p,canvasNodes:u,edgeStyle:y,edgeClass:m,canvasEdges:h,nodeRenderMode:g,edgeRenderMode:f,nodeLabels:b,title:k,margin:j,hoverAnnotation:$,customNodeIcon:w,customEdgeIcon:O,filterRenderedNodes:P}=t;let S,{edgeType:A}=t;const D={};let N=["type"];"string"==typeof l?S=Object.assign(Object.assign({type:l},vn),{graphSettings:kn}):(l&&(N=Object.keys(l)),S=Object.assign(Object.assign(Object.assign({type:"force"},vn),l),{graphSettings:kn})),"vertical"===S.projection&&"sankey"===S.type&&(S.direction="down"),N.push("height","width");const F="object"!=typeof k||e.isValidElement(k)||null===k?{title:k,orient:"top"}:k,{margin:C,adjustedPosition:R,adjustedSize:T}=a.marginCalc(j,F,c);S.graphSettings.nodes=s,S.graphSettings.edges=i,S.graphSettings.filterRenderedNodes=P;let{edgeHash:I,nodeHash:L}=S.graphSettings;const W="treemap"===S.type||"partition"===S.type||"sankey"===S.type,B=a.accessorConversions(t.nodeIDAccessor,t.sourceAccessor,t.targetAccessor,t.nodeSizeAccessor,t.edgeWidthAccessor),V=B.nodeIDAccessor,_=B.sourceAccessor,H=B.targetAccessor,G=B.nodeSizeAccessor,Y=B.edgeWidthAccessor,{nodeStyleFn:X,nodeClassFn:K,nodeRenderModeFn:Z,nodeCanvasRenderFn:Q}=a.nodeStyleFns(d,p,g,u);let{projectedNodes:U,projectedEdges:ee}=n;const te="string"==typeof S.type&&En[S.type],ne=!n.projectedNodes||!n.projectedEdges||n.graphSettings.nodes!==s||n.graphSettings.edges!==i||te||n.graphSettings.filterRenderedNodes!==P;if("dagre"===S.type){const e=r,t=new Map;U=e.nodes().map(n=>{const a=e.node(n),o=Object.assign(Object.assign({},a),{x0:a.x-a.width/2,x1:a.x+a.width/2,y0:a.y-a.height/2,y1:a.y+a.height/2,id:n,shapeNode:!0,sourceLinks:[],targetLinks:[]});return t.set(n,o),o}),ee=e.edges().map(n=>{const a=e.edge(n),o=Object.assign(Object.assign({},a),{points:a.points.map(e=>Object.assign({},e))});return o.source=U.find(e=>e.id===n.v),o.target=U.find(e=>e.id===n.w),o.points.unshift({x:o.source.x,y:o.source.y}),o.points.push({x:o.target.x,y:o.target.y}),t.get(n.v).targetLinks.push(o),t.get(n.w).sourceLinks.push(o),o})}else if(ne){const e=U;I=new Map,L=new Map,S.graphSettings.edgeHash=I,S.graphSettings.nodeHash=L,U=[],ee=[];const t="function"==typeof S.fixExistingNodes?S.fixExistingNodes:!!S.fixExistingNodes&&(()=>!0);s.forEach(n=>{const a=Object.assign({},n),o=V(a),r=e.find(e=>e.id===o),s=r||{x:void 0,y:void 0};L.set(o,a),L.set(n,a),U.push(a),a.id=o,a.inDegree=0,a.outDegree=0,a.degree=0,a.x=s.x,a.y=s.y,r&&t&&t(r)&&(a.fx=r.x,a.fy=r.y)});let n=i,a=i;if(te&&Array.isArray(i)){const e=((e,t,n,a,o)=>{let r={id:"root-generated",children:[],childMap:new Map};const s=new Map,i=new Map;let l=!0,c=!0;for(let t=0;e.length>t;t++){const r=e[t],l=n(r),d=a(r),p="object"==typeof l?o(l):l,u="object"==typeof d?o(d):d;if(i.set(u,p),s.has(p)){c=!1;break}s.set(p,u)}if(c){const e=[];for(const n of s){e.push(n);const a=n[1];if(!s.has(a)){s.set(a,"root-generated");const e=t.find(e=>o(e)===a)||{},n=Object.assign(Object.assign({id:a},e),{children:[],childMap:new Map});r.childMap.set(a,n),r.children.push(n)}}return hn(r,e,o,t),t.forEach(e=>{const t=o(e);s.has(t)||i.has(t)||r.children.push(Object.assign(Object.assign({id:t},e),{children:[],childMap:new Map}))}),1===r.children.length&&(r=r.children[0],l=!1),{hierarchy:r,isHierarchical:!0,hasLogicalRoot:l}}return{hierarchy:{},isHierarchical:!1,hasLogicalRoot:!1}})(i,s,_,H,V);e.isHierarchical?(a=e.hierarchy,U=[]):(console.error("You've sent an edge list that is not strictly hierarchical (there are nodes with multiple parents) defaulting to force-directed network layout"),S.type="force")}if(!Array.isArray(a)){S.hierarchicalNetwork=!0;const e=q(a,S.hierarchyChildren);if(e.sum(S.hierarchySum||(e=>e.value)),te){const t=(S.layout||te)(),n=Object.keys(S);"dendrogram"!==S.type&&"tree"!==S.type&&"cluster"!==S.type||!t.separation||t.separation((e,t)=>(G(Object.assign(Object.assign({},e),e.data))||1)+(S.nodePadding||0)+(G(Object.assign(Object.assign({},t),t.data))||1)),n.forEach(e=>{t[e]&&t[e](S[e])}),!S.nodeSize&&t.size&&t.size("horizontal"===S.projection&&te?[T[1],T[0]]:T),t(e)}n=zn(e,V).edges}bn.shapeNode=W,Array.isArray(n)&&n.forEach(e=>{const t=_(e),n=H(e);[t,n].forEach(e=>{if(!L.get(e)){const t=Object.assign(Object.assign({},bn),"object"==typeof e?e:{id:e,createdByFrame:!0}),n=t.id||V(t);D[n]?D[n]+=1:D[n]=1,t.id||(t.id=`${n}${1===D[n]?"":"-"+D[n]}`),L.set(e,t),U.push(t)}});const a=e.weight||1,o=L.get(t),r=L.get(n);r.inDegree+=a,o.outDegree+=a,r.degree+=a,o.degree+=a;const s=`${V(o)||t}|${V(r)||n}`,i=Object.assign({},e,{source:L.get(t),target:L.get(n)});I.set(s,i),ee.push(i),"matrix"===S.type&&ee.push(Object.assign(Object.assign({},i),{source:i.target,target:i.source}))})}else I=new Map,S.graphSettings.edgeHash=I,ee.forEach(e=>{const t="string"==typeof e.source?e.source:V(e.source),n="string"==typeof e.target?e.target:V(e.target);I.set(`${t}|${n}`,e)});const ae=wn(w,S,T,U),oe=function({baseCustomEdgeIcon:t,networkSettings:n,size:a,graph:o,nodes:r}){if(t)return t;switch(n.type){case"partition":case"treemap":case"circlepack":return()=>null;case"chord":return(t=>({d:n,i:a,styleFn:o,key:r,className:s})=>e.createElement("path",{key:r,className:s,transform:`translate(${t[0]/2},${t[1]/2})`,d:n.d,style:o(n,a),"aria-label":`Connection from ${n.source.id} to ${n.target.id}`,tabIndex:-1}))(a);case"matrix":return((t,n)=>({d:a,i:o,styleFn:r,key:s,className:i})=>{const l=Math.min(...t)/n.length,c=r(a,o);return e.createElement("g",{key:s},e.createElement("rect",Object.assign({key:s,className:i,transform:`translate(${a.source.y},${a.target.y})`},c,{style:c,"aria-label":`Connection from ${a.source.id} to ${a.target.id}`,tabIndex:-1},an(l))))})(a,r);case"arc":return(t=>{const n=t[1]/t[0];function a(e){return M().curve(z)([[e.source.x,0],[(e.source.x+e.target.x)/2,(e.source.x-e.target.x)*n],[e.target.x,0]])}return({d:n,i:o,styleFn:r,key:s,className:i})=>{const l=r(n,o);return e.createElement("path",Object.assign({key:s,className:i,transform:`translate(0,${t[1]/2})`,d:a(n)},l,{style:l,"aria-label":`Connection from ${n.source.id} to ${n.target.id}`,tabIndex:-1}))}})(a);case"dagre":if(o)return(t=>{const n="LR"===t||"RL"===t?sn:ln;return({d:t,i:a,styleFn:o,key:r,className:s})=>{if(t.ribbon||t.parallelEdges){const n=et();if(n.x(e=>e.x),n.y(e=>e.y),n.r(()=>t.weight||1),t.parallelEdges){const i=t.parallelEdges.sort((e,t)=>t.weight-e.weight);return e.createElement("g",{key:""+r},n({points:t.points,multiple:t.parallelEdges}).map((n,l)=>e.createElement("path",{key:`${r}-${l}`,className:s,d:n,style:o(i[l],a),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1})))}return e.createElement("path",{key:r,className:s,d:n(t.points),style:o(t,a),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1})}return e.createElement("path",{key:r,className:s,d:n(t.points),style:o(t,a),"aria-label":`Connection from ${t.source.id} to ${t.target.id}`,tabIndex:-1})}})(o.graph().rankdir);case"sankey":return mn}}({baseCustomEdgeIcon:O,networkSettings:S,size:T,nodes:U,graph:r});S.width=c[0],S.height=c[1];let re,se=!1;if(N.forEach(e=>{"edgeType"!==e&&"graphSettings"!==e&&S[e]!==n.graphSettings[e]&&(se=!0)}),"sankey"===S.type?A=e=>e.circular?function(e){const t=et();return t.x(e=>e.x),t.y(e=>e.y),t.r(()=>e.sankeyWidth/2),t("down"===e.direction?[{x:e.circularPathData.sourceY,y:e.circularPathData.sourceX},{x:e.circularPathData.sourceY,y:e.circularPathData.leftFullExtent},{x:e.circularPathData.verticalFullExtent,y:e.circularPathData.leftFullExtent},{x:e.circularPathData.verticalFullExtent,y:e.circularPathData.rightFullExtent},{x:e.circularPathData.targetY,y:e.circularPathData.rightFullExtent},{x:e.circularPathData.targetY,y:e.circularPathData.targetX}]:[{x:e.circularPathData.sourceX,y:e.circularPathData.sourceY},{x:e.circularPathData.leftFullExtent,y:e.circularPathData.sourceY},{x:e.circularPathData.leftFullExtent,y:e.circularPathData.verticalFullExtent},{x:e.circularPathData.rightFullExtent,y:e.circularPathData.verticalFullExtent},{x:e.circularPathData.rightFullExtent,y:e.circularPathData.targetY},{x:e.circularPathData.targetX,y:e.circularPathData.targetY}])}(e):"angled"===A?(e=>{const t=Math.abs("down"===e.direction?e.target.y-e.source.y:e.source.x-e.target.x),n="down"===e.direction?[{x:e.y0,y:e.source.y},{x:e.y0,y:e.source.y+t/3},{x:e.y1,y:e.target.y-t/3},{x:e.y1,y:e.target.y}]:[{x:e.source.x0,y:e.y0},{x:e.source.x0+t/3,y:e.y0},{x:e.target.x0-t/3,y:e.y1},{x:e.target.x0,y:e.y1}],a=et();return a.x(e=>e.x),a.y(e=>e.y),a.r(()=>e.sankeyWidth/2),a(n)})(e):(e=>{let t,n,a,o,r,s,i,l,c;return"down"===e.direction?(t=e.y0-e.sankeyWidth/2,n=e.y1-e.sankeyWidth/2,a=e.y1+e.sankeyWidth/2,o=e.y0+e.sankeyWidth/2,r=e.source.y1,s=e.target.y0,i=J(r,s),l=i(.5),c=i(.5),`M${t},${r}C${t},${l} ${n},${c} ${n},${s}L${a},${s}C${a},${c} ${o},${l} ${o},${r}Z`):(t=e.source.x1,n=e.target.x0,i=J(t,n),a=i(.5),o=i(.5),r=e.y0-e.sankeyWidth/2,s=e.y1-e.sankeyWidth/2,l=e.y1+e.sankeyWidth/2,c=e.y0+e.sankeyWidth/2,`M${t},${r}C${a},${r} ${o},${s} ${n},${s}L${n},${l}C${o},${l} ${a},${c} ${t},${c}Z`)})(e):te&&U.forEach(e=>{if(W&&(e.x=(e.x0+e.x1)/2,e.y=(e.y0+e.y1)/2),"string"==typeof S.type&&Sn[S.type]&&"horizontal"===S.projection){const t=e.x;if(e.x=e.y,e.y=t,W){const t=e.x0,n=e.x1;e.x0=e.y0,e.x1=e.y1,e.y0=t,e.y1=n}}else if("string"==typeof S.type&&An[S.type]&&"radial"===S.projection){const t=0===e.depth?[T[0]/2,T[1]/2]:it([T[0]/2,T[1]/2],e.x/T[0],e.y/2);e.x=t[0],e.y=t[1]}else e.x=e.x,e.y=e.y,W&&(e.x0=e.x0,e.x1=e.x1,e.y0=e.y0,e.y1=e.y1)}),"static"!==S.type&&(ne||se)){const e=null==o?void 0:o["string"==typeof S.type?S.type:"custom"];if(e){const t=e({projectedNodes:U,projectedEdges:ee,networkSettings:S,adjustedSize:T,edgeHash:I,nodeIDAccessor:V,edgeWidthAccessor:Y,nodeSizeAccessor:G,size:c});U=t.projectedNodes,ee=t.projectedEdges}else"function"==typeof S.type?S.type({nodes:U,edges:ee}):U.forEach(e=>{e.x=void 0===e.x?(e.x0+e.x1)/2:e.x,e.y=void 0===e.y?e.y0:e.y});n.graphSettings.nodes=t.nodes,n.graphSettings.edges=t.edges}if(U=U.filter(P),ee=ee.filter(e=>-1!==U.indexOf(e.target)&&-1!==U.indexOf(e.source)),"flip"===S.direction)U.forEach(e=>{e.x=T[0]-e.x,e.y=T[1]-e.y});else if("up"===S.direction||"down"===S.direction){const e="up"===S.direction?e=>T[1]-e:e=>e;U.forEach(t=>{const n=t.x,a=t.x0,o=t.x1;t.x=e(t.y),t.x0=e(t.y0),t.x1=e(t.y1),t.y=n,t.y0=a,t.y1=o})}else"left"===S.direction&&U.forEach(e=>{e.x=T[0]-e.x,e.x0=T[0]-e.x0,e.x1=T[0]-e.x1});if("function"==typeof S.zoom)S.zoom(U,ee,T);else if(!1!==S.zoom&&"matrix"!==S.type&&"chord"!==S.type&&"sankey"!==S.type&&"partition"!==S.type&&"treemap"!==S.type&&"circlepack"!==S.type&&"dagre"!==S.type){const e=v(U.map(e=>e.x-G(e))),t=x(U.map(e=>e.x+G(e))),n=v(U.map(e=>e.y-G(e))),a=x(U.map(e=>e.y+G(e))),o=Math.abs(t-e),r=Math.abs(a-n);let s,i;"stretch"===S.zoom?(s=0,i=0):o/r>T[0]/T[1]?(i=0,s=(T[1]-T[0]/o*r)/2):(s=0,i=(T[0]-T[1]/r*o)/2);const l=E().domain([e,t]).range([i,T[0]-i]),c=E().domain([n,a]).range([s,T[1]-s]);U.forEach(e=>{e.x=l(e.x),e.y=c(e.y)})}else if(!1===S.zoom||"radial"===S.projection||"partition"!==S.type&&"treemap"!==S.type&&"dagre"!==S.type){if(!1!==S.zoom&&"sankey"===S.type&&ee.some(e=>e.circular)){const e=ee.filter(e=>e.circular),t=v(e,e=>e.circularPathData.rightFullExtent-e.sankeyWidth/2)||1/0,n=x(e,e=>e.circularPathData.leftFullExtent+e.sankeyWidth/2)||-1/0,a=v(e,e=>e.circularPathData.verticalFullExtent-e.sankeyWidth/2)||1/0,o=x(e,e=>e.circularPathData.verticalFullExtent+e.sankeyWidth/2)||-1/0,r=v(U,e=>e.y0),s=x(U,e=>e.y1),i=v(U,e=>e.x0),l=x(U,e=>e.x1),c=Math.min(t,i),d=Math.max(n,l),p=Math.min(a,r),u=Math.max(o,s),y=E().domain([c,d]).range([0,T[0]]),m=E().domain([p,u]).range([0,T[1]]),h=T[1]/(u-p);for(const e of U)e.x=y(e.x),e.x0=y(e.x0),e.x1=y(e.x1),e.y=m(e.y),e.y0=m(e.y0),e.y1=m(e.y1),e.width=e.x1-e.x0,e.height=e.y1-e.y0;for(const e of ee)e.circular?(e.circularPathData.sourceX=y(e.circularPathData.sourceX),e.circularPathData.sourceY=m(e.circularPathData.sourceY),e.circularPathData.leftFullExtent=y(e.circularPathData.leftFullExtent),e.circularPathData.verticalFullExtent=m(e.circularPathData.verticalFullExtent),e.circularPathData.rightFullExtent=y(e.circularPathData.rightFullExtent),e.circularPathData.targetX=y(e.circularPathData.targetX),e.circularPathData.targetY=m(e.circularPathData.targetY)):(e.y0=m(e.y0),e.y1=m(e.y1)),e.sankeyWidth=e.sankeyWidth*h}}else{const e=v(U.map(e=>e.x0)),t=x(U.map(e=>e.x1)),n=v(U.map(e=>e.y0)),a=x(U.map(e=>e.y1)),o=E().domain([e,t]).range([C.left,T[0]-C.right]),r=E().domain([n,a]).range([C.top,T[1]-C.bottom]);U.forEach(e=>{e.x=o(e.x),e.y=r(e.y),e.x0=o(e.x0),e.y0=r(e.y0),e.x1=o(e.x1),e.y1=r(e.y1),e.zoomedHeight=e.y1-e.y0,e.zoomedWidth=e.x1-e.x0}),ee.forEach(e=>{e.points&&e.points.forEach(e=>{e.x=o(e.x),e.y=r(e.y)})})}U.forEach(e=>{e.nodeSize=G(e)}),ee.forEach(e=>{e.width=Y(e)}),t.legend&&(re=t.legend,!re.legendGroups)&&(re.legendGroups=[{styleFn:t.nodeStyle,type:"fill",items:[]}]);const ie=a.edgeStyleFns(y,m,f,h),le={edges:{accessibleTransform:(e,t)=>{const n=(e[t].source.x+e[t].target.x)/2,a=(e[t].source.y+e[t].target.y)/2;return Object.assign(Object.assign({type:"frame-hover"},e[t]),{x:n,y:a})},data:ee,styleFn:ie.edgeStyleFn,classFn:ie.edgeClassFn,renderMode:ie.edgeRenderModeFn,canvasRenderFn:ie.edgeCanvasRenderFn,renderKeyFn:t.edgeRenderKey?t.edgeRenderKey:e=>e._NWFEdgeKey||e.key||`${e.source.id}-${e.target.id}`,behavior:fn,projection:S.projection,type:A,customMark:oe,networkSettings:S,numberOfNodes:U.length,size:T},nodes:{accessibleTransform:(e,t)=>Object.assign(Object.assign({type:"frame-hover"},e[t]),e[t].data||{}),data:U,styleFn:X,classFn:K,renderMode:Z,canvasRenderFn:Q,customMark:ae,behavior:gn,renderKeyFn:t.nodeRenderKey,networkSettings:S}},ce=[];let de;t.nodeLabels&&U&&U.forEach((t,n)=>{const a=b&&!0!==b&&b(t);if(!0===b||a){const o="radial"===S.projection&&0!==t.depth?((t,n,a,o)=>{const r=(t.x1+t.x0)/2/o[0],s=a(t,n);return e.createElement("g",{transform:`rotate(${r>.5?360*r+90:360*r-90})`},"string"==typeof s?e.createElement("text",{textAnchor:"middle",y:5},s):s)})(t,n,!0===b?V:b,T):!0===b?V(t,n):a;let r;r=e.isValidElement(o)?{key:"node-label-"+n,type:"basic-node-label",x:t.x,y:t.y,element:o}:{key:"node-label-"+n,className:"node-label",dx:0,dy:0,x:t.x,y:t.y,color:"currentColor",note:{label:o},connector:{end:"none"},type:"label",subject:{radius:G(t)+2}},ce.push(r)}});const pe=[];if($&&["circlepack","treemap","partition","chord"].find(e=>e===S.type)||"area"===$){if("edge"!==$){const e=U.map((e,t)=>Object.assign({overlayData:e},ae({d:e,i:t,transform:`translate(${e.x},${e.y})`,styleFn:()=>({opacity:0})}).props));pe.push(...e)}"node"!==$&&ee.forEach((e,t)=>{const n=oe({d:e,i:t,transform:`translate(${e.x},${e.y})`,styleFn:()=>({opacity:0})});n&&pe.push(Object.assign({overlayData:Object.assign(Object.assign({},e),{x:void 0===e.x?(e.source.x+e.target.x)/2:e.x,y:void 0===e.y?(e.source.y+e.target.y)/2:e.y,edge:!0})},n.props))})}else"edge"===$&&"string"==typeof S.type&&Pn[S.type]?de=ee.map(Pn[S.type]):Array.isArray($)||!0===$||"node"===$?(de=U,(ne||se)&&(de=[...U])):"all"===$&&"string"==typeof S.type&&(de=[...ee.map(Pn[S.type]),...U]);return{adjustedPosition:R,adjustedSize:T,backgroundGraphics:t.backgroundGraphics,foregroundGraphics:t.foregroundGraphics,title:F,renderNumber:n.renderNumber+1,projectedNodes:U,projectedEdges:ee,projectedXYPoints:de,overlay:pe,nodeIDAccessor:V,sourceAccessor:_,targetAccessor:H,nodeSizeAccessor:G,edgeWidthAccessor:Y,margin:C,legendSettings:re,networkFrameRender:le,nodeLabelAnnotations:ce,graphSettings:Object.assign(Object.assign({},S.graphSettings),S),props:t}};const Cn={matrix:({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a})=>{let o=e;n.sort&&(o=[...e].sort(n.sort));const r=Math.min(...a)/(o.length+1);return o.forEach((e,t)=>{e.x=0,e.y=(t+1)*r}),{projectedNodes:o,projectedEdges:t}},arc:({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a})=>{let o=e;n.sort&&(o=[...e].sort(n.sort));const r=a[0]/(o.length+2);return o.forEach((e,t)=>{e.x=(t+1)*r,e.y=a[1]/2}),{projectedNodes:o,projectedEdges:t}}},Rn=Object.assign(Object.assign({chord:({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a,edgeHash:o,nodeIDAccessor:r,edgeWidthAccessor:s})=>{const i=a[1]/2,{groupWidth:l=20,padAngle:c=.01,sortGroups:d}=n,p=$().innerRadius(i-l).outerRadius(i),u=te().radius(i-l),y=(({edgeHash:e,nodes:t,edgeWidthAccessor:n,nodeIDAccessor:a})=>{const o=[];for(const r of t){const s=a(r),i=[];o.push(i);for(const o of t){const t=a(o),r=e.get(`${s}|${t}`);i.push(r?n(r):0)}}return o})({edgeHash:o,nodes:e,edgeWidthAccessor:s,nodeIDAccessor:r}),m=ne().padAngle(c);d&&m.sortGroups(d);const h=m(y);return h.groups.forEach(t=>{const n=p.centroid(t),o=p(t),r=e[t.index];r.d=o,r.index=t.index,r.x=n[0]+a[0]/2,r.y=n[1]+a[1]/2}),h.forEach(t=>{const n=u(t),s=r(e[t.source.index]),i=r(e[t.target.index]),l=o.get(`${s}|${i}`)||o.get(`${i}|${s}`);if(l){l.d=n;const e=ae(n);l.x=a[0]/2+(e.x1+e.x2)/2,l.y=a[1]/2+(e.y1+e.y2)/2}}),{projectedNodes:e,projectedEdges:t}},sankey:Mn,flowchart:Mn,force:({projectedNodes:e,projectedEdges:t,networkSettings:n,adjustedSize:a,nodeSizeAccessor:o})=>{const r=Math.max(50,Math.min(300,Math.floor(300-2*(e.length-30)))),{iterations:s=r,edgeStrength:i=.1,distanceMax:l=1/0,edgeDistance:c,forceManyBody:d=e=>-25*o(e)}=n,p=a[0]/2,u=a[1]/2;e.forEach((e,t)=>{if(null==e.x||null==e.y){const n=10*Math.sqrt(t+.5),a=2.399963229728653*t;e.x=p+n*Math.cos(a),e.y=u+n*Math.sin(a)}});const y=ce().strength(e=>Math.min(2.5,e.weight?e.weight*i:i));c&&y.distance(c);const m=n.simulation||de().force("charge",pe().distanceMax(l).strength(d));m.nodes(e);const h=a[1]/a[0];m.force("x")||m.force("x",ue(a[0]/2).strength(.1*h)),m.force("y")||m.force("y",ye(a[1]/2).strength(.1)),0===t.length||m.force("link")||(m.force("link",y),m.force("link").links(t)),.1>m.alpha()&&m.alpha(1),m.stop();for(let e=0;s>e;++e)m.tick();return{projectedNodes:e,projectedEdges:t}},motifs:({projectedNodes:e,projectedEdges:t,networkSettings:n,nodeSizeAccessor:a,size:o})=>{const r=new Map;t.forEach(e=>{[e.source,e.target].forEach(e=>{r.get(e)||r.set(e,{node:e,component:-99,connectedNodes:[],edges:[]})}),r.get(e.source).connectedNodes.push(e.target),r.get(e.target).connectedNodes.push(e.source),r.get(e.source).edges.push(e)});const s=function(e,t){const n={0:{componentNodes:[],componentEdges:[]}},a=[n[0]];let o=0;return function e(r,s){for(const i of r){const r=t.get(i);r?-99===r.component&&(!0===s&&(o++,n[o]={componentNodes:[],componentEdges:[]},a.push(n[o])),r.component=o,n[o].componentNodes.push(i),n[o].componentEdges.push(...r.edges),e([...r.connectedNodes],t)):n[0].componentNodes.push(i)}}(e,!0),a.sort((e,t)=>t.componentNodes.length-e.componentNodes.length)}(e,r),i=Math.max(e.length/3,s[0].componentNodes.length),l=o[0]>o[1]?o[1]:o[0],c=o[0]>o[1]?"horizontal":"vertical",d=Math.max(50,Math.min(300,Math.floor(300-2*(e.length-30)))),{iterations:p=d,edgeStrength:u=.1,edgeDistance:y,padding:m=0}=n;let h=m,g=m;return s.forEach(({componentNodes:e,componentEdges:t})=>{const r=ce().strength(e=>Math.min(2.5,e.weight?e.weight*u:u));y&&r.distance(y);const s=Math.max(e.length/i,.2)*l,d=s+h;"horizontal"===c?s+g>o[1]?(h=s+h+m,g=s+m):g=s+g+m:d>o[0]?(g=s+g+m,h=s+m):h=s+h+m;const f=h-s/2,b=g-s/2,k=de().force("charge",pe().strength(n.forceManyBody||(e=>-25*a(e)))).force("link",r);k.force("x",ue(f)).force("y",ye(b)).nodes(e),k.force("link").links(t),k.stop();for(let e=0;p>e;++e)k.tick();const j=x(e.map(e=>e.x)),$=x(e.map(e=>e.y)),M=v(e.map(e=>e.x)),w=v(e.map(e=>e.y)),O=E().domain([M,j]).range([h-s,h-20]),P=E().domain([w,$]).range([g-s,g-20]);e.forEach(e=>{e.x=O(e.x),e.y=P(e.y)})}),{projectedNodes:e,projectedEdges:t,components:s}}},{tree:jn,dendrogram:jn,cluster:jn,treemap:jn,circlepack:jn,partition:jn}),Cn),Tn=[],In=["nodes","edges"],Ln=["edges","nodes"],Wn={y:"y",x:"x"},Bn=E(),Vn=E(),_n={annotations:[],foregroundGraphics:[],size:[500,500],className:"",name:"networkframe",networkType:{type:"force",iterations:500},filterRenderedNodes:e=>"root-generated"!==e.id};function Hn(t){const n=Object.assign(Object.assign({},_n),t),o=l({marginCalc:ee((e,t,n)=>{const a=(({margin:e,axes:t,title:n,oLabel:a,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}=jt(n);return!l||"string"==typeof l&&0===l.length||(s[c]+=40),a&&"radial"!==o&&("bottom"===i||"top"===i?s.left+=50:s.bottom+=50),s})({margin:e,title:t,size:n}),{adjustedPosition:o,adjustedSize:r}=function({size:e=[500,500],position:t=[0,0],margin:n,projection:a}){const o=[t[0],t[1]];let r=[e[0]-(n.left+n.right),e[1]-(n.top+n.bottom)];if("radial"===a){const e=Math.min(r[0],r[1]);r=[e,e]}return{adjustedPosition:o,adjustedSize:r}}({size:n,margin:a});return{margin:a,adjustedPosition:o,adjustedSize:r}}),accessorConversions:ee((e,t,n,a,o)=>({nodeIDAccessor:Xt(e,e=>e?e.id:void 0),sourceAccessor:Xt(t,e=>e.source),targetAccessor:Xt(n,e=>e.target),nodeSizeAccessor:"number"==typeof a?tn(a):Xt(a,tn(5)),edgeWidthAccessor:Xt(o,e=>e.weight||1)})),nodeStyleFns:ee((e,t,n,a)=>({nodeStyleFn:Xt(e,()=>({}),!0),nodeClassFn:Xt(t,()=>"",!0),nodeRenderModeFn:Xt(n,void 0,!0),nodeCanvasRenderFn:a?Xt(a,void 0,!0):void 0})),edgeStyleFns:ee((e,t,n,a)=>({edgeStyleFn:Xt(e,()=>({}),!0),edgeClassFn:Xt(t,()=>"",!0),edgeRenderModeFn:Xt(n,void 0,!0),edgeCanvasRenderFn:a?Xt(a,void 0,!0):void 0}))}),r={dataVersion:void 0,nodeData:[],edgeData:[],adjustedPosition:[],adjustedSize:[],backgroundGraphics:null,foregroundGraphics:null,projectedNodes:[],projectedEdges:[],renderNumber:0,nodeLabelAnnotations:[],graphSettings:{type:"empty-start",nodes:[],edges:[],nodeHash:new Map,edgeHash:new Map,hierarchicalNetwork:!1},edgeWidthAccessor:Xt("weight"),legendSettings:void 0,margin:{top:0,left:0,right:0,bottom:0},networkFrameRender:{},nodeIDAccessor:Xt("id"),nodeSizeAccessor:tn(5),overlay:[],projectedXYPoints:[],sourceAccessor:Xt("source"),targetAccessor:Xt("target"),title:{title:void 0},props:n},s=a(()=>Object.assign(Object.assign({},r),Fn(n,r,o.current,n._layoutMap||Rn)),[]),d=function(e,t,n){let r=l(n),s=a(()=>{let e=r.current,n=function(e,t,n,a){const{props:o}=t,r=!t.dataVersion&&Qt.some(t=>o[t]!==e[t]),s=!t.dataVersion&&Ut.some(t=>o[t]!==e[t]);return t.dataVersion&&t.dataVersion!==e.dataVersion||!t.projectedNodes&&!t.projectedEdges||r||o.size[0]!==e.size[0]||o.size[1]!==e.size[1]||s?Object.assign(Object.assign({},Fn(e,t,n,a)),{props:e}):{props:e}}(a=t,e,o.current,a._layoutMap||Rn);var a;return null!=n?Object.assign(Object.assign({},e),n):e},[t]);return r.current=s,s}(0,n,s);!function(e,t){let n=l();n.current=[e,t],i(()=>()=>{const[e,t]=n.current,a=e.onUnmount;a&&a(e,t)},[])}(n,d);const p=l(n);p.current=n;const u=l(d);u.current=d;const y=c(t=>function(t,n,{d:a,i:o,annotationLayer:r}){const{projectedNodes:s,projectedEdges:i,nodeIDAccessor:l,nodeSizeAccessor:c,networkFrameRender:d,adjustedSize:p,adjustedPosition:u}=n,{svgAnnotationRules:y}=t,m=a.ids?a:Object.assign(Object.assign({},a.edge?i.find(e=>l(e.source)===l(a.edge.source)&&l(e.target)===l(a.edge.target))||{}:s.find(e=>l(e)===a.id)||{}),a),{voronoiHover:h}=r;if(y){const e=y({d:m,i:o,networkFrameProps:t,networkFrameState:n,nodes:s,edges:i,voronoiHover:h,screenCoordinates:[m.x,m.y],adjustedPosition:u,adjustedSize:p,annotationLayer:r});if(null!==e)return e}return"node"===m.type?(({d:t,i:n,nodeSizeAccessor:a})=>{if(!t)return null;const o=Object.assign({dx:t.dx||-25,dy:t.dy||-25,x:t.x,y:t.y,note:{label:t.label,orientation:t.orientation,align:t.align},connector:{end:"arrow"}},t,{type:"callout-circle",subject:{radius:t.radius||t.radius||a(t)}});return e.createElement(ke,{key:t.key||"annotation-"+n,noteData:o})})({d:m,i:o,nodeSizeAccessor:c}):"desaturation-layer"===m.type?(({style:t={fill:"white",fillOpacity:.5},size:n,i:a,key:o})=>e.createElement("rect",{"data-testid":"desaturation-layer",key:o||"desaturation-"+a,x:-5,y:-5,width:n[0]+10,height:n[1]+10,style:t}))({style:m.style instanceof Function?m.style(m,o):m.style,size:p,i:o,key:m.key}):"basic-node-label"===m.type?e.createElement("g",{key:m.key||"basic-"+o,transform:`translate(${m.x},${m.y})`},a.element||a.label):"function"==typeof m.type||Gn.has(m.type)?(({d:t,i:n,projectedNodes:a,nodeIDAccessor:o})=>{const r=void 0!==t.x&&void 0!==t.y?t:a.find(e=>o(e)===t.id);if(!r)return null;const s=Object.assign({dx:0,dy:0,x:r.x,y:r.y,note:{label:t.label},connector:{end:"arrow"}},t,{type:"function"==typeof t.type?t.type:void 0});return e.createElement(ke,{key:t.key||"annotation-"+n,noteData:s})})({d:m,i:o,projectedNodes:s,nodeIDAccessor:l}):"enclose"===m.type?(({d:t,i:n,projectedNodes:a,nodeIDAccessor:o,nodeSizeAccessor:r})=>{const s=a.filter(e=>-1!==t.ids.indexOf(o(e)));return 0===s.length?null:(({d:t,i:n,circle:a})=>{const{padding:o=2,radiusPadding:r=o,label:s}=t,i=Object.assign({dx:0,dy:0,note:{label:s},connector:{end:"arrow"}},t,{coordinates:void 0,x:a.x,y:a.y,type:"callout-circle",subject:{radius:a.r,radiusPadding:r},i:n});if(i.rp)switch(i.rp){case"top":i.dx=0,i.dy=-a.r-i.rd;break;case"bottom":i.dx=0,i.dy=a.r+i.rd;break;case"left":i.dx=-a.r-i.rd,i.dy=0;break;default:i.dx=a.r+i.rd,i.dy=0}return e.createElement(ke,{key:t.key||"annotation-"+n,noteData:i})})({circle:V(s.map(e=>({x:e.x,y:e.y,r:r(e)}))),d:t,i:n})})({d:m,i:o,projectedNodes:s,nodeIDAccessor:l,nodeSizeAccessor:c}):"enclose-rect"===m.type?(({d:t,i:n,projectedNodes:a,nodeIDAccessor:o,nodeSizeAccessor:r})=>{const s=a.filter(e=>-1!==t.ids.indexOf(o(e)));return 0===s.length?null:(({bboxNodes:t,d:n,i:a})=>{const{padding:o=0,dx:r=-25,dy:s=-25,label:i}=n,l=[[Math.min(...t.map(e=>e.x0))-o,Math.min(...t.map(e=>e.y0))-o],[Math.max(...t.map(e=>e.x1))+o,Math.max(...t.map(e=>e.y1))+o]],c=Object.assign({dx:r,dy:s,note:{label:i},connector:{end:"arrow"}},n,{type:"callout-rect",x:l[0][0],y:l[0][1],subject:{width:l[1][0]-l[0][0],height:l[1][1]-l[0][1]}});return e.createElement(ke,{key:n.key||"annotation-"+a,noteData:c})})({bboxNodes:s.map(e=>{if(e.shapeNode)return{x0:e.x0,x1:e.x1,y0:e.y0,y1:e.y1};const t=r(e);return{x0:e.x-t,x1:e.x+t,y0:e.y-t,y1:e.y+t}}),d:t,i:n})})({d:m,i:o,projectedNodes:s,nodeIDAccessor:l,nodeSizeAccessor:c}):"enclose-hull"===m.type?(({d:t,i:n,projectedNodes:a,nodeIDAccessor:o,nodeSizeAccessor:r})=>{const s=a.filter(e=>-1!==t.ids.indexOf(o(e)));if(0===s.length)return null;const i=[];return s.forEach(e=>{if(e.shapeNode)i.push({x:e.x0,y:e.y0}),i.push({x:e.x0,y:e.y1}),i.push({x:e.x1,y:e.y0}),i.push({x:e.x1,y:e.y1});else{const t=r(e);i.push({x:e.x-t,y:e.y-t}),i.push({x:e.x+t,y:e.y-t}),i.push({x:e.x-t,y:e.y+t}),i.push({x:e.x+t,y:e.y+t})}}),(({points:t,d:n,i:a})=>{const{color:o="currentColor",dx:r=-25,dy:s=-25,label:i,padding:l=10,buffer:c=l,strokeWidth:d=10}=n,p=K(t),u=(new Z).data([...p,p[0]]).margin(c)[0],y=`M${u.map(e=>e.join(",")).join("L")}Z`,m=u[0],{nx:h=m[0]+r,ny:g=m[1]+s}=n,f=u.reduce((e,t)=>(Math.hypot(h-e[0],g-e[1])>Math.hypot(h-t[0],g-t[1])&&(e=t),e),m),x=Object.assign({dx:r,dy:s,note:{label:i},connector:{end:"arrow"}},n,{type:"callout-custom",x:f[0],y:f[1],subject:{custom:[e.createElement("path",{key:"hull-drawing",d:y,strokeWidth:d,strokeMiterlimit:"10",strokeLinejoin:"miter",strokeLinecap:"butt",fill:"none",stroke:o,transform:`translate(${-f[0]},${-f[1]})`})],customID:"hull-annotation"}});return e.createElement(ke,{key:n.key||"annotation-"+a,noteData:x})})({points:i.map(e=>[e.x,e.y]),d:t,i:n})})({d:m,i:o,projectedNodes:s,nodeIDAccessor:l,nodeSizeAccessor:c}):"highlight"===m.type?(({d:e,i:t,networkFrameRender:n})=>{const{nodes:a}=n,{customMark:o,styleFn:r}=a;let s=r;return e.style&&"function"==typeof e.style?s=e=>Object.assign(Object.assign({},r(e)),e.style(e)):e.style&&(s=e=>Object.assign(Object.assign({},r(e)),e.style)),o({d:e,styleFn:s,transform:`translate(${e.x},${e.y})`,key:"highlight-"+t})})({d:m,i:o,networkFrameRender:d}):null}(p.current,u.current,t),[]),m=c(t=>function(t,n,{d:a,i:o,annotationLayer:r}){const{tooltipContent:s,optimizeCustomTooltipPosition:i,htmlAnnotationRules:l}=t,{projectedNodes:c,projectedEdges:d,nodeIDAccessor:p,adjustedSize:u,adjustedPosition:y}=n,{voronoiHover:m}=r,h=a.ids?a:Object.assign(Object.assign({},a.edge?d.find(e=>p(e.source)===p(a.source)&&p(e.target)===p(a.target))||{}:c.find(e=>p(e)===a.id)||{}),a);if(l){const e=l({d:h,i:o,networkFrameProps:t,networkFrameState:n,nodes:c,edges:d,voronoiHover:m,screenCoordinates:[h.x,h.y],adjustedPosition:y,adjustedSize:u,annotationLayer:r});if(null!==e)return e}return"frame-hover"===h.type?(({d:t,i:n,tooltipContent:a,optimizeCustomTooltipPosition:o,nodes:r,edges:s,nodeIDAccessor:i,adjustedSize:l})=>{const c=void 0!==t.x&&void 0!==t.y?t:t.edge?Object.assign(Object.assign({},s.find(e=>i(e.source)===i(t.source)&&i(e.target)===i(t.target))||{}),t):r.find(e=>i(e)===t.id);if(!c)return null;let d=c.edge?e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},e.createElement("p",{key:"html-annotation-content-1"},(c.source||c.edge.source).id," to ",(c.target||c.edge.target).id)):e.createElement("div",{className:"tooltip-content","data-testid":"tooltip-content"},e.createElement("p",{key:"html-annotation-content-1"},c.id),e.createElement("p",{key:"html-annotation-content-2"},"Degree: ",c.degree));"frame-hover"===c.type&&a&&(d=o?e.createElement(en,{tooltipContent:a,tooltipContentArgs:c}):a(c));const p={position:"absolute",top:c.y+"px"};return l&&c.x>l[0]/2?p.right=l[0]-c.x+"px":p.left=c.x+"px",e.createElement("div",{key:"network-annotation-label-"+n,className:"annotation annotation-network-label "+(c.className||""),"data-testid":"network-tooltip-container",style:p},d)})({d:h,i:o,tooltipContent:s,optimizeCustomTooltipPosition:i,nodes:c,edges:d,nodeIDAccessor:p,adjustedSize:u}):null}(p.current,u.current,t),[]),{annotations:h=[],annotationSettings:g,className:f,customClickBehavior:x,customDoubleClickBehavior:b,customHoverBehavior:v,size:k,matte:E,hoverAnnotation:j,beforeElements:$,afterElements:M,interaction:w,disableContext:O,canvasPostProcess:P,canvasNodes:S,canvasEdges:A,additionalDefs:D,renderOrder:N=(d.graphSettings&&"matrix"===d.graphSettings.type?In:Ln),sketchyRenderingEngine:z,frameRenderOrder:F,disableCanvasInteraction:C,interactionSettings:R,disableProgressiveRendering:T,transition:I}=n,{backgroundGraphics:L,foregroundGraphics:W,projectedXYPoints:B,margin:_,legendSettings:H,adjustedPosition:G,adjustedSize:Y,networkFrameRender:X,nodeLabelAnnotations:q,overlay:Q,title:U}=d,J=a(()=>Q&&Q.length>0?Q:void 0,[Q]),te=a(()=>Array.isArray(j)?j:!(x||b||v)||void 0!==j&&!1!==j?!!j:Tn,[j,x,b,v]),ne=a(()=>[...h,...q],[h,q]),ae=a(()=>!(!S&&!A),[S,A]);return e.createElement(Rt,{name:"networkframe",renderPipeline:X,adjustedPosition:G,adjustedSize:Y,size:k,xScale:Bn,yScale:Vn,title:U,matte:E,className:f,additionalDefs:D,frameKey:"none",projectedCoordinateNames:Wn,defaultSVGRule:y,defaultHTMLRule:m,hoverAnnotation:te,annotations:ne,annotationSettings:g,legendSettings:H,interaction:w,customClickBehavior:x,customHoverBehavior:v,customDoubleClickBehavior:b,points:B,margin:_,overlay:J,backgroundGraphics:L,foregroundGraphics:W,beforeElements:$,afterElements:M,disableContext:O,canvasPostProcess:P,canvasRendering:ae,renderOrder:N,disableCanvasInteraction:C,sketchyRenderingEngine:z,frameRenderOrder:F,interactionSettings:R,disableProgressiveRendering:T,transition:I})}const Gn=new Set(["label","callout","callout-circle","callout-rect","callout-custom","xy-threshold","bracket"]);Hn.displayName="NetworkFrame";const Yn=e.memo(Hn),Xn=(t=>{function n(n){const{responsiveWidth:a,responsiveHeight:o,size:i=[500,500],dataVersion:c,debounce:d=200,gridDisplay:p}=n,u=Ce(n,["responsiveWidth","responsiveHeight","size","dataVersion","debounce","gridDisplay"]),y=[...i];let m=!1,h=l(),g=function(e){const[t,n]=r(null);return s(()=>{const t=e.current;if(null!=t){n(t.getBoundingClientRect());const e=new ResizeObserver(e=>{e.length>0&&n(e[0].contentRect)});return e.observe(t),()=>e.disconnect()}},[]),t}(h);return a&&(null==g?m=!0:y[0]=g.width),o&&(null==g?m=!0:y[1]=g.height),e.createElement("div",{"data-testid":"responsive-container",className:"responsive-container",style:p?{minWidth:"0px",minHeight:"0px"}:{height:"100%",width:"100%"},ref:h},!m&&e.createElement(t,Object.assign({},u,{size:y,dataVersion:c?c+""+y+d:void 0})))}return n.isResizing=setTimeout(()=>{}),n.displayName="Responsive"+t.displayName,n})(Yn),qn={margin:0};function Kn(e="force"){let t={};return e?(t=e,"force"===e&&(t={type:"force"}),Object.assign({edgeStrength:2,edgeDistance:5,nodePadding:1,nodeWidth:5,groupWidth:4},t)):e}function Zn(t,n,a){return a=>{const{size:o=[],sparkStyle:s={}}=a,[i,l]=r(30),d=[];d[0]="number"==typeof o?o:o[0]?o[0]:i,d[1]=i;const p=c(e=>{if(e){const t=+window.getComputedStyle(e).lineHeight.split("px")[0]-5;l(isNaN(t)?e.offsetHeight:t)}},[]);return e.createElement("div",{style:Object.assign({width:d[0]+"px",height:d[1]+"px",display:"inline-block",marginLeft:"5px",marginRight:"5px"},s),ref:p},e.createElement(t,Object.assign({},n(a),{size:d})))}}const Qn=Zn(Yn,e=>Object.assign(Object.assign(Object.assign(Object.assign({},qn),{nodeSizeAccessor:2}),e),{networkType:Kn(e.networkType)}));export{ke as Annotation,De as AnnotationLayer,Et as Axis,fe as Legend,Yn as NetworkFrame,Xn as ResponsiveNetworkFrame,Qn as SparkNetworkFrame,Kt as calculateDataExtent,zn as nodesEdgesFromHierarchy};
|