@undp/data-viz 1.5.8 → 2.0.0
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/dist/AreaChart.cjs +1 -1
- package/dist/AreaChart.cjs.map +1 -1
- package/dist/AreaChart.d.ts +1 -0
- package/dist/AreaChart.js +420 -520
- package/dist/AreaChart.js.map +1 -1
- package/dist/Axis-CRyfcLjc.js +32 -0
- package/dist/Axis-CRyfcLjc.js.map +1 -0
- package/dist/Axis-DxRV2yMi.cjs +2 -0
- package/dist/Axis-DxRV2yMi.cjs.map +1 -0
- package/dist/AxisTitle-jeI7am8o.js +29 -0
- package/dist/AxisTitle-jeI7am8o.js.map +1 -0
- package/dist/AxisTitle-sS5bLLR7.cjs +2 -0
- package/dist/AxisTitle-sS5bLLR7.cjs.map +1 -0
- package/dist/BarGraph.cjs +1 -1
- package/dist/BarGraph.cjs.map +1 -1
- package/dist/BarGraph.d.ts +1 -0
- package/dist/BarGraph.js +2188 -4045
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +1 -1
- package/dist/BasicStatCard.cjs.map +1 -1
- package/dist/BasicStatCard.d.ts +1 -0
- package/dist/BasicStatCard.js +120 -186
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +1 -1
- package/dist/BeeSwarmChart.cjs.map +1 -1
- package/dist/BeeSwarmChart.d.ts +5 -0
- package/dist/BeeSwarmChart.js +501 -1019
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.cjs.map +1 -1
- package/dist/BiVariateChoroplethMap.d.ts +3 -0
- package/dist/BiVariateChoroplethMap.js +458 -706
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +1 -1
- package/dist/BulletChart.cjs.map +1 -1
- package/dist/BulletChart.d.ts +1 -0
- package/dist/BulletChart.js +863 -1414
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +1 -1
- package/dist/ButterflyChart.cjs.map +1 -1
- package/dist/ButterflyChart.d.ts +1 -0
- package/dist/ButterflyChart.js +474 -684
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +3 -0
- package/dist/ChoroplethMap.js +469 -731
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +1 -1
- package/dist/CirclePackingGraph.d.ts +1 -0
- package/dist/CirclePackingGraph.js +5 -4
- package/dist/CirclePackingGraph.js.map +1 -1
- package/dist/ColorLegend.cjs +1 -1
- package/dist/ColorLegend.cjs.map +1 -1
- package/dist/ColorLegend.js +57 -44
- package/dist/ColorLegend.js.map +1 -1
- package/dist/ColorLegendWithMouseOver.cjs +1 -1
- package/dist/ColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ColorLegendWithMouseOver.js +60 -65
- package/dist/ColorLegendWithMouseOver.js.map +1 -1
- package/dist/Colors.cjs.map +1 -1
- package/dist/Colors.js +44 -430
- package/dist/Colors.js.map +1 -1
- package/dist/CopyTextButton.cjs +4 -4
- package/dist/CopyTextButton.cjs.map +1 -1
- package/dist/CopyTextButton.js +537 -455
- package/dist/CopyTextButton.js.map +1 -1
- package/dist/CsvDownloadButton.cjs +7 -7
- package/dist/CsvDownloadButton.cjs.map +1 -1
- package/dist/CsvDownloadButton.js +442 -447
- package/dist/CsvDownloadButton.js.map +1 -1
- package/dist/DataCards.cjs +5 -5
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.d.ts +1 -0
- package/dist/DataCards.js +488 -581
- package/dist/DataCards.js.map +1 -1
- package/dist/DataTable.cjs +1 -1
- package/dist/DataTable.cjs.map +1 -1
- package/dist/DataTable.d.ts +1 -0
- package/dist/DataTable.js +183 -326
- package/dist/DataTable.js.map +1 -1
- package/dist/DifferenceLineChart.cjs +1 -1
- package/dist/DifferenceLineChart.cjs.map +1 -1
- package/dist/DifferenceLineChart.d.ts +1 -0
- package/dist/DifferenceLineChart.js +729 -794
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +1 -1
- package/dist/DonutChart.cjs.map +1 -1
- package/dist/DonutChart.d.ts +1 -4
- package/dist/DonutChart.js +260 -444
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.cjs.map +1 -1
- package/dist/DotDensityMap.d.ts +3 -0
- package/dist/DotDensityMap.js +388 -582
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/{DropdownSelect-CtOKZHD0.js → DropdownSelect-BbdPQa2k.js} +1401 -1374
- package/dist/DropdownSelect-BbdPQa2k.js.map +1 -0
- package/dist/DropdownSelect-Doz3mCrM.cjs +29 -0
- package/dist/DropdownSelect-Doz3mCrM.cjs.map +1 -0
- package/dist/DualAxisLineChart.cjs +1 -1
- package/dist/DualAxisLineChart.cjs.map +1 -1
- package/dist/DualAxisLineChart.d.ts +1 -0
- package/dist/DualAxisLineChart.js +617 -712
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +1 -1
- package/dist/DumbbellChart.cjs.map +1 -1
- package/dist/DumbbellChart.d.ts +1 -0
- package/dist/DumbbellChart.js +789 -1499
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/EmptyState-BZo1BbAn.js +15 -0
- package/dist/{EmptyState-DdTp-Mdn.js.map → EmptyState-BZo1BbAn.js.map} +1 -1
- package/dist/EmptyState-sAEZ_5rU.cjs +2 -0
- package/dist/{EmptyState-d8_8SxeW.cjs.map → EmptyState-sAEZ_5rU.cjs.map} +1 -1
- package/dist/ExcelDownloadButton.cjs +1 -1
- package/dist/ExcelDownloadButton.cjs.map +1 -1
- package/dist/ExcelDownloadButton.js +20 -24
- package/dist/ExcelDownloadButton.js.map +1 -1
- package/dist/FootNote.cjs +1 -1
- package/dist/FootNote.cjs.map +1 -1
- package/dist/FootNote.js +26 -17
- package/dist/FootNote.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +1 -1
- package/dist/GeoHubCompareMaps.cjs.map +1 -1
- package/dist/GeoHubCompareMaps.d.ts +1 -0
- package/dist/GeoHubCompareMaps.js +264 -354
- package/dist/GeoHubCompareMaps.js.map +1 -1
- package/dist/GeoHubMap.cjs +1 -1
- package/dist/GeoHubMap.cjs.map +1 -1
- package/dist/GeoHubMap.d.ts +1 -0
- package/dist/GeoHubMap.js +214 -409
- package/dist/GeoHubMap.js.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.d.ts +1 -0
- package/dist/GeoHubMapWithLayerSelection.js +192 -293
- package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
- package/dist/GraphContainer-CRqzdKu2.js +78 -0
- package/dist/GraphContainer-CRqzdKu2.js.map +1 -0
- package/dist/GraphContainer-d8A46BK2.cjs +2 -0
- package/dist/GraphContainer-d8A46BK2.cjs.map +1 -0
- package/dist/GraphDescription.cjs +1 -1
- package/dist/GraphDescription.cjs.map +1 -1
- package/dist/GraphDescription.js +23 -17
- package/dist/GraphDescription.js.map +1 -1
- package/dist/GraphEl-BkyLYXG5.cjs +2 -0
- package/dist/GraphEl-BkyLYXG5.cjs.map +1 -0
- package/dist/{GraphEl-CqWzvOyr.js → GraphEl-DzRon4cb.js} +184 -202
- package/dist/GraphEl-DzRon4cb.js.map +1 -0
- package/dist/GraphFooter.cjs +1 -1
- package/dist/GraphFooter.cjs.map +1 -1
- package/dist/GraphFooter.js +28 -18
- package/dist/GraphFooter.js.map +1 -1
- package/dist/GraphHeader.cjs +1 -1
- package/dist/GraphHeader.cjs.map +1 -1
- package/dist/GraphHeader.d.ts +2 -1
- package/dist/GraphHeader.js +45 -59
- package/dist/GraphHeader.js.map +1 -1
- package/dist/GraphTitle.cjs +1 -1
- package/dist/GraphTitle.cjs.map +1 -1
- package/dist/GraphTitle.js +29 -24
- package/dist/GraphTitle.js.map +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +2 -0
- package/dist/GriddedGraphs.js +216 -450
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.cjs +1 -1
- package/dist/GriddedGraphsFromConfig.cjs.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +2 -0
- package/dist/GriddedGraphsFromConfig.js +22 -36
- package/dist/GriddedGraphsFromConfig.js.map +1 -1
- package/dist/HeatMap.cjs +1 -1
- package/dist/HeatMap.cjs.map +1 -1
- package/dist/HeatMap.d.ts +1 -0
- package/dist/HeatMap.js +278 -446
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +1 -1
- package/dist/Histogram.cjs.map +1 -1
- package/dist/Histogram.d.ts +1 -0
- package/dist/Histogram.js +154 -264
- package/dist/Histogram.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +1 -1
- package/dist/ImageDownloadButton.cjs.map +1 -1
- package/dist/ImageDownloadButton.d.ts +2 -1
- package/dist/ImageDownloadButton.js +21 -25
- package/dist/ImageDownloadButton.js.map +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
- package/dist/LineChartWithConfidenceInterval.d.ts +1 -0
- package/dist/LineChartWithConfidenceInterval.js +674 -825
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +1 -1
- package/dist/LinearColorLegend.cjs.map +1 -1
- package/dist/LinearColorLegend.js +49 -30
- package/dist/LinearColorLegend.js.map +1 -1
- package/dist/Modal-DGcuAHyK.js +1047 -0
- package/dist/Modal-DGcuAHyK.js.map +1 -0
- package/dist/Modal-JW_IExO3.cjs +46 -0
- package/dist/Modal-JW_IExO3.cjs.map +1 -0
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +2 -0
- package/dist/MultiGraphDashboard.js +122 -290
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +2 -0
- package/dist/MultiGraphDashboardFromConfig.js +22 -31
- package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormat.js +137 -223
- package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +1 -0
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +25 -27
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
- package/dist/MultiLineAltChart.cjs +1 -1
- package/dist/MultiLineAltChart.cjs.map +1 -1
- package/dist/MultiLineAltChart.d.ts +1 -0
- package/dist/MultiLineAltChart.js +581 -659
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +1 -1
- package/dist/MultiLineChart.cjs.map +1 -1
- package/dist/MultiLineChart.d.ts +1 -0
- package/dist/MultiLineChart.js +617 -725
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +1 -1
- package/dist/ParetoChart.cjs.map +1 -1
- package/dist/ParetoChart.d.ts +1 -0
- package/dist/ParetoChart.js +531 -635
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +147 -338
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +22 -31
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs +1 -1
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -1
- package/dist/PerformanceIntensiveScrollStory.d.ts +2 -0
- package/dist/PerformanceIntensiveScrollStory.js +93 -114
- package/dist/PerformanceIntensiveScrollStory.js.map +1 -1
- package/dist/RadarChart.cjs +1 -1
- package/dist/RadarChart.cjs.map +1 -1
- package/dist/RadarChart.d.ts +1 -0
- package/dist/RadarChart.js +426 -575
- package/dist/RadarChart.js.map +1 -1
- package/dist/ReferenceLine-2XCwHXQ4.js +162 -0
- package/dist/ReferenceLine-2XCwHXQ4.js.map +1 -0
- package/dist/ReferenceLine-BH0qdf4R.cjs +2 -0
- package/dist/ReferenceLine-BH0qdf4R.cjs.map +1 -0
- package/dist/RegressionLine-BOTTNSrr.cjs +2 -0
- package/dist/RegressionLine-BOTTNSrr.cjs.map +1 -0
- package/dist/RegressionLine-DAcY2DjT.js +87 -0
- package/dist/RegressionLine-DAcY2DjT.js.map +1 -0
- package/dist/SVGDownloadButton.cjs +1 -1
- package/dist/SVGDownloadButton.cjs.map +1 -1
- package/dist/SVGDownloadButton.js +21 -25
- package/dist/SVGDownloadButton.js.map +1 -1
- package/dist/SankeyChart.cjs +1 -1
- package/dist/SankeyChart.cjs.map +1 -1
- package/dist/SankeyChart.d.ts +1 -0
- package/dist/SankeyChart.js +665 -854
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +1 -1
- package/dist/ScatterPlot.cjs.map +1 -1
- package/dist/ScatterPlot.d.ts +1 -0
- package/dist/ScatterPlot.js +675 -815
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.cjs +1 -1
- package/dist/ScrollStory.cjs.map +1 -1
- package/dist/ScrollStory.d.ts +2 -0
- package/dist/ScrollStory.js +85 -97
- package/dist/ScrollStory.js.map +1 -1
- package/dist/SimpleLineChart.cjs +1 -1
- package/dist/SimpleLineChart.cjs.map +1 -1
- package/dist/SimpleLineChart.d.ts +1 -0
- package/dist/SimpleLineChart.js +504 -613
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +3 -1
- package/dist/SingleGraphDashboard.js +279 -507
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +3 -1
- package/dist/SingleGraphDashboardFromConfig.js +25 -31
- package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +2 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js +146 -168
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +2 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -21
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +2 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +356 -589
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +2 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +25 -31
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -1
- package/dist/SlopeChart.cjs +1 -1
- package/dist/SlopeChart.cjs.map +1 -1
- package/dist/SlopeChart.d.ts +1 -0
- package/dist/SlopeChart.js +539 -573
- package/dist/SlopeChart.js.map +1 -1
- package/dist/Source-DYMJRrsq.cjs +2 -0
- package/dist/Source-DYMJRrsq.cjs.map +1 -0
- package/dist/Source-DwTHB8fn.js +78 -0
- package/dist/Source-DwTHB8fn.js.map +1 -0
- package/dist/Source.cjs +1 -1
- package/dist/Source.cjs.map +1 -1
- package/dist/Source.js +4 -38
- package/dist/Source.js.map +1 -1
- package/dist/SparkLine.cjs +1 -1
- package/dist/SparkLine.cjs.map +1 -1
- package/dist/SparkLine.d.ts +1 -0
- package/dist/SparkLine.js +286 -314
- package/dist/SparkLine.js.map +1 -1
- package/dist/Spinner-D7rnnwnA.js +47 -0
- package/dist/Spinner-D7rnnwnA.js.map +1 -0
- package/dist/Spinner-DRMBUsX7.cjs +2 -0
- package/dist/Spinner-DRMBUsX7.cjs.map +1 -0
- package/dist/StatCardFromData.cjs +1 -1
- package/dist/StatCardFromData.cjs.map +1 -1
- package/dist/StatCardFromData.d.ts +1 -0
- package/dist/StatCardFromData.js +163 -243
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +1 -1
- package/dist/StripChart.cjs.map +1 -1
- package/dist/StripChart.d.ts +1 -0
- package/dist/StripChart.js +665 -983
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +3 -0
- package/dist/ThreeDGlobe.js +355 -526
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.js +96 -126
- package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
- package/dist/Tooltip-4dJo4_AF.cjs +2 -0
- package/dist/Tooltip-4dJo4_AF.cjs.map +1 -0
- package/dist/Tooltip-CwWUegPB.js +43 -0
- package/dist/Tooltip-CwWUegPB.js.map +1 -0
- package/dist/TreeMapGraph.cjs +1 -1
- package/dist/TreeMapGraph.cjs.map +1 -1
- package/dist/TreeMapGraph.d.ts +1 -0
- package/dist/TreeMapGraph.js +479 -617
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.d.ts +2 -0
- package/dist/Typography-DX7PlgQU.cjs +2 -0
- package/dist/Typography-DX7PlgQU.cjs.map +1 -0
- package/dist/Typography-PxtFcnJb.js +142 -0
- package/dist/Typography-PxtFcnJb.js.map +1 -0
- package/dist/UnitChart.cjs +1 -1
- package/dist/UnitChart.cjs.map +1 -1
- package/dist/UnitChart.d.ts +1 -0
- package/dist/UnitChart.js +160 -212
- package/dist/UnitChart.js.map +1 -1
- package/dist/XAxesLabels-D5X8jngD.cjs +2 -0
- package/dist/XAxesLabels-D5X8jngD.cjs.map +1 -0
- package/dist/XAxesLabels-DNO0KmjL.js +73 -0
- package/dist/XAxesLabels-DNO0KmjL.js.map +1 -0
- package/dist/XTicksAndGridLines-B6CELS7q.cjs +2 -0
- package/dist/XTicksAndGridLines-B6CELS7q.cjs.map +1 -0
- package/dist/XTicksAndGridLines-CObVFSm4.js +38 -0
- package/dist/XTicksAndGridLines-CObVFSm4.js.map +1 -0
- package/dist/YAxesLabels-DcS85Beo.cjs +2 -0
- package/dist/YAxesLabels-DcS85Beo.cjs.map +1 -0
- package/dist/YAxesLabels-Dnnng49-.js +70 -0
- package/dist/YAxesLabels-Dnnng49-.js.map +1 -0
- package/dist/YTicksAndGridLines-4pxTRlRK.cjs +2 -0
- package/dist/YTicksAndGridLines-4pxTRlRK.cjs.map +1 -0
- package/dist/YTicksAndGridLines-Blepl7XF.js +38 -0
- package/dist/YTicksAndGridLines-Blepl7XF.js.map +1 -0
- package/dist/{band-BEjh2CHI.js → band-CyHaVft5.js} +3 -3
- package/dist/{band-BEjh2CHI.js.map → band-CyHaVft5.js.map} +1 -1
- package/dist/{band-CAApY4Pd.cjs → band-VYfcZeJ2.cjs} +2 -2
- package/dist/{band-CAApY4Pd.cjs.map → band-VYfcZeJ2.cjs.map} +1 -1
- package/dist/checkIfMultiple-Y9iKaV_u.js +950 -0
- package/dist/checkIfMultiple-Y9iKaV_u.js.map +1 -0
- package/dist/checkIfMultiple-wg6hJLXy.cjs +12 -0
- package/dist/checkIfMultiple-wg6hJLXy.cjs.map +1 -0
- package/dist/customArea-BUhPiPT6.js +163 -0
- package/dist/{customArea-B-dWU0zZ.js.map → customArea-BUhPiPT6.js.map} +1 -1
- package/dist/customArea-CMF5g-C3.cjs +2 -0
- package/dist/{customArea-CK768gCn.cjs.map → customArea-CMF5g-C3.cjs.map} +1 -1
- package/dist/delaunay-C1uAf38t.js.map +1 -1
- package/dist/delaunay-rcy0HhZi.cjs.map +1 -1
- package/dist/{ensureCompleteData-DlmibgaI.js → ensureCompleteData-DNKEGRiP.js} +12 -32
- package/dist/{ensureCompleteData-DlmibgaI.js.map → ensureCompleteData-DNKEGRiP.js.map} +1 -1
- package/dist/{ensureCompleteData-DkQYPeDa.cjs → ensureCompleteData-I6nYmT8E.cjs} +2 -2
- package/dist/{ensureCompleteData-DkQYPeDa.cjs.map → ensureCompleteData-I6nYmT8E.cjs.map} +1 -1
- package/dist/{excelDownload-BOA-lskf.js → excelDownload-BEC1AyQW.js} +12 -2
- package/dist/{excelDownload-BOA-lskf.js.map → excelDownload-BEC1AyQW.js.map} +1 -1
- package/dist/excelDownload-BQpsCa62.cjs.map +1 -1
- package/dist/{fetchAndParseData-sapWbnYk.js → fetchAndParseData-BpqkBPQL.js} +15 -28
- package/dist/{fetchAndParseData-sapWbnYk.js.map → fetchAndParseData-BpqkBPQL.js.map} +1 -1
- package/dist/fetchAndParseData-l5HGMAEs.cjs +16 -0
- package/dist/{fetchAndParseData-Ba-_CgxS.cjs.map → fetchAndParseData-l5HGMAEs.cjs.map} +1 -1
- package/dist/fetchAndParseData.cjs +1 -1
- package/dist/fetchAndParseData.js +1 -1
- package/dist/{filterData-9nEcQ-Jp.js → filterData-DsAiFzKY.js} +3 -5
- package/dist/{filterData-9nEcQ-Jp.js.map → filterData-DsAiFzKY.js.map} +1 -1
- package/dist/{filterData-BoYadk0l.cjs → filterData-T5DQBE9b.cjs} +2 -2
- package/dist/{filterData-BoYadk0l.cjs.map → filterData-T5DQBE9b.cjs.map} +1 -1
- package/dist/generateRandomString-B5zBiJzS.cjs.map +1 -1
- package/dist/generateRandomString-za3IQGfQ.js.map +1 -1
- package/dist/{getCentroidCoordinates-Dfk6IqEG.js → getCentroidCoordinates-D7r34N4w.js} +2 -2
- package/dist/{getCentroidCoordinates-Dfk6IqEG.js.map → getCentroidCoordinates-D7r34N4w.js.map} +1 -1
- package/dist/{getCentroidCoordinates-DxTBqzp2.cjs → getCentroidCoordinates-Dng1HVjO.cjs} +2 -2
- package/dist/{getCentroidCoordinates-DxTBqzp2.cjs.map → getCentroidCoordinates-Dng1HVjO.cjs.map} +1 -1
- package/dist/getGraphList-BpEWn1Tk.js +227 -0
- package/dist/{getGraphList-DuColTJM.js.map → getGraphList-BpEWn1Tk.js.map} +1 -1
- package/dist/getGraphList-gf02xgT2.cjs.map +1 -1
- package/dist/getJenks-BbngDoBQ.js.map +1 -1
- package/dist/getJenks-GYmdwBqm.cjs.map +1 -1
- package/dist/getSchema.cjs.map +1 -1
- package/dist/getSchema.js +445 -231
- package/dist/getSchema.js.map +1 -1
- package/dist/getSliderMarks-BmADcPQt.cjs +6 -0
- package/dist/getSliderMarks-BmADcPQt.cjs.map +1 -0
- package/dist/getSliderMarks-HIDJ0_Cd.js +1033 -0
- package/dist/getSliderMarks-HIDJ0_Cd.js.map +1 -0
- package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js → getTextColorBasedOnBgColor-CDY808zi.js} +11 -3
- package/dist/{getTextColorBasedOnBgColor-B6Nk2WBf.js.map → getTextColorBasedOnBgColor-CDY808zi.js.map} +1 -1
- package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -1
- package/dist/{getUniqValue-DiCh_MOD.js → getUniqValue-BKHCm3zE.js} +2 -4
- package/dist/{getUniqValue-DiCh_MOD.js.map → getUniqValue-BKHCm3zE.js.map} +1 -1
- package/dist/getUniqValue-RViz8tTw.cjs.map +1 -1
- package/dist/{imageDownload-Dcci2LEy.js → imageDownload-BX6SILNZ.js} +4 -2
- package/dist/{imageDownload-Dcci2LEy.js.map → imageDownload-BX6SILNZ.js.map} +1 -1
- package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -1
- package/dist/{index-DvVprvy6.js → index-BZQYSqar.js} +7 -7
- package/dist/{index-DvVprvy6.js.map → index-BZQYSqar.js.map} +1 -1
- package/dist/index-B_sAFsEV.cjs +2 -0
- package/dist/{index-BYzIB5V6.cjs.map → index-B_sAFsEV.cjs.map} +1 -1
- package/dist/index-BqfRwk1n.js +146 -0
- package/dist/index-BqfRwk1n.js.map +1 -0
- package/dist/{index-V_JXij1_.js → index-BuwmuDFJ.js} +3 -3
- package/dist/{index-V_JXij1_.js.map → index-BuwmuDFJ.js.map} +1 -1
- package/dist/index-CHPV5EwG-CTPQjnHt.cjs +84 -0
- package/dist/index-CHPV5EwG-CTPQjnHt.cjs.map +1 -0
- package/dist/{index-CHPV5EwG-BPSP-7Jg.js → index-CHPV5EwG-Curnpaqc.js} +937 -842
- package/dist/index-CHPV5EwG-Curnpaqc.js.map +1 -0
- package/dist/index-Cno4Q0YE.cjs +2 -0
- package/dist/{index-CQ3e6Ewi.cjs.map → index-Cno4Q0YE.cjs.map} +1 -1
- package/dist/{index-tvAyXPPW-DBlMKnNB.js → index-Cw8sCyo_-B2hEKjzG.js} +16 -16
- package/dist/{index-tvAyXPPW-DBlMKnNB.js.map → index-Cw8sCyo_-B2hEKjzG.js.map} +1 -1
- package/dist/index-Cw8sCyo_-BrHiWiRF.cjs +2 -0
- package/dist/index-Cw8sCyo_-BrHiWiRF.cjs.map +1 -0
- package/dist/index-CyZ1lmi_.cjs +2 -0
- package/dist/{index-D72cOtq7.cjs.map → index-CyZ1lmi_.cjs.map} +1 -1
- package/dist/index-D491FEn1.js +184 -0
- package/dist/index-D491FEn1.js.map +1 -0
- package/dist/index-DG2bgAva.cjs +10 -0
- package/dist/index-DG2bgAva.cjs.map +1 -0
- package/dist/index-DRXx7m-C.cjs +2 -0
- package/dist/index-DRXx7m-C.cjs.map +1 -0
- package/dist/index-DoY3Ga3W.cjs +2 -0
- package/dist/index-DoY3Ga3W.cjs.map +1 -0
- package/dist/index-DxXnJ8Ti.cjs +2 -0
- package/dist/index-DxXnJ8Ti.cjs.map +1 -0
- package/dist/{index-DG3YrCr5-D3FrrXj8.js → index-Dzc_aaI9-Bb7gobH_.js} +2 -2
- package/dist/{index-DG3YrCr5-D3FrrXj8.js.map → index-Dzc_aaI9-Bb7gobH_.js.map} +1 -1
- package/dist/{index-DG3YrCr5-v7rayV3N.cjs → index-Dzc_aaI9-BmkfPMyc.cjs} +2 -2
- package/dist/{index-DG3YrCr5-v7rayV3N.cjs.map → index-Dzc_aaI9-BmkfPMyc.cjs.map} +1 -1
- package/dist/{index-9tDEUqOZ.js → index-GEsywGxz.js} +9 -9
- package/dist/index-GEsywGxz.js.map +1 -0
- package/dist/index-SKgJALZg.js +99 -0
- package/dist/{index-DKCxu1Gh.js.map → index-SKgJALZg.js.map} +1 -1
- package/dist/index-leTnKT2q.js +329 -0
- package/dist/index-leTnKT2q.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +19 -8
- package/dist/index.js +13 -13
- package/dist/{init-BhZylTFx.js → init-BJFW6EwE.js} +3 -3
- package/dist/{init-BhZylTFx.js.map → init-BJFW6EwE.js.map} +1 -1
- package/dist/{linear-BVckp9RD.cjs → linear-BwPAspcq.cjs} +2 -2
- package/dist/{linear-BVckp9RD.cjs.map → linear-BwPAspcq.cjs.map} +1 -1
- package/dist/{linear-DUdu7l2G.js → linear-BwnDd9KF.js} +3 -3
- package/dist/{linear-DUdu7l2G.js.map → linear-BwnDd9KF.js.map} +1 -1
- package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -1
- package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -1
- package/dist/{ordinal-BOeNbyae.cjs → ordinal-CrsysVE-.cjs} +2 -2
- package/dist/ordinal-CrsysVE-.cjs.map +1 -0
- package/dist/{ordinal-w9Lu4Stb.js → ordinal-P77xw8aL.js} +24 -24
- package/dist/ordinal-P77xw8aL.js.map +1 -0
- package/dist/{pow-e8zx3AQJ.js → pow-DE4c7dbW.js} +3 -3
- package/dist/{pow-e8zx3AQJ.js.map → pow-DE4c7dbW.js.map} +1 -1
- package/dist/{pow-B5-jkdHU.cjs → pow-DgrUorRi.cjs} +2 -2
- package/dist/{pow-B5-jkdHU.cjs.map → pow-DgrUorRi.cjs.map} +1 -1
- package/dist/{proxy-CkpFesk1.js → proxy-BxkFHwUw.js} +144 -134
- package/dist/proxy-BxkFHwUw.js.map +1 -0
- package/dist/proxy-BxvUI_9l.cjs +2 -0
- package/dist/proxy-BxvUI_9l.cjs.map +1 -0
- package/dist/{removeOutliers-DR48e-18.js → removeOutliers-BqW0sPqj.js} +2 -5
- package/dist/{removeOutliers-DR48e-18.js.map → removeOutliers-BqW0sPqj.js.map} +1 -1
- package/dist/removeOutliers-WELHHqiI.cjs.map +1 -1
- package/dist/{sort-DfK1b0F5.js → sort-BIvMlUH1.js} +5 -5
- package/dist/{sort-DfK1b0F5.js.map → sort-BIvMlUH1.js.map} +1 -1
- package/dist/{string-CRoCZCYa.cjs → string-C-kRh1bQ.cjs} +2 -2
- package/dist/{string-CRoCZCYa.cjs.map → string-C-kRh1bQ.cjs.map} +1 -1
- package/dist/{string-B8KlVSPX.js → string-C_xJ4Wg4.js} +3 -3
- package/dist/{string-B8KlVSPX.js.map → string-C_xJ4Wg4.js.map} +1 -1
- package/dist/string2HTML-CPGr_I5E.cjs +3 -0
- package/dist/{string2HTML-z7CwHXcx.cjs.map → string2HTML-CPGr_I5E.cjs.map} +1 -1
- package/dist/{string2HTML-oFCROsus.js → string2HTML-DhG75NqA.js} +15 -9
- package/dist/{string2HTML-oFCROsus.js.map → string2HTML-DhG75NqA.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{svgDownload-C2-E3yf2.js → svgDownload-BAoarWNt.js} +4 -2
- package/dist/{svgDownload-C2-E3yf2.js.map → svgDownload-BAoarWNt.js.map} +1 -1
- package/dist/svgDownload-D9zEGjTF.cjs.map +1 -1
- package/dist/{threshold-DFfqcDMa.js → threshold-Bgr20hik.js} +2 -2
- package/dist/{threshold-DFfqcDMa.js.map → threshold-Bgr20hik.js.map} +1 -1
- package/dist/{time-Byw_jYQ7.cjs → time-CZd5YLSP.cjs} +2 -2
- package/dist/{time-Byw_jYQ7.cjs.map → time-CZd5YLSP.cjs.map} +1 -1
- package/dist/{time-BzJP5SPC.js → time-DCCfQk3V.js} +3 -3
- package/dist/{time-BzJP5SPC.js.map → time-DCCfQk3V.js.map} +1 -1
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.js +3 -3
- package/dist/transformDataForAggregation-CE3bAlHU.js +585 -0
- package/dist/{transformDataForAggregation-sBpdlX8n.js.map → transformDataForAggregation-CE3bAlHU.js.map} +1 -1
- package/dist/transformDataForAggregation-KXGm6flX.cjs.map +1 -1
- package/dist/transformDataForGraphFromFile-BExxcITV.js +14 -0
- package/dist/{transformDataForGraphFromFile-ComYvzuz.js.map → transformDataForGraphFromFile-BExxcITV.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs → transformDataForGraphFromFile-DaJHQCsL.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-DVZodTHd.cjs.map → transformDataForGraphFromFile-DaJHQCsL.cjs.map} +1 -1
- package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -1
- package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -1
- package/dist/uniqBy-BHy4I8PK.js.map +1 -1
- package/dist/uniqBy-O05lp2S5.cjs.map +1 -1
- package/dist/{use-in-view-yS6jzJAp.js → use-in-view-Cxa7y1TH.js} +2 -2
- package/dist/use-in-view-Cxa7y1TH.js.map +1 -0
- package/dist/use-in-view-QcfiW0w3.cjs +2 -0
- package/dist/use-in-view-QcfiW0w3.cjs.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +8 -8
- package/dist/validateSchema.cjs.map +1 -1
- package/dist/validateSchema.js +33 -29
- package/dist/validateSchema.js.map +1 -1
- package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs → x-BBpi7a_7-mTo40uId.cjs} +2 -2
- package/dist/{x-BBpi7a_7-Dz2vKSfu.cjs.map → x-BBpi7a_7-mTo40uId.cjs.map} +1 -1
- package/dist/{y-D0sAaVii.js → y-BqfogMAB.js} +3 -3
- package/dist/{y-D0sAaVii.js.map → y-BqfogMAB.js.map} +1 -1
- package/dist/{zoom-QipiAl5W.js → zoom-C9MFjAaV.js} +5 -5
- package/dist/{zoom-QipiAl5W.js.map → zoom-C9MFjAaV.js.map} +1 -1
- package/dist/zoom-DPw8bba-.cjs +2 -0
- package/dist/{zoom-BiMNsz72.cjs.map → zoom-DPw8bba-.cjs.map} +1 -1
- package/package.json +9 -8
- package/dist/Axis-DE7dSn1_.cjs +0 -2
- package/dist/Axis-DE7dSn1_.cjs.map +0 -1
- package/dist/Axis-Ddg-seDi.js +0 -43
- package/dist/Axis-Ddg-seDi.js.map +0 -1
- package/dist/AxisTitle-BmHLMRJZ.js +0 -20
- package/dist/AxisTitle-BmHLMRJZ.js.map +0 -1
- package/dist/AxisTitle-CK9YeovX.cjs +0 -2
- package/dist/AxisTitle-CK9YeovX.cjs.map +0 -1
- package/dist/DropdownSelect-CtOKZHD0.js.map +0 -1
- package/dist/DropdownSelect-DBDM64B5.cjs +0 -29
- package/dist/DropdownSelect-DBDM64B5.cjs.map +0 -1
- package/dist/EmptyState-DdTp-Mdn.js +0 -22
- package/dist/EmptyState-d8_8SxeW.cjs +0 -2
- package/dist/GraphEl-C6yjl1VM.cjs +0 -2
- package/dist/GraphEl-C6yjl1VM.cjs.map +0 -1
- package/dist/GraphEl-CqWzvOyr.js.map +0 -1
- package/dist/Modal-DVVwpKhP.js +0 -1019
- package/dist/Modal-DVVwpKhP.js.map +0 -1
- package/dist/Modal-tXZlLE5s.cjs +0 -46
- package/dist/Modal-tXZlLE5s.cjs.map +0 -1
- package/dist/ReferenceLine-CFVBBN__.cjs +0 -2
- package/dist/ReferenceLine-CFVBBN__.cjs.map +0 -1
- package/dist/ReferenceLine-CfAW3vKJ.js +0 -128
- package/dist/ReferenceLine-CfAW3vKJ.js.map +0 -1
- package/dist/RegressionLine-C2--oMQq.js +0 -49
- package/dist/RegressionLine-C2--oMQq.js.map +0 -1
- package/dist/RegressionLine-Dj0GSiAp.cjs +0 -2
- package/dist/RegressionLine-Dj0GSiAp.cjs.map +0 -1
- package/dist/Spinner-C85UF28E.js +0 -30
- package/dist/Spinner-C85UF28E.js.map +0 -1
- package/dist/Spinner-DA6Z5E4n.cjs +0 -2
- package/dist/Spinner-DA6Z5E4n.cjs.map +0 -1
- package/dist/Tooltip-CVCGWyzw.js +0 -46
- package/dist/Tooltip-CVCGWyzw.js.map +0 -1
- package/dist/Tooltip-De16GWhY.cjs +0 -2
- package/dist/Tooltip-De16GWhY.cjs.map +0 -1
- package/dist/Typography-Ctgfl1J5.js +0 -140
- package/dist/Typography-Ctgfl1J5.js.map +0 -1
- package/dist/Typography-k-kOjICQ.cjs +0 -2
- package/dist/Typography-k-kOjICQ.cjs.map +0 -1
- package/dist/XAxesLabels-Drf7M3YK.cjs +0 -2
- package/dist/XAxesLabels-Drf7M3YK.cjs.map +0 -1
- package/dist/XAxesLabels-loO78vUO.js +0 -57
- package/dist/XAxesLabels-loO78vUO.js.map +0 -1
- package/dist/XTicksAndGridLines-Bn9u5gOM.js +0 -56
- package/dist/XTicksAndGridLines-Bn9u5gOM.js.map +0 -1
- package/dist/XTicksAndGridLines-CCzXIV8d.cjs +0 -2
- package/dist/XTicksAndGridLines-CCzXIV8d.cjs.map +0 -1
- package/dist/YAxesLabels-DECkMgq8.js +0 -52
- package/dist/YAxesLabels-DECkMgq8.js.map +0 -1
- package/dist/YAxesLabels-yRFFdx1s.cjs +0 -2
- package/dist/YAxesLabels-yRFFdx1s.cjs.map +0 -1
- package/dist/YTicksAndGridLines-B6ah7CRf.js +0 -56
- package/dist/YTicksAndGridLines-B6ah7CRf.js.map +0 -1
- package/dist/YTicksAndGridLines-DBDuz6vb.cjs +0 -2
- package/dist/YTicksAndGridLines-DBDuz6vb.cjs.map +0 -1
- package/dist/checkIfMultiple-BXbHUCWM.cjs +0 -12
- package/dist/checkIfMultiple-BXbHUCWM.cjs.map +0 -1
- package/dist/checkIfMultiple-ChTJk2Tk.js +0 -912
- package/dist/checkIfMultiple-ChTJk2Tk.js.map +0 -1
- package/dist/customArea-B-dWU0zZ.js +0 -175
- package/dist/customArea-CK768gCn.cjs +0 -2
- package/dist/fetchAndParseData-Ba-_CgxS.cjs +0 -16
- package/dist/getGraphList-DuColTJM.js +0 -265
- package/dist/getSliderMarks-9cNoRkDx.js +0 -1023
- package/dist/getSliderMarks-9cNoRkDx.js.map +0 -1
- package/dist/getSliderMarks-CRIbTGYV.cjs +0 -6
- package/dist/getSliderMarks-CRIbTGYV.cjs.map +0 -1
- package/dist/index-37q0ULNQ.js +0 -430
- package/dist/index-37q0ULNQ.js.map +0 -1
- package/dist/index-9tDEUqOZ.js.map +0 -1
- package/dist/index-BW8iNx7E.cjs +0 -10
- package/dist/index-BW8iNx7E.cjs.map +0 -1
- package/dist/index-BW_-wD2k.cjs +0 -2
- package/dist/index-BW_-wD2k.cjs.map +0 -1
- package/dist/index-BYzIB5V6.cjs +0 -2
- package/dist/index-BmCqpO1B.js +0 -342
- package/dist/index-BmCqpO1B.js.map +0 -1
- package/dist/index-CHPV5EwG-BPSP-7Jg.js.map +0 -1
- package/dist/index-CHPV5EwG-DDoeWRVt.cjs +0 -44
- package/dist/index-CHPV5EwG-DDoeWRVt.cjs.map +0 -1
- package/dist/index-CNvov0eg.js +0 -122
- package/dist/index-CNvov0eg.js.map +0 -1
- package/dist/index-CQ3e6Ewi.cjs +0 -2
- package/dist/index-CVlCtJbC.cjs +0 -2
- package/dist/index-CVlCtJbC.cjs.map +0 -1
- package/dist/index-CoZbeNM9.cjs +0 -2
- package/dist/index-CoZbeNM9.cjs.map +0 -1
- package/dist/index-D72cOtq7.cjs +0 -2
- package/dist/index-DKCxu1Gh.js +0 -77
- package/dist/index-tvAyXPPW-DPOG-C2i.cjs +0 -2
- package/dist/index-tvAyXPPW-DPOG-C2i.cjs.map +0 -1
- package/dist/ordinal-BOeNbyae.cjs.map +0 -1
- package/dist/ordinal-w9Lu4Stb.js.map +0 -1
- package/dist/proxy-BHRoeZgd.cjs +0 -2
- package/dist/proxy-BHRoeZgd.cjs.map +0 -1
- package/dist/proxy-CkpFesk1.js.map +0 -1
- package/dist/string2HTML-z7CwHXcx.cjs +0 -3
- package/dist/transformDataForAggregation-sBpdlX8n.js +0 -755
- package/dist/transformDataForGraphFromFile-ComYvzuz.js +0 -24
- package/dist/use-in-view-sQJZ_xDO.cjs +0 -2
- package/dist/use-in-view-sQJZ_xDO.cjs.map +0 -1
- package/dist/use-in-view-yS6jzJAp.js.map +0 -1
- package/dist/zoom-BiMNsz72.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delaunay-rcy0HhZi.cjs","sources":["../node_modules/robust-predicates/esm/util.js","../node_modules/robust-predicates/esm/orient2d.js","../node_modules/delaunator/index.js","../node_modules/d3-delaunay/src/path.js","../node_modules/d3-delaunay/src/polygon.js","../node_modules/d3-delaunay/src/voronoi.js","../node_modules/d3-delaunay/src/delaunay.js"],"sourcesContent":["export const epsilon = 1.1102230246251565e-16;\nexport const splitter = 134217729;\nexport const resulterrbound = (3 + 8 * epsilon) * epsilon;\n\n// fast_expansion_sum_zeroelim routine from oritinal code\nexport function sum(elen, e, flen, f, h) {\n let Q, Qnew, hh, bvirt;\n let enow = e[0];\n let fnow = f[0];\n let eindex = 0;\n let findex = 0;\n if ((fnow > enow) === (fnow > -enow)) {\n Q = enow;\n enow = e[++eindex];\n } else {\n Q = fnow;\n fnow = f[++findex];\n }\n let hindex = 0;\n if (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = enow + Q;\n hh = Q - (Qnew - enow);\n enow = e[++eindex];\n } else {\n Qnew = fnow + Q;\n hh = Q - (Qnew - fnow);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n while (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n } else {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n }\n while (eindex < elen) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n while (findex < flen) {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function sum_three(alen, a, blen, b, clen, c, tmp, out) {\n return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);\n}\n\n// scale_expansion_zeroelim routine from oritinal code\nexport function scale(elen, e, b, h) {\n let Q, sum, hh, product1, product0;\n let bvirt, c, ahi, alo, bhi, blo;\n\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n let enow = e[0];\n Q = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);\n let hindex = 0;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n for (let i = 1; i < elen; i++) {\n enow = e[i];\n product1 = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);\n sum = Q + product0;\n bvirt = sum - Q;\n hh = Q - (sum - bvirt) + (product0 - bvirt);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n Q = product1 + sum;\n hh = sum - (Q - product1);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function negate(elen, e) {\n for (let i = 0; i < elen; i++) e[i] = -e[i];\n return elen;\n}\n\nexport function estimate(elen, e) {\n let Q = e[0];\n for (let i = 1; i < elen; i++) Q += e[i];\n return Q;\n}\n\nexport function vec(n) {\n return new Float64Array(n);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';\n\nconst ccwerrboundA = (3 + 16 * epsilon) * epsilon;\nconst ccwerrboundB = (2 + 12 * epsilon) * epsilon;\nconst ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;\n\nconst B = vec(4);\nconst C1 = vec(8);\nconst C2 = vec(12);\nconst D = vec(16);\nconst u = vec(4);\n\nfunction orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {\n let acxtail, acytail, bcxtail, bcytail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const acx = ax - cx;\n const bcx = bx - cx;\n const acy = ay - cy;\n const bcy = by - cy;\n\n s1 = acx * bcy;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcx;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n B[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n B[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n B[2] = _j - (u3 - bvirt) + (_i - bvirt);\n B[3] = u3;\n\n let det = estimate(4, B);\n let errbound = ccwerrboundB * detsum;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - acx;\n acxtail = ax - (acx + bvirt) + (bvirt - cx);\n bvirt = bx - bcx;\n bcxtail = bx - (bcx + bvirt) + (bvirt - cx);\n bvirt = ay - acy;\n acytail = ay - (acy + bvirt) + (bvirt - cy);\n bvirt = by - bcy;\n bcytail = by - (bcy + bvirt) + (bvirt - cy);\n\n if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {\n return det;\n }\n\n errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);\n det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);\n if (det >= errbound || -det >= errbound) return det;\n\n s1 = acxtail * bcy;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcx;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C1len = sum(4, B, 4, u, C1);\n\n s1 = acx * bcytail;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcxtail;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C2len = sum(C1len, C1, 4, u, C2);\n\n s1 = acxtail * bcytail;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcxtail;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const Dlen = sum(C2len, C2, 4, u, D);\n\n return D[Dlen - 1];\n}\n\nexport function orient2d(ax, ay, bx, by, cx, cy) {\n const detleft = (ay - cy) * (bx - cx);\n const detright = (ax - cx) * (by - cy);\n const det = detleft - detright;\n\n const detsum = Math.abs(detleft + detright);\n if (Math.abs(det) >= ccwerrboundA * detsum) return det;\n\n return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);\n}\n\nexport function orient2dfast(ax, ay, bx, by, cx, cy) {\n return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nimport {orient2d} from 'robust-predicates';\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0, minDist = Infinity; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n // find the point closest to the seed\n for (let i = 0, minDist = Infinity; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n const d = this._dists[id];\n if (d > d0) {\n hull[j++] = id;\n d0 = d;\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n let bx, by; // lazily computed barycenter of the hull\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (Math.abs(ab) < 1e-9) {\n // For a degenerate triangle, the circumcenter is at the infinity, in a\n // direction orthogonal to the halfedge and away from the “center” of\n // the diagram <bx, by>, defined as the hull’s barycenter.\n if (bx === undefined) {\n bx = by = 0;\n for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];\n bx /= hull.length, by /= hull.length;\n }\n const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);\n x = (x1 + x3) / 2 - a * ey;\n y = (y1 + y3) / 2 + a * ex;\n } else {\n const d = 1 / ab;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] === cj[aj]\n && ci[ai + 1] === cj[aj + 1]\n && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return this._simplify(V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points));\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1 = 0;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n // for more robustness, always consider the segment in the same order\n const flip = c0 < c1;\n if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];\n while (true) {\n if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are\n // undefined, the conditional statement will be executed.\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n _simplify(P) {\n if (P && P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {\n P.splice(j, 2), i -= 2;\n }\n }\n if (!P.length) P = null;\n }\n return P;\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n inedges[hull[0]] = 1;\n if (hull.length === 2) {\n inedges[hull[1]] = 0;\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n }\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r) {\n if (r === undefined && (!context || typeof context.moveTo !== \"function\")) r = context, context = null;\n r = r == undefined ? 2 : +r;\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n"],"names":["epsilon","splitter","resulterrbound","sum","elen","e","flen","f","h","Q","Qnew","hh","bvirt","enow","fnow","eindex","findex","hindex","estimate","i","vec","n","ccwerrboundA","ccwerrboundB","ccwerrboundC","B","C1","C2","D","u","orient2dadapt","ax","ay","bx","by","cx","cy","detsum","acxtail","acytail","bcxtail","bcytail","ahi","alo","bhi","blo","_i","_j","_0","s1","s0","t1","t0","u3","acx","bcx","acy","bcy","det","errbound","C1len","C2len","Dlen","orient2d","detleft","detright","EPSILON","EDGE_STACK","Delaunator","points","getX","defaultGetX","getY","defaultGetY","coords","p","maxTriangles","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","y","i0","i1","i2","minDist","d","dist","i0x","i0y","i1x","i1y","minRadius","r","circumradius","i2x","i2y","quicksort","hull","j","d0","id","center","circumcenter","hullSize","k","xp","yp","x","start","key","q","t","pseudoAngle","a","triangles","halfedges","ar","b","a0","b0","al","bl","p0","pr","pl","p1","inCircle","hbl","br","c","dx","dy","px","py","ex","ey","fx","fy","ap","bp","cp","cl","ids","dists","left","right","temp","tempDist","median","swap","arr","tmp","Path","x0","y0","w","Polygon","Voronoi","delaunay","xmin","ymin","xmax","ymax","vectors","circumcenters","t2","t3","x1","y1","x2","y2","x3","y3","ab","context","buffer","inedges","ti","tj","xi","yi","xj","yj","h0","h1","v","cell","polygon","S","c0","c1","ci","cj","loop","ai","li","aj","lj","e0","V","P","e1","sx0","sy0","sx1","sy1","flip","vx0","vy0","vxn","vyn","vx","vy","tau","pow","pointX","pointY","collinear","jitter","Delaunay","that","flatArray","flatIterable","_","bounds","hullIndex","_hullIndex","l","dc","dt","array"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
1
|
+
{"version":3,"file":"delaunay-rcy0HhZi.cjs","sources":["../node_modules/delaunator/node_modules/robust-predicates/esm/util.js","../node_modules/delaunator/node_modules/robust-predicates/esm/orient2d.js","../node_modules/delaunator/index.js","../node_modules/d3-delaunay/src/path.js","../node_modules/d3-delaunay/src/polygon.js","../node_modules/d3-delaunay/src/voronoi.js","../node_modules/d3-delaunay/src/delaunay.js"],"sourcesContent":["export const epsilon = 1.1102230246251565e-16;\nexport const splitter = 134217729;\nexport const resulterrbound = (3 + 8 * epsilon) * epsilon;\n\n// fast_expansion_sum_zeroelim routine from oritinal code\nexport function sum(elen, e, flen, f, h) {\n let Q, Qnew, hh, bvirt;\n let enow = e[0];\n let fnow = f[0];\n let eindex = 0;\n let findex = 0;\n if ((fnow > enow) === (fnow > -enow)) {\n Q = enow;\n enow = e[++eindex];\n } else {\n Q = fnow;\n fnow = f[++findex];\n }\n let hindex = 0;\n if (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = enow + Q;\n hh = Q - (Qnew - enow);\n enow = e[++eindex];\n } else {\n Qnew = fnow + Q;\n hh = Q - (Qnew - fnow);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n while (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n } else {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n }\n while (eindex < elen) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n while (findex < flen) {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function sum_three(alen, a, blen, b, clen, c, tmp, out) {\n return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);\n}\n\n// scale_expansion_zeroelim routine from oritinal code\nexport function scale(elen, e, b, h) {\n let Q, sum, hh, product1, product0;\n let bvirt, c, ahi, alo, bhi, blo;\n\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n let enow = e[0];\n Q = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);\n let hindex = 0;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n for (let i = 1; i < elen; i++) {\n enow = e[i];\n product1 = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);\n sum = Q + product0;\n bvirt = sum - Q;\n hh = Q - (sum - bvirt) + (product0 - bvirt);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n Q = product1 + sum;\n hh = sum - (Q - product1);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function negate(elen, e) {\n for (let i = 0; i < elen; i++) e[i] = -e[i];\n return elen;\n}\n\nexport function estimate(elen, e) {\n let Q = e[0];\n for (let i = 1; i < elen; i++) Q += e[i];\n return Q;\n}\n\nexport function vec(n) {\n return new Float64Array(n);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';\n\nconst ccwerrboundA = (3 + 16 * epsilon) * epsilon;\nconst ccwerrboundB = (2 + 12 * epsilon) * epsilon;\nconst ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;\n\nconst B = vec(4);\nconst C1 = vec(8);\nconst C2 = vec(12);\nconst D = vec(16);\nconst u = vec(4);\n\nfunction orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {\n let acxtail, acytail, bcxtail, bcytail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const acx = ax - cx;\n const bcx = bx - cx;\n const acy = ay - cy;\n const bcy = by - cy;\n\n s1 = acx * bcy;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcx;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n B[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n B[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n B[2] = _j - (u3 - bvirt) + (_i - bvirt);\n B[3] = u3;\n\n let det = estimate(4, B);\n let errbound = ccwerrboundB * detsum;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - acx;\n acxtail = ax - (acx + bvirt) + (bvirt - cx);\n bvirt = bx - bcx;\n bcxtail = bx - (bcx + bvirt) + (bvirt - cx);\n bvirt = ay - acy;\n acytail = ay - (acy + bvirt) + (bvirt - cy);\n bvirt = by - bcy;\n bcytail = by - (bcy + bvirt) + (bvirt - cy);\n\n if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {\n return det;\n }\n\n errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);\n det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);\n if (det >= errbound || -det >= errbound) return det;\n\n s1 = acxtail * bcy;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcx;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C1len = sum(4, B, 4, u, C1);\n\n s1 = acx * bcytail;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcxtail;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C2len = sum(C1len, C1, 4, u, C2);\n\n s1 = acxtail * bcytail;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcxtail;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const Dlen = sum(C2len, C2, 4, u, D);\n\n return D[Dlen - 1];\n}\n\nexport function orient2d(ax, ay, bx, by, cx, cy) {\n const detleft = (ay - cy) * (bx - cx);\n const detright = (ax - cx) * (by - cy);\n const det = detleft - detright;\n\n const detsum = Math.abs(detleft + detright);\n if (Math.abs(det) >= ccwerrboundA * detsum) return det;\n\n return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);\n}\n\nexport function orient2dfast(ax, ay, bx, by, cx, cy) {\n return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nimport {orient2d} from 'robust-predicates';\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0, minDist = Infinity; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n // find the point closest to the seed\n for (let i = 0, minDist = Infinity; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n const d = this._dists[id];\n if (d > d0) {\n hull[j++] = id;\n d0 = d;\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n let bx, by; // lazily computed barycenter of the hull\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (Math.abs(ab) < 1e-9) {\n // For a degenerate triangle, the circumcenter is at the infinity, in a\n // direction orthogonal to the halfedge and away from the “center” of\n // the diagram <bx, by>, defined as the hull’s barycenter.\n if (bx === undefined) {\n bx = by = 0;\n for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];\n bx /= hull.length, by /= hull.length;\n }\n const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);\n x = (x1 + x3) / 2 - a * ey;\n y = (y1 + y3) / 2 + a * ex;\n } else {\n const d = 1 / ab;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] === cj[aj]\n && ci[ai + 1] === cj[aj + 1]\n && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return this._simplify(V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points));\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1 = 0;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n // for more robustness, always consider the segment in the same order\n const flip = c0 < c1;\n if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];\n while (true) {\n if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are\n // undefined, the conditional statement will be executed.\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n _simplify(P) {\n if (P && P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {\n P.splice(j, 2), i -= 2;\n }\n }\n if (!P.length) P = null;\n }\n return P;\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n inedges[hull[0]] = 1;\n if (hull.length === 2) {\n inedges[hull[1]] = 0;\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n }\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r) {\n if (r === undefined && (!context || typeof context.moveTo !== \"function\")) r = context, context = null;\n r = r == undefined ? 2 : +r;\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n"],"names":["epsilon","splitter","resulterrbound","sum","elen","e","flen","f","h","Q","Qnew","hh","bvirt","enow","fnow","eindex","findex","hindex","estimate","i","vec","n","ccwerrboundA","ccwerrboundB","ccwerrboundC","B","C1","C2","D","u","orient2dadapt","ax","ay","bx","by","cx","cy","detsum","acxtail","acytail","bcxtail","bcytail","ahi","alo","bhi","blo","_i","_j","_0","s1","s0","t1","t0","u3","acx","bcx","acy","bcy","det","errbound","C1len","C2len","Dlen","orient2d","detleft","detright","EPSILON","EDGE_STACK","Delaunator","points","getX","defaultGetX","getY","defaultGetY","coords","p","maxTriangles","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","y","i0","i1","i2","minDist","d","dist","i0x","i0y","i1x","i1y","minRadius","r","circumradius","i2x","i2y","quicksort","hull","j","d0","id","center","circumcenter","hullSize","k","xp","yp","x","start","key","q","t","pseudoAngle","a","triangles","halfedges","ar","b","a0","b0","al","bl","p0","pr","pl","p1","inCircle","hbl","br","c","dx","dy","px","py","ex","ey","fx","fy","ap","bp","cp","cl","ids","dists","left","right","temp","tempDist","median","swap","arr","tmp","Path","x0","y0","w","Polygon","Voronoi","delaunay","xmin","ymin","xmax","ymax","vectors","circumcenters","t2","t3","x1","y1","x2","y2","x3","y3","ab","context","buffer","inedges","ti","tj","xi","yi","xj","yj","h0","h1","v","cell","polygon","S","c0","c1","ci","cj","loop","ai","li","aj","lj","e0","V","P","e1","sx0","sy0","sx1","sy1","flip","vx0","vy0","vxn","vyn","vx","vy","tau","pow","pointX","pointY","collinear","jitter","Delaunay","that","flatArray","flatIterable","_","bounds","hullIndex","_hullIndex","l","dc","dt","array"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as m } from "./parse-DlCRUFh_.js";
|
|
2
|
-
import { o as c } from "./index-
|
|
2
|
+
import { o as c } from "./index-BZQYSqar.js";
|
|
3
3
|
function h(o, a) {
|
|
4
4
|
const i = Array.from(new Set(o.map((t) => t.label))), n = Array.from(new Set(o.map((t) => t.date))).filter((t) => t !== void 0);
|
|
5
5
|
if (n.length === 0) return o;
|
|
@@ -17,11 +17,7 @@ function h(o, a) {
|
|
|
17
17
|
date: r
|
|
18
18
|
});
|
|
19
19
|
});
|
|
20
|
-
}), c(
|
|
21
|
-
e,
|
|
22
|
-
[(t) => m(`${t.date}`, a || "yyyy", /* @__PURE__ */ new Date())],
|
|
23
|
-
["asc"]
|
|
24
|
-
);
|
|
20
|
+
}), c(e, [(t) => m(`${t.date}`, a || "yyyy", /* @__PURE__ */ new Date())], ["asc"]);
|
|
25
21
|
}
|
|
26
22
|
function u(o, a) {
|
|
27
23
|
const i = Array.from(new Set(o.map((e) => e.label))), n = Array.from(new Set(o.map((e) => e.date))).filter((e) => e !== void 0);
|
|
@@ -38,11 +34,7 @@ function u(o, a) {
|
|
|
38
34
|
date: t
|
|
39
35
|
});
|
|
40
36
|
});
|
|
41
|
-
}), c(
|
|
42
|
-
s,
|
|
43
|
-
[(e) => m(`${e.date}`, a || "yyyy", /* @__PURE__ */ new Date())],
|
|
44
|
-
["asc"]
|
|
45
|
-
);
|
|
37
|
+
}), c(s, [(e) => m(`${e.date}`, a || "yyyy", /* @__PURE__ */ new Date())], ["asc"]);
|
|
46
38
|
}
|
|
47
39
|
function y(o, a) {
|
|
48
40
|
const i = Array.from(new Set(o.map((e) => e.label))), n = Array.from(new Set(o.map((e) => e.date))).filter((e) => e !== void 0);
|
|
@@ -60,11 +52,7 @@ function y(o, a) {
|
|
|
60
52
|
date: t
|
|
61
53
|
});
|
|
62
54
|
});
|
|
63
|
-
}), c(
|
|
64
|
-
s,
|
|
65
|
-
[(e) => m(`${e.date}`, a, /* @__PURE__ */ new Date())],
|
|
66
|
-
["asc"]
|
|
67
|
-
);
|
|
55
|
+
}), c(s, [(e) => m(`${e.date}`, a, /* @__PURE__ */ new Date())], ["asc"]);
|
|
68
56
|
}
|
|
69
57
|
function $(o, a) {
|
|
70
58
|
const i = Array.from(new Set(o.map((t) => t.label))), n = Array.from(new Set(o.map((t) => t.date))).filter((t) => t !== void 0);
|
|
@@ -85,11 +73,7 @@ function $(o, a) {
|
|
|
85
73
|
date: r
|
|
86
74
|
});
|
|
87
75
|
});
|
|
88
|
-
}), c(
|
|
89
|
-
e,
|
|
90
|
-
[(t) => m(`${t.date}`, a, /* @__PURE__ */ new Date())],
|
|
91
|
-
["asc"]
|
|
92
|
-
);
|
|
76
|
+
}), c(e, [(t) => m(`${t.date}`, a, /* @__PURE__ */ new Date())], ["asc"]);
|
|
93
77
|
}
|
|
94
78
|
function b(o, a) {
|
|
95
79
|
const i = Array.from(new Set(o.map((e) => e.label))), n = Array.from(new Set(o.map((e) => e.date))).filter((e) => e !== void 0);
|
|
@@ -106,17 +90,13 @@ function b(o, a) {
|
|
|
106
90
|
date: t
|
|
107
91
|
});
|
|
108
92
|
});
|
|
109
|
-
}), c(
|
|
110
|
-
s,
|
|
111
|
-
[(e) => m(`${e.date}`, a || "yyyy", /* @__PURE__ */ new Date())],
|
|
112
|
-
["asc"]
|
|
113
|
-
);
|
|
93
|
+
}), c(s, [(e) => m(`${e.date}`, a || "yyyy", /* @__PURE__ */ new Date())], ["asc"]);
|
|
114
94
|
}
|
|
115
95
|
export {
|
|
116
|
-
|
|
117
|
-
b,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
96
|
+
$ as a,
|
|
97
|
+
y as b,
|
|
98
|
+
u as c,
|
|
99
|
+
h as d,
|
|
100
|
+
b as e
|
|
121
101
|
};
|
|
122
|
-
//# sourceMappingURL=ensureCompleteData-
|
|
102
|
+
//# sourceMappingURL=ensureCompleteData-DNKEGRiP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureCompleteData-DlmibgaI.js","sources":["../src/Utils/ensureCompleteData.ts"],"sourcesContent":["import { parse } from 'date-fns/parse';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n BarGraphDataType,\r\n ButterflyChartDataType,\r\n DumbbellChartDataType,\r\n GroupedBarGraphDataType,\r\n ScatterPlotDataType,\r\n} from '@/Types';\r\n\r\nexport function ensureCompleteDataForBarChart(data: BarGraphDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n size: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForStackedBarChart(\r\n data: GroupedBarGraphDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n size: data[0].size.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForButterFlyChart(\r\n data: ButterflyChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n leftBar: undefined,\r\n rightBar: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForScatterPlot(data: ScatterPlotDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n x: undefined,\r\n y: undefined,\r\n radius: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForDumbbellChart(\r\n data: DumbbellChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n x: data[0].x.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n"],"names":["ensureCompleteDataForBarChart","data","dateFormat","labels","d","dates","existingCombinations","colors","acc","curr","completeData","label","date","orderBy","parse","ensureCompleteDataForStackedBarChart","ensureCompleteDataForButterFlyChart","ensureCompleteDataForScatterPlot","ensureCompleteDataForDumbbellChart"],"mappings":";;AAWO,SAASA,EAA8BC,GAA0BC,GAAoB;AAE1F,QAAMC,IAAS,MAAM,KAAK,IAAI,IAAIF,EAAK,IAAI,CAAAG,MAAKA,EAAE,KAAK,CAAC,CAAC,GACnDC,IAAQ,MAAM,KAAK,IAAI,IAAIJ,EAAK,IAAI,CAAAG,MAAKA,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAAA,MAAKA,MAAM,MAAS;AACpF,MAAIC,EAAM,WAAW,EAAG,QAAOJ;AAG/B,QAAMK,IAAuB,IAAI;AAAA;AAAA,IAE/BL,EAAK,IAAI,CAACG,MAAW,GAAGA,EAAE,KAAK,IAAIA,EAAE,IAAI,EAAE;AAAA,EAAA,GAIvCG,IAASN,EAAK,OAAO,CAACO,GAAUC,OAC/BD,EAAIC,EAAK,KAAK,MACjBD,EAAIC,EAAK,KAAK,IAAIA,EAAK,QAElBD,IACN,CAAA,CAAE,GAGCE,IAAe,CAAC,GAAGT,CAAI;AAE7B,SAAAE,EAAO,QAAQ,CAAAQ,MAAS;AACtB,IAAAN,EAAM,QAAQ,CAAAO,MAAQ;AACpB,MAAKN,EAAqB,IAAI,GAAGK,CAAK,IAAIC,CAAI,EAAE,KAC9CF,EAAa,KAAK;AAAA,QAChB,OAAAC;AAAA,QACA,OAAOJ,EAAOI,CAAK;AAAA;AAAA,QACnB,MAAM;AAAA,QACN,MAAAC;AAAA,MAAA,CACD;AAAA,IAEL,CAAC;AAAA,EACH,CAAC,GAEMC;AAAA,IACLH;AAAA,IACA,CAAC,CAAAN,MAAKU,EAAM,GAAGV,EAAE,IAAI,IAAIF,KAAc,QAAQ,oBAAI,KAAA,CAAM,CAAC;AAAA,IAC1D,CAAC,KAAK;AAAA,EAAA;AAEV;AAEO,SAASa,EACdd,GACAC,GACA;AAEA,QAAMC,IAAS,MAAM,KAAK,IAAI,IAAIF,EAAK,IAAI,CAAAG,MAAKA,EAAE,KAAK,CAAC,CAAC,GACnDC,IAAQ,MAAM,KAAK,IAAI,IAAIJ,EAAK,IAAI,CAAAG,MAAKA,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAAA,MAAKA,MAAM,MAAS;AACpF,MAAIC,EAAM,WAAW,EAAG,QAAOJ;AAE/B,QAAMK,IAAuB,IAAI;AAAA;AAAA,IAE/BL,EAAK,IAAI,CAACG,MAAW,GAAGA,EAAE,KAAK,IAAIA,EAAE,IAAI,EAAE;AAAA,EAAA,GAIvCM,IAAe,CAAC,GAAGT,CAAI;AAE7B,SAAAE,EAAO,QAAQ,CAAAQ,MAAS;AACtB,IAAAN,EAAM,QAAQ,CAAAO,MAAQ;AACpB,MAAKN,EAAqB,IAAI,GAAGK,CAAK,IAAIC,CAAI,EAAE,KAC9CF,EAAa,KAAK;AAAA,QAChB,OAAAC;AAAA,QACA,MAAMV,EAAK,CAAC,EAAE,KAAK,IAAI,OAAM,IAAI;AAAA,QACjC,MAAAW;AAAA,MAAA,CACD;AAAA,IAEL,CAAC;AAAA,EACH,CAAC,GAEMC;AAAA,IACLH;AAAA,IACA,CAAC,CAAAN,MAAKU,EAAM,GAAGV,EAAE,IAAI,IAAIF,KAAc,QAAQ,oBAAI,KAAA,CAAM,CAAC;AAAA,IAC1D,CAAC,KAAK;AAAA,EAAA;AAEV;AAEO,SAASc,EACdf,GACAC,GACA;AAEA,QAAMC,IAAS,MAAM,KAAK,IAAI,IAAIF,EAAK,IAAI,CAAAG,MAAKA,EAAE,KAAK,CAAC,CAAC,GACnDC,IAAQ,MAAM,KAAK,IAAI,IAAIJ,EAAK,IAAI,CAAAG,MAAKA,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAAA,MAAKA,MAAM,MAAS;AACpF,MAAIC,EAAM,WAAW,EAAG,QAAOJ;AAG/B,QAAMK,IAAuB,IAAI;AAAA;AAAA,IAE/BL,EAAK,IAAI,CAACG,MAAW,GAAGA,EAAE,KAAK,IAAIA,EAAE,IAAI,EAAE;AAAA,EAAA,GAIvCM,IAAe,CAAC,GAAGT,CAAI;AAE7B,SAAAE,EAAO,QAAQ,CAAAQ,MAAS;AACtB,IAAAN,EAAM,QAAQ,CAAAO,MAAQ;AACpB,MAAKN,EAAqB,IAAI,GAAGK,CAAK,IAAIC,CAAI,EAAE,KAC9CF,EAAa,KAAK;AAAA,QAChB,OAAAC;AAAA,QACA,SAAS;AAAA,QACT,UAAU;AAAA,QACV,MAAAC;AAAA,MAAA,CACD;AAAA,IAEL,CAAC;AAAA,EACH,CAAC,GAEMC;AAAA,IACLH;AAAA,IACA,CAAC,CAAAN,MAAKU,EAAM,GAAGV,EAAE,IAAI,IAAIF,GAAsB,oBAAI,KAAA,CAAM,CAAC;AAAA,IAC1D,CAAC,KAAK;AAAA,EAAA;AAEV;AAEO,SAASe,EAAiChB,GAA6BC,GAAoB;AAEhG,QAAMC,IAAS,MAAM,KAAK,IAAI,IAAIF,EAAK,IAAI,CAAAG,MAAKA,EAAE,KAAK,CAAC,CAAC,GACnDC,IAAQ,MAAM,KAAK,IAAI,IAAIJ,EAAK,IAAI,CAAAG,MAAKA,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAAA,MAAKA,MAAM,MAAS;AACpF,MAAIC,EAAM,WAAW,EAAG,QAAOJ;AAG/B,QAAMK,IAAuB,IAAI;AAAA;AAAA,IAE/BL,EAAK,IAAI,CAACG,MAAW,GAAGA,EAAE,KAAK,IAAIA,EAAE,IAAI,EAAE;AAAA,EAAA,GAIvCG,IAASN,EAAK,OAAO,CAACO,GAAUC,OAC/BD,EAAIC,EAAK,KAAK,MACjBD,EAAIC,EAAK,KAAK,IAAIA,EAAK,QAElBD,IACN,CAAA,CAAE,GAGCE,IAAe,CAAC,GAAGT,CAAI;AAE7B,SAAAE,EAAO,QAAQ,CAAAQ,MAAS;AACtB,IAAAN,EAAM,QAAQ,CAAAO,MAAQ;AACpB,MAAKN,EAAqB,IAAI,GAAGK,CAAK,IAAIC,CAAI,EAAE,KAC9CF,EAAa,KAAK;AAAA,QAChB,OAAAC;AAAA,QACA,OAAOJ,EAAOI,CAAK;AAAA;AAAA,QACnB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,QAAQ;AAAA,QACR,MAAAC;AAAA,MAAA,CACD;AAAA,IAEL,CAAC;AAAA,EACH,CAAC,GAEMC;AAAA,IACLH;AAAA,IACA,CAAC,CAAAN,MAAKU,EAAM,GAAGV,EAAE,IAAI,IAAIF,GAAsB,oBAAI,KAAA,CAAM,CAAC;AAAA,IAC1D,CAAC,KAAK;AAAA,EAAA;AAEV;AAEO,SAASgB,EACdjB,GACAC,GACA;AAEA,QAAMC,IAAS,MAAM,KAAK,IAAI,IAAIF,EAAK,IAAI,CAAAG,MAAKA,EAAE,KAAK,CAAC,CAAC,GACnDC,IAAQ,MAAM,KAAK,IAAI,IAAIJ,EAAK,IAAI,CAAAG,MAAKA,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAAA,MAAKA,MAAM,MAAS;AACpF,MAAIC,EAAM,WAAW,EAAG,QAAOJ;AAG/B,QAAMK,IAAuB,IAAI;AAAA;AAAA,IAE/BL,EAAK,IAAI,CAACG,MAAW,GAAGA,EAAE,KAAK,IAAIA,EAAE,IAAI,EAAE;AAAA,EAAA,GAIvCM,IAAe,CAAC,GAAGT,CAAI;AAE7B,SAAAE,EAAO,QAAQ,CAAAQ,MAAS;AACtB,IAAAN,EAAM,QAAQ,CAAAO,MAAQ;AACpB,MAAKN,EAAqB,IAAI,GAAGK,CAAK,IAAIC,CAAI,EAAE,KAC9CF,EAAa,KAAK;AAAA,QAChB,OAAAC;AAAA,QACA,GAAGV,EAAK,CAAC,EAAE,EAAE,IAAI,OAAM,IAAI;AAAA,QAC3B,MAAAW;AAAA,MAAA,CACD;AAAA,IAEL,CAAC;AAAA,EACH,CAAC,GAEMC;AAAA,IACLH;AAAA,IACA,CAAC,CAAAN,MAAKU,EAAM,GAAGV,EAAE,IAAI,IAAIF,KAAc,QAAQ,oBAAI,KAAA,CAAM,CAAC;AAAA,IAC1D,CAAC,KAAK;AAAA,EAAA;AAEV;"}
|
|
1
|
+
{"version":3,"file":"ensureCompleteData-DNKEGRiP.js","sources":["../src/Utils/ensureCompleteData.ts"],"sourcesContent":["import { parse } from 'date-fns/parse';\r\nimport orderBy from 'lodash.orderby';\r\n\r\nimport {\r\n BarGraphDataType,\r\n ButterflyChartDataType,\r\n DumbbellChartDataType,\r\n GroupedBarGraphDataType,\r\n ScatterPlotDataType,\r\n} from '@/Types';\r\n\r\nexport function ensureCompleteDataForBarChart(data: BarGraphDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n size: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForStackedBarChart(\r\n data: GroupedBarGraphDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n size: data[0].size.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForButterFlyChart(\r\n data: ButterflyChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n leftBar: undefined,\r\n rightBar: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForScatterPlot(data: ScatterPlotDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n x: undefined,\r\n y: undefined,\r\n radius: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n\r\nexport function ensureCompleteDataForDumbbellChart(\r\n data: DumbbellChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n x: data[0].x.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return orderBy(\r\n completeData,\r\n [d => parse(`${d.date}`, dateFormat || 'yyyy', new Date())],\r\n ['asc'],\r\n );\r\n}\r\n"],"names":["ensureCompleteDataForBarChart","data","dateFormat","labels","Array","from","Set","map","d","label","dates","date","filter","undefined","length","existingCombinations","colors","reduce","acc","curr","color","completeData","forEach","has","push","size","orderBy","parse","Date","ensureCompleteDataForStackedBarChart","_d","ensureCompleteDataForButterFlyChart","leftBar","rightBar","ensureCompleteDataForScatterPlot","x","y","radius","ensureCompleteDataForDumbbellChart"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const c=require("./parse-hMnG_lRV.cjs"),m=require("./index-
|
|
2
|
-
//# sourceMappingURL=ensureCompleteData-
|
|
1
|
+
"use strict";const c=require("./parse-hMnG_lRV.cjs"),m=require("./index-Cno4Q0YE.cjs");function f(t,s){const l=Array.from(new Set(t.map(r=>r.label))),n=Array.from(new Set(t.map(r=>r.date))).filter(r=>r!==void 0);if(n.length===0)return t;const i=new Set(t.map(r=>`${r.label}-${r.date}`)),a=t.reduce((r,o)=>(r[o.label]||(r[o.label]=o.color),r),{}),e=[...t];return l.forEach(r=>{n.forEach(o=>{i.has(`${r}-${o}`)||e.push({label:r,color:a[r],size:void 0,date:o})})}),m.orderBy(e,[r=>c.parse(`${r.date}`,s||"yyyy",new Date)],["asc"])}function p(t,s){const l=Array.from(new Set(t.map(e=>e.label))),n=Array.from(new Set(t.map(e=>e.date))).filter(e=>e!==void 0);if(n.length===0)return t;const i=new Set(t.map(e=>`${e.label}-${e.date}`)),a=[...t];return l.forEach(e=>{n.forEach(r=>{i.has(`${e}-${r}`)||a.push({label:e,size:t[0].size.map(o=>null),date:r})})}),m.orderBy(a,[e=>c.parse(`${e.date}`,s||"yyyy",new Date)],["asc"])}function u(t,s){const l=Array.from(new Set(t.map(e=>e.label))),n=Array.from(new Set(t.map(e=>e.date))).filter(e=>e!==void 0);if(n.length===0)return t;const i=new Set(t.map(e=>`${e.label}-${e.date}`)),a=[...t];return l.forEach(e=>{n.forEach(r=>{i.has(`${e}-${r}`)||a.push({label:e,leftBar:void 0,rightBar:void 0,date:r})})}),m.orderBy(a,[e=>c.parse(`${e.date}`,s,new Date)],["asc"])}function h(t,s){const l=Array.from(new Set(t.map(r=>r.label))),n=Array.from(new Set(t.map(r=>r.date))).filter(r=>r!==void 0);if(n.length===0)return t;const i=new Set(t.map(r=>`${r.label}-${r.date}`)),a=t.reduce((r,o)=>(r[o.label]||(r[o.label]=o.color),r),{}),e=[...t];return l.forEach(r=>{n.forEach(o=>{i.has(`${r}-${o}`)||e.push({label:r,color:a[r],x:void 0,y:void 0,radius:void 0,date:o})})}),m.orderBy(e,[r=>c.parse(`${r.date}`,s,new Date)],["asc"])}function y(t,s){const l=Array.from(new Set(t.map(e=>e.label))),n=Array.from(new Set(t.map(e=>e.date))).filter(e=>e!==void 0);if(n.length===0)return t;const i=new Set(t.map(e=>`${e.label}-${e.date}`)),a=[...t];return l.forEach(e=>{n.forEach(r=>{i.has(`${e}-${r}`)||a.push({label:e,x:t[0].x.map(o=>null),date:r})})}),m.orderBy(a,[e=>c.parse(`${e.date}`,s||"yyyy",new Date)],["asc"])}exports.ensureCompleteDataForBarChart=f;exports.ensureCompleteDataForButterFlyChart=u;exports.ensureCompleteDataForDumbbellChart=y;exports.ensureCompleteDataForScatterPlot=h;exports.ensureCompleteDataForStackedBarChart=p;
|
|
2
|
+
//# sourceMappingURL=ensureCompleteData-I6nYmT8E.cjs.map
|