drizzle-cube 0.6.6 → 0.7.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/README.md +231 -106
- package/dist/adapters/ActivityGridChart.config-DaYILvFZ.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-_SyTBEyR.js +2 -0
- package/dist/adapters/AreaChart.config-BKh6fY1_.cjs +1 -0
- package/dist/adapters/AreaChart.config-CJoxLP3Y.js +2 -0
- package/dist/adapters/BarChart.config-Bm1bfRbI.cjs +1 -0
- package/dist/adapters/BarChart.config-CGu2Bqrx.js +2 -0
- package/dist/adapters/BoxPlotChart.config-B7M9CQaE.js +2 -0
- package/dist/adapters/BoxPlotChart.config-CXQel8Hk.cjs +1 -0
- package/dist/adapters/BubbleChart.config-BJ36IuVS.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CWoXeLdm.js +2 -0
- package/dist/adapters/CandlestickChart.config-CGMLZVIy.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-CzOcfF1e.js +2 -0
- package/dist/adapters/DataTable.config-CdAzueTs.cjs +1 -0
- package/dist/adapters/DataTable.config-D_KmPyxV.js +2 -0
- package/dist/adapters/FunnelChart.config-D1QAUuYl.cjs +1 -0
- package/dist/adapters/FunnelChart.config-DCRHQoFc.js +2 -0
- package/dist/adapters/GaugeChart.config-DAybRXP3.js +2 -0
- package/dist/adapters/GaugeChart.config-WUPfyLP-.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-CziltPnC.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-DHpXNONW.js +2 -0
- package/dist/adapters/KpiDelta.config-Bw5o0ocY.js +2 -0
- package/dist/adapters/KpiDelta.config-CdAmE1pw.cjs +1 -0
- package/dist/adapters/KpiNumber.config-CQ_wq2gx.js +2 -0
- package/dist/adapters/KpiNumber.config-wxN8x4DC.cjs +1 -0
- package/dist/adapters/KpiText.config-DIRIC97F.cjs +1 -0
- package/dist/adapters/KpiText.config-eODcP6Hn.js +2 -0
- package/dist/adapters/LineChart.config-32-9zA2V.js +2 -0
- package/dist/adapters/LineChart.config-BukeFp6z.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-BVsR5LDy.js +2 -0
- package/dist/adapters/MarkdownChart.config-j4veYjcZ.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-BRDYx1hw.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-CIosBxco.cjs +1 -0
- package/dist/adapters/PieChart.config-Bj8KiA0n.cjs +1 -0
- package/dist/adapters/PieChart.config-DgAj3y-I.js +2 -0
- package/dist/adapters/ProportionBarChart.config-BfFOppHY.js +2 -0
- package/dist/adapters/ProportionBarChart.config-c8GGE1aK.cjs +1 -0
- package/dist/adapters/RadarChart.config-D7iHY1v9.js +2 -0
- package/dist/adapters/RadarChart.config-ghlANG2-.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CsXIz-0v.js +2 -0
- package/dist/adapters/RadialBarChart.config-Dsvu2CPV.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-CdT1kXC7.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-sDjFKH9K.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-CvKBvQmu.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-DbM3ICwc.js +2 -0
- package/dist/adapters/SankeyChart.config-BNBcIHaD.js +2 -0
- package/dist/adapters/SankeyChart.config-DZscz3kh.cjs +1 -0
- package/dist/adapters/ScatterChart.config-BNYIddyM.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CEhtoLWc.js +2 -0
- package/dist/adapters/SunburstChart.config-ClseCzji.cjs +1 -0
- package/dist/adapters/SunburstChart.config-nnphNoVO.js +2 -0
- package/dist/adapters/TreeMapChart.config-C8-75muA.js +2 -0
- package/dist/adapters/TreeMapChart.config-DoXeUg9Y.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-BOF1qxY3.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-uW5YyOji.js +2 -0
- package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +1 -0
- package/dist/adapters/{chartConfigHelpers-CcvqrIWF.js → chartConfigHelpers-BsnbxA2c.js} +30 -1
- package/dist/adapters/compiler-DAyodAnH.cjs +166 -0
- package/dist/adapters/{compiler-ZruQ85ff.js → compiler-Dq04wAjm.js} +116 -60
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BMZhIzaI.js → core-BjxfG6Uf.js} +8 -8
- package/dist/adapters/core-zV2w0hO2.cjs +1 -0
- package/dist/adapters/{dist-CH3hwAUk.js → dist-ChBfLb7x.js} +7 -4
- package/dist/adapters/{dist-BOdf-GQO.cjs → dist-CohrBmKe.cjs} +2 -2
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +10 -6
- package/dist/adapters/google-BhvizbFR.cjs +2 -0
- package/dist/adapters/{google-CvKM9yVM.js → google-eKAc20al.js} +3 -3
- package/dist/adapters/{handler-_PXp3G47.cjs → handler-C6Hj6_Yk.cjs} +9 -9
- package/dist/adapters/{handler-xR2P1EI4.js → handler-ox6qxLw5.js} +230 -152
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +26 -18
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-C_t_p0wU.cjs +40 -0
- package/dist/adapters/mcp-transport-DFH9e6de.js +603 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +14 -11
- package/dist/{server/openai-C3-mjSAc.cjs → adapters/openai-BffpdO4n.cjs} +1 -1
- package/dist/adapters/openai-C9LNhHfK.js +9295 -0
- package/dist/adapters/{openai-B6hWZk_r.js → openai-CmyXJWti.js} +18 -17
- package/dist/adapters/openai-DlT-0VRC.cjs +19 -0
- package/dist/adapters/utils-C5FLHK04.cjs +128 -0
- package/dist/adapters/{utils-U7gV5wQL.js → utils-tjiwXFnP.js} +69 -17
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/client/charts/chartConfigHelpers.d.ts +20 -0
- package/dist/cjs/client/components/AgenticNotebook/AgentChatPanel.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/ChatInput.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/NotebookCanvas.d.ts +2 -2
- package/dist/cjs/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/index.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownRow.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FieldSearchResults.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowModeContent.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelModeContent.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/MetricRow.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
- package/dist/cjs/client/components/AnalysisBuilder/RetentionModeContent.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/SortToggleButton.d.ts +1 -1
- package/dist/cjs/client/components/DashboardPortletCard.d.ts +1 -1
- package/dist/cjs/client/components/DataBrowser/DataBrowserTable.d.ts +1 -1
- package/dist/cjs/client/components/PortletGroupCard.d.ts +18 -0
- package/dist/cjs/client/components/RowManagedLayout.d.ts +15 -3
- package/dist/cjs/client/components/analyticsPortlet/intrinsicChartHeight.d.ts +9 -0
- package/dist/cjs/client/components/charts/ActivityGridChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/AngledXAxisTick.d.ts +5 -0
- package/dist/cjs/client/components/charts/AreaChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/BarChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/BoxPlotChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/BubbleChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/CandlestickChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/ChartContainer.d.ts +7 -1
- package/dist/cjs/client/components/charts/ChartSummaryHeader.d.ts +31 -0
- package/dist/cjs/client/components/charts/DataTable.d.ts +1 -1
- package/dist/cjs/client/components/charts/FunnelChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/GaugeChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/HeatMapChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/KpiCompactLayout.d.ts +31 -0
- package/dist/cjs/client/components/charts/KpiDelta.d.ts +1 -1
- package/dist/cjs/client/components/charts/KpiDelta.helpers.d.ts +2 -0
- package/dist/cjs/client/components/charts/KpiNumber.d.ts +1 -1
- package/dist/cjs/client/components/charts/KpiStates.d.ts +7 -2
- package/dist/cjs/client/components/charts/KpiText.d.ts +1 -1
- package/dist/cjs/client/components/charts/LineChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/MeasureProfileChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/PieChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/ProportionBarChart.config.d.ts +10 -0
- package/dist/cjs/client/components/charts/ProportionBarChart.d.ts +12 -0
- package/dist/cjs/client/components/charts/RadarChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/RadialBarChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/RetentionCombinedChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/RetentionHeatmap.d.ts +1 -1
- package/dist/cjs/client/components/charts/SankeyChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/ScatterChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/SunburstChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/TreeMapChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/WaterfallChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/cartesianChartHelpers.d.ts +62 -0
- package/dist/cjs/client/components/charts/chartScaffolding.d.ts +29 -0
- package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +5 -1
- package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
- package/dist/cjs/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
- package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
- package/dist/cjs/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
- package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
- package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
- package/dist/cjs/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
- package/dist/cjs/client/components.d.ts +1 -1
- package/dist/cjs/client/hooks/dashboard/groupGeometry.d.ts +23 -0
- package/dist/cjs/client/hooks/dashboard/groupUtils.d.ts +57 -0
- package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +34 -3
- package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +11 -3
- package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
- package/dist/cjs/client/hooks/useDashboardHook.d.ts +14 -1
- package/dist/cjs/client/icons/types.d.ts +1 -0
- package/dist/cjs/client/index.d.ts +1 -1
- package/dist/cjs/client/stores/dashboardStore.d.ts +11 -1
- package/dist/cjs/client/types.d.ts +37 -2
- package/dist/cli/index.cjs +6 -5
- package/dist/client/charts/chartConfigHelpers.d.ts +20 -0
- package/dist/client/charts.js +13 -13
- package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js +11777 -0
- package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js.map +1 -0
- package/dist/client/chunks/ProportionBarChart-lOeVz8ZC.js +109 -0
- package/dist/client/chunks/ProportionBarChart-lOeVz8ZC.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-DY7wKLs5.js → RetentionCombinedChart-Mcm7zHFx.js} +8 -8
- package/dist/client/chunks/{RetentionCombinedChart-DY7wKLs5.js.map → RetentionCombinedChart-Mcm7zHFx.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-iNCG-dLd.js → RetentionHeatmap-4VJx5KDM.js} +6 -6
- package/dist/client/chunks/{RetentionHeatmap-iNCG-dLd.js.map → RetentionHeatmap-4VJx5KDM.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-BDWychCW.js → analysis-builder-CWTJQQtL.js} +421 -413
- package/dist/client/chunks/analysis-builder-CWTJQQtL.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-DkL0e-wU.js → analysis-builder-shared-l-4WKVS1.js} +454 -452
- package/dist/client/chunks/analysis-builder-shared-l-4WKVS1.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-DDqFVWoa.js → chart-activity-grid-DVOhLgxv.js} +61 -6
- package/dist/client/chunks/{chart-activity-grid-DDqFVWoa.js.map → chart-activity-grid-DVOhLgxv.js.map} +1 -1
- package/dist/client/chunks/chart-area-C-5ATxvi.js +963 -0
- package/dist/client/chunks/chart-area-C-5ATxvi.js.map +1 -0
- package/dist/client/chunks/{chart-bar-DAO3PPcE.js → chart-bar-CPiLaXHP.js} +71 -64
- package/dist/client/chunks/chart-bar-CPiLaXHP.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-CUpFyQQk.js → chart-box-plot-Bae5O9xC.js} +3 -3
- package/dist/client/chunks/{chart-box-plot-CUpFyQQk.js.map → chart-box-plot-Bae5O9xC.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-DvP_6_n9.js → chart-bubble-BFN5WIpf.js} +5 -5
- package/dist/client/chunks/{chart-bubble-DvP_6_n9.js.map → chart-bubble-BFN5WIpf.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-Dx8ZCMzl.js → chart-candlestick-PBQKp_z7.js} +3 -3
- package/dist/client/chunks/{chart-candlestick-Dx8ZCMzl.js.map → chart-candlestick-PBQKp_z7.js.map} +1 -1
- package/dist/client/chunks/{chart-config-activity-grid-BU_bkvER.js → chart-config-activity-grid-C4vXGQNu.js} +2 -2
- package/dist/client/chunks/{chart-config-activity-grid-BU_bkvER.js.map → chart-config-activity-grid-C4vXGQNu.js.map} +1 -1
- package/dist/client/chunks/{chart-config-area-DxwIZ4Uf.js → chart-config-area-DsrZCIwF.js} +35 -4
- package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +1 -0
- package/dist/client/chunks/{chart-config-bar-Cc8GY9aQ.js → chart-config-bar-BixSs43E.js} +7 -7
- package/dist/client/chunks/{chart-config-bar-Cc8GY9aQ.js.map → chart-config-bar-BixSs43E.js.map} +1 -1
- package/dist/client/chunks/{chart-config-box-plot-Bs8ovYvV.js → chart-config-box-plot-DMuJZqkr.js} +2 -2
- package/dist/client/chunks/{chart-config-box-plot-Bs8ovYvV.js.map → chart-config-box-plot-DMuJZqkr.js.map} +1 -1
- package/dist/client/chunks/{chart-config-bubble-BfgY7pt8.js → chart-config-bubble-1IyZinH0.js} +2 -2
- package/dist/client/chunks/{chart-config-bubble-BfgY7pt8.js.map → chart-config-bubble-1IyZinH0.js.map} +1 -1
- package/dist/client/chunks/{chart-config-candlestick-jaeNNEtC.js → chart-config-candlestick-QwQwJB_-.js} +2 -2
- package/dist/client/chunks/{chart-config-candlestick-jaeNNEtC.js.map → chart-config-candlestick-QwQwJB_-.js.map} +1 -1
- package/dist/client/chunks/{chart-config-data-table-CRk0C0rW.js → chart-config-data-table-CrGyS7aJ.js} +2 -2
- package/dist/client/chunks/{chart-config-data-table-CRk0C0rW.js.map → chart-config-data-table-CrGyS7aJ.js.map} +1 -1
- package/dist/client/chunks/{chart-config-funnel-boT_LNfl.js → chart-config-funnel-DMLLKtPF.js} +2 -2
- package/dist/client/chunks/{chart-config-funnel-boT_LNfl.js.map → chart-config-funnel-DMLLKtPF.js.map} +1 -1
- package/dist/client/chunks/{chart-config-gauge-C5uJEr97.js → chart-config-gauge-DNafFwfS.js} +2 -2
- package/dist/client/chunks/{chart-config-gauge-C5uJEr97.js.map → chart-config-gauge-DNafFwfS.js.map} +1 -1
- package/dist/client/chunks/{chart-config-heat-map-CCarP44-.js → chart-config-heat-map-CJF65SyL.js} +2 -2
- package/dist/client/chunks/{chart-config-heat-map-CCarP44-.js.map → chart-config-heat-map-CJF65SyL.js.map} +1 -1
- package/dist/client/chunks/{chart-config-kpi-delta-DYopvwyG.js → chart-config-kpi-delta-Cl7k6jTj.js} +13 -4
- package/dist/client/chunks/chart-config-kpi-delta-Cl7k6jTj.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-number-BhMdoArB.js → chart-config-kpi-number-DCcnANWC.js} +6 -4
- package/dist/client/chunks/chart-config-kpi-number-DCcnANWC.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-text-DE6Zdi53.js → chart-config-kpi-text-DnnxvOSA.js} +2 -2
- package/dist/client/chunks/{chart-config-kpi-text-DE6Zdi53.js.map → chart-config-kpi-text-DnnxvOSA.js.map} +1 -1
- package/dist/client/chunks/{chart-config-line-CBfM0Rds.js → chart-config-line-CBF9Px9b.js} +9 -7
- package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +1 -0
- package/dist/client/chunks/{chart-config-markdown-BCDyBI8K.js → chart-config-markdown-C5kBQOjP.js} +2 -2
- package/dist/client/chunks/{chart-config-markdown-BCDyBI8K.js.map → chart-config-markdown-C5kBQOjP.js.map} +1 -1
- package/dist/client/chunks/{chart-config-measure-profile-BgQIH1u2.js → chart-config-measure-profile-CRSRIpKh.js} +2 -2
- package/dist/client/chunks/{chart-config-measure-profile-BgQIH1u2.js.map → chart-config-measure-profile-CRSRIpKh.js.map} +1 -1
- package/dist/client/chunks/{chart-config-pie-ChfFz6DV.js → chart-config-pie-DZLa6Eqm.js} +3 -3
- package/dist/client/chunks/{chart-config-pie-ChfFz6DV.js.map → chart-config-pie-DZLa6Eqm.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radar-BlAIGnww.js → chart-config-radar-DR6vHHyd.js} +3 -3
- package/dist/client/chunks/{chart-config-radar-BlAIGnww.js.map → chart-config-radar-DR6vHHyd.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radial-bar-VFerwbCO.js → chart-config-radial-bar-DVFou4fB.js} +3 -3
- package/dist/client/chunks/{chart-config-radial-bar-VFerwbCO.js.map → chart-config-radial-bar-DVFou4fB.js.map} +1 -1
- package/dist/client/chunks/{chart-config-sankey-BhrDxIgj.js → chart-config-sankey-De8E0C1A.js} +2 -2
- package/dist/client/chunks/{chart-config-sankey-BhrDxIgj.js.map → chart-config-sankey-De8E0C1A.js.map} +1 -1
- package/dist/client/chunks/{chart-config-scatter-q_olh54e.js → chart-config-scatter-CWA89oX4.js} +2 -2
- package/dist/client/chunks/{chart-config-scatter-q_olh54e.js.map → chart-config-scatter-CWA89oX4.js.map} +1 -1
- package/dist/client/chunks/{chart-config-sunburst-BOmkOnKn.js → chart-config-sunburst-B4NUYHMH.js} +2 -2
- package/dist/client/chunks/{chart-config-sunburst-BOmkOnKn.js.map → chart-config-sunburst-B4NUYHMH.js.map} +1 -1
- package/dist/client/chunks/{chart-config-tree-map-BjX88YBY.js → chart-config-tree-map-Uhise6Bx.js} +3 -3
- package/dist/client/chunks/{chart-config-tree-map-BjX88YBY.js.map → chart-config-tree-map-Uhise6Bx.js.map} +1 -1
- package/dist/client/chunks/{chart-config-waterfall-QsWXVSoF.js → chart-config-waterfall-DlQb_PLh.js} +2 -2
- package/dist/client/chunks/{chart-config-waterfall-QsWXVSoF.js.map → chart-config-waterfall-DlQb_PLh.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-BP6DMdom.js → chart-data-table-SNSqZj9B.js} +1072 -1034
- package/dist/client/chunks/chart-data-table-SNSqZj9B.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-xeVGBy-p.js → chart-funnel-CkHSXp6h.js} +3 -3
- package/dist/client/chunks/{chart-funnel-xeVGBy-p.js.map → chart-funnel-CkHSXp6h.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DXQ4r3cb.js → chart-gauge-DHIGq3TH.js} +62 -62
- package/dist/client/chunks/{chart-gauge-DXQ4r3cb.js.map → chart-gauge-DHIGq3TH.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-Pnk6rhqQ.js → chart-heat-map-Bb8L1XQr.js} +4 -4
- package/dist/client/chunks/{chart-heat-map-Pnk6rhqQ.js.map → chart-heat-map-Bb8L1XQr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-nXQnRRBr.js → chart-kpi-delta-BJCOXE-F.js} +122 -48
- package/dist/client/chunks/chart-kpi-delta-BJCOXE-F.js.map +1 -0
- package/dist/client/chunks/chart-kpi-number-Cdqgv20g.js +263 -0
- package/dist/client/chunks/chart-kpi-number-Cdqgv20g.js.map +1 -0
- package/dist/client/chunks/{chart-kpi-text-CurpqmaD.js → chart-kpi-text-B10ZHCsI.js} +4 -4
- package/dist/client/chunks/{chart-kpi-text-CurpqmaD.js.map → chart-kpi-text-B10ZHCsI.js.map} +1 -1
- package/dist/client/chunks/chart-line-CzvVL3Be.js +117 -0
- package/dist/client/chunks/chart-line-CzvVL3Be.js.map +1 -0
- package/dist/client/chunks/{chart-markdown-BVrqqygz.js → chart-markdown-C0xxBW81.js} +1550 -1349
- package/dist/client/chunks/chart-markdown-C0xxBW81.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-k9_QDQbB.js → chart-measure-profile-BSUPFZCR.js} +6 -5
- package/dist/client/chunks/{chart-measure-profile-k9_QDQbB.js.map → chart-measure-profile-BSUPFZCR.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-BDaaYt7a.js → chart-pie-CwRfwWWZ.js} +11 -11
- package/dist/client/chunks/{chart-pie-BDaaYt7a.js.map → chart-pie-CwRfwWWZ.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-Bz07PIVe.js → chart-radar-Dfql2E7i.js} +10 -10
- package/dist/client/chunks/{chart-radar-Bz07PIVe.js.map → chart-radar-Dfql2E7i.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DpyxKQMj.js → chart-radial-bar-oE9OZ1IX.js} +11 -11
- package/dist/client/chunks/{chart-radial-bar-DpyxKQMj.js.map → chart-radial-bar-oE9OZ1IX.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-BAeNbI-p.js → chart-sankey-tK7Oz1bC.js} +3 -3
- package/dist/client/chunks/{chart-sankey-BAeNbI-p.js.map → chart-sankey-tK7Oz1bC.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-CRhGLCcy.js → chart-scatter-BtLfAsZb.js} +10 -10
- package/dist/client/chunks/{chart-scatter-CRhGLCcy.js.map → chart-scatter-BtLfAsZb.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-D3wV5OrK.js → chart-sunburst-B7ryWwQ1.js} +4 -4
- package/dist/client/chunks/{chart-sunburst-D3wV5OrK.js.map → chart-sunburst-B7ryWwQ1.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-iI3ewOKY.js → chart-tree-map-DU5M3-qe.js} +31 -29
- package/dist/client/chunks/{chart-tree-map-iI3ewOKY.js.map → chart-tree-map-DU5M3-qe.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-BrrYTZfs.js → chart-waterfall-CAwutpzd.js} +4 -4
- package/dist/client/chunks/{chart-waterfall-BrrYTZfs.js.map → chart-waterfall-CAwutpzd.js.map} +1 -1
- package/dist/client/chunks/{charts-core-Cs-UIsQa.js → charts-core-BxBB2zBE.js} +2 -2
- package/dist/client/chunks/{charts-core-Cs-UIsQa.js.map → charts-core-BxBB2zBE.js.map} +1 -1
- package/dist/client/chunks/charts-loader-0avVzeDd.js +85 -0
- package/dist/client/chunks/charts-loader-0avVzeDd.js.map +1 -0
- package/dist/client/chunks/{core-D7vPfUIe.js → core-BWRP9s8x.js} +9 -8
- package/dist/client/chunks/core-BWRP9s8x.js.map +1 -0
- package/dist/client/chunks/{dist-BwQr11Fz.js → dist-BPmPx7kz.js} +56 -51
- package/dist/client/chunks/{dist-BwQr11Fz.js.map → dist-BPmPx7kz.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-Dey-qIFL.js → exceljs.min-DWC_b8G9.js} +236 -202
- package/dist/client/chunks/{exceljs.min-Dey-qIFL.js.map → exceljs.min-DWC_b8G9.js.map} +1 -1
- package/dist/client/chunks/{javascript-DFnKaHmQ.js → javascript-D6aJaG8F.js} +7 -5
- package/dist/client/chunks/javascript-D6aJaG8F.js.map +1 -0
- package/dist/client/chunks/json-BrJhaXJI.js +44 -0
- package/dist/client/chunks/json-BrJhaXJI.js.map +1 -0
- package/dist/client/chunks/{nl-NL-2zTAWTej.js → nl-NL-BSMhprPr.js} +57 -2
- package/dist/client/chunks/{nl-NL-2zTAWTej.js.map → nl-NL-BSMhprPr.js.map} +1 -1
- package/dist/client/chunks/{rolldown-runtime-CWhphoD1.js → rolldown-runtime-DArdT4gl.js} +2 -2
- package/dist/client/chunks/{schema-visualization-BGT_cNon.js → schema-visualization-CGbnbzj_.js} +10 -10
- package/dist/client/chunks/schema-visualization-CGbnbzj_.js.map +1 -0
- package/dist/client/chunks/{syntaxHighlighting-Bq2Bj9Xt.js → syntaxHighlighting-Cm43as8i.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-Bq2Bj9Xt.js.map → syntaxHighlighting-Cm43as8i.js.map} +1 -1
- package/dist/client/chunks/{useDebounce-7suCFq9v.js → useDirtyStateTracking-Dc-Si4db.js} +112 -50
- package/dist/client/chunks/useDirtyStateTracking-Dc-Si4db.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-DueJjb0r.js → useExplainAI-DJbc7Lu4.js} +18 -18
- package/dist/client/chunks/{useExplainAI-DueJjb0r.js.map → useExplainAI-DJbc7Lu4.js.map} +1 -1
- package/dist/client/chunks/{utils-DjLiJKS_.js → utils-CToHkuhU.js} +2 -2
- package/dist/client/chunks/{utils-DjLiJKS_.js.map → utils-CToHkuhU.js.map} +1 -1
- package/dist/client/chunks/{vendor-ChnlgSP0.js → vendor-cTfe9Kho.js} +223 -167
- package/dist/client/chunks/vendor-cTfe9Kho.js.map +1 -0
- package/dist/client/components/AgenticNotebook/AgentChatPanel.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/ChatInput.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +2 -2
- package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/index.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelModeContent.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/RetentionModeContent.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +1 -1
- package/dist/client/components/DashboardPortletCard.d.ts +1 -1
- package/dist/client/components/DataBrowser/DataBrowserTable.d.ts +1 -1
- package/dist/client/components/PortletGroupCard.d.ts +18 -0
- package/dist/client/components/RowManagedLayout.d.ts +15 -3
- package/dist/client/components/analyticsPortlet/intrinsicChartHeight.d.ts +9 -0
- package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
- package/dist/client/components/charts/AngledXAxisTick.d.ts +5 -0
- package/dist/client/components/charts/AreaChart.d.ts +1 -1
- package/dist/client/components/charts/BarChart.d.ts +1 -1
- package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
- package/dist/client/components/charts/BubbleChart.d.ts +1 -1
- package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
- package/dist/client/components/charts/ChartContainer.d.ts +7 -1
- package/dist/client/components/charts/ChartSummaryHeader.d.ts +31 -0
- package/dist/client/components/charts/DataTable.d.ts +1 -1
- package/dist/client/components/charts/FunnelChart.d.ts +1 -1
- package/dist/client/components/charts/GaugeChart.d.ts +1 -1
- package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
- package/dist/client/components/charts/KpiCompactLayout.d.ts +31 -0
- package/dist/client/components/charts/KpiDelta.d.ts +1 -1
- package/dist/client/components/charts/KpiDelta.helpers.d.ts +2 -0
- package/dist/client/components/charts/KpiNumber.d.ts +1 -1
- package/dist/client/components/charts/KpiStates.d.ts +7 -2
- package/dist/client/components/charts/KpiText.d.ts +1 -1
- package/dist/client/components/charts/LineChart.d.ts +1 -1
- package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
- package/dist/client/components/charts/PieChart.d.ts +1 -1
- package/dist/client/components/charts/ProportionBarChart.config.d.ts +10 -0
- package/dist/client/components/charts/ProportionBarChart.d.ts +12 -0
- package/dist/client/components/charts/RadarChart.d.ts +1 -1
- package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
- package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
- package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
- package/dist/client/components/charts/SankeyChart.d.ts +1 -1
- package/dist/client/components/charts/ScatterChart.d.ts +1 -1
- package/dist/client/components/charts/SunburstChart.d.ts +1 -1
- package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
- package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
- package/dist/client/components/charts/cartesianChartHelpers.d.ts +62 -0
- package/dist/client/components/charts/chartScaffolding.d.ts +29 -0
- package/dist/client/components/dashboard/DashboardContext.d.ts +5 -1
- package/dist/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
- package/dist/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
- package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
- package/dist/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
- package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
- package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
- package/dist/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
- package/dist/client/components.d.ts +1 -1
- package/dist/client/components.js +3 -4
- package/dist/client/hooks/dashboard/groupGeometry.d.ts +23 -0
- package/dist/client/hooks/dashboard/groupUtils.d.ts +57 -0
- package/dist/client/hooks/dashboard/layoutUtils.d.ts +34 -3
- package/dist/client/hooks/dashboard/useDashboardController.d.ts +11 -3
- package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
- package/dist/client/hooks/useDashboardHook.d.ts +14 -1
- package/dist/client/hooks.js +4 -5
- package/dist/client/icons/types.d.ts +1 -0
- package/dist/client/icons.js +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +48 -49
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/stores/dashboardStore.d.ts +11 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/styles.d.css.ts +2 -0
- package/dist/client/types.d.ts +37 -2
- package/dist/client/utils.js +13 -9
- package/dist/client/utils.js.map +1 -1
- package/dist/client-bundle-stats.html +388 -33
- package/dist/mcp-app/mcp-app.html +152 -165
- package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +1 -0
- package/dist/server/{chartConfigHelpers-CcvqrIWF.js → chartConfigHelpers-BsnbxA2c.js} +30 -1
- package/dist/server/{dist-CH3hwAUk.js → dist-ChBfLb7x.js} +7 -4
- package/dist/server/{dist-BOdf-GQO.cjs → dist-CohrBmKe.cjs} +2 -2
- package/dist/server/google-BhvizbFR.cjs +2 -0
- package/dist/server/{google-CvKM9yVM.js → google-eKAc20al.js} +3 -3
- package/dist/server/index.cjs +84 -84
- package/dist/server/index.js +2436 -2260
- package/dist/server/openai-CUf4vc3Q.js +9295 -0
- package/dist/server/openai-Cu4TXXjl.cjs +19 -0
- package/dist/server/{openai-B6hWZk_r.js → openai-Czk1BdHa.js} +18 -17
- package/dist/{adapters/openai-C3-mjSAc.cjs → server/openai-DBwI1OSu.cjs} +1 -1
- package/dist/server/rolldown-runtime-B0aSnxlc.js +20 -0
- package/dist/server/rolldown-runtime-DF3sbh8G.cjs +1 -0
- package/package.json +14 -10
- package/dist/adapters/ActivityGridChart.config-BK3hB9co.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-C-68HsAw.js +0 -2
- package/dist/adapters/AreaChart.config-5G7_E-7u.cjs +0 -1
- package/dist/adapters/AreaChart.config-C7S67Qt4.js +0 -2
- package/dist/adapters/BarChart.config-C6kG_uEt.cjs +0 -1
- package/dist/adapters/BarChart.config-DQcicZYy.js +0 -2
- package/dist/adapters/BoxPlotChart.config-B4xDTwop.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DifAPvo0.cjs +0 -1
- package/dist/adapters/BubbleChart.config-BS2edxZ5.cjs +0 -1
- package/dist/adapters/BubbleChart.config-C5AYou9n.js +0 -2
- package/dist/adapters/CandlestickChart.config-Duknkqyk.js +0 -2
- package/dist/adapters/CandlestickChart.config-jk3ZXIAQ.cjs +0 -1
- package/dist/adapters/DataTable.config-BG_5hx63.cjs +0 -1
- package/dist/adapters/DataTable.config-Bkv6CmFa.js +0 -2
- package/dist/adapters/FunnelChart.config-Dvy0S17e.js +0 -2
- package/dist/adapters/FunnelChart.config-DzqGZgKz.cjs +0 -1
- package/dist/adapters/GaugeChart.config-DAWIU33N.js +0 -2
- package/dist/adapters/GaugeChart.config-DC0NW8XT.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-BlQDS9nY.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-DccGkzHI.js +0 -2
- package/dist/adapters/KpiDelta.config-DvpALT3Z.js +0 -2
- package/dist/adapters/KpiDelta.config-u2AlJkZ3.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CF_LqRh-.cjs +0 -1
- package/dist/adapters/KpiNumber.config-lhEzZOFR.js +0 -2
- package/dist/adapters/KpiText.config-BCYGZdnx.js +0 -2
- package/dist/adapters/KpiText.config-FbnsbjdV.cjs +0 -1
- package/dist/adapters/LineChart.config-B7qWURRH.js +0 -2
- package/dist/adapters/LineChart.config-B9JKd48E.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BIS9PqHh.js +0 -2
- package/dist/adapters/MarkdownChart.config-BfM9NaQe.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-1hh--3nI.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-cmL8wp6a.cjs +0 -1
- package/dist/adapters/PieChart.config-DzzCeT7z.cjs +0 -1
- package/dist/adapters/PieChart.config-aRJJwYx4.js +0 -2
- package/dist/adapters/RadarChart.config-AcZ7kWG8.js +0 -2
- package/dist/adapters/RadarChart.config-CddBTWAo.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-D4qPexJV.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-y-NBkq5N.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-BkRNE7lX.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-WoX6n6D5.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-ByjWidhh.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-DjXLk03y.js +0 -2
- package/dist/adapters/SankeyChart.config-BWO9LszQ.cjs +0 -1
- package/dist/adapters/SankeyChart.config-SuP0jjib.js +0 -2
- package/dist/adapters/ScatterChart.config-Dk1G4Eaj.cjs +0 -1
- package/dist/adapters/ScatterChart.config-DzVXd1ZM.js +0 -2
- package/dist/adapters/SunburstChart.config-Cu4ib4Ui.cjs +0 -1
- package/dist/adapters/SunburstChart.config-_0gUzNs7.js +0 -2
- package/dist/adapters/TreeMapChart.config-DbwYrje4.js +0 -2
- package/dist/adapters/TreeMapChart.config-hM8PukgE.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-CjUHeE8R.js +0 -2
- package/dist/adapters/WaterfallChart.config-Dwxt0kK-.cjs +0 -1
- package/dist/adapters/chartConfigHelpers-DHQB-_v5.cjs +0 -1
- package/dist/adapters/compiler-D0v5KJhv.cjs +0 -166
- package/dist/adapters/core-VK-KVH9q.cjs +0 -1
- package/dist/adapters/google-BOnRIN1w.cjs +0 -2
- package/dist/adapters/mcp-transport-C2v5BTDF.cjs +0 -40
- package/dist/adapters/mcp-transport-CyDBoYEe.js +0 -601
- package/dist/adapters/openai-B1pC8nVM.js +0 -6178
- package/dist/adapters/openai-DQZaHN0V.cjs +0 -18
- package/dist/adapters/utils-CBR-9AMD.cjs +0 -128
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +0 -3283
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +0 -1
- package/dist/client/chunks/DashboardEditModal-9o16JNF0.js +0 -7580
- package/dist/client/chunks/DashboardEditModal-9o16JNF0.js.map +0 -1
- package/dist/client/chunks/analysis-builder-BDWychCW.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-DkL0e-wU.js.map +0 -1
- package/dist/client/chunks/chart-area-BHxPNsmc.js +0 -775
- package/dist/client/chunks/chart-area-BHxPNsmc.js.map +0 -1
- package/dist/client/chunks/chart-bar-DAO3PPcE.js.map +0 -1
- package/dist/client/chunks/chart-config-area-DxwIZ4Uf.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-DYopvwyG.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-BhMdoArB.js.map +0 -1
- package/dist/client/chunks/chart-config-line-CBfM0Rds.js.map +0 -1
- package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +0 -1
- package/dist/client/chunks/chart-kpi-delta-nXQnRRBr.js.map +0 -1
- package/dist/client/chunks/chart-kpi-number-m8UGJfBr.js +0 -244
- package/dist/client/chunks/chart-kpi-number-m8UGJfBr.js.map +0 -1
- package/dist/client/chunks/chart-line-sJK-cJc0.js +0 -101
- package/dist/client/chunks/chart-line-sJK-cJc0.js.map +0 -1
- package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +0 -1
- package/dist/client/chunks/charts-loader-DAJbAD7a.js +0 -84
- package/dist/client/chunks/charts-loader-DAJbAD7a.js.map +0 -1
- package/dist/client/chunks/core-D7vPfUIe.js.map +0 -1
- package/dist/client/chunks/javascript-DFnKaHmQ.js.map +0 -1
- package/dist/client/chunks/json-Cu6rbgWf.js +0 -38
- package/dist/client/chunks/json-Cu6rbgWf.js.map +0 -1
- package/dist/client/chunks/schema-visualization-BGT_cNon.js.map +0 -1
- package/dist/client/chunks/useDebounce-7suCFq9v.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +0 -66
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +0 -1
- package/dist/client/chunks/vendor-ChnlgSP0.js.map +0 -1
- package/dist/server/chartConfigHelpers-DHQB-_v5.cjs +0 -1
- package/dist/server/google-BOnRIN1w.cjs +0 -2
- package/dist/server/openai-B1pC8nVM.js +0 -6178
- package/dist/server/openai-DQZaHN0V.cjs +0 -18
|
@@ -30,7 +30,8 @@ function a(e, t, n = !1) {
|
|
|
30
30
|
if (s[0] = o >>> 24, s[1] = o >>> 16, s[2] = o >>> 8, s[3] = o & 255, n) {
|
|
31
31
|
let t = i(e);
|
|
32
32
|
return e.set(a, t), e.set(s, t + 13), e;
|
|
33
|
-
}
|
|
33
|
+
}
|
|
34
|
+
{
|
|
34
35
|
let t = /* @__PURE__ */ new Uint8Array(4);
|
|
35
36
|
t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 9;
|
|
36
37
|
let n = /* @__PURE__ */ new Uint8Array(54);
|
|
@@ -445,17 +446,19 @@ function Ne(e, t, n, r, i) {
|
|
|
445
446
|
var G = /* @__PURE__ */ new Set(["symbol"]);
|
|
446
447
|
async function K(e, t, n, r, i) {
|
|
447
448
|
if (b(n) && (oe(n) || se(n)) || r.filter && !r.filter(n)) return;
|
|
448
|
-
G.has(t.nodeName) || G.has(n.nodeName) ?
|
|
449
|
+
r.currentParentNodeStyle = G.has(t.nodeName) || G.has(n.nodeName) ? void 0 : r.currentNodeStyle;
|
|
449
450
|
let a = await q(n, r, !1, i);
|
|
450
451
|
r.isEnable("restoreScrollPosition") && Fe(e, a), t.appendChild(a);
|
|
451
452
|
}
|
|
452
453
|
async function Pe(e, t, n, r) {
|
|
453
454
|
let i = e.firstChild;
|
|
454
455
|
b(e) && e.shadowRoot && (i = e.shadowRoot?.firstChild, n.shadowRoots.push(e.shadowRoot));
|
|
455
|
-
for (let a = i; a; a = a.nextSibling) if (!te(a))
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
456
|
+
for (let a = i; a; a = a.nextSibling) if (!te(a)) {
|
|
457
|
+
if (b(a) && le(a) && typeof a.assignedNodes == "function") {
|
|
458
|
+
let i = a.assignedNodes();
|
|
459
|
+
for (let a = 0; a < i.length; a++) await K(e, t, i[a], n, r);
|
|
460
|
+
} else await K(e, t, a, n, r);
|
|
461
|
+
}
|
|
459
462
|
}
|
|
460
463
|
function Fe(e, t) {
|
|
461
464
|
if (!C(e) || !C(t)) return;
|
|
@@ -655,54 +658,56 @@ function Ye(e, t) {
|
|
|
655
658
|
}
|
|
656
659
|
async function Xe(e, t) {
|
|
657
660
|
let { ownerDocument: n, svgStyleElement: r, fontFamilies: i, fontCssTexts: a, tasks: o, font: s } = t;
|
|
658
|
-
if (!(!n || !r || !i.size))
|
|
659
|
-
|
|
660
|
-
|
|
661
|
+
if (!(!n || !r || !i.size)) {
|
|
662
|
+
if (s && s.cssText) {
|
|
663
|
+
let e = Y(s.cssText, t);
|
|
664
|
+
r.appendChild(n.createTextNode(`${e}
|
|
661
665
|
`));
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
try {
|
|
665
|
-
return "cssRules" in e && !!e.cssRules.length;
|
|
666
|
-
} catch (n) {
|
|
667
|
-
return t.log.warn(`Error while reading CSS rules from ${e.href}`, n), !1;
|
|
668
|
-
}
|
|
669
|
-
}), s = n.implementation.createHTMLDocument(""), c = s.createElement("style");
|
|
670
|
-
s.head.appendChild(c);
|
|
671
|
-
let l = c.sheet;
|
|
672
|
-
await Promise.all(e.flatMap((e) => Array.from(e.cssRules).map(async (e) => {
|
|
673
|
-
if (v(e)) {
|
|
674
|
-
let n = e.href, r = "";
|
|
666
|
+
} else {
|
|
667
|
+
let e = Array.from(n.styleSheets).filter((e) => {
|
|
675
668
|
try {
|
|
676
|
-
|
|
677
|
-
url: n,
|
|
678
|
-
requestType: "text",
|
|
679
|
-
responseType: "text"
|
|
680
|
-
});
|
|
681
|
-
} catch (e) {
|
|
682
|
-
t.log.warn(`Error fetch remote css import from ${n}`, e);
|
|
683
|
-
}
|
|
684
|
-
let i = r.replace(He, (e, t, r) => e.replace(r, D(r, n)));
|
|
685
|
-
for (let e of $e(i)) try {
|
|
686
|
-
l.insertRule(e, l.cssRules.length);
|
|
669
|
+
return "cssRules" in e && !!e.cssRules.length;
|
|
687
670
|
} catch (n) {
|
|
688
|
-
t.log.warn(
|
|
689
|
-
rule: e,
|
|
690
|
-
error: n
|
|
691
|
-
});
|
|
671
|
+
return t.log.warn(`Error while reading CSS rules from ${e.href}`, n), !1;
|
|
692
672
|
}
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
673
|
+
}), s = n.implementation.createHTMLDocument(""), c = s.createElement("style");
|
|
674
|
+
s.head.appendChild(c);
|
|
675
|
+
let l = c.sheet;
|
|
676
|
+
await Promise.all(e.flatMap((e) => Array.from(e.cssRules).map(async (e) => {
|
|
677
|
+
if (v(e)) {
|
|
678
|
+
let n = e.href, r = "";
|
|
679
|
+
try {
|
|
680
|
+
r = await J(t, {
|
|
681
|
+
url: n,
|
|
682
|
+
requestType: "text",
|
|
683
|
+
responseType: "text"
|
|
684
|
+
});
|
|
685
|
+
} catch (e) {
|
|
686
|
+
t.log.warn(`Error fetch remote css import from ${n}`, e);
|
|
687
|
+
}
|
|
688
|
+
let i = r.replace(He, (e, t, r) => e.replace(r, D(r, n)));
|
|
689
|
+
for (let e of $e(i)) try {
|
|
690
|
+
l.insertRule(e, l.cssRules.length);
|
|
691
|
+
} catch (n) {
|
|
692
|
+
t.log.warn("Error inserting rule from remote css import", {
|
|
693
|
+
rule: e,
|
|
694
|
+
error: n
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}))), l.cssRules.length && e.push(l);
|
|
699
|
+
let u = [];
|
|
700
|
+
e.forEach((e) => {
|
|
701
|
+
X(e.cssRules, u);
|
|
702
|
+
}), u.filter((e) => _(e) && Ve(e.style.getPropertyValue("src")) && L(e.style.getPropertyValue("font-family"))?.some((e) => i.has(e))).forEach((e) => {
|
|
703
|
+
let i = e, s = a.get(i.cssText);
|
|
704
|
+
s ? r.appendChild(n.createTextNode(`${s}
|
|
701
705
|
`)) : o.push(Be(i.cssText, i.parentStyleSheet ? i.parentStyleSheet.href : null, t).then((e) => {
|
|
702
|
-
|
|
706
|
+
e = Y(e, t), a.set(i.cssText, e), r.appendChild(n.createTextNode(`${e}
|
|
703
707
|
`));
|
|
704
|
-
|
|
705
|
-
|
|
708
|
+
}));
|
|
709
|
+
});
|
|
710
|
+
}
|
|
706
711
|
}
|
|
707
712
|
}
|
|
708
713
|
var Ze = /(\/\*[\s\S]*?\*\/)/g, Qe = /((@.*?keyframes [\s\S]*?){([\s\S]*?}\s*?)})/gi;
|
|
@@ -802,8 +807,8 @@ async function Q(t, n) {
|
|
|
802
807
|
let [t, n] = p.split(","), r = 0, i = !1;
|
|
803
808
|
if (c === "image/png") {
|
|
804
809
|
let e = o(n);
|
|
805
|
-
e >= 0 ? (r = Math.ceil((e + 28) / 3) * 4, i = !0) : r =
|
|
806
|
-
} else c === "image/jpeg" && (r =
|
|
810
|
+
e >= 0 ? (r = Math.ceil((e + 28) / 3) * 4, i = !0) : r = 44;
|
|
811
|
+
} else c === "image/jpeg" && (r = 24);
|
|
807
812
|
let s = n.substring(0, r), u = n.substring(r), d = window.atob(s), f = new Uint8Array(d.length);
|
|
808
813
|
for (let e = 0; e < f.length; e++) f[e] = d.charCodeAt(e);
|
|
809
814
|
let m = c === "image/png" ? a(f, l, i) : e(f, l);
|
|
@@ -849,4 +854,4 @@ async function dt(e, t) {
|
|
|
849
854
|
//#endregion
|
|
850
855
|
export { B as createContext, Re as destroyContext, ot as domToBlob, Z as domToCanvas, Q as domToDataUrl, it as domToForeignObjectSvg, st as domToImage, ct as domToJpeg, lt as domToPixel, ut as domToPng, $ as domToSvg, dt as domToWebp, P as loadMedia, F as waitUntilLoad };
|
|
851
856
|
|
|
852
|
-
//# sourceMappingURL=dist-
|
|
857
|
+
//# sourceMappingURL=dist-BPmPx7kz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-BwQr11Fz.js","names":[],"sources":["../../../node_modules/modern-screenshot/dist/index.mjs"],"sourcesContent":["function changeJpegDpi(uint8Array, dpi) {\n uint8Array[13] = 1;\n uint8Array[14] = dpi >> 8;\n uint8Array[15] = dpi & 255;\n uint8Array[16] = dpi >> 8;\n uint8Array[17] = dpi & 255;\n return uint8Array;\n}\n\nconst _P = \"p\".charCodeAt(0);\nconst _H = \"H\".charCodeAt(0);\nconst _Y = \"Y\".charCodeAt(0);\nconst _S = \"s\".charCodeAt(0);\nlet pngDataTable;\nfunction createPngDataTable() {\n const crcTable = new Int32Array(256);\n for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\nfunction calcCrc(uint8Array) {\n let c = -1;\n if (!pngDataTable)\n pngDataTable = createPngDataTable();\n for (let n = 0; n < uint8Array.length; n++) {\n c = pngDataTable[(c ^ uint8Array[n]) & 255] ^ c >>> 8;\n }\n return c ^ -1;\n}\nfunction searchStartOfPhys(uint8Array) {\n const length = uint8Array.length - 1;\n for (let i = length; i >= 4; i--) {\n if (uint8Array[i - 4] === 9 && uint8Array[i - 3] === _P && uint8Array[i - 2] === _H && uint8Array[i - 1] === _Y && uint8Array[i] === _S) {\n return i - 3;\n }\n }\n return 0;\n}\nfunction changePngDpi(uint8Array, dpi, overwritepHYs = false) {\n const physChunk = new Uint8Array(13);\n dpi *= 39.3701;\n physChunk[0] = _P;\n physChunk[1] = _H;\n physChunk[2] = _Y;\n physChunk[3] = _S;\n physChunk[4] = dpi >>> 24;\n physChunk[5] = dpi >>> 16;\n physChunk[6] = dpi >>> 8;\n physChunk[7] = dpi & 255;\n physChunk[8] = physChunk[4];\n physChunk[9] = physChunk[5];\n physChunk[10] = physChunk[6];\n physChunk[11] = physChunk[7];\n physChunk[12] = 1;\n const crc = calcCrc(physChunk);\n const crcChunk = new Uint8Array(4);\n crcChunk[0] = crc >>> 24;\n crcChunk[1] = crc >>> 16;\n crcChunk[2] = crc >>> 8;\n crcChunk[3] = crc & 255;\n if (overwritepHYs) {\n const startingIndex = searchStartOfPhys(uint8Array);\n uint8Array.set(physChunk, startingIndex);\n uint8Array.set(crcChunk, startingIndex + 13);\n return uint8Array;\n } else {\n const chunkLength = new Uint8Array(4);\n chunkLength[0] = 0;\n chunkLength[1] = 0;\n chunkLength[2] = 0;\n chunkLength[3] = 9;\n const finalHeader = new Uint8Array(54);\n finalHeader.set(uint8Array, 0);\n finalHeader.set(chunkLength, 33);\n finalHeader.set(physChunk, 37);\n finalHeader.set(crcChunk, 50);\n return finalHeader;\n }\n}\nconst b64PhysSignature1 = \"AAlwSFlz\";\nconst b64PhysSignature2 = \"AAAJcEhZ\";\nconst b64PhysSignature3 = \"AAAACXBI\";\nfunction detectPhysChunkFromDataUrl(dataUrl) {\n let b64index = dataUrl.indexOf(b64PhysSignature1);\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature2);\n }\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature3);\n }\n return b64index;\n}\n\nconst PREFIX = \"[modern-screenshot]\";\nconst IN_BROWSER = typeof window !== \"undefined\";\nconst SUPPORT_WEB_WORKER = IN_BROWSER && \"Worker\" in window;\nconst SUPPORT_ATOB = IN_BROWSER && \"atob\" in window;\nconst SUPPORT_BTOA = IN_BROWSER && \"btoa\" in window;\nconst USER_AGENT = IN_BROWSER ? window.navigator?.userAgent : \"\";\nconst IN_CHROME = USER_AGENT.includes(\"Chrome\");\nconst IN_SAFARI = USER_AGENT.includes(\"AppleWebKit\") && !IN_CHROME;\nconst IN_FIREFOX = USER_AGENT.includes(\"Firefox\");\nconst isContext = (value) => value && \"__CONTEXT__\" in value;\nconst isCssFontFaceRule = (rule) => rule.constructor.name === \"CSSFontFaceRule\";\nconst isCSSImportRule = (rule) => rule.constructor.name === \"CSSImportRule\";\nconst isLayerBlockRule = (rule) => rule.constructor.name === \"CSSLayerBlockRule\";\nconst isElementNode = (node) => node.nodeType === 1;\nconst isSVGElementNode = (node) => typeof node.className === \"object\";\nconst isSVGImageElementNode = (node) => node.tagName === \"image\";\nconst isSVGUseElementNode = (node) => node.tagName === \"use\";\nconst isHTMLElementNode = (node) => isElementNode(node) && typeof node.style !== \"undefined\" && !isSVGElementNode(node);\nconst isCommentNode = (node) => node.nodeType === 8;\nconst isTextNode = (node) => node.nodeType === 3;\nconst isImageElement = (node) => node.tagName === \"IMG\";\nconst isVideoElement = (node) => node.tagName === \"VIDEO\";\nconst isCanvasElement = (node) => node.tagName === \"CANVAS\";\nconst isTextareaElement = (node) => node.tagName === \"TEXTAREA\";\nconst isInputElement = (node) => node.tagName === \"INPUT\";\nconst isStyleElement = (node) => node.tagName === \"STYLE\";\nconst isScriptElement = (node) => node.tagName === \"SCRIPT\";\nconst isSelectElement = (node) => node.tagName === \"SELECT\";\nconst isSlotElement = (node) => node.tagName === \"SLOT\";\nconst isIFrameElement = (node) => node.tagName === \"IFRAME\";\nconst consoleWarn = (...args) => console.warn(PREFIX, ...args);\nfunction supportWebp(ownerDocument) {\n const canvas = ownerDocument?.createElement?.(\"canvas\");\n if (canvas) {\n canvas.height = canvas.width = 1;\n }\n return Boolean(canvas) && \"toDataURL\" in canvas && Boolean(canvas.toDataURL(\"image/webp\").includes(\"image/webp\"));\n}\nconst isDataUrl = (url) => url.startsWith(\"data:\");\nfunction resolveUrl(url, baseUrl) {\n if (url.match(/^[a-z]+:\\/\\//i))\n return url;\n if (IN_BROWSER && url.match(/^\\/\\//))\n return window.location.protocol + url;\n if (url.match(/^[a-z]+:/i))\n return url;\n if (!IN_BROWSER)\n return url;\n const doc = getDocument().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 a.href = url;\n return a.href;\n}\nfunction getDocument(target) {\n return (target && isElementNode(target) ? target?.ownerDocument : target) ?? window.document;\n}\nconst XMLNS = \"http://www.w3.org/2000/svg\";\nfunction createSvg(width, height, ownerDocument) {\n const svg = getDocument(ownerDocument).createElementNS(XMLNS, \"svg\");\n svg.setAttributeNS(null, \"width\", width.toString());\n svg.setAttributeNS(null, \"height\", height.toString());\n svg.setAttributeNS(null, \"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n}\nfunction svgToDataUrl(svg, removeControlCharacter) {\n let xhtml = new XMLSerializer().serializeToString(svg);\n if (removeControlCharacter) {\n xhtml = xhtml.replace(/[\\u0000-\\u0008\\v\\f\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/gu, \"\");\n }\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xhtml)}`;\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality = 1) {\n try {\n return await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(\"Blob is null\"));\n }\n }, type, quality);\n });\n } catch (error) {\n if (SUPPORT_ATOB) {\n return dataUrlToBlob(canvas.toDataURL(type, quality));\n }\n throw error;\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(\",\");\n const type = header.match(/data:(.+);/)?.[1] ?? void 0;\n const decoded = window.atob(base64);\n const length = decoded.length;\n const buffer = new Uint8Array(length);\n for (let i = 0; i < length; i += 1) {\n buffer[i] = decoded.charCodeAt(i);\n }\n return new Blob([buffer], { type });\n}\nfunction readBlob(blob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.onabort = () => reject(new Error(`Failed read blob to ${type}`));\n if (type === \"dataUrl\") {\n reader.readAsDataURL(blob);\n } else if (type === \"arrayBuffer\") {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nconst blobToDataUrl = (blob) => readBlob(blob, \"dataUrl\");\nconst blobToArrayBuffer = (blob) => readBlob(blob, \"arrayBuffer\");\nfunction createImage(url, ownerDocument) {\n const img = getDocument(ownerDocument).createElement(\"img\");\n img.decoding = \"sync\";\n img.loading = \"eager\";\n img.src = url;\n return img;\n}\nfunction loadMedia(media, options) {\n return new Promise((resolve) => {\n const { timeout, ownerDocument, onError: userOnError, onWarn } = options ?? {};\n const node = typeof media === \"string\" ? createImage(media, getDocument(ownerDocument)) : media;\n let timer = null;\n let removeEventListeners = null;\n function onResolve() {\n resolve(node);\n timer && clearTimeout(timer);\n removeEventListeners?.();\n }\n if (timeout) {\n timer = setTimeout(onResolve, timeout);\n }\n if (isVideoElement(node)) {\n const currentSrc = node.currentSrc || node.src;\n if (!currentSrc) {\n if (node.poster) {\n return loadMedia(node.poster, options).then(resolve);\n }\n return onResolve();\n }\n if (node.readyState >= 2) {\n return onResolve();\n }\n const onLoadeddata = onResolve;\n const onError = (error) => {\n onWarn?.(\n \"Failed video load\",\n currentSrc,\n error\n );\n userOnError?.(error);\n onResolve();\n };\n removeEventListeners = () => {\n node.removeEventListener(\"loadeddata\", onLoadeddata);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"loadeddata\", onLoadeddata, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n } else {\n const currentSrc = isSVGImageElementNode(node) ? node.href.baseVal : node.currentSrc || node.src;\n if (!currentSrc) {\n return onResolve();\n }\n const onLoad = async () => {\n if (isImageElement(node) && \"decode\" in node) {\n try {\n await node.decode();\n } catch (error) {\n onWarn?.(\n \"Failed to decode image, trying to render anyway\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n }\n }\n onResolve();\n };\n const onError = (error) => {\n onWarn?.(\n \"Failed image load\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n onResolve();\n };\n if (isImageElement(node) && node.complete) {\n return onLoad();\n }\n removeEventListeners = () => {\n node.removeEventListener(\"load\", onLoad);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"load\", onLoad, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n }\n });\n}\nasync function waitUntilLoad(node, options) {\n if (isHTMLElementNode(node)) {\n if (isImageElement(node) || isVideoElement(node)) {\n await loadMedia(node, options);\n } else {\n await Promise.all(\n [\"img\", \"video\"].flatMap((selectors) => {\n return Array.from(node.querySelectorAll(selectors)).map((el) => loadMedia(el, options));\n })\n );\n }\n }\n}\nconst uuid = /* @__PURE__ */ function uuid2() {\n let counter = 0;\n const random = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n}();\nfunction splitFontFamily(fontFamily) {\n return fontFamily?.split(\",\").map((val) => val.trim().replace(/\"|'/g, \"\").toLowerCase()).filter(Boolean);\n}\n\nlet uid = 0;\nfunction createLogger(debug) {\n const prefix = `${PREFIX}[#${uid}]`;\n uid++;\n return {\n // eslint-disable-next-line no-console\n time: (label) => debug && console.time(`${prefix} ${label}`),\n // eslint-disable-next-line no-console\n timeEnd: (label) => debug && console.timeEnd(`${prefix} ${label}`),\n warn: (...args) => debug && consoleWarn(...args)\n };\n}\n\nfunction getDefaultRequestInit(bypassingCache) {\n return {\n cache: bypassingCache ? \"no-cache\" : \"force-cache\"\n };\n}\n\nasync function orCreateContext(node, options) {\n return isContext(node) ? node : createContext(node, { ...options, autoDestruct: true });\n}\nasync function createContext(node, options) {\n const { scale = 1, workerUrl, workerNumber = 1 } = options || {};\n const debug = Boolean(options?.debug);\n const features = options?.features ?? true;\n const ownerDocument = node.ownerDocument ?? (IN_BROWSER ? window.document : void 0);\n const ownerWindow = node.ownerDocument?.defaultView ?? (IN_BROWSER ? window : void 0);\n const requests = /* @__PURE__ */ new Map();\n const context = {\n // Options\n width: 0,\n height: 0,\n quality: 1,\n type: \"image/png\",\n scale,\n backgroundColor: null,\n style: null,\n filter: null,\n maximumCanvasSize: 0,\n timeout: 3e4,\n progress: null,\n debug,\n fetch: {\n requestInit: getDefaultRequestInit(options?.fetch?.bypassingCache),\n placeholderImage: \"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",\n bypassingCache: false,\n ...options?.fetch\n },\n fetchFn: null,\n font: {},\n drawImageInterval: 100,\n workerUrl: null,\n workerNumber,\n onCloneEachNode: null,\n onCloneNode: null,\n onEmbedNode: null,\n onCreateForeignObjectSvg: null,\n includeStyleProperties: null,\n autoDestruct: false,\n ...options,\n // InternalContext\n __CONTEXT__: true,\n log: createLogger(debug),\n node,\n ownerDocument,\n ownerWindow,\n dpi: scale === 1 ? null : 96 * scale,\n svgStyleElement: createStyleElement(ownerDocument),\n svgDefsElement: ownerDocument?.createElementNS(XMLNS, \"defs\"),\n svgStyles: /* @__PURE__ */ new Map(),\n defaultComputedStyles: /* @__PURE__ */ new Map(),\n workers: [\n ...Array.from({\n length: SUPPORT_WEB_WORKER && workerUrl && workerNumber ? workerNumber : 0\n })\n ].map(() => {\n try {\n const worker = new Worker(workerUrl);\n worker.onmessage = async (event) => {\n const { url, result } = event.data;\n if (result) {\n requests.get(url)?.resolve?.(result);\n } else {\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n }\n };\n worker.onmessageerror = (event) => {\n const { url } = event.data;\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n };\n return worker;\n } catch (error) {\n context.log.warn(\"Failed to new Worker\", error);\n return null;\n }\n }).filter(Boolean),\n fontFamilies: /* @__PURE__ */ new Map(),\n fontCssTexts: /* @__PURE__ */ new Map(),\n acceptOfImage: `${[\n supportWebp(ownerDocument) && \"image/webp\",\n \"image/svg+xml\",\n \"image/*\",\n \"*/*\"\n ].filter(Boolean).join(\",\")};q=0.8`,\n requests,\n drawImageCount: 0,\n tasks: [],\n features,\n isEnable: (key) => {\n if (key === \"restoreScrollPosition\") {\n return typeof features === \"boolean\" ? false : features[key] ?? false;\n }\n if (typeof features === \"boolean\") {\n return features;\n }\n return features[key] ?? true;\n },\n shadowRoots: []\n };\n context.log.time(\"wait until load\");\n await waitUntilLoad(node, { timeout: context.timeout, onWarn: context.log.warn });\n context.log.timeEnd(\"wait until load\");\n const { width, height } = resolveBoundingBox(node, context);\n context.width = width;\n context.height = height;\n return context;\n}\nfunction createStyleElement(ownerDocument) {\n if (!ownerDocument)\n return void 0;\n const style = ownerDocument.createElement(\"style\");\n const cssText = style.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);\n style.appendChild(cssText);\n return style;\n}\nfunction resolveBoundingBox(node, context) {\n let { width, height } = context;\n if (isElementNode(node) && (!width || !height)) {\n const box = node.getBoundingClientRect();\n width = width || box.width || Number(node.getAttribute(\"width\")) || 0;\n height = height || box.height || Number(node.getAttribute(\"height\")) || 0;\n }\n return { width, height };\n}\n\nasync function imageToCanvas(image, context) {\n const {\n log,\n timeout,\n drawImageCount,\n drawImageInterval\n } = context;\n log.time(\"image to canvas\");\n const loaded = await loadMedia(image, { timeout, onWarn: context.log.warn });\n const { canvas, context2d } = createCanvas(image.ownerDocument, context);\n const drawImage = () => {\n try {\n context2d?.drawImage(loaded, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to drawImage\", error);\n }\n };\n drawImage();\n if (context.isEnable(\"fixSvgXmlDecode\")) {\n for (let i = 0; i < drawImageCount; i++) {\n await new Promise((resolve) => {\n setTimeout(() => {\n context2d?.clearRect(0, 0, canvas.width, canvas.height);\n drawImage();\n resolve();\n }, i + drawImageInterval);\n });\n }\n }\n context.drawImageCount = 0;\n log.timeEnd(\"image to canvas\");\n return canvas;\n}\nfunction createCanvas(ownerDocument, context) {\n const { width, height, scale, backgroundColor, maximumCanvasSize: max } = context;\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = Math.floor(width * scale);\n canvas.height = Math.floor(height * scale);\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n if (max) {\n if (canvas.width > max || canvas.height > max) {\n if (canvas.width > max && canvas.height > max) {\n if (canvas.width > canvas.height) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n } else if (canvas.width > max) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n }\n }\n const context2d = canvas.getContext(\"2d\");\n if (context2d && backgroundColor) {\n context2d.fillStyle = backgroundColor;\n context2d.fillRect(0, 0, canvas.width, canvas.height);\n }\n return { canvas, context2d };\n}\n\nfunction cloneCanvas(canvas, context) {\n if (canvas.ownerDocument) {\n try {\n const dataURL = canvas.toDataURL();\n if (dataURL !== \"data:,\") {\n return createImage(dataURL, canvas.ownerDocument);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n }\n const cloned = canvas.cloneNode(false);\n const ctx = canvas.getContext(\"2d\");\n const clonedCtx = cloned.getContext(\"2d\");\n try {\n if (ctx && clonedCtx) {\n clonedCtx.putImageData(\n ctx.getImageData(0, 0, canvas.width, canvas.height),\n 0,\n 0\n );\n }\n return cloned;\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n return cloned;\n}\n\nfunction cloneIframe(iframe, context) {\n try {\n if (iframe?.contentDocument?.documentElement) {\n return cloneNode(iframe.contentDocument.documentElement, context);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone iframe\", error);\n }\n return iframe.cloneNode(false);\n}\n\nfunction cloneImage(image) {\n const cloned = image.cloneNode(false);\n if (image.currentSrc && image.currentSrc !== image.src) {\n cloned.src = image.currentSrc;\n cloned.srcset = \"\";\n }\n if (cloned.loading === \"lazy\") {\n cloned.loading = \"eager\";\n }\n return cloned;\n}\n\nasync function cloneVideo(video, context) {\n if (video.ownerDocument && !video.currentSrc && video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n const cloned = video.cloneNode(false);\n cloned.crossOrigin = \"anonymous\";\n if (video.currentSrc && video.currentSrc !== video.src) {\n cloned.src = video.currentSrc;\n }\n const ownerDocument = cloned.ownerDocument;\n if (ownerDocument) {\n let canPlay = true;\n await loadMedia(cloned, { onError: () => canPlay = false, onWarn: context.log.warn });\n if (!canPlay) {\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n cloned.currentTime = video.currentTime;\n await new Promise((resolve) => {\n cloned.addEventListener(\"seeked\", resolve, { once: true });\n });\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n try {\n const ctx = canvas.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(cloned, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to clone video\", error);\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n return cloneCanvas(canvas, context);\n }\n return cloned;\n}\n\nfunction cloneElement(node, context) {\n if (isCanvasElement(node)) {\n return cloneCanvas(node, context);\n }\n if (isIFrameElement(node)) {\n return cloneIframe(node, context);\n }\n if (isImageElement(node)) {\n return cloneImage(node);\n }\n if (isVideoElement(node)) {\n return cloneVideo(node, context);\n }\n return node.cloneNode(false);\n}\n\nfunction getSandBox(context) {\n let sandbox = context.sandbox;\n if (!sandbox) {\n const { ownerDocument } = context;\n try {\n if (ownerDocument) {\n sandbox = ownerDocument.createElement(\"iframe\");\n sandbox.id = `__SANDBOX__${uuid()}`;\n sandbox.width = \"0\";\n sandbox.height = \"0\";\n sandbox.style.visibility = \"hidden\";\n sandbox.style.position = \"fixed\";\n ownerDocument.body.appendChild(sandbox);\n sandbox.srcdoc = '<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>';\n context.sandbox = sandbox;\n }\n } catch (error) {\n context.log.warn(\"Failed to getSandBox\", error);\n }\n }\n return sandbox;\n}\n\nconst ignoredStyles = [\n \"width\",\n \"height\",\n \"-webkit-text-fill-color\"\n];\nconst includedAttributes = [\n \"stroke\",\n \"fill\"\n];\nfunction getDefaultStyle(node, pseudoElement, context) {\n const { defaultComputedStyles } = context;\n const nodeName = node.nodeName.toLowerCase();\n const isSvgNode = isSVGElementNode(node) && nodeName !== \"svg\";\n const attributes = isSvgNode ? includedAttributes.map((name) => [name, node.getAttribute(name)]).filter(([, value]) => value !== null) : [];\n const key = [\n isSvgNode && \"svg\",\n nodeName,\n attributes.map((name, value) => `${name}=${value}`).join(\",\"),\n pseudoElement\n ].filter(Boolean).join(\":\");\n if (defaultComputedStyles.has(key))\n return defaultComputedStyles.get(key);\n const sandbox = getSandBox(context);\n const sandboxWindow = sandbox?.contentWindow;\n if (!sandboxWindow)\n return /* @__PURE__ */ new Map();\n const sandboxDocument = sandboxWindow?.document;\n let root;\n let el;\n if (isSvgNode) {\n root = sandboxDocument.createElementNS(XMLNS, \"svg\");\n el = root.ownerDocument.createElementNS(root.namespaceURI, nodeName);\n attributes.forEach(([name, value]) => {\n el.setAttributeNS(null, name, value);\n });\n root.appendChild(el);\n } else {\n root = el = sandboxDocument.createElement(nodeName);\n }\n el.textContent = \" \";\n sandboxDocument.body.appendChild(root);\n const computedStyle = sandboxWindow.getComputedStyle(el, pseudoElement);\n const styles = /* @__PURE__ */ new Map();\n for (let len = computedStyle.length, i = 0; i < len; i++) {\n const name = computedStyle.item(i);\n if (ignoredStyles.includes(name))\n continue;\n styles.set(name, computedStyle.getPropertyValue(name));\n }\n sandboxDocument.body.removeChild(root);\n defaultComputedStyles.set(key, styles);\n return styles;\n}\n\nfunction getDiffStyle(style, defaultStyle, includeStyleProperties) {\n const diffStyle = /* @__PURE__ */ new Map();\n const prefixs = [];\n const prefixTree = /* @__PURE__ */ new Map();\n if (includeStyleProperties) {\n for (const name of includeStyleProperties) {\n applyTo(name);\n }\n } else {\n for (let len = style.length, i = 0; i < len; i++) {\n const name = style.item(i);\n applyTo(name);\n }\n }\n for (let len = prefixs.length, i = 0; i < len; i++) {\n prefixTree.get(prefixs[i])?.forEach((value, name) => diffStyle.set(name, value));\n }\n function applyTo(name) {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n const subIndex = name.lastIndexOf(\"-\");\n const prefix = subIndex > -1 ? name.substring(0, subIndex) : void 0;\n if (prefix) {\n let map = prefixTree.get(prefix);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n prefixTree.set(prefix, map);\n }\n map.set(name, [value, priority]);\n }\n if (defaultStyle.get(name) === value && !priority)\n return;\n if (prefix) {\n prefixs.push(prefix);\n } else {\n diffStyle.set(name, [value, priority]);\n }\n }\n return diffStyle;\n}\n\nfunction copyCssStyles(node, cloned, isRoot, context) {\n const { ownerWindow, includeStyleProperties, currentParentNodeStyle } = context;\n const clonedStyle = cloned.style;\n const computedStyle = ownerWindow.getComputedStyle(node);\n const defaultStyle = getDefaultStyle(node, null, context);\n currentParentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, includeStyleProperties);\n style.delete(\"transition-property\");\n style.delete(\"all\");\n style.delete(\"d\");\n style.delete(\"content\");\n if (isRoot) {\n style.delete(\"position\");\n style.delete(\"margin-top\");\n style.delete(\"margin-right\");\n style.delete(\"margin-bottom\");\n style.delete(\"margin-left\");\n style.delete(\"margin-block-start\");\n style.delete(\"margin-block-end\");\n style.delete(\"margin-inline-start\");\n style.delete(\"margin-inline-end\");\n style.set(\"box-sizing\", [\"border-box\", \"\"]);\n }\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n if (IN_CHROME) {\n if (!style.has(\"font-kerning\"))\n style.set(\"font-kerning\", [\"normal\", \"\"]);\n if ((style.get(\"overflow-x\")?.[0] === \"hidden\" || style.get(\"overflow-y\")?.[0] === \"hidden\") && style.get(\"text-overflow\")?.[0] === \"ellipsis\" && node.scrollWidth === node.clientWidth) {\n style.set(\"text-overflow\", [\"clip\", \"\"]);\n }\n }\n for (let len = clonedStyle.length, i = 0; i < len; i++) {\n clonedStyle.removeProperty(clonedStyle.item(i));\n }\n style.forEach(([value, priority], name) => {\n clonedStyle.setProperty(name, value, priority);\n });\n return style;\n}\n\nfunction copyInputValue(node, cloned) {\n if (isTextareaElement(node) || isInputElement(node) || isSelectElement(node)) {\n cloned.setAttribute(\"value\", node.value);\n }\n}\n\nconst pseudoClasses = [\n \"::before\",\n \"::after\"\n // '::placeholder', TODO\n];\nconst scrollbarPseudoClasses = [\n \"::-webkit-scrollbar\",\n \"::-webkit-scrollbar-button\",\n // '::-webkit-scrollbar:horizontal', TODO\n \"::-webkit-scrollbar-thumb\",\n \"::-webkit-scrollbar-track\",\n \"::-webkit-scrollbar-track-piece\",\n // '::-webkit-scrollbar:vertical', TODO\n \"::-webkit-scrollbar-corner\",\n \"::-webkit-resizer\"\n];\nfunction copyPseudoClass(node, cloned, copyScrollbar, context, addWordToFontFamilies) {\n const { ownerWindow, svgStyleElement, svgStyles, currentNodeStyle } = context;\n if (!svgStyleElement || !ownerWindow)\n return;\n function copyBy(pseudoClass) {\n const computedStyle = ownerWindow.getComputedStyle(node, pseudoClass);\n let content = computedStyle.getPropertyValue(\"content\");\n if (!content || content === \"none\")\n return;\n addWordToFontFamilies?.(content);\n content = content.replace(/(')|(\")|(counter\\(.+\\))/g, \"\");\n const klasses = [uuid()];\n const defaultStyle = getDefaultStyle(node, pseudoClass, context);\n currentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, context.includeStyleProperties);\n style.delete(\"content\");\n style.delete(\"-webkit-locale\");\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n const cloneStyle = [\n `content: '${content}';`\n ];\n style.forEach(([value, priority], name) => {\n cloneStyle.push(`${name}: ${value}${priority ? \" !important\" : \"\"};`);\n });\n if (cloneStyle.length === 1)\n return;\n try {\n cloned.className = [cloned.className, ...klasses].join(\" \");\n } catch (err) {\n context.log.warn(\"Failed to copyPseudoClass\", err);\n return;\n }\n const cssText = cloneStyle.join(\"\\n \");\n let allClasses = svgStyles.get(cssText);\n if (!allClasses) {\n allClasses = [];\n svgStyles.set(cssText, allClasses);\n }\n allClasses.push(`.${klasses[0]}${pseudoClass}`);\n }\n pseudoClasses.forEach(copyBy);\n if (copyScrollbar)\n scrollbarPseudoClasses.forEach(copyBy);\n}\n\nconst excludeParentNodes = /* @__PURE__ */ new Set([\n \"symbol\"\n // test/fixtures/svg.symbol.html\n]);\nasync function appendChildNode(node, cloned, child, context, addWordToFontFamilies) {\n if (isElementNode(child) && (isStyleElement(child) || isScriptElement(child)))\n return;\n if (context.filter && !context.filter(child))\n return;\n if (excludeParentNodes.has(cloned.nodeName) || excludeParentNodes.has(child.nodeName)) {\n context.currentParentNodeStyle = void 0;\n } else {\n context.currentParentNodeStyle = context.currentNodeStyle;\n }\n const childCloned = await cloneNode(child, context, false, addWordToFontFamilies);\n if (context.isEnable(\"restoreScrollPosition\")) {\n restoreScrollPosition(node, childCloned);\n }\n cloned.appendChild(childCloned);\n}\nasync function cloneChildNodes(node, cloned, context, addWordToFontFamilies) {\n let firstChild = node.firstChild;\n if (isElementNode(node)) {\n if (node.shadowRoot) {\n firstChild = node.shadowRoot?.firstChild;\n context.shadowRoots.push(node.shadowRoot);\n }\n }\n for (let child = firstChild; child; child = child.nextSibling) {\n if (isCommentNode(child))\n continue;\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === \"function\") {\n const nodes = child.assignedNodes();\n for (let i = 0; i < nodes.length; i++) {\n await appendChildNode(node, cloned, nodes[i], context, addWordToFontFamilies);\n }\n } else {\n await appendChildNode(node, cloned, child, context, addWordToFontFamilies);\n }\n }\n}\nfunction restoreScrollPosition(node, chlidCloned) {\n if (!isHTMLElementNode(node) || !isHTMLElementNode(chlidCloned))\n return;\n const { scrollTop, scrollLeft } = node;\n if (!scrollTop && !scrollLeft) {\n return;\n }\n const { transform } = chlidCloned.style;\n const matrix = new DOMMatrix(transform);\n const { a, b, c, d } = matrix;\n matrix.a = 1;\n matrix.b = 0;\n matrix.c = 0;\n matrix.d = 1;\n matrix.translateSelf(-scrollLeft, -scrollTop);\n matrix.a = a;\n matrix.b = b;\n matrix.c = c;\n matrix.d = d;\n chlidCloned.style.transform = matrix.toString();\n}\nfunction applyCssStyleWithOptions(cloned, context) {\n const { backgroundColor, width, height, style: styles } = context;\n const clonedStyle = cloned.style;\n if (backgroundColor)\n clonedStyle.setProperty(\"background-color\", backgroundColor, \"important\");\n if (width)\n clonedStyle.setProperty(\"width\", `${width}px`, \"important\");\n if (height)\n clonedStyle.setProperty(\"height\", `${height}px`, \"important\");\n if (styles) {\n for (const name in styles) clonedStyle[name] = styles[name];\n }\n}\nconst NORMAL_ATTRIBUTE_RE = /^[\\w-:]+$/;\nasync function cloneNode(node, context, isRoot = false, addWordToFontFamilies) {\n const { ownerDocument, ownerWindow, fontFamilies, onCloneEachNode } = context;\n if (ownerDocument && isTextNode(node)) {\n if (addWordToFontFamilies && /\\S/.test(node.data)) {\n addWordToFontFamilies(node.data);\n }\n return ownerDocument.createTextNode(node.data);\n }\n if (ownerDocument && ownerWindow && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n const cloned2 = await cloneElement(node, context);\n if (context.isEnable(\"removeAbnormalAttributes\")) {\n const names = cloned2.getAttributeNames();\n for (let len = names.length, i = 0; i < len; i++) {\n const name = names[i];\n if (!NORMAL_ATTRIBUTE_RE.test(name)) {\n cloned2.removeAttribute(name);\n }\n }\n }\n const style = context.currentNodeStyle = copyCssStyles(node, cloned2, isRoot, context);\n if (isRoot)\n applyCssStyleWithOptions(cloned2, context);\n let copyScrollbar = false;\n if (context.isEnable(\"copyScrollbar\")) {\n const overflow = [\n style.get(\"overflow-x\")?.[0],\n style.get(\"overflow-y\")?.[0]\n ];\n copyScrollbar = overflow.includes(\"scroll\") || (overflow.includes(\"auto\") || overflow.includes(\"overlay\")) && (node.scrollHeight > node.clientHeight || node.scrollWidth > node.clientWidth);\n }\n const textTransform = style.get(\"text-transform\")?.[0];\n const families = splitFontFamily(style.get(\"font-family\")?.[0]);\n const addWordToFontFamilies2 = families ? (word) => {\n if (textTransform === \"uppercase\") {\n word = word.toUpperCase();\n } else if (textTransform === \"lowercase\") {\n word = word.toLowerCase();\n } else if (textTransform === \"capitalize\") {\n word = word[0].toUpperCase() + word.substring(1);\n }\n families.forEach((family) => {\n let fontFamily = fontFamilies.get(family);\n if (!fontFamily) {\n fontFamilies.set(family, fontFamily = /* @__PURE__ */ new Set());\n }\n word.split(\"\").forEach((text) => fontFamily.add(text));\n });\n } : void 0;\n copyPseudoClass(\n node,\n cloned2,\n copyScrollbar,\n context,\n addWordToFontFamilies2\n );\n copyInputValue(node, cloned2);\n if (!isVideoElement(node)) {\n await cloneChildNodes(\n node,\n cloned2,\n context,\n addWordToFontFamilies2\n );\n }\n await onCloneEachNode?.(cloned2);\n return cloned2;\n }\n const cloned = node.cloneNode(false);\n await cloneChildNodes(node, cloned, context);\n await onCloneEachNode?.(cloned);\n return cloned;\n}\n\nfunction destroyContext(context) {\n context.ownerDocument = void 0;\n context.ownerWindow = void 0;\n context.svgStyleElement = void 0;\n context.svgDefsElement = void 0;\n context.svgStyles.clear();\n context.defaultComputedStyles.clear();\n if (context.sandbox) {\n try {\n context.sandbox.remove();\n } catch (err) {\n context.log.warn(\"Failed to destroyContext\", err);\n }\n context.sandbox = void 0;\n }\n context.workers = [];\n context.fontFamilies.clear();\n context.fontCssTexts.clear();\n context.requests.clear();\n context.tasks = [];\n context.shadowRoots = [];\n}\n\nfunction baseFetch(options) {\n const { url, timeout, responseType, ...requestInit } = options;\n const controller = new AbortController();\n const timer = timeout ? setTimeout(() => controller.abort(), timeout) : void 0;\n return fetch(url, { signal: controller.signal, ...requestInit }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed fetch, not 2xx response\", { cause: response });\n }\n switch (responseType) {\n case \"arrayBuffer\":\n return response.arrayBuffer();\n case \"dataUrl\":\n return response.blob().then(blobToDataUrl);\n case \"text\":\n default:\n return response.text();\n }\n }).finally(() => clearTimeout(timer));\n}\nfunction contextFetch(context, options) {\n const { url: rawUrl, requestType = \"text\", responseType = \"text\", imageDom } = options;\n let url = rawUrl;\n const {\n timeout,\n acceptOfImage,\n requests,\n fetchFn,\n fetch: {\n requestInit,\n bypassingCache,\n placeholderImage\n },\n font,\n workers,\n fontFamilies\n } = context;\n if (requestType === \"image\" && (IN_SAFARI || IN_FIREFOX)) {\n context.drawImageCount++;\n }\n let request = requests.get(rawUrl);\n if (!request) {\n if (bypassingCache) {\n if (bypassingCache instanceof RegExp && bypassingCache.test(url)) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime();\n }\n }\n const canFontMinify = requestType.startsWith(\"font\") && font && font.minify;\n const fontTexts = /* @__PURE__ */ new Set();\n if (canFontMinify) {\n const families = requestType.split(\";\")[1].split(\",\");\n families.forEach((family) => {\n if (!fontFamilies.has(family))\n return;\n fontFamilies.get(family).forEach((text) => fontTexts.add(text));\n });\n }\n const needFontMinify = canFontMinify && fontTexts.size;\n const baseFetchOptions = {\n url,\n timeout,\n responseType: needFontMinify ? \"arrayBuffer\" : responseType,\n headers: requestType === \"image\" ? { accept: acceptOfImage } : void 0,\n ...requestInit\n };\n request = {\n type: requestType,\n resolve: void 0,\n reject: void 0,\n response: null\n };\n request.response = (async () => {\n if (fetchFn && requestType === \"image\") {\n const result = await fetchFn(rawUrl);\n if (result)\n return result;\n }\n if (!IN_SAFARI && rawUrl.startsWith(\"http\") && workers.length) {\n return new Promise((resolve, reject) => {\n const worker = workers[requests.size & workers.length - 1];\n worker.postMessage({ rawUrl, ...baseFetchOptions });\n request.resolve = resolve;\n request.reject = reject;\n });\n }\n return baseFetch(baseFetchOptions);\n })().catch((error) => {\n requests.delete(rawUrl);\n if (requestType === \"image\" && placeholderImage) {\n context.log.warn(\"Failed to fetch image base64, trying to use placeholder image\", url);\n return typeof placeholderImage === \"string\" ? placeholderImage : placeholderImage(imageDom);\n }\n throw error;\n });\n requests.set(rawUrl, request);\n }\n return request.response;\n}\n\nasync function replaceCssUrlToDataUrl(cssText, baseUrl, context, isImage) {\n if (!hasCssUrl(cssText))\n return cssText;\n for (const [rawUrl, url] of parseCssUrls(cssText, baseUrl)) {\n try {\n const dataUrl = await contextFetch(\n context,\n {\n url,\n requestType: isImage ? \"image\" : \"text\",\n responseType: \"dataUrl\"\n }\n );\n cssText = cssText.replace(toRE(rawUrl), `$1${dataUrl}$3`);\n } catch (error) {\n context.log.warn(\"Failed to fetch css data url\", rawUrl, error);\n }\n }\n return cssText;\n}\nfunction hasCssUrl(cssText) {\n return /url\\((['\"]?)([^'\"]+?)\\1\\)/.test(cssText);\n}\nconst URL_RE = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nfunction parseCssUrls(cssText, baseUrl) {\n const result = [];\n cssText.replace(URL_RE, (raw, quotation, url) => {\n result.push([url, resolveUrl(url, baseUrl)]);\n return raw;\n });\n return result.filter(([url]) => !isDataUrl(url));\n}\nfunction toRE(url) {\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, \"g\");\n}\n\nconst properties = [\n \"background-image\",\n \"border-image-source\",\n \"-webkit-border-image\",\n \"-webkit-mask-image\",\n \"list-style-image\"\n];\nfunction embedCssStyleImage(style, context) {\n return properties.map((property) => {\n const value = style.getPropertyValue(property);\n if (!value || value === \"none\") {\n return null;\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n return replaceCssUrlToDataUrl(value, null, context, true).then((newValue) => {\n if (!newValue || value === newValue)\n return;\n style.setProperty(\n property,\n newValue,\n style.getPropertyPriority(property)\n );\n });\n }).filter(Boolean);\n}\n\nfunction embedImageElement(cloned, context) {\n if (isImageElement(cloned)) {\n const originalSrc = cloned.currentSrc || cloned.src;\n if (!isDataUrl(originalSrc)) {\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.srcset = \"\";\n cloned.dataset.originalSrc = originalSrc;\n cloned.src = url || \"\";\n })\n ];\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n } else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) {\n const originalSrc = cloned.href.baseVal;\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.dataset.originalSrc = originalSrc;\n cloned.href.baseVal = url || \"\";\n })\n ];\n }\n return [];\n}\n\nfunction embedSvgUse(cloned, context) {\n const { ownerDocument, svgDefsElement } = context;\n const href = cloned.getAttribute(\"href\") ?? cloned.getAttribute(\"xlink:href\");\n if (!href)\n return [];\n const [svgUrl, id] = href.split(\"#\");\n if (id) {\n const query = `#${id}`;\n const definition = context.shadowRoots.reduce(\n (res, root) => {\n return res ?? root.querySelector(`svg ${query}`);\n },\n ownerDocument?.querySelector(`svg ${query}`)\n );\n if (svgUrl) {\n cloned.setAttribute(\"href\", query);\n }\n if (svgDefsElement?.querySelector(query))\n return [];\n if (definition) {\n svgDefsElement?.appendChild(definition.cloneNode(true));\n return [];\n } else if (svgUrl) {\n return [\n contextFetch(context, {\n url: svgUrl,\n responseType: \"text\"\n }).then((svgData) => {\n svgDefsElement?.insertAdjacentHTML(\"beforeend\", svgData);\n })\n ];\n }\n }\n return [];\n}\n\nfunction embedNode(cloned, context) {\n const { tasks } = context;\n if (isElementNode(cloned)) {\n if (isImageElement(cloned) || isSVGImageElementNode(cloned)) {\n tasks.push(...embedImageElement(cloned, context));\n }\n if (isSVGUseElementNode(cloned)) {\n tasks.push(...embedSvgUse(cloned, context));\n }\n }\n if (isHTMLElementNode(cloned)) {\n tasks.push(...embedCssStyleImage(cloned.style, context));\n }\n cloned.childNodes.forEach((child) => {\n embedNode(child, context);\n });\n}\n\nasync function embedWebFont(clone, context) {\n const {\n ownerDocument,\n svgStyleElement,\n fontFamilies,\n fontCssTexts,\n tasks,\n font\n } = context;\n if (!ownerDocument || !svgStyleElement || !fontFamilies.size) {\n return;\n }\n if (font && font.cssText) {\n const cssText = filterPreferredFormat(font.cssText, context);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n const styleSheets = Array.from(ownerDocument.styleSheets).filter((styleSheet) => {\n try {\n return \"cssRules\" in styleSheet && Boolean(styleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(`Error while reading CSS rules from ${styleSheet.href}`, error);\n return false;\n }\n });\n const tempDoc = ownerDocument.implementation.createHTMLDocument(\"\");\n const tempStyleEl = tempDoc.createElement(\"style\");\n tempDoc.head.appendChild(tempStyleEl);\n const tempStyleSheet = tempStyleEl.sheet;\n await Promise.all(\n styleSheets.flatMap((styleSheet) => {\n return Array.from(styleSheet.cssRules).map(async (cssRule) => {\n if (isCSSImportRule(cssRule)) {\n const baseUrl = cssRule.href;\n let cssText = \"\";\n try {\n cssText = await contextFetch(context, {\n url: baseUrl,\n requestType: \"text\",\n responseType: \"text\"\n });\n } catch (error) {\n context.log.warn(`Error fetch remote css import from ${baseUrl}`, error);\n }\n const replacedCssText = cssText.replace(\n URL_RE,\n (raw, quotation, url) => raw.replace(url, resolveUrl(url, baseUrl))\n );\n for (const rule of parseCss(replacedCssText)) {\n try {\n tempStyleSheet.insertRule(rule, tempStyleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(\"Error inserting rule from remote css import\", { rule, error });\n }\n }\n }\n });\n })\n );\n if (tempStyleSheet.cssRules.length)\n styleSheets.push(tempStyleSheet);\n const cssRules = [];\n styleSheets.forEach((sheet) => {\n unwrapCssLayers(sheet.cssRules, cssRules);\n });\n cssRules.filter((cssRule) => isCssFontFaceRule(cssRule) && hasCssUrl(cssRule.style.getPropertyValue(\"src\")) && splitFontFamily(cssRule.style.getPropertyValue(\"font-family\"))?.some((val) => fontFamilies.has(val))).forEach((value) => {\n const rule = value;\n const cssText = fontCssTexts.get(rule.cssText);\n if (cssText) {\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n tasks.push(\n replaceCssUrlToDataUrl(\n rule.cssText,\n rule.parentStyleSheet ? rule.parentStyleSheet.href : null,\n context\n ).then((cssText2) => {\n cssText2 = filterPreferredFormat(cssText2, context);\n fontCssTexts.set(rule.cssText, cssText2);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText2}\n`));\n })\n );\n }\n });\n }\n}\nconst COMMENTS_RE = /(\\/\\*[\\s\\S]*?\\*\\/)/g;\nconst KEYFRAMES_RE = /((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;\nfunction parseCss(source) {\n if (source == null)\n return [];\n const result = [];\n let cssText = source.replace(COMMENTS_RE, \"\");\n while (true) {\n const matches = KEYFRAMES_RE.exec(cssText);\n if (!matches)\n break;\n result.push(matches[0]);\n }\n cssText = cssText.replace(KEYFRAMES_RE, \"\");\n const IMPORT_RE = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n const UNIFIED_RE = new RegExp(\n // eslint-disable-next-line\n \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\n \"gi\"\n );\n while (true) {\n let matches = IMPORT_RE.exec(cssText);\n if (!matches) {\n matches = UNIFIED_RE.exec(cssText);\n if (!matches) {\n break;\n } else {\n IMPORT_RE.lastIndex = UNIFIED_RE.lastIndex;\n }\n } else {\n UNIFIED_RE.lastIndex = IMPORT_RE.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nconst URL_WITH_FORMAT_RE = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_RE = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction filterPreferredFormat(str, context) {\n const { font } = context;\n const preferredFormat = font ? font?.preferredFormat : void 0;\n return preferredFormat ? str.replace(FONT_SRC_RE, (match) => {\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_RE.exec(match) || [];\n if (!format)\n return \"\";\n if (format === preferredFormat)\n return `src: ${src};`;\n }\n }) : str;\n}\nfunction unwrapCssLayers(rules, out = []) {\n for (const rule of Array.from(rules)) {\n if (isLayerBlockRule(rule)) {\n out.push(...unwrapCssLayers(rule.cssRules));\n } else if (\"cssRules\" in rule) {\n unwrapCssLayers(rule.cssRules, out);\n } else {\n out.push(rule);\n }\n }\n return out;\n}\n\nconst SVG_EXTERNAL_RESOURCE_REGEX = /\\bx?link:?href\\s*=\\s*[\"'](?!data:)[^\"']+[\"']/i;\nfunction svgHasExternalResources(svg) {\n return SVG_EXTERNAL_RESOURCE_REGEX.test(svg.innerHTML);\n}\nasync function domToForeignObjectSvg(node, options) {\n const context = await orCreateContext(node, options);\n if (isElementNode(context.node) && isSVGElementNode(context.node) && !svgHasExternalResources(context.node))\n return context.node;\n const {\n ownerDocument,\n log,\n tasks,\n svgStyleElement,\n svgDefsElement,\n svgStyles,\n font,\n progress,\n autoDestruct,\n onCloneNode,\n onEmbedNode,\n onCreateForeignObjectSvg\n } = context;\n log.time(\"clone node\");\n const clone = await cloneNode(context.node, context, true);\n if (svgStyleElement && ownerDocument) {\n let allCssText = \"\";\n svgStyles.forEach((klasses, cssText) => {\n allCssText += `${klasses.join(\",\\n\")} {\n ${cssText}\n}\n`;\n });\n svgStyleElement.appendChild(ownerDocument.createTextNode(allCssText));\n }\n log.timeEnd(\"clone node\");\n await onCloneNode?.(clone);\n if (font !== false && isElementNode(clone)) {\n log.time(\"embed web font\");\n await embedWebFont(clone, context);\n log.timeEnd(\"embed web font\");\n }\n log.time(\"embed node\");\n embedNode(clone, context);\n const count = tasks.length;\n let current = 0;\n const runTask = async () => {\n while (true) {\n const task = tasks.pop();\n if (!task)\n break;\n try {\n await task;\n } catch (error) {\n context.log.warn(\"Failed to run task\", error);\n }\n progress?.(++current, count);\n }\n };\n progress?.(current, count);\n await Promise.all([...Array.from({ length: 4 })].map(runTask));\n log.timeEnd(\"embed node\");\n await onEmbedNode?.(clone);\n const svg = createForeignObjectSvg(clone, context);\n svgDefsElement && svg.insertBefore(svgDefsElement, svg.children[0]);\n svgStyleElement && svg.insertBefore(svgStyleElement, svg.children[0]);\n autoDestruct && destroyContext(context);\n await onCreateForeignObjectSvg?.(svg);\n return svg;\n}\nfunction createForeignObjectSvg(clone, context) {\n const { width, height } = context;\n const svg = createSvg(width, height, clone.ownerDocument);\n const foreignObject = svg.ownerDocument.createElementNS(svg.namespaceURI, \"foreignObject\");\n foreignObject.setAttributeNS(null, \"x\", \"0%\");\n foreignObject.setAttributeNS(null, \"y\", \"0%\");\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\n foreignObject.append(clone);\n svg.appendChild(foreignObject);\n return svg;\n}\n\nasync function domToCanvas(node, options) {\n const context = await orCreateContext(node, options);\n const svg = await domToForeignObjectSvg(context);\n const dataUrl = svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n if (!context.autoDestruct) {\n context.svgStyleElement = createStyleElement(context.ownerDocument);\n context.svgDefsElement = context.ownerDocument?.createElementNS(XMLNS, \"defs\");\n context.svgStyles.clear();\n }\n const image = createImage(dataUrl, svg.ownerDocument);\n return await imageToCanvas(image, context);\n}\n\nasync function domToBlob(node, options) {\n const context = await orCreateContext(node, options);\n const { log, type, quality, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to blob\");\n const blob = await canvasToBlob(canvas, type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi) {\n const arrayBuffer = await blobToArrayBuffer(blob.slice(0, 33));\n let uint8Array = new Uint8Array(arrayBuffer);\n if (type === \"image/png\") {\n uint8Array = changePngDpi(uint8Array, dpi);\n } else if (type === \"image/jpeg\") {\n uint8Array = changeJpegDpi(uint8Array, dpi);\n }\n log.timeEnd(\"canvas to blob\");\n return new Blob([uint8Array, blob.slice(33)], { type });\n }\n log.timeEnd(\"canvas to blob\");\n return blob;\n}\n\nasync function domToDataUrl(node, options) {\n const context = await orCreateContext(node, options);\n const { log, quality, type, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to data url\");\n let dataUrl = canvas.toDataURL(type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi && SUPPORT_ATOB && SUPPORT_BTOA) {\n const [format, body] = dataUrl.split(\",\");\n let headerLength = 0;\n let overwritepHYs = false;\n if (type === \"image/png\") {\n const b64Index = detectPhysChunkFromDataUrl(body);\n if (b64Index >= 0) {\n headerLength = Math.ceil((b64Index + 28) / 3) * 4;\n overwritepHYs = true;\n } else {\n headerLength = 33 / 3 * 4;\n }\n } else if (type === \"image/jpeg\") {\n headerLength = 18 / 3 * 4;\n }\n const stringHeader = body.substring(0, headerLength);\n const restOfData = body.substring(headerLength);\n const headerBytes = window.atob(stringHeader);\n const uint8Array = new Uint8Array(headerBytes.length);\n for (let i = 0; i < uint8Array.length; i++) {\n uint8Array[i] = headerBytes.charCodeAt(i);\n }\n const finalArray = type === \"image/png\" ? changePngDpi(uint8Array, dpi, overwritepHYs) : changeJpegDpi(uint8Array, dpi);\n const base64Header = window.btoa(String.fromCharCode(...finalArray));\n dataUrl = [format, \",\", base64Header, restOfData].join(\"\");\n }\n log.timeEnd(\"canvas to data url\");\n return dataUrl;\n}\n\nasync function domToSvg(node, options) {\n const context = await orCreateContext(node, options);\n const { width, height, ownerDocument } = context;\n const dataUrl = await domToDataUrl(context);\n const svg = createSvg(width, height, ownerDocument);\n const svgImage = svg.ownerDocument.createElementNS(svg.namespaceURI, \"image\");\n svgImage.setAttributeNS(null, \"href\", dataUrl);\n svgImage.setAttributeNS(null, \"height\", \"100%\");\n svgImage.setAttributeNS(null, \"width\", \"100%\");\n svg.appendChild(svgImage);\n return svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n}\n\nasync function domToImage(node, options) {\n const context = await orCreateContext(node, options);\n const { ownerDocument, width, height, scale, type } = context;\n const url = type === \"image/svg+xml\" ? await domToSvg(context) : await domToDataUrl(context);\n const image = createImage(url, ownerDocument);\n image.width = Math.floor(width * scale);\n image.height = Math.floor(height * scale);\n image.style.width = `${width}px`;\n image.style.height = `${height}px`;\n return image;\n}\n\nasync function domToJpeg(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/jpeg\" })\n );\n}\n\nasync function domToPixel(node, options) {\n const context = await orCreateContext(node, options);\n const canvas = await domToCanvas(context);\n return canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height).data;\n}\n\nasync function domToPng(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/png\" })\n );\n}\n\nasync function domToWebp(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/webp\" })\n );\n}\n\nexport { createContext, destroyContext, domToBlob, domToCanvas, domToDataUrl, domToForeignObjectSvg, domToImage, domToJpeg, domToPixel, domToPng, domToSvg, domToWebp, loadMedia, waitUntilLoad };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dist-BPmPx7kz.js","names":[],"sources":["../../../node_modules/modern-screenshot/dist/index.mjs"],"sourcesContent":["function changeJpegDpi(uint8Array, dpi) {\n uint8Array[13] = 1;\n uint8Array[14] = dpi >> 8;\n uint8Array[15] = dpi & 255;\n uint8Array[16] = dpi >> 8;\n uint8Array[17] = dpi & 255;\n return uint8Array;\n}\n\nconst _P = \"p\".charCodeAt(0);\nconst _H = \"H\".charCodeAt(0);\nconst _Y = \"Y\".charCodeAt(0);\nconst _S = \"s\".charCodeAt(0);\nlet pngDataTable;\nfunction createPngDataTable() {\n const crcTable = new Int32Array(256);\n for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\nfunction calcCrc(uint8Array) {\n let c = -1;\n if (!pngDataTable)\n pngDataTable = createPngDataTable();\n for (let n = 0; n < uint8Array.length; n++) {\n c = pngDataTable[(c ^ uint8Array[n]) & 255] ^ c >>> 8;\n }\n return c ^ -1;\n}\nfunction searchStartOfPhys(uint8Array) {\n const length = uint8Array.length - 1;\n for (let i = length; i >= 4; i--) {\n if (uint8Array[i - 4] === 9 && uint8Array[i - 3] === _P && uint8Array[i - 2] === _H && uint8Array[i - 1] === _Y && uint8Array[i] === _S) {\n return i - 3;\n }\n }\n return 0;\n}\nfunction changePngDpi(uint8Array, dpi, overwritepHYs = false) {\n const physChunk = new Uint8Array(13);\n dpi *= 39.3701;\n physChunk[0] = _P;\n physChunk[1] = _H;\n physChunk[2] = _Y;\n physChunk[3] = _S;\n physChunk[4] = dpi >>> 24;\n physChunk[5] = dpi >>> 16;\n physChunk[6] = dpi >>> 8;\n physChunk[7] = dpi & 255;\n physChunk[8] = physChunk[4];\n physChunk[9] = physChunk[5];\n physChunk[10] = physChunk[6];\n physChunk[11] = physChunk[7];\n physChunk[12] = 1;\n const crc = calcCrc(physChunk);\n const crcChunk = new Uint8Array(4);\n crcChunk[0] = crc >>> 24;\n crcChunk[1] = crc >>> 16;\n crcChunk[2] = crc >>> 8;\n crcChunk[3] = crc & 255;\n if (overwritepHYs) {\n const startingIndex = searchStartOfPhys(uint8Array);\n uint8Array.set(physChunk, startingIndex);\n uint8Array.set(crcChunk, startingIndex + 13);\n return uint8Array;\n } else {\n const chunkLength = new Uint8Array(4);\n chunkLength[0] = 0;\n chunkLength[1] = 0;\n chunkLength[2] = 0;\n chunkLength[3] = 9;\n const finalHeader = new Uint8Array(54);\n finalHeader.set(uint8Array, 0);\n finalHeader.set(chunkLength, 33);\n finalHeader.set(physChunk, 37);\n finalHeader.set(crcChunk, 50);\n return finalHeader;\n }\n}\nconst b64PhysSignature1 = \"AAlwSFlz\";\nconst b64PhysSignature2 = \"AAAJcEhZ\";\nconst b64PhysSignature3 = \"AAAACXBI\";\nfunction detectPhysChunkFromDataUrl(dataUrl) {\n let b64index = dataUrl.indexOf(b64PhysSignature1);\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature2);\n }\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature3);\n }\n return b64index;\n}\n\nconst PREFIX = \"[modern-screenshot]\";\nconst IN_BROWSER = typeof window !== \"undefined\";\nconst SUPPORT_WEB_WORKER = IN_BROWSER && \"Worker\" in window;\nconst SUPPORT_ATOB = IN_BROWSER && \"atob\" in window;\nconst SUPPORT_BTOA = IN_BROWSER && \"btoa\" in window;\nconst USER_AGENT = IN_BROWSER ? window.navigator?.userAgent : \"\";\nconst IN_CHROME = USER_AGENT.includes(\"Chrome\");\nconst IN_SAFARI = USER_AGENT.includes(\"AppleWebKit\") && !IN_CHROME;\nconst IN_FIREFOX = USER_AGENT.includes(\"Firefox\");\nconst isContext = (value) => value && \"__CONTEXT__\" in value;\nconst isCssFontFaceRule = (rule) => rule.constructor.name === \"CSSFontFaceRule\";\nconst isCSSImportRule = (rule) => rule.constructor.name === \"CSSImportRule\";\nconst isLayerBlockRule = (rule) => rule.constructor.name === \"CSSLayerBlockRule\";\nconst isElementNode = (node) => node.nodeType === 1;\nconst isSVGElementNode = (node) => typeof node.className === \"object\";\nconst isSVGImageElementNode = (node) => node.tagName === \"image\";\nconst isSVGUseElementNode = (node) => node.tagName === \"use\";\nconst isHTMLElementNode = (node) => isElementNode(node) && typeof node.style !== \"undefined\" && !isSVGElementNode(node);\nconst isCommentNode = (node) => node.nodeType === 8;\nconst isTextNode = (node) => node.nodeType === 3;\nconst isImageElement = (node) => node.tagName === \"IMG\";\nconst isVideoElement = (node) => node.tagName === \"VIDEO\";\nconst isCanvasElement = (node) => node.tagName === \"CANVAS\";\nconst isTextareaElement = (node) => node.tagName === \"TEXTAREA\";\nconst isInputElement = (node) => node.tagName === \"INPUT\";\nconst isStyleElement = (node) => node.tagName === \"STYLE\";\nconst isScriptElement = (node) => node.tagName === \"SCRIPT\";\nconst isSelectElement = (node) => node.tagName === \"SELECT\";\nconst isSlotElement = (node) => node.tagName === \"SLOT\";\nconst isIFrameElement = (node) => node.tagName === \"IFRAME\";\nconst consoleWarn = (...args) => console.warn(PREFIX, ...args);\nfunction supportWebp(ownerDocument) {\n const canvas = ownerDocument?.createElement?.(\"canvas\");\n if (canvas) {\n canvas.height = canvas.width = 1;\n }\n return Boolean(canvas) && \"toDataURL\" in canvas && Boolean(canvas.toDataURL(\"image/webp\").includes(\"image/webp\"));\n}\nconst isDataUrl = (url) => url.startsWith(\"data:\");\nfunction resolveUrl(url, baseUrl) {\n if (url.match(/^[a-z]+:\\/\\//i))\n return url;\n if (IN_BROWSER && url.match(/^\\/\\//))\n return window.location.protocol + url;\n if (url.match(/^[a-z]+:/i))\n return url;\n if (!IN_BROWSER)\n return url;\n const doc = getDocument().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 a.href = url;\n return a.href;\n}\nfunction getDocument(target) {\n return (target && isElementNode(target) ? target?.ownerDocument : target) ?? window.document;\n}\nconst XMLNS = \"http://www.w3.org/2000/svg\";\nfunction createSvg(width, height, ownerDocument) {\n const svg = getDocument(ownerDocument).createElementNS(XMLNS, \"svg\");\n svg.setAttributeNS(null, \"width\", width.toString());\n svg.setAttributeNS(null, \"height\", height.toString());\n svg.setAttributeNS(null, \"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n}\nfunction svgToDataUrl(svg, removeControlCharacter) {\n let xhtml = new XMLSerializer().serializeToString(svg);\n if (removeControlCharacter) {\n xhtml = xhtml.replace(/[\\u0000-\\u0008\\v\\f\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/gu, \"\");\n }\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xhtml)}`;\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality = 1) {\n try {\n return await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(\"Blob is null\"));\n }\n }, type, quality);\n });\n } catch (error) {\n if (SUPPORT_ATOB) {\n return dataUrlToBlob(canvas.toDataURL(type, quality));\n }\n throw error;\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(\",\");\n const type = header.match(/data:(.+);/)?.[1] ?? void 0;\n const decoded = window.atob(base64);\n const length = decoded.length;\n const buffer = new Uint8Array(length);\n for (let i = 0; i < length; i += 1) {\n buffer[i] = decoded.charCodeAt(i);\n }\n return new Blob([buffer], { type });\n}\nfunction readBlob(blob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.onabort = () => reject(new Error(`Failed read blob to ${type}`));\n if (type === \"dataUrl\") {\n reader.readAsDataURL(blob);\n } else if (type === \"arrayBuffer\") {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nconst blobToDataUrl = (blob) => readBlob(blob, \"dataUrl\");\nconst blobToArrayBuffer = (blob) => readBlob(blob, \"arrayBuffer\");\nfunction createImage(url, ownerDocument) {\n const img = getDocument(ownerDocument).createElement(\"img\");\n img.decoding = \"sync\";\n img.loading = \"eager\";\n img.src = url;\n return img;\n}\nfunction loadMedia(media, options) {\n return new Promise((resolve) => {\n const { timeout, ownerDocument, onError: userOnError, onWarn } = options ?? {};\n const node = typeof media === \"string\" ? createImage(media, getDocument(ownerDocument)) : media;\n let timer = null;\n let removeEventListeners = null;\n function onResolve() {\n resolve(node);\n timer && clearTimeout(timer);\n removeEventListeners?.();\n }\n if (timeout) {\n timer = setTimeout(onResolve, timeout);\n }\n if (isVideoElement(node)) {\n const currentSrc = node.currentSrc || node.src;\n if (!currentSrc) {\n if (node.poster) {\n return loadMedia(node.poster, options).then(resolve);\n }\n return onResolve();\n }\n if (node.readyState >= 2) {\n return onResolve();\n }\n const onLoadeddata = onResolve;\n const onError = (error) => {\n onWarn?.(\n \"Failed video load\",\n currentSrc,\n error\n );\n userOnError?.(error);\n onResolve();\n };\n removeEventListeners = () => {\n node.removeEventListener(\"loadeddata\", onLoadeddata);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"loadeddata\", onLoadeddata, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n } else {\n const currentSrc = isSVGImageElementNode(node) ? node.href.baseVal : node.currentSrc || node.src;\n if (!currentSrc) {\n return onResolve();\n }\n const onLoad = async () => {\n if (isImageElement(node) && \"decode\" in node) {\n try {\n await node.decode();\n } catch (error) {\n onWarn?.(\n \"Failed to decode image, trying to render anyway\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n }\n }\n onResolve();\n };\n const onError = (error) => {\n onWarn?.(\n \"Failed image load\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n onResolve();\n };\n if (isImageElement(node) && node.complete) {\n return onLoad();\n }\n removeEventListeners = () => {\n node.removeEventListener(\"load\", onLoad);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"load\", onLoad, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n }\n });\n}\nasync function waitUntilLoad(node, options) {\n if (isHTMLElementNode(node)) {\n if (isImageElement(node) || isVideoElement(node)) {\n await loadMedia(node, options);\n } else {\n await Promise.all(\n [\"img\", \"video\"].flatMap((selectors) => {\n return Array.from(node.querySelectorAll(selectors)).map((el) => loadMedia(el, options));\n })\n );\n }\n }\n}\nconst uuid = /* @__PURE__ */ function uuid2() {\n let counter = 0;\n const random = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n}();\nfunction splitFontFamily(fontFamily) {\n return fontFamily?.split(\",\").map((val) => val.trim().replace(/\"|'/g, \"\").toLowerCase()).filter(Boolean);\n}\n\nlet uid = 0;\nfunction createLogger(debug) {\n const prefix = `${PREFIX}[#${uid}]`;\n uid++;\n return {\n // eslint-disable-next-line no-console\n time: (label) => debug && console.time(`${prefix} ${label}`),\n // eslint-disable-next-line no-console\n timeEnd: (label) => debug && console.timeEnd(`${prefix} ${label}`),\n warn: (...args) => debug && consoleWarn(...args)\n };\n}\n\nfunction getDefaultRequestInit(bypassingCache) {\n return {\n cache: bypassingCache ? \"no-cache\" : \"force-cache\"\n };\n}\n\nasync function orCreateContext(node, options) {\n return isContext(node) ? node : createContext(node, { ...options, autoDestruct: true });\n}\nasync function createContext(node, options) {\n const { scale = 1, workerUrl, workerNumber = 1 } = options || {};\n const debug = Boolean(options?.debug);\n const features = options?.features ?? true;\n const ownerDocument = node.ownerDocument ?? (IN_BROWSER ? window.document : void 0);\n const ownerWindow = node.ownerDocument?.defaultView ?? (IN_BROWSER ? window : void 0);\n const requests = /* @__PURE__ */ new Map();\n const context = {\n // Options\n width: 0,\n height: 0,\n quality: 1,\n type: \"image/png\",\n scale,\n backgroundColor: null,\n style: null,\n filter: null,\n maximumCanvasSize: 0,\n timeout: 3e4,\n progress: null,\n debug,\n fetch: {\n requestInit: getDefaultRequestInit(options?.fetch?.bypassingCache),\n placeholderImage: \"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",\n bypassingCache: false,\n ...options?.fetch\n },\n fetchFn: null,\n font: {},\n drawImageInterval: 100,\n workerUrl: null,\n workerNumber,\n onCloneEachNode: null,\n onCloneNode: null,\n onEmbedNode: null,\n onCreateForeignObjectSvg: null,\n includeStyleProperties: null,\n autoDestruct: false,\n ...options,\n // InternalContext\n __CONTEXT__: true,\n log: createLogger(debug),\n node,\n ownerDocument,\n ownerWindow,\n dpi: scale === 1 ? null : 96 * scale,\n svgStyleElement: createStyleElement(ownerDocument),\n svgDefsElement: ownerDocument?.createElementNS(XMLNS, \"defs\"),\n svgStyles: /* @__PURE__ */ new Map(),\n defaultComputedStyles: /* @__PURE__ */ new Map(),\n workers: [\n ...Array.from({\n length: SUPPORT_WEB_WORKER && workerUrl && workerNumber ? workerNumber : 0\n })\n ].map(() => {\n try {\n const worker = new Worker(workerUrl);\n worker.onmessage = async (event) => {\n const { url, result } = event.data;\n if (result) {\n requests.get(url)?.resolve?.(result);\n } else {\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n }\n };\n worker.onmessageerror = (event) => {\n const { url } = event.data;\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n };\n return worker;\n } catch (error) {\n context.log.warn(\"Failed to new Worker\", error);\n return null;\n }\n }).filter(Boolean),\n fontFamilies: /* @__PURE__ */ new Map(),\n fontCssTexts: /* @__PURE__ */ new Map(),\n acceptOfImage: `${[\n supportWebp(ownerDocument) && \"image/webp\",\n \"image/svg+xml\",\n \"image/*\",\n \"*/*\"\n ].filter(Boolean).join(\",\")};q=0.8`,\n requests,\n drawImageCount: 0,\n tasks: [],\n features,\n isEnable: (key) => {\n if (key === \"restoreScrollPosition\") {\n return typeof features === \"boolean\" ? false : features[key] ?? false;\n }\n if (typeof features === \"boolean\") {\n return features;\n }\n return features[key] ?? true;\n },\n shadowRoots: []\n };\n context.log.time(\"wait until load\");\n await waitUntilLoad(node, { timeout: context.timeout, onWarn: context.log.warn });\n context.log.timeEnd(\"wait until load\");\n const { width, height } = resolveBoundingBox(node, context);\n context.width = width;\n context.height = height;\n return context;\n}\nfunction createStyleElement(ownerDocument) {\n if (!ownerDocument)\n return void 0;\n const style = ownerDocument.createElement(\"style\");\n const cssText = style.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);\n style.appendChild(cssText);\n return style;\n}\nfunction resolveBoundingBox(node, context) {\n let { width, height } = context;\n if (isElementNode(node) && (!width || !height)) {\n const box = node.getBoundingClientRect();\n width = width || box.width || Number(node.getAttribute(\"width\")) || 0;\n height = height || box.height || Number(node.getAttribute(\"height\")) || 0;\n }\n return { width, height };\n}\n\nasync function imageToCanvas(image, context) {\n const {\n log,\n timeout,\n drawImageCount,\n drawImageInterval\n } = context;\n log.time(\"image to canvas\");\n const loaded = await loadMedia(image, { timeout, onWarn: context.log.warn });\n const { canvas, context2d } = createCanvas(image.ownerDocument, context);\n const drawImage = () => {\n try {\n context2d?.drawImage(loaded, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to drawImage\", error);\n }\n };\n drawImage();\n if (context.isEnable(\"fixSvgXmlDecode\")) {\n for (let i = 0; i < drawImageCount; i++) {\n await new Promise((resolve) => {\n setTimeout(() => {\n context2d?.clearRect(0, 0, canvas.width, canvas.height);\n drawImage();\n resolve();\n }, i + drawImageInterval);\n });\n }\n }\n context.drawImageCount = 0;\n log.timeEnd(\"image to canvas\");\n return canvas;\n}\nfunction createCanvas(ownerDocument, context) {\n const { width, height, scale, backgroundColor, maximumCanvasSize: max } = context;\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = Math.floor(width * scale);\n canvas.height = Math.floor(height * scale);\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n if (max) {\n if (canvas.width > max || canvas.height > max) {\n if (canvas.width > max && canvas.height > max) {\n if (canvas.width > canvas.height) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n } else if (canvas.width > max) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n }\n }\n const context2d = canvas.getContext(\"2d\");\n if (context2d && backgroundColor) {\n context2d.fillStyle = backgroundColor;\n context2d.fillRect(0, 0, canvas.width, canvas.height);\n }\n return { canvas, context2d };\n}\n\nfunction cloneCanvas(canvas, context) {\n if (canvas.ownerDocument) {\n try {\n const dataURL = canvas.toDataURL();\n if (dataURL !== \"data:,\") {\n return createImage(dataURL, canvas.ownerDocument);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n }\n const cloned = canvas.cloneNode(false);\n const ctx = canvas.getContext(\"2d\");\n const clonedCtx = cloned.getContext(\"2d\");\n try {\n if (ctx && clonedCtx) {\n clonedCtx.putImageData(\n ctx.getImageData(0, 0, canvas.width, canvas.height),\n 0,\n 0\n );\n }\n return cloned;\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n return cloned;\n}\n\nfunction cloneIframe(iframe, context) {\n try {\n if (iframe?.contentDocument?.documentElement) {\n return cloneNode(iframe.contentDocument.documentElement, context);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone iframe\", error);\n }\n return iframe.cloneNode(false);\n}\n\nfunction cloneImage(image) {\n const cloned = image.cloneNode(false);\n if (image.currentSrc && image.currentSrc !== image.src) {\n cloned.src = image.currentSrc;\n cloned.srcset = \"\";\n }\n if (cloned.loading === \"lazy\") {\n cloned.loading = \"eager\";\n }\n return cloned;\n}\n\nasync function cloneVideo(video, context) {\n if (video.ownerDocument && !video.currentSrc && video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n const cloned = video.cloneNode(false);\n cloned.crossOrigin = \"anonymous\";\n if (video.currentSrc && video.currentSrc !== video.src) {\n cloned.src = video.currentSrc;\n }\n const ownerDocument = cloned.ownerDocument;\n if (ownerDocument) {\n let canPlay = true;\n await loadMedia(cloned, { onError: () => canPlay = false, onWarn: context.log.warn });\n if (!canPlay) {\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n cloned.currentTime = video.currentTime;\n await new Promise((resolve) => {\n cloned.addEventListener(\"seeked\", resolve, { once: true });\n });\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n try {\n const ctx = canvas.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(cloned, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to clone video\", error);\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n return cloneCanvas(canvas, context);\n }\n return cloned;\n}\n\nfunction cloneElement(node, context) {\n if (isCanvasElement(node)) {\n return cloneCanvas(node, context);\n }\n if (isIFrameElement(node)) {\n return cloneIframe(node, context);\n }\n if (isImageElement(node)) {\n return cloneImage(node);\n }\n if (isVideoElement(node)) {\n return cloneVideo(node, context);\n }\n return node.cloneNode(false);\n}\n\nfunction getSandBox(context) {\n let sandbox = context.sandbox;\n if (!sandbox) {\n const { ownerDocument } = context;\n try {\n if (ownerDocument) {\n sandbox = ownerDocument.createElement(\"iframe\");\n sandbox.id = `__SANDBOX__${uuid()}`;\n sandbox.width = \"0\";\n sandbox.height = \"0\";\n sandbox.style.visibility = \"hidden\";\n sandbox.style.position = \"fixed\";\n ownerDocument.body.appendChild(sandbox);\n sandbox.srcdoc = '<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>';\n context.sandbox = sandbox;\n }\n } catch (error) {\n context.log.warn(\"Failed to getSandBox\", error);\n }\n }\n return sandbox;\n}\n\nconst ignoredStyles = [\n \"width\",\n \"height\",\n \"-webkit-text-fill-color\"\n];\nconst includedAttributes = [\n \"stroke\",\n \"fill\"\n];\nfunction getDefaultStyle(node, pseudoElement, context) {\n const { defaultComputedStyles } = context;\n const nodeName = node.nodeName.toLowerCase();\n const isSvgNode = isSVGElementNode(node) && nodeName !== \"svg\";\n const attributes = isSvgNode ? includedAttributes.map((name) => [name, node.getAttribute(name)]).filter(([, value]) => value !== null) : [];\n const key = [\n isSvgNode && \"svg\",\n nodeName,\n attributes.map((name, value) => `${name}=${value}`).join(\",\"),\n pseudoElement\n ].filter(Boolean).join(\":\");\n if (defaultComputedStyles.has(key))\n return defaultComputedStyles.get(key);\n const sandbox = getSandBox(context);\n const sandboxWindow = sandbox?.contentWindow;\n if (!sandboxWindow)\n return /* @__PURE__ */ new Map();\n const sandboxDocument = sandboxWindow?.document;\n let root;\n let el;\n if (isSvgNode) {\n root = sandboxDocument.createElementNS(XMLNS, \"svg\");\n el = root.ownerDocument.createElementNS(root.namespaceURI, nodeName);\n attributes.forEach(([name, value]) => {\n el.setAttributeNS(null, name, value);\n });\n root.appendChild(el);\n } else {\n root = el = sandboxDocument.createElement(nodeName);\n }\n el.textContent = \" \";\n sandboxDocument.body.appendChild(root);\n const computedStyle = sandboxWindow.getComputedStyle(el, pseudoElement);\n const styles = /* @__PURE__ */ new Map();\n for (let len = computedStyle.length, i = 0; i < len; i++) {\n const name = computedStyle.item(i);\n if (ignoredStyles.includes(name))\n continue;\n styles.set(name, computedStyle.getPropertyValue(name));\n }\n sandboxDocument.body.removeChild(root);\n defaultComputedStyles.set(key, styles);\n return styles;\n}\n\nfunction getDiffStyle(style, defaultStyle, includeStyleProperties) {\n const diffStyle = /* @__PURE__ */ new Map();\n const prefixs = [];\n const prefixTree = /* @__PURE__ */ new Map();\n if (includeStyleProperties) {\n for (const name of includeStyleProperties) {\n applyTo(name);\n }\n } else {\n for (let len = style.length, i = 0; i < len; i++) {\n const name = style.item(i);\n applyTo(name);\n }\n }\n for (let len = prefixs.length, i = 0; i < len; i++) {\n prefixTree.get(prefixs[i])?.forEach((value, name) => diffStyle.set(name, value));\n }\n function applyTo(name) {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n const subIndex = name.lastIndexOf(\"-\");\n const prefix = subIndex > -1 ? name.substring(0, subIndex) : void 0;\n if (prefix) {\n let map = prefixTree.get(prefix);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n prefixTree.set(prefix, map);\n }\n map.set(name, [value, priority]);\n }\n if (defaultStyle.get(name) === value && !priority)\n return;\n if (prefix) {\n prefixs.push(prefix);\n } else {\n diffStyle.set(name, [value, priority]);\n }\n }\n return diffStyle;\n}\n\nfunction copyCssStyles(node, cloned, isRoot, context) {\n const { ownerWindow, includeStyleProperties, currentParentNodeStyle } = context;\n const clonedStyle = cloned.style;\n const computedStyle = ownerWindow.getComputedStyle(node);\n const defaultStyle = getDefaultStyle(node, null, context);\n currentParentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, includeStyleProperties);\n style.delete(\"transition-property\");\n style.delete(\"all\");\n style.delete(\"d\");\n style.delete(\"content\");\n if (isRoot) {\n style.delete(\"position\");\n style.delete(\"margin-top\");\n style.delete(\"margin-right\");\n style.delete(\"margin-bottom\");\n style.delete(\"margin-left\");\n style.delete(\"margin-block-start\");\n style.delete(\"margin-block-end\");\n style.delete(\"margin-inline-start\");\n style.delete(\"margin-inline-end\");\n style.set(\"box-sizing\", [\"border-box\", \"\"]);\n }\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n if (IN_CHROME) {\n if (!style.has(\"font-kerning\"))\n style.set(\"font-kerning\", [\"normal\", \"\"]);\n if ((style.get(\"overflow-x\")?.[0] === \"hidden\" || style.get(\"overflow-y\")?.[0] === \"hidden\") && style.get(\"text-overflow\")?.[0] === \"ellipsis\" && node.scrollWidth === node.clientWidth) {\n style.set(\"text-overflow\", [\"clip\", \"\"]);\n }\n }\n for (let len = clonedStyle.length, i = 0; i < len; i++) {\n clonedStyle.removeProperty(clonedStyle.item(i));\n }\n style.forEach(([value, priority], name) => {\n clonedStyle.setProperty(name, value, priority);\n });\n return style;\n}\n\nfunction copyInputValue(node, cloned) {\n if (isTextareaElement(node) || isInputElement(node) || isSelectElement(node)) {\n cloned.setAttribute(\"value\", node.value);\n }\n}\n\nconst pseudoClasses = [\n \"::before\",\n \"::after\"\n // '::placeholder', TODO\n];\nconst scrollbarPseudoClasses = [\n \"::-webkit-scrollbar\",\n \"::-webkit-scrollbar-button\",\n // '::-webkit-scrollbar:horizontal', TODO\n \"::-webkit-scrollbar-thumb\",\n \"::-webkit-scrollbar-track\",\n \"::-webkit-scrollbar-track-piece\",\n // '::-webkit-scrollbar:vertical', TODO\n \"::-webkit-scrollbar-corner\",\n \"::-webkit-resizer\"\n];\nfunction copyPseudoClass(node, cloned, copyScrollbar, context, addWordToFontFamilies) {\n const { ownerWindow, svgStyleElement, svgStyles, currentNodeStyle } = context;\n if (!svgStyleElement || !ownerWindow)\n return;\n function copyBy(pseudoClass) {\n const computedStyle = ownerWindow.getComputedStyle(node, pseudoClass);\n let content = computedStyle.getPropertyValue(\"content\");\n if (!content || content === \"none\")\n return;\n addWordToFontFamilies?.(content);\n content = content.replace(/(')|(\")|(counter\\(.+\\))/g, \"\");\n const klasses = [uuid()];\n const defaultStyle = getDefaultStyle(node, pseudoClass, context);\n currentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, context.includeStyleProperties);\n style.delete(\"content\");\n style.delete(\"-webkit-locale\");\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n const cloneStyle = [\n `content: '${content}';`\n ];\n style.forEach(([value, priority], name) => {\n cloneStyle.push(`${name}: ${value}${priority ? \" !important\" : \"\"};`);\n });\n if (cloneStyle.length === 1)\n return;\n try {\n cloned.className = [cloned.className, ...klasses].join(\" \");\n } catch (err) {\n context.log.warn(\"Failed to copyPseudoClass\", err);\n return;\n }\n const cssText = cloneStyle.join(\"\\n \");\n let allClasses = svgStyles.get(cssText);\n if (!allClasses) {\n allClasses = [];\n svgStyles.set(cssText, allClasses);\n }\n allClasses.push(`.${klasses[0]}${pseudoClass}`);\n }\n pseudoClasses.forEach(copyBy);\n if (copyScrollbar)\n scrollbarPseudoClasses.forEach(copyBy);\n}\n\nconst excludeParentNodes = /* @__PURE__ */ new Set([\n \"symbol\"\n // test/fixtures/svg.symbol.html\n]);\nasync function appendChildNode(node, cloned, child, context, addWordToFontFamilies) {\n if (isElementNode(child) && (isStyleElement(child) || isScriptElement(child)))\n return;\n if (context.filter && !context.filter(child))\n return;\n if (excludeParentNodes.has(cloned.nodeName) || excludeParentNodes.has(child.nodeName)) {\n context.currentParentNodeStyle = void 0;\n } else {\n context.currentParentNodeStyle = context.currentNodeStyle;\n }\n const childCloned = await cloneNode(child, context, false, addWordToFontFamilies);\n if (context.isEnable(\"restoreScrollPosition\")) {\n restoreScrollPosition(node, childCloned);\n }\n cloned.appendChild(childCloned);\n}\nasync function cloneChildNodes(node, cloned, context, addWordToFontFamilies) {\n let firstChild = node.firstChild;\n if (isElementNode(node)) {\n if (node.shadowRoot) {\n firstChild = node.shadowRoot?.firstChild;\n context.shadowRoots.push(node.shadowRoot);\n }\n }\n for (let child = firstChild; child; child = child.nextSibling) {\n if (isCommentNode(child))\n continue;\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === \"function\") {\n const nodes = child.assignedNodes();\n for (let i = 0; i < nodes.length; i++) {\n await appendChildNode(node, cloned, nodes[i], context, addWordToFontFamilies);\n }\n } else {\n await appendChildNode(node, cloned, child, context, addWordToFontFamilies);\n }\n }\n}\nfunction restoreScrollPosition(node, chlidCloned) {\n if (!isHTMLElementNode(node) || !isHTMLElementNode(chlidCloned))\n return;\n const { scrollTop, scrollLeft } = node;\n if (!scrollTop && !scrollLeft) {\n return;\n }\n const { transform } = chlidCloned.style;\n const matrix = new DOMMatrix(transform);\n const { a, b, c, d } = matrix;\n matrix.a = 1;\n matrix.b = 0;\n matrix.c = 0;\n matrix.d = 1;\n matrix.translateSelf(-scrollLeft, -scrollTop);\n matrix.a = a;\n matrix.b = b;\n matrix.c = c;\n matrix.d = d;\n chlidCloned.style.transform = matrix.toString();\n}\nfunction applyCssStyleWithOptions(cloned, context) {\n const { backgroundColor, width, height, style: styles } = context;\n const clonedStyle = cloned.style;\n if (backgroundColor)\n clonedStyle.setProperty(\"background-color\", backgroundColor, \"important\");\n if (width)\n clonedStyle.setProperty(\"width\", `${width}px`, \"important\");\n if (height)\n clonedStyle.setProperty(\"height\", `${height}px`, \"important\");\n if (styles) {\n for (const name in styles) clonedStyle[name] = styles[name];\n }\n}\nconst NORMAL_ATTRIBUTE_RE = /^[\\w-:]+$/;\nasync function cloneNode(node, context, isRoot = false, addWordToFontFamilies) {\n const { ownerDocument, ownerWindow, fontFamilies, onCloneEachNode } = context;\n if (ownerDocument && isTextNode(node)) {\n if (addWordToFontFamilies && /\\S/.test(node.data)) {\n addWordToFontFamilies(node.data);\n }\n return ownerDocument.createTextNode(node.data);\n }\n if (ownerDocument && ownerWindow && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n const cloned2 = await cloneElement(node, context);\n if (context.isEnable(\"removeAbnormalAttributes\")) {\n const names = cloned2.getAttributeNames();\n for (let len = names.length, i = 0; i < len; i++) {\n const name = names[i];\n if (!NORMAL_ATTRIBUTE_RE.test(name)) {\n cloned2.removeAttribute(name);\n }\n }\n }\n const style = context.currentNodeStyle = copyCssStyles(node, cloned2, isRoot, context);\n if (isRoot)\n applyCssStyleWithOptions(cloned2, context);\n let copyScrollbar = false;\n if (context.isEnable(\"copyScrollbar\")) {\n const overflow = [\n style.get(\"overflow-x\")?.[0],\n style.get(\"overflow-y\")?.[0]\n ];\n copyScrollbar = overflow.includes(\"scroll\") || (overflow.includes(\"auto\") || overflow.includes(\"overlay\")) && (node.scrollHeight > node.clientHeight || node.scrollWidth > node.clientWidth);\n }\n const textTransform = style.get(\"text-transform\")?.[0];\n const families = splitFontFamily(style.get(\"font-family\")?.[0]);\n const addWordToFontFamilies2 = families ? (word) => {\n if (textTransform === \"uppercase\") {\n word = word.toUpperCase();\n } else if (textTransform === \"lowercase\") {\n word = word.toLowerCase();\n } else if (textTransform === \"capitalize\") {\n word = word[0].toUpperCase() + word.substring(1);\n }\n families.forEach((family) => {\n let fontFamily = fontFamilies.get(family);\n if (!fontFamily) {\n fontFamilies.set(family, fontFamily = /* @__PURE__ */ new Set());\n }\n word.split(\"\").forEach((text) => fontFamily.add(text));\n });\n } : void 0;\n copyPseudoClass(\n node,\n cloned2,\n copyScrollbar,\n context,\n addWordToFontFamilies2\n );\n copyInputValue(node, cloned2);\n if (!isVideoElement(node)) {\n await cloneChildNodes(\n node,\n cloned2,\n context,\n addWordToFontFamilies2\n );\n }\n await onCloneEachNode?.(cloned2);\n return cloned2;\n }\n const cloned = node.cloneNode(false);\n await cloneChildNodes(node, cloned, context);\n await onCloneEachNode?.(cloned);\n return cloned;\n}\n\nfunction destroyContext(context) {\n context.ownerDocument = void 0;\n context.ownerWindow = void 0;\n context.svgStyleElement = void 0;\n context.svgDefsElement = void 0;\n context.svgStyles.clear();\n context.defaultComputedStyles.clear();\n if (context.sandbox) {\n try {\n context.sandbox.remove();\n } catch (err) {\n context.log.warn(\"Failed to destroyContext\", err);\n }\n context.sandbox = void 0;\n }\n context.workers = [];\n context.fontFamilies.clear();\n context.fontCssTexts.clear();\n context.requests.clear();\n context.tasks = [];\n context.shadowRoots = [];\n}\n\nfunction baseFetch(options) {\n const { url, timeout, responseType, ...requestInit } = options;\n const controller = new AbortController();\n const timer = timeout ? setTimeout(() => controller.abort(), timeout) : void 0;\n return fetch(url, { signal: controller.signal, ...requestInit }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed fetch, not 2xx response\", { cause: response });\n }\n switch (responseType) {\n case \"arrayBuffer\":\n return response.arrayBuffer();\n case \"dataUrl\":\n return response.blob().then(blobToDataUrl);\n case \"text\":\n default:\n return response.text();\n }\n }).finally(() => clearTimeout(timer));\n}\nfunction contextFetch(context, options) {\n const { url: rawUrl, requestType = \"text\", responseType = \"text\", imageDom } = options;\n let url = rawUrl;\n const {\n timeout,\n acceptOfImage,\n requests,\n fetchFn,\n fetch: {\n requestInit,\n bypassingCache,\n placeholderImage\n },\n font,\n workers,\n fontFamilies\n } = context;\n if (requestType === \"image\" && (IN_SAFARI || IN_FIREFOX)) {\n context.drawImageCount++;\n }\n let request = requests.get(rawUrl);\n if (!request) {\n if (bypassingCache) {\n if (bypassingCache instanceof RegExp && bypassingCache.test(url)) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime();\n }\n }\n const canFontMinify = requestType.startsWith(\"font\") && font && font.minify;\n const fontTexts = /* @__PURE__ */ new Set();\n if (canFontMinify) {\n const families = requestType.split(\";\")[1].split(\",\");\n families.forEach((family) => {\n if (!fontFamilies.has(family))\n return;\n fontFamilies.get(family).forEach((text) => fontTexts.add(text));\n });\n }\n const needFontMinify = canFontMinify && fontTexts.size;\n const baseFetchOptions = {\n url,\n timeout,\n responseType: needFontMinify ? \"arrayBuffer\" : responseType,\n headers: requestType === \"image\" ? { accept: acceptOfImage } : void 0,\n ...requestInit\n };\n request = {\n type: requestType,\n resolve: void 0,\n reject: void 0,\n response: null\n };\n request.response = (async () => {\n if (fetchFn && requestType === \"image\") {\n const result = await fetchFn(rawUrl);\n if (result)\n return result;\n }\n if (!IN_SAFARI && rawUrl.startsWith(\"http\") && workers.length) {\n return new Promise((resolve, reject) => {\n const worker = workers[requests.size & workers.length - 1];\n worker.postMessage({ rawUrl, ...baseFetchOptions });\n request.resolve = resolve;\n request.reject = reject;\n });\n }\n return baseFetch(baseFetchOptions);\n })().catch((error) => {\n requests.delete(rawUrl);\n if (requestType === \"image\" && placeholderImage) {\n context.log.warn(\"Failed to fetch image base64, trying to use placeholder image\", url);\n return typeof placeholderImage === \"string\" ? placeholderImage : placeholderImage(imageDom);\n }\n throw error;\n });\n requests.set(rawUrl, request);\n }\n return request.response;\n}\n\nasync function replaceCssUrlToDataUrl(cssText, baseUrl, context, isImage) {\n if (!hasCssUrl(cssText))\n return cssText;\n for (const [rawUrl, url] of parseCssUrls(cssText, baseUrl)) {\n try {\n const dataUrl = await contextFetch(\n context,\n {\n url,\n requestType: isImage ? \"image\" : \"text\",\n responseType: \"dataUrl\"\n }\n );\n cssText = cssText.replace(toRE(rawUrl), `$1${dataUrl}$3`);\n } catch (error) {\n context.log.warn(\"Failed to fetch css data url\", rawUrl, error);\n }\n }\n return cssText;\n}\nfunction hasCssUrl(cssText) {\n return /url\\((['\"]?)([^'\"]+?)\\1\\)/.test(cssText);\n}\nconst URL_RE = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nfunction parseCssUrls(cssText, baseUrl) {\n const result = [];\n cssText.replace(URL_RE, (raw, quotation, url) => {\n result.push([url, resolveUrl(url, baseUrl)]);\n return raw;\n });\n return result.filter(([url]) => !isDataUrl(url));\n}\nfunction toRE(url) {\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, \"g\");\n}\n\nconst properties = [\n \"background-image\",\n \"border-image-source\",\n \"-webkit-border-image\",\n \"-webkit-mask-image\",\n \"list-style-image\"\n];\nfunction embedCssStyleImage(style, context) {\n return properties.map((property) => {\n const value = style.getPropertyValue(property);\n if (!value || value === \"none\") {\n return null;\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n return replaceCssUrlToDataUrl(value, null, context, true).then((newValue) => {\n if (!newValue || value === newValue)\n return;\n style.setProperty(\n property,\n newValue,\n style.getPropertyPriority(property)\n );\n });\n }).filter(Boolean);\n}\n\nfunction embedImageElement(cloned, context) {\n if (isImageElement(cloned)) {\n const originalSrc = cloned.currentSrc || cloned.src;\n if (!isDataUrl(originalSrc)) {\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.srcset = \"\";\n cloned.dataset.originalSrc = originalSrc;\n cloned.src = url || \"\";\n })\n ];\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n } else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) {\n const originalSrc = cloned.href.baseVal;\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.dataset.originalSrc = originalSrc;\n cloned.href.baseVal = url || \"\";\n })\n ];\n }\n return [];\n}\n\nfunction embedSvgUse(cloned, context) {\n const { ownerDocument, svgDefsElement } = context;\n const href = cloned.getAttribute(\"href\") ?? cloned.getAttribute(\"xlink:href\");\n if (!href)\n return [];\n const [svgUrl, id] = href.split(\"#\");\n if (id) {\n const query = `#${id}`;\n const definition = context.shadowRoots.reduce(\n (res, root) => {\n return res ?? root.querySelector(`svg ${query}`);\n },\n ownerDocument?.querySelector(`svg ${query}`)\n );\n if (svgUrl) {\n cloned.setAttribute(\"href\", query);\n }\n if (svgDefsElement?.querySelector(query))\n return [];\n if (definition) {\n svgDefsElement?.appendChild(definition.cloneNode(true));\n return [];\n } else if (svgUrl) {\n return [\n contextFetch(context, {\n url: svgUrl,\n responseType: \"text\"\n }).then((svgData) => {\n svgDefsElement?.insertAdjacentHTML(\"beforeend\", svgData);\n })\n ];\n }\n }\n return [];\n}\n\nfunction embedNode(cloned, context) {\n const { tasks } = context;\n if (isElementNode(cloned)) {\n if (isImageElement(cloned) || isSVGImageElementNode(cloned)) {\n tasks.push(...embedImageElement(cloned, context));\n }\n if (isSVGUseElementNode(cloned)) {\n tasks.push(...embedSvgUse(cloned, context));\n }\n }\n if (isHTMLElementNode(cloned)) {\n tasks.push(...embedCssStyleImage(cloned.style, context));\n }\n cloned.childNodes.forEach((child) => {\n embedNode(child, context);\n });\n}\n\nasync function embedWebFont(clone, context) {\n const {\n ownerDocument,\n svgStyleElement,\n fontFamilies,\n fontCssTexts,\n tasks,\n font\n } = context;\n if (!ownerDocument || !svgStyleElement || !fontFamilies.size) {\n return;\n }\n if (font && font.cssText) {\n const cssText = filterPreferredFormat(font.cssText, context);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n const styleSheets = Array.from(ownerDocument.styleSheets).filter((styleSheet) => {\n try {\n return \"cssRules\" in styleSheet && Boolean(styleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(`Error while reading CSS rules from ${styleSheet.href}`, error);\n return false;\n }\n });\n const tempDoc = ownerDocument.implementation.createHTMLDocument(\"\");\n const tempStyleEl = tempDoc.createElement(\"style\");\n tempDoc.head.appendChild(tempStyleEl);\n const tempStyleSheet = tempStyleEl.sheet;\n await Promise.all(\n styleSheets.flatMap((styleSheet) => {\n return Array.from(styleSheet.cssRules).map(async (cssRule) => {\n if (isCSSImportRule(cssRule)) {\n const baseUrl = cssRule.href;\n let cssText = \"\";\n try {\n cssText = await contextFetch(context, {\n url: baseUrl,\n requestType: \"text\",\n responseType: \"text\"\n });\n } catch (error) {\n context.log.warn(`Error fetch remote css import from ${baseUrl}`, error);\n }\n const replacedCssText = cssText.replace(\n URL_RE,\n (raw, quotation, url) => raw.replace(url, resolveUrl(url, baseUrl))\n );\n for (const rule of parseCss(replacedCssText)) {\n try {\n tempStyleSheet.insertRule(rule, tempStyleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(\"Error inserting rule from remote css import\", { rule, error });\n }\n }\n }\n });\n })\n );\n if (tempStyleSheet.cssRules.length)\n styleSheets.push(tempStyleSheet);\n const cssRules = [];\n styleSheets.forEach((sheet) => {\n unwrapCssLayers(sheet.cssRules, cssRules);\n });\n cssRules.filter((cssRule) => isCssFontFaceRule(cssRule) && hasCssUrl(cssRule.style.getPropertyValue(\"src\")) && splitFontFamily(cssRule.style.getPropertyValue(\"font-family\"))?.some((val) => fontFamilies.has(val))).forEach((value) => {\n const rule = value;\n const cssText = fontCssTexts.get(rule.cssText);\n if (cssText) {\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n tasks.push(\n replaceCssUrlToDataUrl(\n rule.cssText,\n rule.parentStyleSheet ? rule.parentStyleSheet.href : null,\n context\n ).then((cssText2) => {\n cssText2 = filterPreferredFormat(cssText2, context);\n fontCssTexts.set(rule.cssText, cssText2);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText2}\n`));\n })\n );\n }\n });\n }\n}\nconst COMMENTS_RE = /(\\/\\*[\\s\\S]*?\\*\\/)/g;\nconst KEYFRAMES_RE = /((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;\nfunction parseCss(source) {\n if (source == null)\n return [];\n const result = [];\n let cssText = source.replace(COMMENTS_RE, \"\");\n while (true) {\n const matches = KEYFRAMES_RE.exec(cssText);\n if (!matches)\n break;\n result.push(matches[0]);\n }\n cssText = cssText.replace(KEYFRAMES_RE, \"\");\n const IMPORT_RE = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n const UNIFIED_RE = new RegExp(\n // eslint-disable-next-line\n \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\n \"gi\"\n );\n while (true) {\n let matches = IMPORT_RE.exec(cssText);\n if (!matches) {\n matches = UNIFIED_RE.exec(cssText);\n if (!matches) {\n break;\n } else {\n IMPORT_RE.lastIndex = UNIFIED_RE.lastIndex;\n }\n } else {\n UNIFIED_RE.lastIndex = IMPORT_RE.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nconst URL_WITH_FORMAT_RE = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_RE = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction filterPreferredFormat(str, context) {\n const { font } = context;\n const preferredFormat = font ? font?.preferredFormat : void 0;\n return preferredFormat ? str.replace(FONT_SRC_RE, (match) => {\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_RE.exec(match) || [];\n if (!format)\n return \"\";\n if (format === preferredFormat)\n return `src: ${src};`;\n }\n }) : str;\n}\nfunction unwrapCssLayers(rules, out = []) {\n for (const rule of Array.from(rules)) {\n if (isLayerBlockRule(rule)) {\n out.push(...unwrapCssLayers(rule.cssRules));\n } else if (\"cssRules\" in rule) {\n unwrapCssLayers(rule.cssRules, out);\n } else {\n out.push(rule);\n }\n }\n return out;\n}\n\nconst SVG_EXTERNAL_RESOURCE_REGEX = /\\bx?link:?href\\s*=\\s*[\"'](?!data:)[^\"']+[\"']/i;\nfunction svgHasExternalResources(svg) {\n return SVG_EXTERNAL_RESOURCE_REGEX.test(svg.innerHTML);\n}\nasync function domToForeignObjectSvg(node, options) {\n const context = await orCreateContext(node, options);\n if (isElementNode(context.node) && isSVGElementNode(context.node) && !svgHasExternalResources(context.node))\n return context.node;\n const {\n ownerDocument,\n log,\n tasks,\n svgStyleElement,\n svgDefsElement,\n svgStyles,\n font,\n progress,\n autoDestruct,\n onCloneNode,\n onEmbedNode,\n onCreateForeignObjectSvg\n } = context;\n log.time(\"clone node\");\n const clone = await cloneNode(context.node, context, true);\n if (svgStyleElement && ownerDocument) {\n let allCssText = \"\";\n svgStyles.forEach((klasses, cssText) => {\n allCssText += `${klasses.join(\",\\n\")} {\n ${cssText}\n}\n`;\n });\n svgStyleElement.appendChild(ownerDocument.createTextNode(allCssText));\n }\n log.timeEnd(\"clone node\");\n await onCloneNode?.(clone);\n if (font !== false && isElementNode(clone)) {\n log.time(\"embed web font\");\n await embedWebFont(clone, context);\n log.timeEnd(\"embed web font\");\n }\n log.time(\"embed node\");\n embedNode(clone, context);\n const count = tasks.length;\n let current = 0;\n const runTask = async () => {\n while (true) {\n const task = tasks.pop();\n if (!task)\n break;\n try {\n await task;\n } catch (error) {\n context.log.warn(\"Failed to run task\", error);\n }\n progress?.(++current, count);\n }\n };\n progress?.(current, count);\n await Promise.all([...Array.from({ length: 4 })].map(runTask));\n log.timeEnd(\"embed node\");\n await onEmbedNode?.(clone);\n const svg = createForeignObjectSvg(clone, context);\n svgDefsElement && svg.insertBefore(svgDefsElement, svg.children[0]);\n svgStyleElement && svg.insertBefore(svgStyleElement, svg.children[0]);\n autoDestruct && destroyContext(context);\n await onCreateForeignObjectSvg?.(svg);\n return svg;\n}\nfunction createForeignObjectSvg(clone, context) {\n const { width, height } = context;\n const svg = createSvg(width, height, clone.ownerDocument);\n const foreignObject = svg.ownerDocument.createElementNS(svg.namespaceURI, \"foreignObject\");\n foreignObject.setAttributeNS(null, \"x\", \"0%\");\n foreignObject.setAttributeNS(null, \"y\", \"0%\");\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\n foreignObject.append(clone);\n svg.appendChild(foreignObject);\n return svg;\n}\n\nasync function domToCanvas(node, options) {\n const context = await orCreateContext(node, options);\n const svg = await domToForeignObjectSvg(context);\n const dataUrl = svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n if (!context.autoDestruct) {\n context.svgStyleElement = createStyleElement(context.ownerDocument);\n context.svgDefsElement = context.ownerDocument?.createElementNS(XMLNS, \"defs\");\n context.svgStyles.clear();\n }\n const image = createImage(dataUrl, svg.ownerDocument);\n return await imageToCanvas(image, context);\n}\n\nasync function domToBlob(node, options) {\n const context = await orCreateContext(node, options);\n const { log, type, quality, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to blob\");\n const blob = await canvasToBlob(canvas, type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi) {\n const arrayBuffer = await blobToArrayBuffer(blob.slice(0, 33));\n let uint8Array = new Uint8Array(arrayBuffer);\n if (type === \"image/png\") {\n uint8Array = changePngDpi(uint8Array, dpi);\n } else if (type === \"image/jpeg\") {\n uint8Array = changeJpegDpi(uint8Array, dpi);\n }\n log.timeEnd(\"canvas to blob\");\n return new Blob([uint8Array, blob.slice(33)], { type });\n }\n log.timeEnd(\"canvas to blob\");\n return blob;\n}\n\nasync function domToDataUrl(node, options) {\n const context = await orCreateContext(node, options);\n const { log, quality, type, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to data url\");\n let dataUrl = canvas.toDataURL(type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi && SUPPORT_ATOB && SUPPORT_BTOA) {\n const [format, body] = dataUrl.split(\",\");\n let headerLength = 0;\n let overwritepHYs = false;\n if (type === \"image/png\") {\n const b64Index = detectPhysChunkFromDataUrl(body);\n if (b64Index >= 0) {\n headerLength = Math.ceil((b64Index + 28) / 3) * 4;\n overwritepHYs = true;\n } else {\n headerLength = 33 / 3 * 4;\n }\n } else if (type === \"image/jpeg\") {\n headerLength = 18 / 3 * 4;\n }\n const stringHeader = body.substring(0, headerLength);\n const restOfData = body.substring(headerLength);\n const headerBytes = window.atob(stringHeader);\n const uint8Array = new Uint8Array(headerBytes.length);\n for (let i = 0; i < uint8Array.length; i++) {\n uint8Array[i] = headerBytes.charCodeAt(i);\n }\n const finalArray = type === \"image/png\" ? changePngDpi(uint8Array, dpi, overwritepHYs) : changeJpegDpi(uint8Array, dpi);\n const base64Header = window.btoa(String.fromCharCode(...finalArray));\n dataUrl = [format, \",\", base64Header, restOfData].join(\"\");\n }\n log.timeEnd(\"canvas to data url\");\n return dataUrl;\n}\n\nasync function domToSvg(node, options) {\n const context = await orCreateContext(node, options);\n const { width, height, ownerDocument } = context;\n const dataUrl = await domToDataUrl(context);\n const svg = createSvg(width, height, ownerDocument);\n const svgImage = svg.ownerDocument.createElementNS(svg.namespaceURI, \"image\");\n svgImage.setAttributeNS(null, \"href\", dataUrl);\n svgImage.setAttributeNS(null, \"height\", \"100%\");\n svgImage.setAttributeNS(null, \"width\", \"100%\");\n svg.appendChild(svgImage);\n return svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n}\n\nasync function domToImage(node, options) {\n const context = await orCreateContext(node, options);\n const { ownerDocument, width, height, scale, type } = context;\n const url = type === \"image/svg+xml\" ? await domToSvg(context) : await domToDataUrl(context);\n const image = createImage(url, ownerDocument);\n image.width = Math.floor(width * scale);\n image.height = Math.floor(height * scale);\n image.style.width = `${width}px`;\n image.style.height = `${height}px`;\n return image;\n}\n\nasync function domToJpeg(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/jpeg\" })\n );\n}\n\nasync function domToPixel(node, options) {\n const context = await orCreateContext(node, options);\n const canvas = await domToCanvas(context);\n return canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height).data;\n}\n\nasync function domToPng(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/png\" })\n );\n}\n\nasync function domToWebp(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/webp\" })\n );\n}\n\nexport { createContext, destroyContext, domToBlob, domToCanvas, domToDataUrl, domToForeignObjectSvg, domToImage, domToJpeg, domToPixel, domToPng, domToSvg, domToWebp, loadMedia, waitUntilLoad };\n"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAS,EAAc,GAAY,GAAK;CAMtC,OALA,EAAW,MAAM,GACjB,EAAW,MAAM,KAAO,GACxB,EAAW,MAAM,IAAM,KACvB,EAAW,MAAM,KAAO,GACxB,EAAW,MAAM,IAAM,KAChB;AACT;AAEA,IAII;AACJ,SAAS,IAAqB;CAC5B,IAAM,oBAAW,IAAI,WAAW,GAAG;CACnC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;EAC5B,IAAI,IAAI;EACR,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KACrB,IAAI,IAAI,IAAI,aAAa,MAAM,IAAI,MAAM;EAE3C,EAAS,KAAK;CAChB;CACA,OAAO;AACT;AACA,SAAS,EAAQ,GAAY;CAC3B,IAAI,IAAI;CACR,AACE,MAAe,EAAmB;CACpC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAW,QAAQ,KACrC,IAAI,GAAc,IAAI,EAAW,MAAM,OAAO,MAAM;CAEtD,OAAO,IAAI;AACb;AACA,SAAS,EAAkB,GAAY;CACrC,IAAM,IAAS,EAAW,SAAS;CACnC,KAAK,IAAI,IAAI,GAAQ,KAAK,GAAG,KAC3B,IAAI,EAAW,IAAI,OAAO,KAAK,EAAW,IAAI,OAAO,OAAM,EAAW,IAAI,OAAO,MAAM,EAAW,IAAI,OAAO,MAAM,EAAW,OAAO,KACnI,OAAO,IAAI;CAGf,OAAO;AACT;AACA,SAAS,EAAa,GAAY,GAAK,IAAgB,IAAO;CAC5D,IAAM,oBAAY,IAAI,WAAW,EAAE;CAcnC,AAbA,KAAO,SACP,EAAU,KAAK,KACf,EAAU,KAAK,IACf,EAAU,KAAK,IACf,EAAU,KAAK,KACf,EAAU,KAAK,MAAQ,IACvB,EAAU,KAAK,MAAQ,IACvB,EAAU,KAAK,MAAQ,GACvB,EAAU,KAAK,IAAM,KACrB,EAAU,KAAK,EAAU,IACzB,EAAU,KAAK,EAAU,IACzB,EAAU,MAAM,EAAU,IAC1B,EAAU,MAAM,EAAU,IAC1B,EAAU,MAAM;CAChB,IAAM,IAAM,EAAQ,CAAS,GACvB,oBAAW,IAAI,WAAW,CAAC;CAKjC,IAJA,EAAS,KAAK,MAAQ,IACtB,EAAS,KAAK,MAAQ,IACtB,EAAS,KAAK,MAAQ,GACtB,EAAS,KAAK,IAAM,KAChB,GAAe;EACjB,IAAM,IAAgB,EAAkB,CAAU;EAGlD,OAFA,EAAW,IAAI,GAAW,CAAa,GACvC,EAAW,IAAI,GAAU,IAAgB,EAAE,GACpC;CACT;CAAO;EACL,IAAM,oBAAc,IAAI,WAAW,CAAC;EAIpC,AAHA,EAAY,KAAK,GACjB,EAAY,KAAK,GACjB,EAAY,KAAK,GACjB,EAAY,KAAK;EACjB,IAAM,oBAAc,IAAI,WAAW,EAAE;EAKrC,OAJA,EAAY,IAAI,GAAY,CAAC,GAC7B,EAAY,IAAI,GAAa,EAAE,GAC/B,EAAY,IAAI,GAAW,EAAE,GAC7B,EAAY,IAAI,GAAU,EAAE,GACrB;CACT;AACF;AAIA,SAAS,EAA2B,GAAS;CAC3C,IAAI,IAAW,EAAQ,QAAQ,UAAiB;CAOhD,OANI,MAAa,OACf,IAAW,EAAQ,QAAQ,UAAiB,IAE1C,MAAa,OACf,IAAW,EAAQ,QAAQ,UAAiB,IAEvC;AACT;AAEA,IAAM,IAAS,uBACT,IAAa,OAAO,SAAW,KAC/B,IAAqB,KAAc,YAAY,QAC/C,IAAe,KAAc,UAAU,QACvC,IAAe,KAAc,UAAU,QACvC,IAAa,IAAa,OAAO,WAAW,YAAY,IACxD,IAAY,EAAW,SAAS,QAAQ,GACxC,IAAY,EAAW,SAAS,aAAa,KAAK,CAAC,GACnD,IAAa,EAAW,SAAS,SAAS,GAC1C,KAAa,MAAU,KAAS,iBAAiB,GACjD,KAAqB,MAAS,EAAK,YAAY,SAAS,mBACxD,KAAmB,MAAS,EAAK,YAAY,SAAS,iBACtD,KAAoB,MAAS,EAAK,YAAY,SAAS,qBACvD,KAAiB,MAAS,EAAK,aAAa,GAC5C,KAAoB,MAAS,OAAO,EAAK,aAAc,UACvD,KAAyB,MAAS,EAAK,YAAY,SACnD,MAAuB,MAAS,EAAK,YAAY,OACjD,KAAqB,MAAS,EAAc,CAAI,KAAY,EAAK,UAAU,UAAe,CAAC,EAAiB,CAAI,GAChH,MAAiB,MAAS,EAAK,aAAa,GAC5C,MAAc,MAAS,EAAK,aAAa,GACzC,KAAkB,MAAS,EAAK,YAAY,OAC5C,KAAkB,MAAS,EAAK,YAAY,SAC5C,MAAmB,MAAS,EAAK,YAAY,UAC7C,MAAqB,MAAS,EAAK,YAAY,YAC/C,MAAkB,MAAS,EAAK,YAAY,SAC5C,MAAkB,MAAS,EAAK,YAAY,SAC5C,MAAmB,MAAS,EAAK,YAAY,UAC7C,MAAmB,MAAS,EAAK,YAAY,UAC7C,MAAiB,MAAS,EAAK,YAAY,QAC3C,MAAmB,MAAS,EAAK,YAAY,UAC7C,MAAe,GAAG,MAAS,QAAQ,KAAK,GAAQ,GAAG,CAAI;AAC7D,SAAS,GAAY,GAAe;CAClC,IAAM,IAAS,GAAe,gBAAgB,QAAQ;CAItD,OAHI,MACF,EAAO,SAAS,EAAO,QAAQ,IAE1B,EAAQ,KAAW,eAAe,KAAU,EAAQ,EAAO,UAAU,YAAY,CAAC,CAAC,SAAS,YAAY;AACjH;AACA,IAAM,KAAa,MAAQ,EAAI,WAAW,OAAO;AACjD,SAAS,EAAW,GAAK,GAAS;CAChC,IAAI,EAAI,MAAM,eAAe,GAC3B,OAAO;CACT,IAAI,KAAc,EAAI,MAAM,OAAO,GACjC,OAAO,OAAO,SAAS,WAAW;CAGpC,IAFI,EAAI,MAAM,WAAW,KAErB,CAAC,GACH,OAAO;CACT,IAAM,IAAM,EAAY,CAAC,CAAC,eAAe,mBAAmB,GACtD,IAAO,EAAI,cAAc,MAAM,GAC/B,IAAI,EAAI,cAAc,GAAG;CAM/B,OALA,EAAI,KAAK,YAAY,CAAI,GACzB,EAAI,KAAK,YAAY,CAAC,GAClB,MACF,EAAK,OAAO,IACd,EAAE,OAAO,GACF,EAAE;AACX;AACA,SAAS,EAAY,GAAQ;CAC3B,QAAQ,KAAU,EAAc,CAAM,IAAI,GAAQ,gBAAgB,MAAW,OAAO;AACtF;AACA,IAAM,IAAQ;AACd,SAAS,EAAU,GAAO,GAAQ,GAAe;CAC/C,IAAM,IAAM,EAAY,CAAa,CAAC,CAAC,gBAAgB,GAAO,KAAK;CAInE,OAHA,EAAI,eAAe,MAAM,SAAS,EAAM,SAAS,CAAC,GAClD,EAAI,eAAe,MAAM,UAAU,EAAO,SAAS,CAAC,GACpD,EAAI,eAAe,MAAM,WAAW,OAAO,EAAM,GAAG,GAAQ,GACrD;AACT;AACA,SAAS,EAAa,GAAK,GAAwB;CACjD,IAAI,IAAQ,IAAI,cAAc,CAAC,CAAC,kBAAkB,CAAG;CAIrD,OAHI,MACF,IAAQ,EAAM,QAAQ,+DAA+D,EAAE,IAElF,oCAAoC,mBAAmB,CAAK;AACrE;AACA,eAAe,GAAa,GAAQ,IAAO,aAAa,IAAU,GAAG;CACnE,IAAI;EACF,OAAO,MAAM,IAAI,SAAS,GAAS,MAAW;GAC5C,EAAO,QAAQ,MAAS;IACtB,AAAI,IACF,EAAQ,CAAI,IAEZ,EAAO,gBAAI,MAAM,cAAc,CAAC;GAEpC,GAAG,GAAM,CAAO;EAClB,CAAC;CACH,SAAS,GAAO;EACd,IAAI,GACF,OAAO,GAAc,EAAO,UAAU,GAAM,CAAO,CAAC;EAEtD,MAAM;CACR;AACF;AACA,SAAS,GAAc,GAAS;CAC9B,IAAM,CAAC,GAAQ,KAAU,EAAQ,MAAM,GAAG,GACpC,IAAO,EAAO,MAAM,YAAY,CAAC,GAAG,MAAM,KAAK,GAC/C,IAAU,OAAO,KAAK,CAAM,GAC5B,IAAS,EAAQ,QACjB,IAAS,IAAI,WAAW,CAAM;CACpC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAQ,KAAK,GAC/B,EAAO,KAAK,EAAQ,WAAW,CAAC;CAElC,OAAO,IAAI,KAAK,CAAC,CAAM,GAAG,EAAE,QAAK,CAAC;AACpC;AACA,SAAS,EAAS,GAAM,GAAM;CAC5B,OAAO,IAAI,SAAS,GAAS,MAAW;EACtC,IAAM,IAAS,IAAI,WAAW;EAI9B,AAHA,EAAO,eAAe,EAAQ,EAAO,MAAM,GAC3C,EAAO,gBAAgB,EAAO,EAAO,KAAK,GAC1C,EAAO,gBAAgB,EAAO,gBAAI,MAAM,uBAAuB,GAAM,CAAC,GAClE,MAAS,YACX,EAAO,cAAc,CAAI,IAChB,MAAS,iBAClB,EAAO,kBAAkB,CAAI;CAEjC,CAAC;AACH;AACA,IAAM,MAAiB,MAAS,EAAS,GAAM,SAAS,GAClD,MAAqB,MAAS,EAAS,GAAM,aAAa;AAChE,SAAS,EAAY,GAAK,GAAe;CACvC,IAAM,IAAM,EAAY,CAAa,CAAC,CAAC,cAAc,KAAK;CAI1D,OAHA,EAAI,WAAW,QACf,EAAI,UAAU,SACd,EAAI,MAAM,GACH;AACT;AACA,SAAS,EAAU,GAAO,GAAS;CACjC,OAAO,IAAI,SAAS,MAAY;EAC9B,IAAM,EAAE,YAAS,kBAAe,SAAS,GAAa,cAAW,KAAW,CAAC,GACvE,IAAO,OAAO,KAAU,WAAW,EAAY,GAAO,EAAY,CAAa,CAAC,IAAI,GACtF,IAAQ,MACR,IAAuB;EAC3B,SAAS,IAAY;GAGnB,AAFA,EAAQ,CAAI,GACZ,KAAS,aAAa,CAAK,GAC3B,IAAuB;EACzB;EAIA,IAHI,MACF,IAAQ,WAAW,GAAW,CAAO,IAEnC,EAAe,CAAI,GAAG;GACxB,IAAM,IAAa,EAAK,cAAc,EAAK;GAC3C,IAAI,CAAC,GAIH,OAHI,EAAK,SACA,EAAU,EAAK,QAAQ,CAAO,CAAC,CAAC,KAAK,CAAO,IAE9C,EAAU;GAEnB,IAAI,EAAK,cAAc,GACrB,OAAO,EAAU;GAEnB,IAAM,IAAe,GACf,KAAW,MAAU;IAOzB,AANA,IACE,qBACA,GACA,CACF,GACA,IAAc,CAAK,GACnB,EAAU;GACZ;GAMA,AALA,UAA6B;IAE3B,AADA,EAAK,oBAAoB,cAAc,CAAY,GACnD,EAAK,oBAAoB,SAAS,CAAO;GAC3C,GACA,EAAK,iBAAiB,cAAc,GAAc,EAAE,MAAM,GAAK,CAAC,GAChE,EAAK,iBAAiB,SAAS,GAAS,EAAE,MAAM,GAAK,CAAC;EACxD,OAAO;GACL,IAAM,IAAa,EAAsB,CAAI,IAAI,EAAK,KAAK,UAAU,EAAK,cAAc,EAAK;GAC7F,IAAI,CAAC,GACH,OAAO,EAAU;GAEnB,IAAM,IAAS,YAAY;IACzB,IAAI,EAAe,CAAI,KAAK,YAAY,GACtC,IAAI;KACF,MAAM,EAAK,OAAO;IACpB,SAAS,GAAO;KACd,IACE,mDACA,EAAK,QAAQ,eAAe,GAC5B,CACF;IACF;IAEF,EAAU;GACZ,GACM,KAAW,MAAU;IAMzB,AALA,IACE,qBACA,EAAK,QAAQ,eAAe,GAC5B,CACF,GACA,EAAU;GACZ;GACA,IAAI,EAAe,CAAI,KAAK,EAAK,UAC/B,OAAO,EAAO;GAOhB,AALA,UAA6B;IAE3B,AADA,EAAK,oBAAoB,QAAQ,CAAM,GACvC,EAAK,oBAAoB,SAAS,CAAO;GAC3C,GACA,EAAK,iBAAiB,QAAQ,GAAQ,EAAE,MAAM,GAAK,CAAC,GACpD,EAAK,iBAAiB,SAAS,GAAS,EAAE,MAAM,GAAK,CAAC;EACxD;CACF,CAAC;AACH;AACA,eAAe,EAAc,GAAM,GAAS;CAC1C,AAAI,EAAkB,CAAI,MACpB,EAAe,CAAI,KAAK,EAAe,CAAI,IAC7C,MAAM,EAAU,GAAM,CAAO,IAE7B,MAAM,QAAQ,IACZ,CAAC,OAAO,OAAO,CAAC,CAAC,SAAS,MACjB,MAAM,KAAK,EAAK,iBAAiB,CAAS,CAAC,CAAC,CAAC,KAAK,MAAO,EAAU,GAAI,CAAO,CAAC,CACvF,CACH;AAGN;AACA,IAAM,IAAuB,2BAAiB;CAC5C,IAAI,IAAU,GACR,UAAe,QAAQ,KAAK,OAAO,IAAI,MAAM,KAAK,EAAA,CAAG,SAAS,EAAE,IAAI,MAAM,EAAE;CAClF,cACE,KAAW,GACJ,IAAI,EAAO,IAAI;AAE1B,EAAE;AACF,SAAS,EAAgB,GAAY;CACnC,OAAO,GAAY,MAAM,GAAG,CAAC,CAAC,KAAK,MAAQ,EAAI,KAAK,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,OAAO;AACzG;AAEA,IAAI,IAAM;AACV,SAAS,GAAa,GAAO;CAC3B,IAAM,IAAS,GAAG,EAAO,IAAI,EAAI;CAEjC,OADA,KACO;EAEL,OAAO,MAAU,KAAS,QAAQ,KAAK,GAAG,EAAO,GAAG,GAAO;EAE3D,UAAU,MAAU,KAAS,QAAQ,QAAQ,GAAG,EAAO,GAAG,GAAO;EACjE,OAAO,GAAG,MAAS,KAAS,GAAY,GAAG,CAAI;CACjD;AACF;AAEA,SAAS,GAAsB,GAAgB;CAC7C,OAAO,EACL,OAAO,IAAiB,aAAa,cACvC;AACF;AAEA,eAAe,EAAgB,GAAM,GAAS;CAC5C,OAAO,EAAU,CAAI,IAAI,IAAO,EAAc,GAAM;EAAE,GAAG;EAAS,cAAc;CAAK,CAAC;AACxF;AACA,eAAe,EAAc,GAAM,GAAS;CAC1C,IAAM,EAAE,WAAQ,GAAG,cAAW,kBAAe,MAAM,KAAW,CAAC,GACzD,IAAQ,EAAQ,GAAS,OACzB,IAAW,GAAS,YAAY,IAChC,IAAgB,EAAK,kBAAkB,IAAa,OAAO,WAAW,KAAK,IAC3E,IAAc,EAAK,eAAe,gBAAgB,IAAa,SAAS,KAAK,IAC7E,oBAA2B,IAAI,IAAI,GACnC,IAAU;EAEd,OAAO;EACP,QAAQ;EACR,SAAS;EACT,MAAM;EACN;EACA,iBAAiB;EACjB,OAAO;EACP,QAAQ;EACR,mBAAmB;EACnB,SAAS;EACT,UAAU;EACV;EACA,OAAO;GACL,aAAa,GAAsB,GAAS,OAAO,cAAc;GACjE,kBAAkB;GAClB,gBAAgB;GAChB,GAAG,GAAS;EACd;EACA,SAAS;EACT,MAAM,CAAC;EACP,mBAAmB;EACnB,WAAW;EACX;EACA,iBAAiB;EACjB,aAAa;EACb,aAAa;EACb,0BAA0B;EAC1B,wBAAwB;EACxB,cAAc;EACd,GAAG;EAEH,aAAa;EACb,KAAK,GAAa,CAAK;EACvB;EACA;EACA;EACA,KAAK,MAAU,IAAI,OAAO,KAAK;EAC/B,iBAAiB,EAAmB,CAAa;EACjD,gBAAgB,GAAe,gBAAgB,GAAO,MAAM;EAC5D,2BAA2B,IAAI,IAAI;EACnC,uCAAuC,IAAI,IAAI;EAC/C,SAAS,CACP,GAAG,MAAM,KAAK,EACZ,QAAQ,KAAsB,KAAa,IAAe,IAAe,EAC3E,CAAC,CACH,CAAC,CAAC,UAAU;GACV,IAAI;IACF,IAAM,IAAS,IAAI,OAAO,CAAS;IAanC,OAZA,EAAO,YAAY,OAAO,MAAU;KAClC,IAAM,EAAE,QAAK,cAAW,EAAM;KAC9B,AAAI,IACF,EAAS,IAAI,CAAG,CAAC,EAAE,UAAU,CAAM,IAEnC,EAAS,IAAI,CAAG,CAAC,EAAE,SAAS,gBAAI,MAAM,wCAAwC,GAAK,CAAC;IAExF,GACA,EAAO,kBAAkB,MAAU;KACjC,IAAM,EAAE,WAAQ,EAAM;KACtB,EAAS,IAAI,CAAG,CAAC,EAAE,SAAS,gBAAI,MAAM,wCAAwC,GAAK,CAAC;IACtF,GACO;GACT,SAAS,GAAO;IAEd,OADA,EAAQ,IAAI,KAAK,wBAAwB,CAAK,GACvC;GACT;EACF,CAAC,CAAC,CAAC,OAAO,OAAO;EACjB,8BAA8B,IAAI,IAAI;EACtC,8BAA8B,IAAI,IAAI;EACtC,eAAe,GAAG;GAChB,GAAY,CAAa,KAAK;GAC9B;GACA;GACA;EACF,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE;EAC5B;EACA,gBAAgB;EAChB,OAAO,CAAC;EACR;EACA,WAAW,MACL,MAAQ,0BACH,OAAO,KAAa,YAAY,KAAQ,EAAS,MAAQ,KAE9D,OAAO,KAAa,YACf,IAEF,EAAS,MAAQ;EAE1B,aAAa,CAAC;CAChB;CAGA,AAFA,EAAQ,IAAI,KAAK,iBAAiB,GAClC,MAAM,EAAc,GAAM;EAAE,SAAS,EAAQ;EAAS,QAAQ,EAAQ,IAAI;CAAK,CAAC,GAChF,EAAQ,IAAI,QAAQ,iBAAiB;CACrC,IAAM,EAAE,UAAO,cAAW,GAAmB,GAAM,CAAO;CAG1D,OAFA,EAAQ,QAAQ,GAChB,EAAQ,SAAS,GACV;AACT;AACA,SAAS,EAAmB,GAAe;CACzC,IAAI,CAAC,GACH;CACF,IAAM,IAAQ,EAAc,cAAc,OAAO,GAC3C,IAAU,EAAM,cAAc,eAAe,mGAKpD;CAEC,OADA,EAAM,YAAY,CAAO,GAClB;AACT;AACA,SAAS,GAAmB,GAAM,GAAS;CACzC,IAAI,EAAE,UAAO,cAAW;CACxB,IAAI,EAAc,CAAI,MAAM,CAAC,KAAS,CAAC,IAAS;EAC9C,IAAM,IAAM,EAAK,sBAAsB;EAEvC,AADA,IAAQ,KAAS,EAAI,SAAS,OAAO,EAAK,aAAa,OAAO,CAAC,KAAK,GACpE,IAAS,KAAU,EAAI,UAAU,OAAO,EAAK,aAAa,QAAQ,CAAC,KAAK;CAC1E;CACA,OAAO;EAAE;EAAO;CAAO;AACzB;AAEA,eAAe,GAAc,GAAO,GAAS;CAC3C,IAAM,EACJ,QACA,YACA,mBACA,yBACE;CACJ,EAAI,KAAK,iBAAiB;CAC1B,IAAM,IAAS,MAAM,EAAU,GAAO;EAAE;EAAS,QAAQ,EAAQ,IAAI;CAAK,CAAC,GACrE,EAAE,WAAQ,iBAAc,GAAa,EAAM,eAAe,CAAO,GACjE,UAAkB;EACtB,IAAI;GACF,GAAW,UAAU,GAAQ,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM;EAChE,SAAS,GAAO;GACd,EAAQ,IAAI,KAAK,uBAAuB,CAAK;EAC/C;CACF;CAEA,IADA,EAAU,GACN,EAAQ,SAAS,iBAAiB,GACpC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAgB,KAClC,MAAM,IAAI,SAAS,MAAY;EAC7B,iBAAiB;GAGf,AAFA,GAAW,UAAU,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM,GACtD,EAAU,GACV,EAAQ;EACV,GAAG,IAAI,CAAiB;CAC1B,CAAC;CAKL,OAFA,EAAQ,iBAAiB,GACzB,EAAI,QAAQ,iBAAiB,GACtB;AACT;AACA,SAAS,GAAa,GAAe,GAAS;CAC5C,IAAM,EAAE,UAAO,WAAQ,UAAO,oBAAiB,mBAAmB,MAAQ,GACpE,IAAS,EAAc,cAAc,QAAQ;CAKnD,AAJA,EAAO,QAAQ,KAAK,MAAM,IAAQ,CAAK,GACvC,EAAO,SAAS,KAAK,MAAM,IAAS,CAAK,GACzC,EAAO,MAAM,QAAQ,GAAG,EAAM,KAC9B,EAAO,MAAM,SAAS,GAAG,EAAO,KAC5B,MACE,EAAO,QAAQ,KAAO,EAAO,SAAS,OACpC,EAAO,QAAQ,KAAO,EAAO,SAAS,IACpC,EAAO,QAAQ,EAAO,UACxB,EAAO,UAAU,IAAM,EAAO,OAC9B,EAAO,QAAQ,MAEf,EAAO,SAAS,IAAM,EAAO,QAC7B,EAAO,SAAS,KAET,EAAO,QAAQ,KACxB,EAAO,UAAU,IAAM,EAAO,OAC9B,EAAO,QAAQ,MAEf,EAAO,SAAS,IAAM,EAAO,QAC7B,EAAO,SAAS;CAItB,IAAM,IAAY,EAAO,WAAW,IAAI;CAKxC,OAJI,KAAa,MACf,EAAU,YAAY,GACtB,EAAU,SAAS,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM,IAE/C;EAAE;EAAQ;CAAU;AAC7B;AAEA,SAAS,EAAY,GAAQ,GAAS;CACpC,IAAI,EAAO,eACT,IAAI;EACF,IAAM,IAAU,EAAO,UAAU;EACjC,IAAI,MAAY,UACd,OAAO,EAAY,GAAS,EAAO,aAAa;CAEpD,SAAS,GAAO;EACd,EAAQ,IAAI,KAAK,0BAA0B,CAAK;CAClD;CAEF,IAAM,IAAS,EAAO,UAAU,EAAK,GAC/B,IAAM,EAAO,WAAW,IAAI,GAC5B,IAAY,EAAO,WAAW,IAAI;CACxC,IAAI;EAQF,OAPI,KAAO,KACT,EAAU,aACR,EAAI,aAAa,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM,GAClD,GACA,CACF,GAEK;CACT,SAAS,GAAO;EACd,EAAQ,IAAI,KAAK,0BAA0B,CAAK;CAClD;CACA,OAAO;AACT;AAEA,SAAS,GAAY,GAAQ,GAAS;CACpC,IAAI;EACF,IAAI,GAAQ,iBAAiB,iBAC3B,OAAO,EAAU,EAAO,gBAAgB,iBAAiB,CAAO;CAEpE,SAAS,GAAO;EACd,EAAQ,IAAI,KAAK,0BAA0B,CAAK;CAClD;CACA,OAAO,EAAO,UAAU,EAAK;AAC/B;AAEA,SAAS,GAAW,GAAO;CACzB,IAAM,IAAS,EAAM,UAAU,EAAK;CAQpC,OAPI,EAAM,cAAc,EAAM,eAAe,EAAM,QACjD,EAAO,MAAM,EAAM,YACnB,EAAO,SAAS,KAEd,EAAO,YAAY,WACrB,EAAO,UAAU,UAEZ;AACT;AAEA,eAAe,GAAW,GAAO,GAAS;CACxC,IAAI,EAAM,iBAAiB,CAAC,EAAM,cAAc,EAAM,QACpD,OAAO,EAAY,EAAM,QAAQ,EAAM,aAAa;CAEtD,IAAM,IAAS,EAAM,UAAU,EAAK;CAEpC,AADA,EAAO,cAAc,aACjB,EAAM,cAAc,EAAM,eAAe,EAAM,QACjD,EAAO,MAAM,EAAM;CAErB,IAAM,IAAgB,EAAO;CAC7B,IAAI,GAAe;EACjB,IAAI,IAAU;EAEd,IADA,MAAM,EAAU,GAAQ;GAAE,eAAe,IAAU;GAAO,QAAQ,EAAQ,IAAI;EAAK,CAAC,GAChF,CAAC,GAIH,OAHI,EAAM,SACD,EAAY,EAAM,QAAQ,EAAM,aAAa,IAE/C;EAGT,AADA,EAAO,cAAc,EAAM,aAC3B,MAAM,IAAI,SAAS,MAAY;GAC7B,EAAO,iBAAiB,UAAU,GAAS,EAAE,MAAM,GAAK,CAAC;EAC3D,CAAC;EACD,IAAM,IAAS,EAAc,cAAc,QAAQ;EAEnD,AADA,EAAO,QAAQ,EAAM,aACrB,EAAO,SAAS,EAAM;EACtB,IAAI;GACF,IAAM,IAAM,EAAO,WAAW,IAAI;GAClC,AAAI,KACF,EAAI,UAAU,GAAQ,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM;EAC3D,SAAS,GAAO;GAKd,OAJA,EAAQ,IAAI,KAAK,yBAAyB,CAAK,GAC3C,EAAM,SACD,EAAY,EAAM,QAAQ,EAAM,aAAa,IAE/C;EACT;EACA,OAAO,EAAY,GAAQ,CAAO;CACpC;CACA,OAAO;AACT;AAEA,SAAS,GAAa,GAAM,GAAS;CAanC,OAZI,GAAgB,CAAI,IACf,EAAY,GAAM,CAAO,IAE9B,GAAgB,CAAI,IACf,GAAY,GAAM,CAAO,IAE9B,EAAe,CAAI,IACd,GAAW,CAAI,IAEpB,EAAe,CAAI,IACd,GAAW,GAAM,CAAO,IAE1B,EAAK,UAAU,EAAK;AAC7B;AAEA,SAAS,GAAW,GAAS;CAC3B,IAAI,IAAU,EAAQ;CACtB,IAAI,CAAC,GAAS;EACZ,IAAM,EAAE,qBAAkB;EAC1B,IAAI;GACF,AAAI,MACF,IAAU,EAAc,cAAc,QAAQ,GAC9C,EAAQ,KAAK,cAAc,EAAK,KAChC,EAAQ,QAAQ,KAChB,EAAQ,SAAS,KACjB,EAAQ,MAAM,aAAa,UAC3B,EAAQ,MAAM,WAAW,SACzB,EAAc,KAAK,YAAY,CAAO,GACtC,EAAQ,SAAS,gEACjB,EAAQ,UAAU;EAEtB,SAAS,GAAO;GACd,EAAQ,IAAI,KAAK,wBAAwB,CAAK;EAChD;CACF;CACA,OAAO;AACT;AAEA,IAAM,KAAgB;CACpB;CACA;CACA;AACF,GACM,KAAqB,CACzB,UACA,MACF;AACA,SAAS,EAAgB,GAAM,GAAe,GAAS;CACrD,IAAM,EAAE,6BAA0B,GAC5B,IAAW,EAAK,SAAS,YAAY,GACrC,IAAY,EAAiB,CAAI,KAAK,MAAa,OACnD,IAAa,IAAY,GAAmB,KAAK,MAAS,CAAC,GAAM,EAAK,aAAa,CAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAW,MAAU,IAAI,IAAI,CAAC,GACpI,IAAM;EACV,KAAa;EACb;EACA,EAAW,KAAK,GAAM,MAAU,GAAG,EAAK,GAAG,GAAO,CAAC,CAAC,KAAK,GAAG;EAC5D;CACF,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CAC1B,IAAI,EAAsB,IAAI,CAAG,GAC/B,OAAO,EAAsB,IAAI,CAAG;CAEtC,IAAM,IADU,GAAW,CACC,CAAC,EAAE;CAC/B,IAAI,CAAC,GACH,uBAAuB,IAAI,IAAI;CACjC,IAAM,IAAkB,GAAe,UACnC,GACA;CAYJ,AAXI,KACF,IAAO,EAAgB,gBAAgB,GAAO,KAAK,GACnD,IAAK,EAAK,cAAc,gBAAgB,EAAK,cAAc,CAAQ,GACnE,EAAW,SAAS,CAAC,GAAM,OAAW;EACpC,EAAG,eAAe,MAAM,GAAM,CAAK;CACrC,CAAC,GACD,EAAK,YAAY,CAAE,KAEnB,IAAO,IAAK,EAAgB,cAAc,CAAQ,GAEpD,EAAG,cAAc,KACjB,EAAgB,KAAK,YAAY,CAAI;CACrC,IAAM,IAAgB,EAAc,iBAAiB,GAAI,CAAa,GAChE,oBAAyB,IAAI,IAAI;CACvC,KAAK,IAAI,IAAM,EAAc,QAAQ,IAAI,GAAG,IAAI,GAAK,KAAK;EACxD,IAAM,IAAO,EAAc,KAAK,CAAC;EAC7B,GAAc,SAAS,CAAI,KAE/B,EAAO,IAAI,GAAM,EAAc,iBAAiB,CAAI,CAAC;CACvD;CAGA,OAFA,EAAgB,KAAK,YAAY,CAAI,GACrC,EAAsB,IAAI,GAAK,CAAM,GAC9B;AACT;AAEA,SAAS,EAAa,GAAO,GAAc,GAAwB;CACjE,IAAM,oBAA4B,IAAI,IAAI,GACpC,IAAU,CAAC,GACX,oBAA6B,IAAI,IAAI;CAC3C,IAAI,GACF,KAAK,IAAM,KAAQ,GACjB,EAAQ,CAAI;MAGd,KAAK,IAAI,IAAM,EAAM,QAAQ,IAAI,GAAG,IAAI,GAAK,KAE3C,EADa,EAAM,KAAK,CACb,CAAC;CAGhB,KAAK,IAAI,IAAM,EAAQ,QAAQ,IAAI,GAAG,IAAI,GAAK,KAC7C,EAAW,IAAI,EAAQ,EAAE,CAAC,EAAE,SAAS,GAAO,MAAS,EAAU,IAAI,GAAM,CAAK,CAAC;CAEjF,SAAS,EAAQ,GAAM;EACrB,IAAM,IAAQ,EAAM,iBAAiB,CAAI,GACnC,IAAW,EAAM,oBAAoB,CAAI,GACzC,IAAW,EAAK,YAAY,GAAG,GAC/B,IAAS,IAAW,KAAK,EAAK,UAAU,GAAG,CAAQ,IAAI,KAAK;EAClE,IAAI,GAAQ;GACV,IAAI,IAAM,EAAW,IAAI,CAAM;GAK/B,AAJK,MACH,oBAAsB,IAAI,IAAI,GAC9B,EAAW,IAAI,GAAQ,CAAG,IAE5B,EAAI,IAAI,GAAM,CAAC,GAAO,CAAQ,CAAC;EACjC;EACI,EAAa,IAAI,CAAI,MAAM,KAAS,CAAC,MAErC,IACF,EAAQ,KAAK,CAAM,IAEnB,EAAU,IAAI,GAAM,CAAC,GAAO,CAAQ,CAAC;CAEzC;CACA,OAAO;AACT;AAEA,SAAS,GAAc,GAAM,GAAQ,GAAQ,GAAS;CACpD,IAAM,EAAE,gBAAa,2BAAwB,8BAA2B,GAClE,IAAc,EAAO,OACrB,IAAgB,EAAY,iBAAiB,CAAI,GACjD,IAAe,EAAgB,GAAM,MAAM,CAAO;CACxD,GAAwB,SAAS,GAAG,MAAQ;EAC1C,EAAa,OAAO,CAAG;CACzB,CAAC;CACD,IAAM,IAAQ,EAAa,GAAe,GAAc,CAAsB;CAoB9E,AAnBA,EAAM,OAAO,qBAAqB,GAClC,EAAM,OAAO,KAAK,GAClB,EAAM,OAAO,GAAG,GAChB,EAAM,OAAO,SAAS,GAClB,MACF,EAAM,OAAO,UAAU,GACvB,EAAM,OAAO,YAAY,GACzB,EAAM,OAAO,cAAc,GAC3B,EAAM,OAAO,eAAe,GAC5B,EAAM,OAAO,aAAa,GAC1B,EAAM,OAAO,oBAAoB,GACjC,EAAM,OAAO,kBAAkB,GAC/B,EAAM,OAAO,qBAAqB,GAClC,EAAM,OAAO,mBAAmB,GAChC,EAAM,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC,IAExC,EAAM,IAAI,iBAAiB,CAAC,GAAG,OAAO,UACxC,EAAO,UAAU,IAAI,6BAA6B,GAEhD,MACG,EAAM,IAAI,cAAc,KAC3B,EAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC,IACrC,EAAM,IAAI,YAAY,CAAC,GAAG,OAAO,YAAY,EAAM,IAAI,YAAY,CAAC,GAAG,OAAO,aAAa,EAAM,IAAI,eAAe,CAAC,GAAG,OAAO,cAAc,EAAK,gBAAgB,EAAK,eAC1K,EAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAG3C,KAAK,IAAI,IAAM,EAAY,QAAQ,IAAI,GAAG,IAAI,GAAK,KACjD,EAAY,eAAe,EAAY,KAAK,CAAC,CAAC;CAKhD,OAHA,EAAM,SAAS,CAAC,GAAO,IAAW,MAAS;EACzC,EAAY,YAAY,GAAM,GAAO,CAAQ;CAC/C,CAAC,GACM;AACT;AAEA,SAAS,GAAe,GAAM,GAAQ;CACpC,CAAI,GAAkB,CAAI,KAAK,GAAe,CAAI,KAAK,GAAgB,CAAI,MACzE,EAAO,aAAa,SAAS,EAAK,KAAK;AAE3C;AAEA,IAAM,KAAgB,CACpB,YACA,SAEF,GACM,KAAyB;CAC7B;CACA;CAEA;CACA;CACA;CAEA;CACA;AACF;AACA,SAAS,GAAgB,GAAM,GAAQ,GAAe,GAAS,GAAuB;CACpF,IAAM,EAAE,gBAAa,oBAAiB,cAAW,wBAAqB;CACtE,IAAI,CAAC,KAAmB,CAAC,GACvB;CACF,SAAS,EAAO,GAAa;EAC3B,IAAM,IAAgB,EAAY,iBAAiB,GAAM,CAAW,GAChE,IAAU,EAAc,iBAAiB,SAAS;EACtD,IAAI,CAAC,KAAW,MAAY,QAC1B;EAEF,AADA,IAAwB,CAAO,GAC/B,IAAU,EAAQ,QAAQ,4BAA4B,EAAE;EACxD,IAAM,IAAU,CAAC,EAAK,CAAC,GACjB,IAAe,EAAgB,GAAM,GAAa,CAAO;EAC/D,GAAkB,SAAS,GAAG,MAAQ;GACpC,EAAa,OAAO,CAAG;EACzB,CAAC;EACD,IAAM,IAAQ,EAAa,GAAe,GAAc,EAAQ,sBAAsB;EAGtF,AAFA,EAAM,OAAO,SAAS,GACtB,EAAM,OAAO,gBAAgB,GACzB,EAAM,IAAI,iBAAiB,CAAC,GAAG,OAAO,UACxC,EAAO,UAAU,IAAI,6BAA6B;EAEpD,IAAM,IAAa,CACjB,aAAa,EAAQ,GACvB;EAIA,IAHA,EAAM,SAAS,CAAC,GAAO,IAAW,MAAS;GACzC,EAAW,KAAK,GAAG,EAAK,IAAI,IAAQ,IAAW,gBAAgB,GAAG,EAAE;EACtE,CAAC,GACG,EAAW,WAAW,GACxB;EACF,IAAI;GACF,EAAO,YAAY,CAAC,EAAO,WAAW,GAAG,CAAO,CAAC,CAAC,KAAK,GAAG;EAC5D,SAAS,GAAK;GACZ,EAAQ,IAAI,KAAK,6BAA6B,CAAG;GACjD;EACF;EACA,IAAM,IAAU,EAAW,KAAK,MAAM,GAClC,IAAa,EAAU,IAAI,CAAO;EAKtC,AAJK,MACH,IAAa,CAAC,GACd,EAAU,IAAI,GAAS,CAAU,IAEnC,EAAW,KAAK,IAAI,EAAQ,KAAK,GAAa;CAChD;CAEA,AADA,GAAc,QAAQ,CAAM,GACxB,KACF,GAAuB,QAAQ,CAAM;AACzC;AAEA,IAAM,oBAAqC,IAAI,IAAI,CACjD,QAEF,CAAC;AACD,eAAe,EAAgB,GAAM,GAAQ,GAAO,GAAS,GAAuB;CAGlF,IAFI,EAAc,CAAK,MAAM,GAAe,CAAK,KAAK,GAAgB,CAAK,MAEvE,EAAQ,UAAU,CAAC,EAAQ,OAAO,CAAK,GACzC;CACF,AAGE,EAAQ,yBAHN,EAAmB,IAAI,EAAO,QAAQ,KAAK,EAAmB,IAAI,EAAM,QAAQ,IACjD,KAAK,IAEL,EAAQ;CAE3C,IAAM,IAAc,MAAM,EAAU,GAAO,GAAS,IAAO,CAAqB;CAIhF,AAHI,EAAQ,SAAS,uBAAuB,KAC1C,GAAsB,GAAM,CAAW,GAEzC,EAAO,YAAY,CAAW;AAChC;AACA,eAAe,GAAgB,GAAM,GAAQ,GAAS,GAAuB;CAC3E,IAAI,IAAa,EAAK;CACtB,AAAI,EAAc,CAAI,KAChB,EAAK,eACP,IAAa,EAAK,YAAY,YAC9B,EAAQ,YAAY,KAAK,EAAK,UAAU;CAG5C,KAAK,IAAI,IAAQ,GAAY,GAAO,IAAQ,EAAM,aAC5C,QAAc,CAAK,GAEvB;MAAI,EAAc,CAAK,KAAK,GAAc,CAAK,KAAK,OAAO,EAAM,iBAAkB,YAAY;GAC7F,IAAM,IAAQ,EAAM,cAAc;GAClC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,KAChC,MAAM,EAAgB,GAAM,GAAQ,EAAM,IAAI,GAAS,CAAqB;EAEhF,OACE,MAAM,EAAgB,GAAM,GAAQ,GAAO,GAAS,CAAqB;CAAA;AAG/E;AACA,SAAS,GAAsB,GAAM,GAAa;CAChD,IAAI,CAAC,EAAkB,CAAI,KAAK,CAAC,EAAkB,CAAW,GAC5D;CACF,IAAM,EAAE,cAAW,kBAAe;CAClC,IAAI,CAAC,KAAa,CAAC,GACjB;CAEF,IAAM,EAAE,iBAAc,EAAY,OAC5B,IAAS,IAAI,UAAU,CAAS,GAChC,EAAE,MAAG,MAAG,GAAG,SAAM;CAUvB,AATA,EAAO,IAAI,GACX,EAAO,IAAI,GACX,EAAO,IAAI,GACX,EAAO,IAAI,GACX,EAAO,cAAc,CAAC,GAAY,CAAC,CAAS,GAC5C,EAAO,IAAI,GACX,EAAO,IAAI,GACX,EAAO,IAAI,GACX,EAAO,IAAI,GACX,EAAY,MAAM,YAAY,EAAO,SAAS;AAChD;AACA,SAAS,GAAyB,GAAQ,GAAS;CACjD,IAAM,EAAE,oBAAiB,UAAO,WAAQ,OAAO,MAAW,GACpD,IAAc,EAAO;CAO3B,IANI,KACF,EAAY,YAAY,oBAAoB,GAAiB,WAAW,GACtE,KACF,EAAY,YAAY,SAAS,GAAG,EAAM,KAAK,WAAW,GACxD,KACF,EAAY,YAAY,UAAU,GAAG,EAAO,KAAK,WAAW,GAC1D,GACF,KAAK,IAAM,KAAQ,GAAQ,EAAY,KAAQ,EAAO;AAE1D;AACA,IAAM,KAAsB;AAC5B,eAAe,EAAU,GAAM,GAAS,IAAS,IAAO,GAAuB;CAC7E,IAAM,EAAE,kBAAe,gBAAa,iBAAc,uBAAoB;CACtE,IAAI,KAAiB,GAAW,CAAI,GAIlC,OAHI,KAAyB,KAAK,KAAK,EAAK,IAAI,KAC9C,EAAsB,EAAK,IAAI,GAE1B,EAAc,eAAe,EAAK,IAAI;CAE/C,IAAI,KAAiB,KAAe,EAAc,CAAI,MAAM,EAAkB,CAAI,KAAK,EAAiB,CAAI,IAAI;EAC9G,IAAM,IAAU,MAAM,GAAa,GAAM,CAAO;EAChD,IAAI,EAAQ,SAAS,0BAA0B,GAAG;GAChD,IAAM,IAAQ,EAAQ,kBAAkB;GACxC,KAAK,IAAI,IAAM,EAAM,QAAQ,IAAI,GAAG,IAAI,GAAK,KAAK;IAChD,IAAM,IAAO,EAAM;IACnB,AAAK,GAAoB,KAAK,CAAI,KAChC,EAAQ,gBAAgB,CAAI;GAEhC;EACF;EACA,IAAM,IAAQ,EAAQ,mBAAmB,GAAc,GAAM,GAAS,GAAQ,CAAO;EACrF,AAAI,KACF,GAAyB,GAAS,CAAO;EAC3C,IAAI,IAAgB;EACpB,IAAI,EAAQ,SAAS,eAAe,GAAG;GACrC,IAAM,IAAW,CACf,EAAM,IAAI,YAAY,CAAC,GAAG,IAC1B,EAAM,IAAI,YAAY,CAAC,GAAG,EAC5B;GACA,IAAgB,EAAS,SAAS,QAAQ,MAAM,EAAS,SAAS,MAAM,KAAK,EAAS,SAAS,SAAS,OAAO,EAAK,eAAe,EAAK,gBAAgB,EAAK,cAAc,EAAK;EAClL;EACA,IAAM,IAAgB,EAAM,IAAI,gBAAgB,CAAC,GAAG,IAC9C,IAAW,EAAgB,EAAM,IAAI,aAAa,CAAC,GAAG,EAAE,GACxD,IAAyB,KAAY,MAAS;GAQlD,AAPI,MAAkB,cACpB,IAAO,EAAK,YAAY,IACf,MAAkB,cAC3B,IAAO,EAAK,YAAY,IACf,MAAkB,iBAC3B,IAAO,EAAK,EAAE,CAAC,YAAY,IAAI,EAAK,UAAU,CAAC,IAEjD,EAAS,SAAS,MAAW;IAC3B,IAAI,IAAa,EAAa,IAAI,CAAM;IAIxC,AAHK,KACH,EAAa,IAAI,GAAQ,oBAA6B,IAAI,IAAI,CAAC,GAEjE,EAAK,MAAM,EAAE,CAAC,CAAC,SAAS,MAAS,EAAW,IAAI,CAAI,CAAC;GACvD,CAAC;EACH,IAAI,KAAK;EAkBT,OAjBA,GACE,GACA,GACA,GACA,GACA,CACF,GACA,GAAe,GAAM,CAAO,GACvB,EAAe,CAAI,KACtB,MAAM,GACJ,GACA,GACA,GACA,CACF,GAEF,MAAM,IAAkB,CAAO,GACxB;CACT;CACA,IAAM,IAAS,EAAK,UAAU,EAAK;CAGnC,OAFA,MAAM,GAAgB,GAAM,GAAQ,CAAO,GAC3C,MAAM,IAAkB,CAAM,GACvB;AACT;AAEA,SAAS,GAAe,GAAS;CAO/B,IANA,EAAQ,gBAAgB,KAAK,GAC7B,EAAQ,cAAc,KAAK,GAC3B,EAAQ,kBAAkB,KAAK,GAC/B,EAAQ,iBAAiB,KAAK,GAC9B,EAAQ,UAAU,MAAM,GACxB,EAAQ,sBAAsB,MAAM,GAChC,EAAQ,SAAS;EACnB,IAAI;GACF,EAAQ,QAAQ,OAAO;EACzB,SAAS,GAAK;GACZ,EAAQ,IAAI,KAAK,4BAA4B,CAAG;EAClD;EACA,EAAQ,UAAU,KAAK;CACzB;CAMA,AALA,EAAQ,UAAU,CAAC,GACnB,EAAQ,aAAa,MAAM,GAC3B,EAAQ,aAAa,MAAM,GAC3B,EAAQ,SAAS,MAAM,GACvB,EAAQ,QAAQ,CAAC,GACjB,EAAQ,cAAc,CAAC;AACzB;AAEA,SAAS,GAAU,GAAS;CAC1B,IAAM,EAAE,QAAK,YAAS,iBAAc,GAAG,MAAgB,GACjD,IAAa,IAAI,gBAAgB,GACjC,IAAQ,IAAU,iBAAiB,EAAW,MAAM,GAAG,CAAO,IAAI,KAAK;CAC7E,OAAO,MAAM,GAAK;EAAE,QAAQ,EAAW;EAAQ,GAAG;CAAY,CAAC,CAAC,CAAC,MAAM,MAAa;EAClF,IAAI,CAAC,EAAS,IACZ,MAAU,MAAM,kCAAkC,EAAE,OAAO,EAAS,CAAC;EAEvE,QAAQ,GAAR;GACE,KAAK,eACH,OAAO,EAAS,YAAY;GAC9B,KAAK,WACH,OAAO,EAAS,KAAK,CAAC,CAAC,KAAK,EAAa;GAE3C,SACE,OAAO,EAAS,KAAK;EACzB;CACF,CAAC,CAAC,CAAC,cAAc,aAAa,CAAK,CAAC;AACtC;AACA,SAAS,EAAa,GAAS,GAAS;CACtC,IAAM,EAAE,KAAK,GAAQ,iBAAc,QAAQ,kBAAe,QAAQ,gBAAa,GAC3E,IAAM,GACJ,EACJ,YACA,kBACA,aACA,YACA,OAAO,EACL,gBACA,mBACA,uBAEF,SACA,YACA,oBACE;CACJ,AAAI,MAAgB,YAAY,KAAa,MAC3C,EAAQ;CAEV,IAAI,IAAU,EAAS,IAAI,CAAM;CACjC,IAAI,CAAC,GAAS;EACZ,AAAI,KACE,aAA0B,UAAU,EAAe,KAAK,CAAG,MAC7D,MAAQ,KAAK,KAAK,CAAG,IAAI,MAAM,wBAAwB,IAAI,KAAK,EAAA,CAAG,QAAQ;EAG/E,IAAM,IAAgB,EAAY,WAAW,MAAM,KAAK,KAAQ,EAAK,QAC/D,oBAA4B,IAAI,IAAI;EAC1C,AAAI,KAEF,EAD6B,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAC1C,CAAC,CAAC,SAAS,MAAW;GACtB,EAAa,IAAI,CAAM,KAE5B,EAAa,IAAI,CAAM,CAAC,CAAC,SAAS,MAAS,EAAU,IAAI,CAAI,CAAC;EAChE,CAAC;EAGH,IAAM,IAAmB;GACvB;GACA;GACA,cAJqB,KAAiB,EAAU,OAIjB,gBAAgB;GAC/C,SAAS,MAAgB,UAAU,EAAE,QAAQ,EAAc,IAAI,KAAK;GACpE,GAAG;EACL;EA8BA,AA7BA,IAAU;GACR,MAAM;GACN,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,UAAU;EACZ,GACA,EAAQ,YAAY,YAAY;GAC9B,IAAI,KAAW,MAAgB,SAAS;IACtC,IAAM,IAAS,MAAM,EAAQ,CAAM;IACnC,IAAI,GACF,OAAO;GACX;GASA,OARI,CAAC,KAAa,EAAO,WAAW,MAAM,KAAK,EAAQ,SAC9C,IAAI,SAAS,GAAS,MAAW;IAItC,AAFA,EADuB,EAAS,OAAO,EAAQ,SAAS,EAClD,CAAC,YAAY;KAAE;KAAQ,GAAG;IAAiB,CAAC,GAClD,EAAQ,UAAU,GAClB,EAAQ,SAAS;GACnB,CAAC,IAEI,GAAU,CAAgB;EACnC,EAAA,CAAG,CAAC,CAAC,OAAO,MAAU;GAEpB,IADA,EAAS,OAAO,CAAM,GAClB,MAAgB,WAAW,GAE7B,OADA,EAAQ,IAAI,KAAK,iEAAiE,CAAG,GAC9E,OAAO,KAAqB,WAAW,IAAmB,EAAiB,CAAQ;GAE5F,MAAM;EACR,CAAC,GACD,EAAS,IAAI,GAAQ,CAAO;CAC9B;CACA,OAAO,EAAQ;AACjB;AAEA,eAAe,GAAuB,GAAS,GAAS,GAAS,GAAS;CACxE,IAAI,CAAC,GAAU,CAAO,GACpB,OAAO;CACT,KAAK,IAAM,CAAC,GAAQ,MAAQ,GAAa,GAAS,CAAO,GACvD,IAAI;EACF,IAAM,IAAU,MAAM,EACpB,GACA;GACE;GACA,aAAa,IAAU,UAAU;GACjC,cAAc;EAChB,CACF;EACA,IAAU,EAAQ,QAAQ,GAAK,CAAM,GAAG,KAAK,EAAQ,GAAG;CAC1D,SAAS,GAAO;EACd,EAAQ,IAAI,KAAK,gCAAgC,GAAQ,CAAK;CAChE;CAEF,OAAO;AACT;AACA,SAAS,GAAU,GAAS;CAC1B,OAAO,4BAA4B,KAAK,CAAO;AACjD;AACA,IAAM,KAAS;AACf,SAAS,GAAa,GAAS,GAAS;CACtC,IAAM,IAAS,CAAC;CAKhB,OAJA,EAAQ,QAAQ,KAAS,GAAK,GAAW,OACvC,EAAO,KAAK,CAAC,GAAK,EAAW,GAAK,CAAO,CAAC,CAAC,GACpC,EACR,GACM,EAAO,QAAQ,CAAC,OAAS,CAAC,EAAU,CAAG,CAAC;AACjD;AACA,SAAS,GAAK,GAAK;CACjB,IAAM,IAAU,EAAI,QAAQ,4BAA4B,MAAM;CAC9D,OAAW,OAAO,iBAAiB,EAAQ,cAAc,GAAG;AAC9D;AAEA,IAAM,KAAa;CACjB;CACA;CACA;CACA;CACA;AACF;AACA,SAAS,GAAmB,GAAO,GAAS;CAC1C,OAAO,GAAW,KAAK,MAAa;EAClC,IAAM,IAAQ,EAAM,iBAAiB,CAAQ;EAO7C,OANI,CAAC,KAAS,MAAU,SACf,SAEL,KAAa,MACf,EAAQ,kBAEH,GAAuB,GAAO,MAAM,GAAS,EAAI,CAAC,CAAC,MAAM,MAAa;GACvE,CAAC,KAAY,MAAU,KAE3B,EAAM,YACJ,GACA,GACA,EAAM,oBAAoB,CAAQ,CACpC;EACF,CAAC;CACH,CAAC,CAAC,CAAC,OAAO,OAAO;AACnB;AAEA,SAAS,GAAkB,GAAQ,GAAS;CAC1C,IAAI,EAAe,CAAM,GAAG;EAC1B,IAAM,IAAc,EAAO,cAAc,EAAO;EAChD,IAAI,CAAC,EAAU,CAAW,GACxB,OAAO,CACL,EAAa,GAAS;GACpB,KAAK;GACL,UAAU;GACV,aAAa;GACb,cAAc;EAChB,CAAC,CAAC,CAAC,MAAM,MAAQ;GACV,MAEL,EAAO,SAAS,IAChB,EAAO,QAAQ,cAAc,GAC7B,EAAO,MAAM,KAAO;EACtB,CAAC,CACH;EAEF,CAAI,KAAa,MACf,EAAQ;CAEZ,OAAO,IAAI,EAAiB,CAAM,KAAK,CAAC,EAAU,EAAO,KAAK,OAAO,GAAG;EACtE,IAAM,IAAc,EAAO,KAAK;EAChC,OAAO,CACL,EAAa,GAAS;GACpB,KAAK;GACL,UAAU;GACV,aAAa;GACb,cAAc;EAChB,CAAC,CAAC,CAAC,MAAM,MAAQ;GACV,MAEL,EAAO,QAAQ,cAAc,GAC7B,EAAO,KAAK,UAAU,KAAO;EAC/B,CAAC,CACH;CACF;CACA,OAAO,CAAC;AACV;AAEA,SAAS,GAAY,GAAQ,GAAS;CACpC,IAAM,EAAE,kBAAe,sBAAmB,GACpC,IAAO,EAAO,aAAa,MAAM,KAAK,EAAO,aAAa,YAAY;CAC5E,IAAI,CAAC,GACH,OAAO,CAAC;CACV,IAAM,CAAC,GAAQ,KAAM,EAAK,MAAM,GAAG;CACnC,IAAI,GAAI;EACN,IAAM,IAAQ,IAAI,KACZ,IAAa,EAAQ,YAAY,QACpC,GAAK,MACG,KAAO,EAAK,cAAc,OAAO,GAAO,GAEjD,GAAe,cAAc,OAAO,GAAO,CAC7C;EAIA,IAHI,KACF,EAAO,aAAa,QAAQ,CAAK,GAE/B,GAAgB,cAAc,CAAK,GACrC,OAAO,CAAC;EACV,IAAI,GAEF,OADA,GAAgB,YAAY,EAAW,UAAU,EAAI,CAAC,GAC/C,CAAC;EACH,IAAI,GACT,OAAO,CACL,EAAa,GAAS;GACpB,KAAK;GACL,cAAc;EAChB,CAAC,CAAC,CAAC,MAAM,MAAY;GACnB,GAAgB,mBAAmB,aAAa,CAAO;EACzD,CAAC,CACH;CAEJ;CACA,OAAO,CAAC;AACV;AAEA,SAAS,GAAU,GAAQ,GAAS;CAClC,IAAM,EAAE,aAAU;CAYlB,AAXI,EAAc,CAAM,OAClB,EAAe,CAAM,KAAK,EAAsB,CAAM,MACxD,EAAM,KAAK,GAAG,GAAkB,GAAQ,CAAO,CAAC,GAE9C,GAAoB,CAAM,KAC5B,EAAM,KAAK,GAAG,GAAY,GAAQ,CAAO,CAAC,IAG1C,EAAkB,CAAM,KAC1B,EAAM,KAAK,GAAG,GAAmB,EAAO,OAAO,CAAO,CAAC,GAEzD,EAAO,WAAW,SAAS,MAAU;EACnC,GAAU,GAAO,CAAO;CAC1B,CAAC;AACH;AAEA,eAAe,GAAa,GAAO,GAAS;CAC1C,IAAM,EACJ,kBACA,oBACA,iBACA,iBACA,UACA,YACE;CACA,OAAC,KAAiB,CAAC,KAAmB,CAAC,EAAa,OAGxD;MAAI,KAAQ,EAAK,SAAS;GACxB,IAAM,IAAU,EAAsB,EAAK,SAAS,CAAO;GAC3D,EAAgB,YAAY,EAAc,eAAe,GAAG,EAAQ;CACvE,CAAC;EACA,OAAO;GACL,IAAM,IAAc,MAAM,KAAK,EAAc,WAAW,CAAC,CAAC,QAAQ,MAAe;IAC/E,IAAI;KACF,OAAO,cAAc,KAAc,EAAQ,EAAW,SAAS;IACjE,SAAS,GAAO;KAEd,OADA,EAAQ,IAAI,KAAK,sCAAsC,EAAW,QAAQ,CAAK,GACxE;IACT;GACF,CAAC,GACK,IAAU,EAAc,eAAe,mBAAmB,EAAE,GAC5D,IAAc,EAAQ,cAAc,OAAO;GACjD,EAAQ,KAAK,YAAY,CAAW;GACpC,IAAM,IAAiB,EAAY;GA+BnC,AA9BA,MAAM,QAAQ,IACZ,EAAY,SAAS,MACZ,MAAM,KAAK,EAAW,QAAQ,CAAC,CAAC,IAAI,OAAO,MAAY;IAC5D,IAAI,EAAgB,CAAO,GAAG;KAC5B,IAAM,IAAU,EAAQ,MACpB,IAAU;KACd,IAAI;MACF,IAAU,MAAM,EAAa,GAAS;OACpC,KAAK;OACL,aAAa;OACb,cAAc;MAChB,CAAC;KACH,SAAS,GAAO;MACd,EAAQ,IAAI,KAAK,sCAAsC,KAAW,CAAK;KACzE;KACA,IAAM,IAAkB,EAAQ,QAC9B,KACC,GAAK,GAAW,MAAQ,EAAI,QAAQ,GAAK,EAAW,GAAK,CAAO,CAAC,CACpE;KACA,KAAK,IAAM,KAAQ,GAAS,CAAe,GACzC,IAAI;MACF,EAAe,WAAW,GAAM,EAAe,SAAS,MAAM;KAChE,SAAS,GAAO;MACd,EAAQ,IAAI,KAAK,+CAA+C;OAAE;OAAM;MAAM,CAAC;KACjF;IAEJ;GACF,CAAC,CACF,CACH,GACI,EAAe,SAAS,UAC1B,EAAY,KAAK,CAAc;GACjC,IAAM,IAAW,CAAC;GAIlB,AAHA,EAAY,SAAS,MAAU;IAC7B,EAAgB,EAAM,UAAU,CAAQ;GAC1C,CAAC,GACD,EAAS,QAAQ,MAAY,EAAkB,CAAO,KAAK,GAAU,EAAQ,MAAM,iBAAiB,KAAK,CAAC,KAAK,EAAgB,EAAQ,MAAM,iBAAiB,aAAa,CAAC,CAAC,EAAE,MAAM,MAAQ,EAAa,IAAI,CAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAU;IACtO,IAAM,IAAO,GACP,IAAU,EAAa,IAAI,EAAK,OAAO;IAC7C,AAAI,IACF,EAAgB,YAAY,EAAc,eAAe,GAAG,EAAQ;CAC3E,CAAC,IAEM,EAAM,KACJ,GACE,EAAK,SACL,EAAK,mBAAmB,EAAK,iBAAiB,OAAO,MACrD,CACF,CAAC,CAAC,MAAM,MAAa;KAGnB,AAFA,IAAW,EAAsB,GAAU,CAAO,GAClD,EAAa,IAAI,EAAK,SAAS,CAAQ,GACvC,EAAgB,YAAY,EAAc,eAAe,GAAG,EAAS;CAChF,CAAC;IACQ,CAAC,CACH;GAEJ,CAAC;EACH;;AACF;AACA,IAAM,KAAc,uBACd,KAAe;AACrB,SAAS,GAAS,GAAQ;CACxB,IAAI,KAAU,MACZ,OAAO,CAAC;CACV,IAAM,IAAS,CAAC,GACZ,IAAU,EAAO,QAAQ,IAAa,EAAE;CAC5C,SAAa;EACX,IAAM,IAAU,GAAa,KAAK,CAAO;EACzC,IAAI,CAAC,GACH;EACF,EAAO,KAAK,EAAQ,EAAE;CACxB;CACA,IAAU,EAAQ,QAAQ,IAAc,EAAE;CAC1C,IAAM,IAAY,0CACZ,IAAa,gBAAI,OAErB,8GACA,IACF;CACA,SAAa;EACX,IAAI,IAAU,EAAU,KAAK,CAAO;EACpC,IAAK,GAQH,EAAW,YAAY,EAAU;OANjC,IADA,IAAU,EAAW,KAAK,CAAO,GAC5B,GAGH,EAAU,YAAY,EAAW;OAFjC;EAOJ,EAAO,KAAK,EAAQ,EAAE;CACxB;CACA,OAAO;AACT;AACA,IAAM,KAAqB,+CACrB,KAAc;AACpB,SAAS,EAAsB,GAAK,GAAS;CAC3C,IAAM,EAAE,YAAS,GACX,IAAkB,IAAO,GAAM,kBAAkB,KAAK;CAC5D,OAAO,IAAkB,EAAI,QAAQ,KAAc,MAAU;EAC3D,SAAa;GACX,IAAM,CAAC,KAAO,KAAU,GAAmB,KAAK,CAAK,KAAK,CAAC;GAC3D,IAAI,CAAC,GACH,OAAO;GACT,IAAI,MAAW,GACb,OAAO,QAAQ,EAAI;EACvB;CACF,CAAC,IAAI;AACP;AACA,SAAS,EAAgB,GAAO,IAAM,CAAC,GAAG;CACxC,KAAK,IAAM,KAAQ,MAAM,KAAK,CAAK,GACjC,AAAI,EAAiB,CAAI,IACvB,EAAI,KAAK,GAAG,EAAgB,EAAK,QAAQ,CAAC,IACjC,cAAc,IACvB,EAAgB,EAAK,UAAU,CAAG,IAElC,EAAI,KAAK,CAAI;CAGjB,OAAO;AACT;AAEA,IAAM,KAA8B;AACpC,SAAS,GAAwB,GAAK;CACpC,OAAO,GAA4B,KAAK,EAAI,SAAS;AACvD;AACA,eAAe,GAAsB,GAAM,GAAS;CAClD,IAAM,IAAU,MAAM,EAAgB,GAAM,CAAO;CACnD,IAAI,EAAc,EAAQ,IAAI,KAAK,EAAiB,EAAQ,IAAI,KAAK,CAAC,GAAwB,EAAQ,IAAI,GACxG,OAAO,EAAQ;CACjB,IAAM,EACJ,kBACA,QACA,UACA,oBACA,mBACA,cACA,SACA,aACA,iBACA,gBACA,gBACA,gCACE;CACJ,EAAI,KAAK,YAAY;CACrB,IAAM,IAAQ,MAAM,EAAU,EAAQ,MAAM,GAAS,EAAI;CACzD,IAAI,KAAmB,GAAe;EACpC,IAAI,IAAa;EAOjB,AANA,EAAU,SAAS,GAAS,MAAY;GACtC,KAAc,GAAG,EAAQ,KAAK,KAAK,EAAE;IACvC,EAAQ;;;EAGR,CAAC,GACD,EAAgB,YAAY,EAAc,eAAe,CAAU,CAAC;CACtE;CASA,AARA,EAAI,QAAQ,YAAY,GACxB,MAAM,IAAc,CAAK,GACrB,MAAS,MAAS,EAAc,CAAK,MACvC,EAAI,KAAK,gBAAgB,GACzB,MAAM,GAAa,GAAO,CAAO,GACjC,EAAI,QAAQ,gBAAgB,IAE9B,EAAI,KAAK,YAAY,GACrB,GAAU,GAAO,CAAO;CACxB,IAAM,IAAQ,EAAM,QAChB,IAAU,GACR,IAAU,YAAY;EAC1B,SAAa;GACX,IAAM,IAAO,EAAM,IAAI;GACvB,IAAI,CAAC,GACH;GACF,IAAI;IACF,MAAM;GACR,SAAS,GAAO;IACd,EAAQ,IAAI,KAAK,sBAAsB,CAAK;GAC9C;GACA,IAAW,EAAE,GAAS,CAAK;EAC7B;CACF;CAIA,AAHA,IAAW,GAAS,CAAK,GACzB,MAAM,QAAQ,IAAI,CAAC,GAAG,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAO,CAAC,GAC7D,EAAI,QAAQ,YAAY,GACxB,MAAM,IAAc,CAAK;CACzB,IAAM,IAAM,GAAuB,GAAO,CAAO;CAKjD,OAJA,KAAkB,EAAI,aAAa,GAAgB,EAAI,SAAS,EAAE,GAClE,KAAmB,EAAI,aAAa,GAAiB,EAAI,SAAS,EAAE,GACpE,KAAgB,GAAe,CAAO,GACtC,MAAM,IAA2B,CAAG,GAC7B;AACT;AACA,SAAS,GAAuB,GAAO,GAAS;CAC9C,IAAM,EAAE,UAAO,cAAW,GACpB,IAAM,EAAU,GAAO,GAAQ,EAAM,aAAa,GAClD,IAAgB,EAAI,cAAc,gBAAgB,EAAI,cAAc,eAAe;CAOzF,OANA,EAAc,eAAe,MAAM,KAAK,IAAI,GAC5C,EAAc,eAAe,MAAM,KAAK,IAAI,GAC5C,EAAc,eAAe,MAAM,SAAS,MAAM,GAClD,EAAc,eAAe,MAAM,UAAU,MAAM,GACnD,EAAc,OAAO,CAAK,GAC1B,EAAI,YAAY,CAAa,GACtB;AACT;AAEA,eAAe,EAAY,GAAM,GAAS;CACxC,IAAM,IAAU,MAAM,EAAgB,GAAM,CAAO,GAC7C,IAAM,MAAM,GAAsB,CAAO,GACzC,IAAU,EAAa,GAAK,EAAQ,SAAS,wBAAwB,CAAC;CAO5E,OANK,EAAQ,iBACX,EAAQ,kBAAkB,EAAmB,EAAQ,aAAa,GAClE,EAAQ,iBAAiB,EAAQ,eAAe,gBAAgB,GAAO,MAAM,GAC7E,EAAQ,UAAU,MAAM,IAGnB,MAAM,GADC,EAAY,GAAS,EAAI,aACR,GAAG,CAAO;AAC3C;AAEA,eAAe,GAAU,GAAM,GAAS;CACtC,IAAM,IAAU,MAAM,EAAgB,GAAM,CAAO,GAC7C,EAAE,QAAK,SAAM,YAAS,WAAQ,GAC9B,IAAS,MAAM,EAAY,CAAO;CACxC,EAAI,KAAK,gBAAgB;CACzB,IAAM,IAAO,MAAM,GAAa,GAAQ,GAAM,CAAO;CACrD,IAAI,CAAC,aAAa,YAAY,CAAC,CAAC,SAAS,CAAI,KAAK,GAAK;EACrD,IAAM,IAAc,MAAM,GAAkB,EAAK,MAAM,GAAG,EAAE,CAAC,GACzD,IAAa,IAAI,WAAW,CAAW;EAO3C,OANI,MAAS,cACX,IAAa,EAAa,GAAY,CAAG,IAChC,MAAS,iBAClB,IAAa,EAAc,GAAY,CAAG,IAE5C,EAAI,QAAQ,gBAAgB,GACrB,IAAI,KAAK,CAAC,GAAY,EAAK,MAAM,EAAE,CAAC,GAAG,EAAE,QAAK,CAAC;CACxD;CAEA,OADA,EAAI,QAAQ,gBAAgB,GACrB;AACT;AAEA,eAAe,EAAa,GAAM,GAAS;CACzC,IAAM,IAAU,MAAM,EAAgB,GAAM,CAAO,GAC7C,EAAE,QAAK,YAAS,SAAM,WAAQ,GAC9B,IAAS,MAAM,EAAY,CAAO;CACxC,EAAI,KAAK,oBAAoB;CAC7B,IAAI,IAAU,EAAO,UAAU,GAAM,CAAO;CAC5C,IAAI,CAAC,aAAa,YAAY,CAAC,CAAC,SAAS,CAAI,KAAK,KAAO,KAAgB,GAAc;EACrF,IAAM,CAAC,GAAQ,KAAQ,EAAQ,MAAM,GAAG,GACpC,IAAe,GACf,IAAgB;EACpB,IAAI,MAAS,aAAa;GACxB,IAAM,IAAW,EAA2B,CAAI;GAChD,AAAI,KAAY,KACd,IAAe,KAAK,MAAM,IAAW,MAAM,CAAC,IAAI,GAChD,IAAgB,MAEhB,IAAe;EAEnB,OAAO,AAAI,MAAS,iBAClB,IAAe;EAEjB,IAAM,IAAe,EAAK,UAAU,GAAG,CAAY,GAC7C,IAAa,EAAK,UAAU,CAAY,GACxC,IAAc,OAAO,KAAK,CAAY,GACtC,IAAa,IAAI,WAAW,EAAY,MAAM;EACpD,KAAK,IAAI,IAAI,GAAG,IAAI,EAAW,QAAQ,KACrC,EAAW,KAAK,EAAY,WAAW,CAAC;EAE1C,IAAM,IAAa,MAAS,cAAc,EAAa,GAAY,GAAK,CAAa,IAAI,EAAc,GAAY,CAAG;EAEtH,IAAU;GAAC;GAAQ;GADE,OAAO,KAAK,OAAO,aAAa,GAAG,CAAU,CAC/B;GAAG;EAAU,CAAC,CAAC,KAAK,EAAE;CAC3D;CAEA,OADA,EAAI,QAAQ,oBAAoB,GACzB;AACT;AAEA,eAAe,EAAS,GAAM,GAAS;CACrC,IAAM,IAAU,MAAM,EAAgB,GAAM,CAAO,GAC7C,EAAE,UAAO,WAAQ,qBAAkB,GACnC,IAAU,MAAM,EAAa,CAAO,GACpC,IAAM,EAAU,GAAO,GAAQ,CAAa,GAC5C,IAAW,EAAI,cAAc,gBAAgB,EAAI,cAAc,OAAO;CAK5E,OAJA,EAAS,eAAe,MAAM,QAAQ,CAAO,GAC7C,EAAS,eAAe,MAAM,UAAU,MAAM,GAC9C,EAAS,eAAe,MAAM,SAAS,MAAM,GAC7C,EAAI,YAAY,CAAQ,GACjB,EAAa,GAAK,EAAQ,SAAS,wBAAwB,CAAC;AACrE;AAEA,eAAe,GAAW,GAAM,GAAS;CACvC,IAAM,IAAU,MAAM,EAAgB,GAAM,CAAO,GAC7C,EAAE,kBAAe,UAAO,WAAQ,UAAO,YAAS,GAEhD,IAAQ,EADF,MAAS,kBAAkB,MAAM,EAAS,CAAO,IAAI,MAAM,EAAa,CAAO,GAC5D,CAAa;CAK5C,OAJA,EAAM,QAAQ,KAAK,MAAM,IAAQ,CAAK,GACtC,EAAM,SAAS,KAAK,MAAM,IAAS,CAAK,GACxC,EAAM,MAAM,QAAQ,GAAG,EAAM,KAC7B,EAAM,MAAM,SAAS,GAAG,EAAO,KACxB;AACT;AAEA,eAAe,GAAU,GAAM,GAAS;CACtC,OAAO,EACL,MAAM,EAAgB,GAAM;EAAE,GAAG;EAAS,MAAM;CAAa,CAAC,CAChE;AACF;AAEA,eAAe,GAAW,GAAM,GAAS;CAEvC,IAAM,IAAS,MAAM,EAAY,MADX,EAAgB,GAAM,CAAO,CACX;CACxC,OAAO,EAAO,WAAW,IAAI,CAAC,CAAC,aAAa,GAAG,GAAG,EAAO,OAAO,EAAO,MAAM,CAAC,CAAC;AACjF;AAEA,eAAe,GAAS,GAAM,GAAS;CACrC,OAAO,EACL,MAAM,EAAgB,GAAM;EAAE,GAAG;EAAS,MAAM;CAAY,CAAC,CAC/D;AACF;AAEA,eAAe,GAAU,GAAM,GAAS;CACtC,OAAO,EACL,MAAM,EAAgB,GAAM;EAAE,GAAG;EAAS,MAAM;CAAa,CAAC,CAChE;AACF"}
|