@undp/data-viz 1.3.0 → 1.4.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 +2 -0
- package/dist/AreaChart.cjs.map +1 -0
- package/dist/AreaChart.js +530 -1
- package/dist/AreaChart.js.map +1 -1
- package/dist/Axis-DE7dSn1_.cjs +2 -0
- package/dist/{Axis-BlyBRMNw.cjs.map → Axis-DE7dSn1_.cjs.map} +1 -1
- package/dist/{Axis-CvK-w3E2.js → Axis-Ddg-seDi.js} +10 -11
- package/dist/{Axis-CvK-w3E2.js.map → Axis-Ddg-seDi.js.map} +1 -1
- package/dist/AxisTitle-BmHLMRJZ.js +20 -0
- package/dist/{AxisTitle-BeMxcw5I.js.map → AxisTitle-BmHLMRJZ.js.map} +1 -1
- package/dist/AxisTitle-CK9YeovX.cjs +2 -0
- package/dist/{AxisTitle-BY8MI9jC.cjs.map → AxisTitle-CK9YeovX.cjs.map} +1 -1
- package/dist/BarGraph.cjs +2 -0
- package/dist/BarGraph.cjs.map +1 -0
- package/dist/BarGraph.js +4043 -1
- package/dist/BarGraph.js.map +1 -1
- package/dist/BasicStatCard.cjs +2 -0
- package/dist/BasicStatCard.cjs.map +1 -0
- package/dist/BasicStatCard.js +190 -1
- package/dist/BasicStatCard.js.map +1 -1
- package/dist/BeeSwarmChart.cjs +2 -0
- package/dist/BeeSwarmChart.cjs.map +1 -0
- package/dist/BeeSwarmChart.d.ts +0 -8
- package/dist/BeeSwarmChart.js +1042 -1
- package/dist/BeeSwarmChart.js.map +1 -1
- package/dist/BiVariateChoroplethMap.cjs +2 -0
- package/dist/BiVariateChoroplethMap.cjs.map +1 -0
- package/dist/BiVariateChoroplethMap.js +720 -1
- package/dist/BiVariateChoroplethMap.js.map +1 -1
- package/dist/BulletChart.cjs +2 -0
- package/dist/BulletChart.cjs.map +1 -0
- package/dist/BulletChart.js +1431 -1
- package/dist/BulletChart.js.map +1 -1
- package/dist/ButterflyChart.cjs +2 -0
- package/dist/ButterflyChart.cjs.map +1 -0
- package/dist/ButterflyChart.js +692 -1
- package/dist/ButterflyChart.js.map +1 -1
- package/dist/ChoroplethMap.cjs +2 -0
- package/dist/ChoroplethMap.cjs.map +1 -0
- package/dist/ChoroplethMap.js +745 -1
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/CirclePackingGraph.cjs +2 -0
- package/dist/CirclePackingGraph.cjs.map +1 -0
- package/dist/CirclePackingGraph.d.ts +0 -8
- package/dist/CirclePackingGraph.js +14 -1
- package/dist/CirclePackingGraph.js.map +1 -1
- package/dist/ColorLegend.cjs +2 -0
- package/dist/ColorLegend.cjs.map +1 -0
- package/dist/ColorLegend.js +47 -1
- package/dist/ColorLegend.js.map +1 -1
- package/dist/ColorLegendWithMouseOver.cjs +2 -0
- package/dist/ColorLegendWithMouseOver.cjs.map +1 -0
- package/dist/ColorLegendWithMouseOver.js +70 -1
- package/dist/ColorLegendWithMouseOver.js.map +1 -1
- package/dist/Colors.cjs +2 -0
- package/dist/Colors.cjs.map +1 -0
- package/dist/Colors.js +561 -1
- package/dist/Colors.js.map +1 -1
- package/dist/CopyTextButton.cjs +17 -0
- package/dist/CopyTextButton.cjs.map +1 -0
- package/dist/CopyTextButton.js +698 -16
- package/dist/CopyTextButton.js.map +1 -1
- package/dist/CsvDownloadButton.cjs +23 -0
- package/dist/CsvDownloadButton.cjs.map +1 -0
- package/dist/CsvDownloadButton.js +852 -7
- package/dist/CsvDownloadButton.js.map +1 -1
- package/dist/DataCards.cjs +22 -0
- package/dist/DataCards.cjs.map +1 -0
- package/dist/DataCards.js +624 -1
- package/dist/DataCards.js.map +1 -1
- package/dist/DataTable.cjs +2 -0
- package/dist/DataTable.cjs.map +1 -0
- package/dist/DataTable.js +331 -1
- package/dist/DataTable.js.map +1 -1
- package/dist/DifferenceLineChart.cjs +2 -0
- package/dist/DifferenceLineChart.cjs.map +1 -0
- package/dist/DifferenceLineChart.js +805 -1
- package/dist/DifferenceLineChart.js.map +1 -1
- package/dist/DonutChart.cjs +2 -0
- package/dist/DonutChart.cjs.map +1 -0
- package/dist/DonutChart.js +478 -1
- package/dist/DonutChart.js.map +1 -1
- package/dist/DotDensityMap.cjs +2 -0
- package/dist/DotDensityMap.cjs.map +1 -0
- package/dist/DotDensityMap.js +600 -1
- package/dist/DotDensityMap.js.map +1 -1
- package/dist/DropdownSelect-0I2QxaVy.cjs +29 -0
- package/dist/DropdownSelect-0I2QxaVy.cjs.map +1 -0
- package/dist/DropdownSelect-CDC9lEqU.js +4193 -0
- package/dist/DropdownSelect-CDC9lEqU.js.map +1 -0
- package/dist/DualAxisLineChart.cjs +2 -0
- package/dist/DualAxisLineChart.cjs.map +1 -0
- package/dist/DualAxisLineChart.js +699 -1
- package/dist/DualAxisLineChart.js.map +1 -1
- package/dist/DumbbellChart.cjs +2 -0
- package/dist/DumbbellChart.cjs.map +1 -0
- package/dist/DumbbellChart.js +1510 -1
- package/dist/DumbbellChart.js.map +1 -1
- package/dist/{EmptyState-b2Ln487i.js → EmptyState-DdTp-Mdn.js} +8 -8
- package/dist/{EmptyState-b2Ln487i.js.map → EmptyState-DdTp-Mdn.js.map} +1 -1
- package/dist/EmptyState-d8_8SxeW.cjs +2 -0
- package/dist/{EmptyState-BQguKAp5.cjs.map → EmptyState-d8_8SxeW.cjs.map} +1 -1
- package/dist/ExcelDownloadButton.cjs +2 -0
- package/dist/ExcelDownloadButton.cjs.map +1 -0
- package/dist/ExcelDownloadButton.js +29 -1
- package/dist/ExcelDownloadButton.js.map +1 -1
- package/dist/FootNote.cjs +2 -0
- package/dist/FootNote.cjs.map +1 -0
- package/dist/FootNote.js +20 -1
- package/dist/FootNote.js.map +1 -1
- package/dist/GeoHubCompareMaps.cjs +2 -0
- package/dist/GeoHubCompareMaps.cjs.map +1 -0
- package/dist/GeoHubCompareMaps.js +370 -1
- package/dist/GeoHubCompareMaps.js.map +1 -1
- package/dist/GeoHubMap.cjs +2 -0
- package/dist/GeoHubMap.cjs.map +1 -0
- package/dist/GeoHubMap.js +429 -1
- package/dist/GeoHubMap.js.map +1 -1
- package/dist/GeoHubMapWithLayerSelection.cjs +2 -0
- package/dist/GeoHubMapWithLayerSelection.cjs.map +1 -0
- package/dist/GeoHubMapWithLayerSelection.js +307 -1
- package/dist/GeoHubMapWithLayerSelection.js.map +1 -1
- package/dist/GraphDescription.cjs +2 -0
- package/dist/GraphDescription.cjs.map +1 -0
- package/dist/GraphDescription.js +20 -1
- package/dist/GraphDescription.js.map +1 -1
- package/dist/GraphEl-B6SoGRFW.cjs +2 -0
- package/dist/GraphEl-B6SoGRFW.cjs.map +1 -0
- package/dist/{checkIfMultiple-CaefP4X2.js → GraphEl-Cw2tDUb3.js} +123 -662
- package/dist/GraphEl-Cw2tDUb3.js.map +1 -0
- package/dist/GraphFooter.cjs +2 -0
- package/dist/GraphFooter.cjs.map +1 -0
- package/dist/GraphFooter.js +21 -1
- package/dist/GraphFooter.js.map +1 -1
- package/dist/GraphHeader.cjs +2 -0
- package/dist/GraphHeader.cjs.map +1 -0
- package/dist/GraphHeader.js +63 -1
- package/dist/GraphHeader.js.map +1 -1
- package/dist/GraphTitle.cjs +2 -0
- package/dist/GraphTitle.cjs.map +1 -0
- package/dist/GraphTitle.js +28 -1
- package/dist/GraphTitle.js.map +1 -1
- package/dist/GriddedGraphs.cjs +2 -0
- package/dist/GriddedGraphs.cjs.map +1 -0
- package/dist/GriddedGraphs.d.ts +2 -4
- package/dist/GriddedGraphs.js +483 -1
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.cjs +2 -0
- package/dist/GriddedGraphsFromConfig.cjs.map +1 -0
- package/dist/GriddedGraphsFromConfig.d.ts +2 -4
- package/dist/GriddedGraphsFromConfig.js +42 -1
- package/dist/GriddedGraphsFromConfig.js.map +1 -1
- package/dist/HeatMap.cjs +2 -0
- package/dist/HeatMap.cjs.map +1 -0
- package/dist/HeatMap.js +451 -1
- package/dist/HeatMap.js.map +1 -1
- package/dist/Histogram.cjs +2 -0
- package/dist/Histogram.cjs.map +1 -0
- package/dist/Histogram.js +287 -1
- package/dist/Histogram.js.map +1 -1
- package/dist/ImageDownloadButton.cjs +2 -0
- package/dist/ImageDownloadButton.cjs.map +1 -0
- package/dist/ImageDownloadButton.js +28 -1
- package/dist/ImageDownloadButton.js.map +1 -1
- package/dist/LineChartWithConfidenceInterval.cjs +2 -0
- package/dist/LineChartWithConfidenceInterval.cjs.map +1 -0
- package/dist/LineChartWithConfidenceInterval.js +818 -1
- package/dist/LineChartWithConfidenceInterval.js.map +1 -1
- package/dist/LinearColorLegend.cjs +2 -0
- package/dist/LinearColorLegend.cjs.map +1 -0
- package/dist/LinearColorLegend.js +33 -1
- package/dist/LinearColorLegend.js.map +1 -1
- package/dist/Modal-CUU6ZK3U.js +1019 -0
- package/dist/Modal-CUU6ZK3U.js.map +1 -0
- package/dist/Modal-C_dl0EtQ.cjs +46 -0
- package/dist/Modal-C_dl0EtQ.cjs.map +1 -0
- package/dist/MultiGraphDashboard.cjs +2 -0
- package/dist/MultiGraphDashboard.cjs.map +1 -0
- package/dist/MultiGraphDashboard.d.ts +16 -12
- package/dist/MultiGraphDashboard.js +303 -1
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.cjs +2 -0
- package/dist/MultiGraphDashboardFromConfig.cjs.map +1 -0
- package/dist/MultiGraphDashboardFromConfig.d.ts +16 -12
- package/dist/MultiGraphDashboardFromConfig.js +37 -1
- package/dist/MultiGraphDashboardFromConfig.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +2 -0
- package/dist/MultiGraphDashboardWideToLongFormat.cjs.map +1 -0
- package/dist/MultiGraphDashboardWideToLongFormat.js +243 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +2 -0
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs.map +1 -0
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +30 -1
- package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -1
- package/dist/MultiLineAltChart.cjs +2 -0
- package/dist/MultiLineAltChart.cjs.map +1 -0
- package/dist/MultiLineAltChart.js +689 -1
- package/dist/MultiLineAltChart.js.map +1 -1
- package/dist/MultiLineChart.cjs +2 -0
- package/dist/MultiLineChart.cjs.map +1 -0
- package/dist/MultiLineChart.js +722 -1
- package/dist/MultiLineChart.js.map +1 -1
- package/dist/ParetoChart.cjs +2 -0
- package/dist/ParetoChart.cjs.map +1 -0
- package/dist/ParetoChart.js +636 -1
- package/dist/ParetoChart.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +566 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +353 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +570 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +38 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -0
- package/dist/PerformanceIntensiveScrollStory.cjs +2 -0
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -0
- package/dist/PerformanceIntensiveScrollStory.d.ts +493 -0
- package/dist/PerformanceIntensiveScrollStory.js +122 -0
- package/dist/PerformanceIntensiveScrollStory.js.map +1 -0
- package/dist/RadarChart.cjs +2 -0
- package/dist/RadarChart.cjs.map +1 -0
- package/dist/RadarChart.js +677 -1
- package/dist/RadarChart.js.map +1 -1
- package/dist/{ReferenceLine-BgDdQbDI.js → ReferenceLine-C1GpoG9d.js} +33 -34
- package/dist/ReferenceLine-C1GpoG9d.js.map +1 -0
- package/dist/ReferenceLine-CuFMk0cI.cjs +2 -0
- package/dist/ReferenceLine-CuFMk0cI.cjs.map +1 -0
- package/dist/RegressionLine-7_rKTHN_.cjs +2 -0
- package/dist/{RegressionLine-BfpCuD7B.cjs.map → RegressionLine-7_rKTHN_.cjs.map} +1 -1
- package/dist/{RegressionLine-cSljpHaE.js → RegressionLine-BFwDCTUU.js} +17 -18
- package/dist/{RegressionLine-cSljpHaE.js.map → RegressionLine-BFwDCTUU.js.map} +1 -1
- package/dist/SVGDownloadButton.cjs +2 -0
- package/dist/SVGDownloadButton.cjs.map +1 -0
- package/dist/SVGDownloadButton.js +28 -1
- package/dist/SVGDownloadButton.js.map +1 -1
- package/dist/SankeyChart.cjs +2 -0
- package/dist/SankeyChart.cjs.map +1 -0
- package/dist/SankeyChart.js +989 -1
- package/dist/SankeyChart.js.map +1 -1
- package/dist/ScatterPlot.cjs +2 -0
- package/dist/ScatterPlot.cjs.map +1 -0
- package/dist/ScatterPlot.js +828 -1
- package/dist/ScatterPlot.js.map +1 -1
- package/dist/ScrollStory.cjs +2 -0
- package/dist/ScrollStory.cjs.map +1 -0
- package/dist/ScrollStory.d.ts +3 -5
- package/dist/ScrollStory.js +105 -1
- package/dist/ScrollStory.js.map +1 -1
- package/dist/SimpleLineChart.cjs +2 -0
- package/dist/SimpleLineChart.cjs.map +1 -0
- package/dist/SimpleLineChart.js +619 -1
- package/dist/SimpleLineChart.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +2 -0
- package/dist/SingleGraphDashboard.cjs.map +1 -0
- package/dist/SingleGraphDashboard.d.ts +2 -5
- package/dist/SingleGraphDashboard.js +522 -1
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardFromConfig.d.ts +2 -4
- package/dist/SingleGraphDashboardFromConfig.js +34 -1
- package/dist/SingleGraphDashboardFromConfig.js.map +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +2 -0
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +428 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js +185 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +432 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +2 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +540 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +610 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +543 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +35 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -0
- package/dist/SlopeChart.cjs +2 -0
- package/dist/SlopeChart.cjs.map +1 -0
- package/dist/SlopeChart.js +582 -1
- package/dist/SlopeChart.js.map +1 -1
- package/dist/Source.cjs +2 -0
- package/dist/Source.cjs.map +1 -0
- package/dist/Source.js +40 -1
- package/dist/Source.js.map +1 -1
- package/dist/SparkLine.cjs +2 -0
- package/dist/SparkLine.cjs.map +1 -0
- package/dist/SparkLine.js +320 -1
- package/dist/SparkLine.js.map +1 -1
- package/dist/Spinner-C85UF28E.js +30 -0
- package/dist/Spinner-C85UF28E.js.map +1 -0
- package/dist/Spinner-DA6Z5E4n.cjs +2 -0
- package/dist/Spinner-DA6Z5E4n.cjs.map +1 -0
- package/dist/StatCardFromData.cjs +2 -0
- package/dist/StatCardFromData.cjs.map +1 -0
- package/dist/StatCardFromData.js +249 -1
- package/dist/StatCardFromData.js.map +1 -1
- package/dist/StripChart.cjs +2 -0
- package/dist/StripChart.cjs.map +1 -0
- package/dist/StripChart.js +988 -1
- package/dist/StripChart.js.map +1 -1
- package/dist/ThreeDGlobe.cjs +2 -0
- package/dist/ThreeDGlobe.cjs.map +1 -0
- package/dist/ThreeDGlobe.js +451 -1
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/ThresholdColorLegendWithMouseOver.cjs +2 -0
- package/dist/ThresholdColorLegendWithMouseOver.cjs.map +1 -0
- package/dist/ThresholdColorLegendWithMouseOver.js +130 -1
- package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -1
- package/dist/{Tooltip-CzZ1wFyF.js → Tooltip-DyM5snqx.js} +15 -16
- package/dist/{Tooltip-CzZ1wFyF.js.map → Tooltip-DyM5snqx.js.map} +1 -1
- package/dist/Tooltip-n8z5bfav.cjs +2 -0
- package/dist/{Tooltip-BM18N_3l.cjs.map → Tooltip-n8z5bfav.cjs.map} +1 -1
- package/dist/TreeMapGraph.cjs +2 -0
- package/dist/TreeMapGraph.cjs.map +1 -0
- package/dist/TreeMapGraph.js +760 -1
- package/dist/TreeMapGraph.js.map +1 -1
- package/dist/Types.cjs +2 -0
- package/dist/Types.cjs.map +1 -0
- package/dist/Types.d.ts +38 -11
- package/dist/Types.js +1 -1
- package/dist/Typography-Ctgfl1J5.js +140 -0
- package/dist/Typography-Ctgfl1J5.js.map +1 -0
- package/dist/Typography-k-kOjICQ.cjs +2 -0
- package/dist/Typography-k-kOjICQ.cjs.map +1 -0
- package/dist/UnitChart.cjs +2 -0
- package/dist/UnitChart.cjs.map +1 -0
- package/dist/UnitChart.js +216 -1
- package/dist/UnitChart.js.map +1 -1
- package/dist/XAxesLabels-CJMQbfVy.cjs +2 -0
- package/dist/{XAxesLabels-C9REbQQs.cjs.map → XAxesLabels-CJMQbfVy.cjs.map} +1 -1
- package/dist/{XAxesLabels-DVw7Lvuz.js → XAxesLabels-DQFo_z2R.js} +21 -22
- package/dist/{XAxesLabels-DVw7Lvuz.js.map → XAxesLabels-DQFo_z2R.js.map} +1 -1
- package/dist/{XTicksAndGridLines-CUefTINd.js → XTicksAndGridLines-Bn9u5gOM.js} +19 -20
- package/dist/{XTicksAndGridLines-CUefTINd.js.map → XTicksAndGridLines-Bn9u5gOM.js.map} +1 -1
- package/dist/XTicksAndGridLines-CCzXIV8d.cjs +2 -0
- package/dist/{XTicksAndGridLines-DuK35ROS.cjs.map → XTicksAndGridLines-CCzXIV8d.cjs.map} +1 -1
- package/dist/YAxesLabels-BXLTX7AI.cjs +2 -0
- package/dist/{YAxesLabels-DhBdLk3Z.cjs.map → YAxesLabels-BXLTX7AI.cjs.map} +1 -1
- package/dist/{YAxesLabels-CYVY053X.js → YAxesLabels-H5-002X5.js} +11 -12
- package/dist/{YAxesLabels-CYVY053X.js.map → YAxesLabels-H5-002X5.js.map} +1 -1
- package/dist/{YTicksAndGridLines-BJRXuBdC.js → YTicksAndGridLines-B6ah7CRf.js} +14 -15
- package/dist/{YTicksAndGridLines-BJRXuBdC.js.map → YTicksAndGridLines-B6ah7CRf.js.map} +1 -1
- package/dist/YTicksAndGridLines-DBDuz6vb.cjs +2 -0
- package/dist/{YTicksAndGridLines-CtLvzExe.cjs.map → YTicksAndGridLines-DBDuz6vb.cjs.map} +1 -1
- package/dist/checkIfMultiple-CYp3vADF.js +912 -0
- package/dist/checkIfMultiple-CYp3vADF.js.map +1 -0
- package/dist/checkIfMultiple-Do4kADNr.cjs +12 -0
- package/dist/checkIfMultiple-Do4kADNr.cjs.map +1 -0
- package/dist/checkIfNullOrUndefined-BCW3Y1ML.cjs +2 -0
- package/dist/checkIfNullOrUndefined-BCW3Y1ML.cjs.map +1 -0
- package/dist/checkIfNullOrUndefined-DmfiKkNw.js +7 -0
- package/dist/checkIfNullOrUndefined-DmfiKkNw.js.map +1 -0
- package/dist/customArea-BYNyxAkm.cjs +2 -0
- package/dist/{customArea-B47Ew5cT.cjs.map → customArea-BYNyxAkm.cjs.map} +1 -1
- package/dist/{customArea-I3MsoqIl.js → customArea-CaxScFmW.js} +29 -30
- package/dist/{customArea-I3MsoqIl.js.map → customArea-CaxScFmW.js.map} +1 -1
- package/dist/excelDownload-BOA-lskf.js +19 -0
- package/dist/excelDownload-BOA-lskf.js.map +1 -0
- package/dist/excelDownload-BQpsCa62.cjs +2 -0
- package/dist/excelDownload-BQpsCa62.cjs.map +1 -0
- package/dist/fetchAndParseData-Bcmr659B.js +1196 -0
- package/dist/fetchAndParseData-Bcmr659B.js.map +1 -0
- package/dist/fetchAndParseData-DmgQtB9n.cjs +16 -0
- package/dist/fetchAndParseData-DmgQtB9n.cjs.map +1 -0
- package/dist/fetchAndParseData.cjs +2 -0
- package/dist/fetchAndParseData.cjs.map +1 -0
- package/dist/fetchAndParseData.js +9 -15
- package/dist/fetchAndParseData.js.map +1 -1
- package/dist/getGraphList-DuColTJM.js +265 -0
- package/dist/getGraphList-DuColTJM.js.map +1 -0
- package/dist/getGraphList-gf02xgT2.cjs +2 -0
- package/dist/getGraphList-gf02xgT2.cjs.map +1 -0
- package/dist/getJenks-TWQvbuOz.cjs +2 -0
- package/dist/getJenks-TWQvbuOz.cjs.map +1 -0
- package/dist/getJenks-VhM3GIoC.js +23 -0
- package/dist/getJenks-VhM3GIoC.js.map +1 -0
- package/dist/getSchema.cjs +2 -0
- package/dist/getSchema.cjs.map +1 -0
- package/dist/getSchema.d.ts +7 -5
- package/dist/getSchema.js +910 -1
- package/dist/getSchema.js.map +1 -1
- package/dist/getSliderMarks-C0jptXeP.js +1054 -0
- package/dist/getSliderMarks-C0jptXeP.js.map +1 -0
- package/dist/getSliderMarks-CtsEXiLV.cjs +6 -0
- package/dist/getSliderMarks-CtsEXiLV.cjs.map +1 -0
- package/dist/getTextColorBasedOnBgColor-B6Nk2WBf.js +28 -0
- package/dist/getTextColorBasedOnBgColor-B6Nk2WBf.js.map +1 -0
- package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs +2 -0
- package/dist/getTextColorBasedOnBgColor-nqY-bsM_.cjs.map +1 -0
- package/dist/getUniqValue-BtUENB2H.js +20 -0
- package/dist/getUniqValue-BtUENB2H.js.map +1 -0
- package/dist/getUniqValue-CHqgSss5.cjs +2 -0
- package/dist/getUniqValue-CHqgSss5.cjs.map +1 -0
- package/dist/imageDownload-CgDcm1Sj.cjs +3 -0
- package/dist/imageDownload-CgDcm1Sj.cjs.map +1 -0
- package/dist/imageDownload-Dcci2LEy.js +495 -0
- package/dist/imageDownload-Dcci2LEy.js.map +1 -0
- package/dist/index-BVnYktl4.js +435 -0
- package/dist/index-BVnYktl4.js.map +1 -0
- package/dist/index-BW_-wD2k.cjs +2 -0
- package/dist/index-BW_-wD2k.cjs.map +1 -0
- package/dist/{index-DXmF_0ez.js → index-BmCqpO1B.js} +74 -40
- package/dist/index-BmCqpO1B.js.map +1 -0
- package/dist/{index-Db-Yg_Ud.js → index-BxAUvrua.js} +19 -19
- package/dist/{index-Db-Yg_Ud.js.map → index-BxAUvrua.js.map} +1 -1
- package/dist/index-CHPV5EwG-BPSP-7Jg.js +3341 -0
- package/dist/index-CHPV5EwG-BPSP-7Jg.js.map +1 -0
- package/dist/index-CHPV5EwG-DDoeWRVt.cjs +44 -0
- package/dist/index-CHPV5EwG-DDoeWRVt.cjs.map +1 -0
- package/dist/index-CylX-pWB.cjs +2 -0
- package/dist/{index-BYroABPm.cjs.map → index-CylX-pWB.cjs.map} +1 -1
- package/dist/index-DG3YrCr5-D3FrrXj8.js +459 -0
- package/dist/index-DG3YrCr5-D3FrrXj8.js.map +1 -0
- package/dist/index-DG3YrCr5-v7rayV3N.cjs +2 -0
- package/dist/index-DG3YrCr5-v7rayV3N.cjs.map +1 -0
- package/dist/index-DVOJ7vxH.cjs +10 -0
- package/dist/{index-a2C2Bqn2.cjs.map → index-DVOJ7vxH.cjs.map} +1 -1
- package/dist/index-D_n8aamX.cjs +2 -0
- package/dist/index-D_n8aamX.cjs.map +1 -0
- package/dist/{index-DzdwZ2OA.js → index-n_RI8T0n.js} +3 -3
- package/dist/{index-DzdwZ2OA.js.map → index-n_RI8T0n.js.map} +1 -1
- package/dist/index-tvAyXPPW-DBlMKnNB.js +47 -0
- package/dist/index-tvAyXPPW-DBlMKnNB.js.map +1 -0
- package/dist/index-tvAyXPPW-DPOG-C2i.cjs +2 -0
- package/dist/index-tvAyXPPW-DPOG-C2i.cjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +331 -168
- package/dist/index.js +194 -1
- package/dist/index.js.map +1 -1
- package/dist/numberFormattingFunction-02t-wJta.cjs +2 -0
- package/dist/numberFormattingFunction-02t-wJta.cjs.map +1 -0
- package/dist/numberFormattingFunction-14YCbkN2.js +13 -0
- package/dist/numberFormattingFunction-14YCbkN2.js.map +1 -0
- package/dist/{use-in-view-CZPXmTZM.js → proxy-DJxJg1kD.js} +699 -732
- package/dist/proxy-DJxJg1kD.js.map +1 -0
- package/dist/{use-in-view-Dl1CsAIo.cjs → proxy-PQd2AItT.cjs} +2 -2
- package/dist/proxy-PQd2AItT.cjs.map +1 -0
- package/dist/removeOutliers-DR48e-18.js +57 -0
- package/dist/removeOutliers-DR48e-18.js.map +1 -0
- package/dist/removeOutliers-WELHHqiI.cjs +2 -0
- package/dist/removeOutliers-WELHHqiI.cjs.map +1 -0
- package/dist/{string2HTML-BX0oNw83.js → string2HTML-CWHGfz_d.js} +2 -2
- package/dist/{string2HTML-BX0oNw83.js.map → string2HTML-CWHGfz_d.js.map} +1 -1
- package/dist/{string2HTML-X4ZYX5jI.cjs → string2HTML-D2Avudmb.cjs} +2 -2
- package/dist/{string2HTML-X4ZYX5jI.cjs.map → string2HTML-D2Avudmb.cjs.map} +1 -1
- package/dist/svgDownload-C2-E3yf2.js +9 -0
- package/dist/svgDownload-C2-E3yf2.js.map +1 -0
- package/dist/svgDownload-D9zEGjTF.cjs +2 -0
- package/dist/svgDownload-D9zEGjTF.cjs.map +1 -0
- package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs +4 -0
- package/dist/toConsumableArray-DiWOvh_d-DcLaZvDq.cjs.map +1 -0
- package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js +145 -0
- package/dist/toConsumableArray-DiWOvh_d-DlpOlgap.js.map +1 -0
- package/dist/transformData.cjs +2 -0
- package/dist/transformData.cjs.map +1 -0
- package/dist/transformData.d.ts +170 -0
- package/dist/transformData.js +10 -0
- package/dist/transformData.js.map +1 -0
- package/dist/transformDataForAggregation-CdcwlnNe.js +759 -0
- package/dist/transformDataForAggregation-CdcwlnNe.js.map +1 -0
- package/dist/transformDataForAggregation-Du-Hei-W.cjs +2 -0
- package/dist/transformDataForAggregation-Du-Hei-W.cjs.map +1 -0
- package/dist/transformDataForGraphFromFile-CA0rw80A.js +24 -0
- package/dist/transformDataForGraphFromFile-CA0rw80A.js.map +1 -0
- package/dist/transformDataForGraphFromFile-D9G3ToQf.cjs +2 -0
- package/dist/transformDataForGraphFromFile-D9G3ToQf.cjs.map +1 -0
- package/dist/transformDataForSelect-D8AuvYdf.js +14 -0
- package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -0
- package/dist/transformDataForSelect-YmStusCI.cjs +2 -0
- package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -0
- package/dist/use-in-view-BAHrBy6b.js +40 -0
- package/dist/use-in-view-BAHrBy6b.js.map +1 -0
- package/dist/use-in-view-BCmzDU2O.cjs +2 -0
- package/dist/use-in-view-BCmzDU2O.cjs.map +1 -0
- package/dist/utils.cjs +2 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.ts +217 -0
- package/dist/utils.js +27 -0
- package/dist/utils.js.map +1 -0
- package/dist/validateSchema.cjs +2 -0
- package/dist/validateSchema.cjs.map +1 -0
- package/dist/validateSchema.d.ts +2 -4
- package/dist/validateSchema.js +104 -1
- package/dist/validateSchema.js.map +1 -1
- package/dist/x-CnsEH4Ox-CGGXQl4M.cjs +27 -0
- package/dist/x-CnsEH4Ox-CGGXQl4M.cjs.map +1 -0
- package/dist/x-CnsEH4Ox-DDvAJndW.js +101 -0
- package/dist/x-CnsEH4Ox-DDvAJndW.js.map +1 -0
- package/package.json +50 -90
- package/dist/Axis-BlyBRMNw.cjs +0 -2
- package/dist/AxisTitle-BY8MI9jC.cjs +0 -2
- package/dist/AxisTitle-BeMxcw5I.js +0 -21
- package/dist/DropdownSelect-CuzV7gdj.cjs +0 -29
- package/dist/DropdownSelect-CuzV7gdj.cjs.map +0 -1
- package/dist/DropdownSelect-DmZsXrhY.js +0 -2698
- package/dist/DropdownSelect-DmZsXrhY.js.map +0 -1
- package/dist/EmptyState-BQguKAp5.cjs +0 -2
- package/dist/Modal-C9txyGOk.js +0 -723
- package/dist/Modal-C9txyGOk.js.map +0 -1
- package/dist/Modal-cQF2UQIa.cjs +0 -46
- package/dist/Modal-cQF2UQIa.cjs.map +0 -1
- package/dist/ReferenceLine-BgDdQbDI.js.map +0 -1
- package/dist/ReferenceLine-Bsb5jeE4.cjs +0 -2
- package/dist/ReferenceLine-Bsb5jeE4.cjs.map +0 -1
- package/dist/RegressionLine-BfpCuD7B.cjs +0 -2
- package/dist/Spinner-DN3s4S0H.js +0 -17
- package/dist/Spinner-DN3s4S0H.js.map +0 -1
- package/dist/Spinner-UmN-KPe9.cjs +0 -2
- package/dist/Spinner-UmN-KPe9.cjs.map +0 -1
- package/dist/Tooltip-BM18N_3l.cjs +0 -2
- package/dist/Typography-CDR-DAHH.cjs +0 -2
- package/dist/Typography-CDR-DAHH.cjs.map +0 -1
- package/dist/Typography-XJoSE-By.js +0 -58
- package/dist/Typography-XJoSE-By.js.map +0 -1
- package/dist/XAxesLabels-C9REbQQs.cjs +0 -2
- package/dist/XTicksAndGridLines-DuK35ROS.cjs +0 -2
- package/dist/YAxesLabels-DhBdLk3Z.cjs +0 -2
- package/dist/YTicksAndGridLines-CtLvzExe.cjs +0 -2
- package/dist/checkIfMultiple-CaefP4X2.js.map +0 -1
- package/dist/checkIfMultiple-D3h8to1T.cjs +0 -12
- package/dist/checkIfMultiple-D3h8to1T.cjs.map +0 -1
- package/dist/checkIfNullOrUndefined.d.ts +0 -15
- package/dist/checkIfNullOrUndefined.js +0 -2
- package/dist/checkIfNullOrUndefined.js.map +0 -1
- package/dist/customArea-B47Ew5cT.cjs +0 -2
- package/dist/excelDownload.d.ts +0 -31
- package/dist/excelDownload.js +0 -2
- package/dist/excelDownload.js.map +0 -1
- package/dist/generateCodes.d.ts +0 -25
- package/dist/generateCodes.js +0 -2
- package/dist/generateCodes.js.map +0 -1
- package/dist/getJenks.d.ts +0 -17
- package/dist/getJenks.js +0 -2
- package/dist/getJenks.js.map +0 -1
- package/dist/getPercentileValue.d.ts +0 -13
- package/dist/getPercentileValue.js +0 -2
- package/dist/getPercentileValue.js.map +0 -1
- package/dist/getQueryParamsFromLink.d.ts +0 -18
- package/dist/getQueryParamsFromLink.js +0 -2
- package/dist/getQueryParamsFromLink.js.map +0 -1
- package/dist/getSliderMarks-CWajGCGq.js +0 -719
- package/dist/getSliderMarks-CWajGCGq.js.map +0 -1
- package/dist/getSliderMarks-DDJ1CdhL.cjs +0 -6
- package/dist/getSliderMarks-DDJ1CdhL.cjs.map +0 -1
- package/dist/getTextColorBasedOnBgColor.d.ts +0 -13
- package/dist/getTextColorBasedOnBgColor.js +0 -2
- package/dist/getTextColorBasedOnBgColor.js.map +0 -1
- package/dist/getUniqValue.d.ts +0 -18
- package/dist/getUniqValue.js +0 -2
- package/dist/getUniqValue.js.map +0 -1
- package/dist/graphList.d.ts +0 -9
- package/dist/graphList.js +0 -2
- package/dist/graphList.js.map +0 -1
- package/dist/imageDownload.d.ts +0 -16
- package/dist/imageDownload.js +0 -3
- package/dist/imageDownload.js.map +0 -1
- package/dist/index-01r5X3Gr-9jE0ObrK.cjs +0 -2
- package/dist/index-01r5X3Gr-9jE0ObrK.cjs.map +0 -1
- package/dist/index-01r5X3Gr-kH7FxQ7P.js +0 -451
- package/dist/index-01r5X3Gr-kH7FxQ7P.js.map +0 -1
- package/dist/index-BGMGC-HN.cjs +0 -22
- package/dist/index-BGMGC-HN.cjs.map +0 -1
- package/dist/index-BHm2KTjD-2e-Fu8L-.js +0 -702
- package/dist/index-BHm2KTjD-2e-Fu8L-.js.map +0 -1
- package/dist/index-BHm2KTjD-D8FylaKc.cjs +0 -44
- package/dist/index-BHm2KTjD-D8FylaKc.cjs.map +0 -1
- package/dist/index-BIPNFFja.js +0 -506
- package/dist/index-BIPNFFja.js.map +0 -1
- package/dist/index-BYroABPm.cjs +0 -2
- package/dist/index-CEc_9zWy.cjs +0 -2
- package/dist/index-CEc_9zWy.cjs.map +0 -1
- package/dist/index-CbVeVrla.cjs +0 -2
- package/dist/index-CbVeVrla.cjs.map +0 -1
- package/dist/index-CqzhBPuO-CfQywbdq.js +0 -41
- package/dist/index-CqzhBPuO-CfQywbdq.js.map +0 -1
- package/dist/index-CqzhBPuO-raKZqS7l.cjs +0 -2
- package/dist/index-CqzhBPuO-raKZqS7l.cjs.map +0 -1
- package/dist/index-DSnvdkHZ.js +0 -495
- package/dist/index-DSnvdkHZ.js.map +0 -1
- package/dist/index-DXmF_0ez.js.map +0 -1
- package/dist/index-a2C2Bqn2.cjs +0 -10
- package/dist/numberFormattingFunction.d.ts +0 -22
- package/dist/numberFormattingFunction.js +0 -2
- package/dist/numberFormattingFunction.js.map +0 -1
- package/dist/removeOutliers.d.ts +0 -16
- package/dist/removeOutliers.js +0 -2
- package/dist/removeOutliers.js.map +0 -1
- package/dist/svgDownload.d.ts +0 -16
- package/dist/svgDownload.js +0 -2
- package/dist/svgDownload.js.map +0 -1
- package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js +0 -139
- package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js.map +0 -1
- package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs +0 -4
- package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs.map +0 -1
- package/dist/transformColumnsToArray.d.ts +0 -38
- package/dist/transformColumnsToArray.js +0 -2
- package/dist/transformColumnsToArray.js.map +0 -1
- package/dist/transformDataForAggregation.d.ts +0 -38
- package/dist/transformDataForAggregation.js +0 -2
- package/dist/transformDataForAggregation.js.map +0 -1
- package/dist/transformDataForGraph.d.ts +0 -47
- package/dist/transformDataForGraph.js +0 -2
- package/dist/transformDataForGraph.js.map +0 -1
- package/dist/transformDataForGraphFromFile.d.ts +0 -66
- package/dist/transformDataForGraphFromFile.js +0 -2
- package/dist/transformDataForGraphFromFile.js.map +0 -1
- package/dist/use-in-view-CZPXmTZM.js.map +0 -1
- package/dist/use-in-view-Dl1CsAIo.cjs.map +0 -1
- package/dist/x-Dft9NVe_-DcB7wtv5.js +0 -61
- package/dist/x-Dft9NVe_-DcB7wtv5.js.map +0 -1
- package/dist/x-Dft9NVe_-LeyJu02C.cjs +0 -27
- package/dist/x-Dft9NVe_-LeyJu02C.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageDownload-CgDcm1Sj.cjs","sources":["../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/apply-style.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../src/Utils/imageDownload.ts"],"sourcesContent":["export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map","import { toPng } from 'html-to-image';\r\n/**\r\n * Downloads an image of a specified HTML element as a PNG file.\r\n *\r\n * Uses `html-to-image` to capture the content of the `node` and converts it to a downloadable PNG image.\r\n * It removes elements with the class `undp-viz-download-button` from the clone to prevent them from appearing in the screenshot.\r\n *\r\n * @param node - The HTMLElement to capture and convert into an image.\r\n * @param filename - The desired filename for the downloaded image (without extension).\r\n *\r\n * @example\r\n * const element = document.getElementById('myElement');\r\n * imageDownload(element, 'screenshot');\r\n */\r\n\r\nexport function imageDownload(node: HTMLElement, filename: string) {\r\n toPng(node, {\r\n quality: 1,\r\n pixelRatio: 2,\r\n skipAutoScale: true,\r\n style: { margin: '0' },\r\n filter: node => {\r\n return !node.classList?.contains('undp-viz-download-button');\r\n },\r\n })\r\n .then((dataUrl: string) => {\r\n const link = document.createElement('a');\r\n link.download = `${filename}.png`;\r\n link.href = dataUrl;\r\n link.click();\r\n })\r\n .catch(error => {\r\n console.error('Error generating image:', error);\r\n });\r\n}\r\n"],"names":["resolveUrl","url","baseUrl","doc","base","a","uuid","counter","random","toArray","arrayLike","arr","i","l","styleProps","getStyleProperties","options","px","node","styleProperty","val","getNodeWidth","leftBorder","rightBorder","getNodeHeight","topBorder","bottomBorder","getImageSize","targetNode","width","height","getPixelRatio","ratio","FINAL_PROCESS","canvasDimensionLimit","checkCanvasDimensions","canvas","createImage","resolve","reject","img","svgToDataURL","svg","html","nodeToDataURL","xmlns","foreignObject","isInstanceOfElement","instance","nodePrototype","formatCSSText","style","content","formatCSSProperties","name","value","priority","getPseudoElementStyle","className","pseudo","selector","cssText","clonePseudoElement","nativeNode","clonedNode","styleElement","clonePseudoElements","WOFF","JPEG","mimes","getExtension","match","getMimeType","extension","getContentFromDataUrl","dataURL","isDataUrl","makeDataUrl","mimeType","fetchAsDataURL","init","process","res","blob","reader","error","cache","getCacheKey","contentType","includeQueryParams","key","resourceToDataURL","resourceUrl","cacheKey","result","msg","cloneCanvasElement","cloneVideoElement","video","ctx","poster","cloneIFrameElement","iframe","_a","cloneNode","cloneSingleNode","isSVGElement","isSlotElement","cloneChildren","_b","children","deferred","child","clonedChild","cloneCSSStyle","targetStyle","sourceStyle","cloneInputValue","cloneSelectValue","clonedSelect","selectedOption","decorate","ensureSVGSymbols","clone","uses","processedDefs","id","exist","definition","nodes","ns","defs","isRoot","URL_REGEX","URL_WITH_FORMAT_REGEX","FONT_SRC_REGEX","toRegex","escaped","parseURLs","urls","raw","quotation","embed","resourceURL","baseURL","getContentFromUrl","resolvedURL","filterPreferredFontFormat","str","preferredFontFormat","src","format","shouldEmbed","embedResources","filteredCSSText","css","embedProp","propName","propValue","cssString","embedBackground","embedImageNode","isImageElement","attributes","image","embedChildren","deferreds","embedImages","applyStyle","manual","cssFetchCache","fetchCSS","embedFonts","data","regexUrl","loadFonts","loc","parseCSS","source","commentsRegex","keyframesRegex","matches","importRegex","combinedCSSRegex","unifiedRegex","getCSSRules","styleSheets","ret","sheet","item","index","importIndex","metadata","rule","e","inline","err","getWebFontRules","cssRules","parseWebFontRules","normalizeFontFamily","font","getUsedFonts","fonts","traverse","getWebFontCSS","rules","usedFonts","embedWebFonts","styleNode","sytleContent","toSvg","toCanvas","context","canvasWidth","canvasHeight","toPng","imageDownload","filename","dataUrl","link"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
function W(t, e) {
|
|
2
|
+
if (t.match(/^[a-z]+:\/\//i))
|
|
3
|
+
return t;
|
|
4
|
+
if (t.match(/^\/\//))
|
|
5
|
+
return window.location.protocol + t;
|
|
6
|
+
if (t.match(/^[a-z]+:/i))
|
|
7
|
+
return t;
|
|
8
|
+
const n = document.implementation.createHTMLDocument(), r = n.createElement("base"), s = n.createElement("a");
|
|
9
|
+
return n.head.appendChild(r), n.body.appendChild(s), e && (r.href = e), s.href = t, s.href;
|
|
10
|
+
}
|
|
11
|
+
const q = /* @__PURE__ */ (() => {
|
|
12
|
+
let t = 0;
|
|
13
|
+
const e = () => (
|
|
14
|
+
// eslint-disable-next-line no-bitwise
|
|
15
|
+
`0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4)
|
|
16
|
+
);
|
|
17
|
+
return () => (t += 1, `u${e()}${t}`);
|
|
18
|
+
})();
|
|
19
|
+
function m(t) {
|
|
20
|
+
const e = [];
|
|
21
|
+
for (let n = 0, r = t.length; n < r; n++)
|
|
22
|
+
e.push(t[n]);
|
|
23
|
+
return e;
|
|
24
|
+
}
|
|
25
|
+
let g = null;
|
|
26
|
+
function A(t = {}) {
|
|
27
|
+
return g || (t.includeStyleProperties ? (g = t.includeStyleProperties, g) : (g = m(window.getComputedStyle(document.documentElement)), g));
|
|
28
|
+
}
|
|
29
|
+
function y(t, e) {
|
|
30
|
+
const r = (t.ownerDocument.defaultView || window).getComputedStyle(t).getPropertyValue(e);
|
|
31
|
+
return r ? parseFloat(r.replace("px", "")) : 0;
|
|
32
|
+
}
|
|
33
|
+
function j(t) {
|
|
34
|
+
const e = y(t, "border-left-width"), n = y(t, "border-right-width");
|
|
35
|
+
return t.clientWidth + e + n;
|
|
36
|
+
}
|
|
37
|
+
function z(t) {
|
|
38
|
+
const e = y(t, "border-top-width"), n = y(t, "border-bottom-width");
|
|
39
|
+
return t.clientHeight + e + n;
|
|
40
|
+
}
|
|
41
|
+
function k(t, e = {}) {
|
|
42
|
+
const n = e.width || j(t), r = e.height || z(t);
|
|
43
|
+
return { width: n, height: r };
|
|
44
|
+
}
|
|
45
|
+
function B() {
|
|
46
|
+
let t, e;
|
|
47
|
+
try {
|
|
48
|
+
e = process;
|
|
49
|
+
} catch {
|
|
50
|
+
}
|
|
51
|
+
const n = e && e.env ? e.env.devicePixelRatio : null;
|
|
52
|
+
return n && (t = parseInt(n, 10), Number.isNaN(t) && (t = 1)), t || window.devicePixelRatio || 1;
|
|
53
|
+
}
|
|
54
|
+
const u = 16384;
|
|
55
|
+
function G(t) {
|
|
56
|
+
(t.width > u || t.height > u) && (t.width > u && t.height > u ? t.width > t.height ? (t.height *= u / t.width, t.width = u) : (t.width *= u / t.height, t.height = u) : t.width > u ? (t.height *= u / t.width, t.width = u) : (t.width *= u / t.height, t.height = u));
|
|
57
|
+
}
|
|
58
|
+
function w(t) {
|
|
59
|
+
return new Promise((e, n) => {
|
|
60
|
+
const r = new Image();
|
|
61
|
+
r.onload = () => {
|
|
62
|
+
r.decode().then(() => {
|
|
63
|
+
requestAnimationFrame(() => e(r));
|
|
64
|
+
});
|
|
65
|
+
}, r.onerror = n, r.crossOrigin = "anonymous", r.decoding = "async", r.src = t;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
async function X(t) {
|
|
69
|
+
return Promise.resolve().then(() => new XMLSerializer().serializeToString(t)).then(encodeURIComponent).then((e) => `data:image/svg+xml;charset=utf-8,${e}`);
|
|
70
|
+
}
|
|
71
|
+
async function K(t, e, n) {
|
|
72
|
+
const r = "http://www.w3.org/2000/svg", s = document.createElementNS(r, "svg"), i = document.createElementNS(r, "foreignObject");
|
|
73
|
+
return s.setAttribute("width", `${e}`), s.setAttribute("height", `${n}`), s.setAttribute("viewBox", `0 0 ${e} ${n}`), i.setAttribute("width", "100%"), i.setAttribute("height", "100%"), i.setAttribute("x", "0"), i.setAttribute("y", "0"), i.setAttribute("externalResourcesRequired", "true"), s.appendChild(i), i.appendChild(t), X(s);
|
|
74
|
+
}
|
|
75
|
+
const l = (t, e) => {
|
|
76
|
+
if (t instanceof e)
|
|
77
|
+
return !0;
|
|
78
|
+
const n = Object.getPrototypeOf(t);
|
|
79
|
+
return n === null ? !1 : n.constructor.name === e.name || l(n, e);
|
|
80
|
+
};
|
|
81
|
+
function J(t) {
|
|
82
|
+
const e = t.getPropertyValue("content");
|
|
83
|
+
return `${t.cssText} content: '${e.replace(/'|"/g, "")}';`;
|
|
84
|
+
}
|
|
85
|
+
function Q(t, e) {
|
|
86
|
+
return A(e).map((n) => {
|
|
87
|
+
const r = t.getPropertyValue(n), s = t.getPropertyPriority(n);
|
|
88
|
+
return `${n}: ${r}${s ? " !important" : ""};`;
|
|
89
|
+
}).join(" ");
|
|
90
|
+
}
|
|
91
|
+
function Y(t, e, n, r) {
|
|
92
|
+
const s = `.${t}:${e}`, i = n.cssText ? J(n) : Q(n, r);
|
|
93
|
+
return document.createTextNode(`${s}{${i}}`);
|
|
94
|
+
}
|
|
95
|
+
function C(t, e, n, r) {
|
|
96
|
+
const s = window.getComputedStyle(t, n), i = s.getPropertyValue("content");
|
|
97
|
+
if (i === "" || i === "none")
|
|
98
|
+
return;
|
|
99
|
+
const c = q();
|
|
100
|
+
try {
|
|
101
|
+
e.className = `${e.className} ${c}`;
|
|
102
|
+
} catch {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const a = document.createElement("style");
|
|
106
|
+
a.appendChild(Y(c, n, s, r)), e.appendChild(a);
|
|
107
|
+
}
|
|
108
|
+
function Z(t, e, n) {
|
|
109
|
+
C(t, e, ":before", n), C(t, e, ":after", n);
|
|
110
|
+
}
|
|
111
|
+
const P = "application/font-woff", $ = "image/jpeg", N = {
|
|
112
|
+
woff: P,
|
|
113
|
+
woff2: P,
|
|
114
|
+
ttf: "application/font-truetype",
|
|
115
|
+
eot: "application/vnd.ms-fontobject",
|
|
116
|
+
png: "image/png",
|
|
117
|
+
jpg: $,
|
|
118
|
+
jpeg: $,
|
|
119
|
+
gif: "image/gif",
|
|
120
|
+
tiff: "image/tiff",
|
|
121
|
+
svg: "image/svg+xml",
|
|
122
|
+
webp: "image/webp"
|
|
123
|
+
};
|
|
124
|
+
function tt(t) {
|
|
125
|
+
const e = /\.([^./]*?)$/g.exec(t);
|
|
126
|
+
return e ? e[1] : "";
|
|
127
|
+
}
|
|
128
|
+
function x(t) {
|
|
129
|
+
const e = tt(t).toLowerCase();
|
|
130
|
+
return N[e] || "";
|
|
131
|
+
}
|
|
132
|
+
function et(t) {
|
|
133
|
+
return t.split(/,/)[1];
|
|
134
|
+
}
|
|
135
|
+
function E(t) {
|
|
136
|
+
return t.search(/^(data:)/) !== -1;
|
|
137
|
+
}
|
|
138
|
+
function nt(t, e) {
|
|
139
|
+
return `data:${e};base64,${t}`;
|
|
140
|
+
}
|
|
141
|
+
async function D(t, e, n) {
|
|
142
|
+
const r = await fetch(t, e);
|
|
143
|
+
if (r.status === 404)
|
|
144
|
+
throw new Error(`Resource "${r.url}" not found`);
|
|
145
|
+
const s = await r.blob();
|
|
146
|
+
return new Promise((i, c) => {
|
|
147
|
+
const a = new FileReader();
|
|
148
|
+
a.onerror = c, a.onloadend = () => {
|
|
149
|
+
try {
|
|
150
|
+
i(n({ res: r, result: a.result }));
|
|
151
|
+
} catch (o) {
|
|
152
|
+
c(o);
|
|
153
|
+
}
|
|
154
|
+
}, a.readAsDataURL(s);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
const b = {};
|
|
158
|
+
function rt(t, e, n) {
|
|
159
|
+
let r = t.replace(/\?.*/, "");
|
|
160
|
+
return n && (r = t), /ttf|otf|eot|woff2?/i.test(r) && (r = r.replace(/.*\//, "")), e ? `[${e}]${r}` : r;
|
|
161
|
+
}
|
|
162
|
+
async function R(t, e, n) {
|
|
163
|
+
const r = rt(t, e, n.includeQueryParams);
|
|
164
|
+
if (b[r] != null)
|
|
165
|
+
return b[r];
|
|
166
|
+
n.cacheBust && (t += (/\?/.test(t) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
|
|
167
|
+
let s;
|
|
168
|
+
try {
|
|
169
|
+
const i = await D(t, n.fetchRequestInit, ({ res: c, result: a }) => (e || (e = c.headers.get("Content-Type") || ""), et(a)));
|
|
170
|
+
s = nt(i, e);
|
|
171
|
+
} catch (i) {
|
|
172
|
+
s = n.imagePlaceholder || "";
|
|
173
|
+
let c = `Failed to fetch resource: ${t}`;
|
|
174
|
+
i && (c = typeof i == "string" ? i : i.message), c && console.warn(c);
|
|
175
|
+
}
|
|
176
|
+
return b[r] = s, s;
|
|
177
|
+
}
|
|
178
|
+
async function it(t) {
|
|
179
|
+
const e = t.toDataURL();
|
|
180
|
+
return e === "data:," ? t.cloneNode(!1) : w(e);
|
|
181
|
+
}
|
|
182
|
+
async function st(t, e) {
|
|
183
|
+
if (t.currentSrc) {
|
|
184
|
+
const i = document.createElement("canvas"), c = i.getContext("2d");
|
|
185
|
+
i.width = t.clientWidth, i.height = t.clientHeight, c?.drawImage(t, 0, 0, i.width, i.height);
|
|
186
|
+
const a = i.toDataURL();
|
|
187
|
+
return w(a);
|
|
188
|
+
}
|
|
189
|
+
const n = t.poster, r = x(n), s = await R(n, r, e);
|
|
190
|
+
return w(s);
|
|
191
|
+
}
|
|
192
|
+
async function ct(t, e) {
|
|
193
|
+
var n;
|
|
194
|
+
try {
|
|
195
|
+
if (!((n = t?.contentDocument) === null || n === void 0) && n.body)
|
|
196
|
+
return await p(t.contentDocument.body, e, !0);
|
|
197
|
+
} catch {
|
|
198
|
+
}
|
|
199
|
+
return t.cloneNode(!1);
|
|
200
|
+
}
|
|
201
|
+
async function at(t, e) {
|
|
202
|
+
return l(t, HTMLCanvasElement) ? it(t) : l(t, HTMLVideoElement) ? st(t, e) : l(t, HTMLIFrameElement) ? ct(t, e) : t.cloneNode(v(t));
|
|
203
|
+
}
|
|
204
|
+
const ot = (t) => t.tagName != null && t.tagName.toUpperCase() === "SLOT", v = (t) => t.tagName != null && t.tagName.toUpperCase() === "SVG";
|
|
205
|
+
async function lt(t, e, n) {
|
|
206
|
+
var r, s;
|
|
207
|
+
if (v(e))
|
|
208
|
+
return e;
|
|
209
|
+
let i = [];
|
|
210
|
+
return ot(t) && t.assignedNodes ? i = m(t.assignedNodes()) : l(t, HTMLIFrameElement) && (!((r = t.contentDocument) === null || r === void 0) && r.body) ? i = m(t.contentDocument.body.childNodes) : i = m(((s = t.shadowRoot) !== null && s !== void 0 ? s : t).childNodes), i.length === 0 || l(t, HTMLVideoElement) || await i.reduce((c, a) => c.then(() => p(a, n)).then((o) => {
|
|
211
|
+
o && e.appendChild(o);
|
|
212
|
+
}), Promise.resolve()), e;
|
|
213
|
+
}
|
|
214
|
+
function ut(t, e, n) {
|
|
215
|
+
const r = e.style;
|
|
216
|
+
if (!r)
|
|
217
|
+
return;
|
|
218
|
+
const s = window.getComputedStyle(t);
|
|
219
|
+
s.cssText ? (r.cssText = s.cssText, r.transformOrigin = s.transformOrigin) : A(n).forEach((i) => {
|
|
220
|
+
let c = s.getPropertyValue(i);
|
|
221
|
+
i === "font-size" && c.endsWith("px") && (c = `${Math.floor(parseFloat(c.substring(0, c.length - 2))) - 0.1}px`), l(t, HTMLIFrameElement) && i === "display" && c === "inline" && (c = "block"), i === "d" && e.getAttribute("d") && (c = `path(${e.getAttribute("d")})`), r.setProperty(i, c, s.getPropertyPriority(i));
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
function ft(t, e) {
|
|
225
|
+
l(t, HTMLTextAreaElement) && (e.innerHTML = t.value), l(t, HTMLInputElement) && e.setAttribute("value", t.value);
|
|
226
|
+
}
|
|
227
|
+
function ht(t, e) {
|
|
228
|
+
if (l(t, HTMLSelectElement)) {
|
|
229
|
+
const n = e, r = Array.from(n.children).find((s) => t.value === s.getAttribute("value"));
|
|
230
|
+
r && r.setAttribute("selected", "");
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
function mt(t, e, n) {
|
|
234
|
+
return l(e, Element) && (ut(t, e, n), Z(t, e, n), ft(t, e), ht(t, e)), e;
|
|
235
|
+
}
|
|
236
|
+
async function gt(t, e) {
|
|
237
|
+
const n = t.querySelectorAll ? t.querySelectorAll("use") : [];
|
|
238
|
+
if (n.length === 0)
|
|
239
|
+
return t;
|
|
240
|
+
const r = {};
|
|
241
|
+
for (let i = 0; i < n.length; i++) {
|
|
242
|
+
const a = n[i].getAttribute("xlink:href");
|
|
243
|
+
if (a) {
|
|
244
|
+
const o = t.querySelector(a), f = document.querySelector(a);
|
|
245
|
+
!o && f && !r[a] && (r[a] = await p(f, e, !0));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const s = Object.values(r);
|
|
249
|
+
if (s.length) {
|
|
250
|
+
const i = "http://www.w3.org/1999/xhtml", c = document.createElementNS(i, "svg");
|
|
251
|
+
c.setAttribute("xmlns", i), c.style.position = "absolute", c.style.width = "0", c.style.height = "0", c.style.overflow = "hidden", c.style.display = "none";
|
|
252
|
+
const a = document.createElementNS(i, "defs");
|
|
253
|
+
c.appendChild(a);
|
|
254
|
+
for (let o = 0; o < s.length; o++)
|
|
255
|
+
a.appendChild(s[o]);
|
|
256
|
+
t.appendChild(c);
|
|
257
|
+
}
|
|
258
|
+
return t;
|
|
259
|
+
}
|
|
260
|
+
async function p(t, e, n) {
|
|
261
|
+
return !n && e.filter && !e.filter(t) ? null : Promise.resolve(t).then((r) => at(r, e)).then((r) => lt(t, r, e)).then((r) => mt(t, r, e)).then((r) => gt(r, e));
|
|
262
|
+
}
|
|
263
|
+
const U = /url\((['"]?)([^'"]+?)\1\)/g, dt = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, yt = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
|
|
264
|
+
function wt(t) {
|
|
265
|
+
const e = t.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
|
|
266
|
+
return new RegExp(`(url\\(['"]?)(${e})(['"]?\\))`, "g");
|
|
267
|
+
}
|
|
268
|
+
function pt(t) {
|
|
269
|
+
const e = [];
|
|
270
|
+
return t.replace(U, (n, r, s) => (e.push(s), n)), e.filter((n) => !E(n));
|
|
271
|
+
}
|
|
272
|
+
async function St(t, e, n, r, s) {
|
|
273
|
+
try {
|
|
274
|
+
const i = n ? W(e, n) : e, c = x(e);
|
|
275
|
+
let a;
|
|
276
|
+
return s || (a = await R(i, c, r)), t.replace(wt(e), `$1${a}$3`);
|
|
277
|
+
} catch {
|
|
278
|
+
}
|
|
279
|
+
return t;
|
|
280
|
+
}
|
|
281
|
+
function bt(t, { preferredFontFormat: e }) {
|
|
282
|
+
return e ? t.replace(yt, (n) => {
|
|
283
|
+
for (; ; ) {
|
|
284
|
+
const [r, , s] = dt.exec(n) || [];
|
|
285
|
+
if (!s)
|
|
286
|
+
return "";
|
|
287
|
+
if (s === e)
|
|
288
|
+
return `src: ${r};`;
|
|
289
|
+
}
|
|
290
|
+
}) : t;
|
|
291
|
+
}
|
|
292
|
+
function H(t) {
|
|
293
|
+
return t.search(U) !== -1;
|
|
294
|
+
}
|
|
295
|
+
async function V(t, e, n) {
|
|
296
|
+
if (!H(t))
|
|
297
|
+
return t;
|
|
298
|
+
const r = bt(t, n);
|
|
299
|
+
return pt(r).reduce((i, c) => i.then((a) => St(a, c, e, n)), Promise.resolve(r));
|
|
300
|
+
}
|
|
301
|
+
async function d(t, e, n) {
|
|
302
|
+
var r;
|
|
303
|
+
const s = (r = e.style) === null || r === void 0 ? void 0 : r.getPropertyValue(t);
|
|
304
|
+
if (s) {
|
|
305
|
+
const i = await V(s, null, n);
|
|
306
|
+
return e.style.setProperty(t, i, e.style.getPropertyPriority(t)), !0;
|
|
307
|
+
}
|
|
308
|
+
return !1;
|
|
309
|
+
}
|
|
310
|
+
async function Et(t, e) {
|
|
311
|
+
await d("background", t, e) || await d("background-image", t, e), await d("mask", t, e) || await d("-webkit-mask", t, e) || await d("mask-image", t, e) || await d("-webkit-mask-image", t, e);
|
|
312
|
+
}
|
|
313
|
+
async function xt(t, e) {
|
|
314
|
+
const n = l(t, HTMLImageElement);
|
|
315
|
+
if (!(n && !E(t.src)) && !(l(t, SVGImageElement) && !E(t.href.baseVal)))
|
|
316
|
+
return;
|
|
317
|
+
const r = n ? t.src : t.href.baseVal, s = await R(r, x(r), e);
|
|
318
|
+
await new Promise((i, c) => {
|
|
319
|
+
t.onload = i, t.onerror = e.onImageErrorHandler ? (...o) => {
|
|
320
|
+
try {
|
|
321
|
+
i(e.onImageErrorHandler(...o));
|
|
322
|
+
} catch (f) {
|
|
323
|
+
c(f);
|
|
324
|
+
}
|
|
325
|
+
} : c;
|
|
326
|
+
const a = t;
|
|
327
|
+
a.decode && (a.decode = i), a.loading === "lazy" && (a.loading = "eager"), n ? (t.srcset = "", t.src = s) : t.href.baseVal = s;
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
async function Rt(t, e) {
|
|
331
|
+
const r = m(t.childNodes).map((s) => M(s, e));
|
|
332
|
+
await Promise.all(r).then(() => t);
|
|
333
|
+
}
|
|
334
|
+
async function M(t, e) {
|
|
335
|
+
l(t, Element) && (await Et(t, e), await xt(t, e), await Rt(t, e));
|
|
336
|
+
}
|
|
337
|
+
function Ct(t, e) {
|
|
338
|
+
const { style: n } = t;
|
|
339
|
+
e.backgroundColor && (n.backgroundColor = e.backgroundColor), e.width && (n.width = `${e.width}px`), e.height && (n.height = `${e.height}px`);
|
|
340
|
+
const r = e.style;
|
|
341
|
+
return r != null && Object.keys(r).forEach((s) => {
|
|
342
|
+
n[s] = r[s];
|
|
343
|
+
}), t;
|
|
344
|
+
}
|
|
345
|
+
const T = {};
|
|
346
|
+
async function L(t) {
|
|
347
|
+
let e = T[t];
|
|
348
|
+
if (e != null)
|
|
349
|
+
return e;
|
|
350
|
+
const r = await (await fetch(t)).text();
|
|
351
|
+
return e = { url: t, cssText: r }, T[t] = e, e;
|
|
352
|
+
}
|
|
353
|
+
async function F(t, e) {
|
|
354
|
+
let n = t.cssText;
|
|
355
|
+
const r = /url\(["']?([^"')]+)["']?\)/g, i = (n.match(/url\([^)]+\)/g) || []).map(async (c) => {
|
|
356
|
+
let a = c.replace(r, "$1");
|
|
357
|
+
return a.startsWith("https://") || (a = new URL(a, t.url).href), D(a, e.fetchRequestInit, ({ result: o }) => (n = n.replace(c, `url(${o})`), [c, o]));
|
|
358
|
+
});
|
|
359
|
+
return Promise.all(i).then(() => n);
|
|
360
|
+
}
|
|
361
|
+
function I(t) {
|
|
362
|
+
if (t == null)
|
|
363
|
+
return [];
|
|
364
|
+
const e = [], n = /(\/\*[\s\S]*?\*\/)/gi;
|
|
365
|
+
let r = t.replace(n, "");
|
|
366
|
+
const s = new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})", "gi");
|
|
367
|
+
for (; ; ) {
|
|
368
|
+
const o = s.exec(r);
|
|
369
|
+
if (o === null)
|
|
370
|
+
break;
|
|
371
|
+
e.push(o[0]);
|
|
372
|
+
}
|
|
373
|
+
r = r.replace(s, "");
|
|
374
|
+
const i = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi, c = "((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})", a = new RegExp(c, "gi");
|
|
375
|
+
for (; ; ) {
|
|
376
|
+
let o = i.exec(r);
|
|
377
|
+
if (o === null) {
|
|
378
|
+
if (o = a.exec(r), o === null)
|
|
379
|
+
break;
|
|
380
|
+
i.lastIndex = a.lastIndex;
|
|
381
|
+
} else
|
|
382
|
+
a.lastIndex = i.lastIndex;
|
|
383
|
+
e.push(o[0]);
|
|
384
|
+
}
|
|
385
|
+
return e;
|
|
386
|
+
}
|
|
387
|
+
async function Pt(t, e) {
|
|
388
|
+
const n = [], r = [];
|
|
389
|
+
return t.forEach((s) => {
|
|
390
|
+
if ("cssRules" in s)
|
|
391
|
+
try {
|
|
392
|
+
m(s.cssRules || []).forEach((i, c) => {
|
|
393
|
+
if (i.type === CSSRule.IMPORT_RULE) {
|
|
394
|
+
let a = c + 1;
|
|
395
|
+
const o = i.href, f = L(o).then((h) => F(h, e)).then((h) => I(h).forEach((S) => {
|
|
396
|
+
try {
|
|
397
|
+
s.insertRule(S, S.startsWith("@import") ? a += 1 : s.cssRules.length);
|
|
398
|
+
} catch (_) {
|
|
399
|
+
console.error("Error inserting rule from remote css", {
|
|
400
|
+
rule: S,
|
|
401
|
+
error: _
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
})).catch((h) => {
|
|
405
|
+
console.error("Error loading remote css", h.toString());
|
|
406
|
+
});
|
|
407
|
+
r.push(f);
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
} catch (i) {
|
|
411
|
+
const c = t.find((a) => a.href == null) || document.styleSheets[0];
|
|
412
|
+
s.href != null && r.push(L(s.href).then((a) => F(a, e)).then((a) => I(a).forEach((o) => {
|
|
413
|
+
c.insertRule(o, c.cssRules.length);
|
|
414
|
+
})).catch((a) => {
|
|
415
|
+
console.error("Error loading remote stylesheet", a);
|
|
416
|
+
})), console.error("Error inlining remote css file", i);
|
|
417
|
+
}
|
|
418
|
+
}), Promise.all(r).then(() => (t.forEach((s) => {
|
|
419
|
+
if ("cssRules" in s)
|
|
420
|
+
try {
|
|
421
|
+
m(s.cssRules || []).forEach((i) => {
|
|
422
|
+
n.push(i);
|
|
423
|
+
});
|
|
424
|
+
} catch (i) {
|
|
425
|
+
console.error(`Error while reading CSS rules from ${s.href}`, i);
|
|
426
|
+
}
|
|
427
|
+
}), n));
|
|
428
|
+
}
|
|
429
|
+
function $t(t) {
|
|
430
|
+
return t.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => H(e.style.getPropertyValue("src")));
|
|
431
|
+
}
|
|
432
|
+
async function Tt(t, e) {
|
|
433
|
+
if (t.ownerDocument == null)
|
|
434
|
+
throw new Error("Provided element is not within a Document");
|
|
435
|
+
const n = m(t.ownerDocument.styleSheets), r = await Pt(n, e);
|
|
436
|
+
return $t(r);
|
|
437
|
+
}
|
|
438
|
+
function O(t) {
|
|
439
|
+
return t.trim().replace(/["']/g, "");
|
|
440
|
+
}
|
|
441
|
+
function Lt(t) {
|
|
442
|
+
const e = /* @__PURE__ */ new Set();
|
|
443
|
+
function n(r) {
|
|
444
|
+
(r.style.fontFamily || getComputedStyle(r).fontFamily).split(",").forEach((i) => {
|
|
445
|
+
e.add(O(i));
|
|
446
|
+
}), Array.from(r.children).forEach((i) => {
|
|
447
|
+
i instanceof HTMLElement && n(i);
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
return n(t), e;
|
|
451
|
+
}
|
|
452
|
+
async function Ft(t, e) {
|
|
453
|
+
const n = await Tt(t, e), r = Lt(t);
|
|
454
|
+
return (await Promise.all(n.filter((i) => r.has(O(i.style.fontFamily))).map((i) => {
|
|
455
|
+
const c = i.parentStyleSheet ? i.parentStyleSheet.href : null;
|
|
456
|
+
return V(i.cssText, c, e);
|
|
457
|
+
}))).join(`
|
|
458
|
+
`);
|
|
459
|
+
}
|
|
460
|
+
async function It(t, e) {
|
|
461
|
+
const n = e.fontEmbedCSS != null ? e.fontEmbedCSS : e.skipFonts ? null : await Ft(t, e);
|
|
462
|
+
if (n) {
|
|
463
|
+
const r = document.createElement("style"), s = document.createTextNode(n);
|
|
464
|
+
r.appendChild(s), t.firstChild ? t.insertBefore(r, t.firstChild) : t.appendChild(r);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
async function At(t, e = {}) {
|
|
468
|
+
const { width: n, height: r } = k(t, e), s = await p(t, e, !0);
|
|
469
|
+
return await It(s, e), await M(s, e), Ct(s, e), await K(s, n, r);
|
|
470
|
+
}
|
|
471
|
+
async function kt(t, e = {}) {
|
|
472
|
+
const { width: n, height: r } = k(t, e), s = await At(t, e), i = await w(s), c = document.createElement("canvas"), a = c.getContext("2d"), o = e.pixelRatio || B(), f = e.canvasWidth || n, h = e.canvasHeight || r;
|
|
473
|
+
return c.width = f * o, c.height = h * o, e.skipAutoScale || G(c), c.style.width = `${f}`, c.style.height = `${h}`, e.backgroundColor && (a.fillStyle = e.backgroundColor, a.fillRect(0, 0, c.width, c.height)), a.drawImage(i, 0, 0, c.width, c.height), c;
|
|
474
|
+
}
|
|
475
|
+
async function Dt(t, e = {}) {
|
|
476
|
+
return (await kt(t, e)).toDataURL();
|
|
477
|
+
}
|
|
478
|
+
function vt(t, e) {
|
|
479
|
+
Dt(t, {
|
|
480
|
+
quality: 1,
|
|
481
|
+
pixelRatio: 2,
|
|
482
|
+
skipAutoScale: !0,
|
|
483
|
+
style: { margin: "0" },
|
|
484
|
+
filter: (n) => !n.classList?.contains("undp-viz-download-button")
|
|
485
|
+
}).then((n) => {
|
|
486
|
+
const r = document.createElement("a");
|
|
487
|
+
r.download = `${e}.png`, r.href = n, r.click();
|
|
488
|
+
}).catch((n) => {
|
|
489
|
+
console.error("Error generating image:", n);
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
export {
|
|
493
|
+
vt as i
|
|
494
|
+
};
|
|
495
|
+
//# sourceMappingURL=imageDownload-Dcci2LEy.js.map
|