drizzle-cube 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/ActivityGridChart.config-D6hhj345.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-QZKs_NYg.js +2 -0
- package/dist/adapters/AreaChart.config-B5XM6G22.js +2 -0
- package/dist/adapters/AreaChart.config-NP34BH5y.cjs +1 -0
- package/dist/adapters/BarChart.config-Bqlmr81N.js +2 -0
- package/dist/adapters/BarChart.config-C3bw-cAP.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-BOAvoj6x.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-CTXiycYY.js +2 -0
- package/dist/adapters/BubbleChart.config-CGFIkl4H.cjs +1 -0
- package/dist/adapters/BubbleChart.config-Njxx4Eq1.js +2 -0
- package/dist/adapters/CandlestickChart.config-BZ_yWaSo.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-D4Svhmef.js +2 -0
- package/dist/adapters/DataTable.config-B-bT9puT.js +2 -0
- package/dist/adapters/DataTable.config-BHtt1cPM.cjs +1 -0
- package/dist/adapters/FunnelChart.config-C1e07O7B.cjs +1 -0
- package/dist/adapters/FunnelChart.config-CVEy0tV9.js +2 -0
- package/dist/adapters/GaugeChart.config-5PLNlQlu.js +2 -0
- package/dist/adapters/GaugeChart.config-Cdv6knjZ.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-MGTfYpWJ.js +2 -0
- package/dist/adapters/HeatMapChart.config-jfBEi1ZI.cjs +1 -0
- package/dist/adapters/KpiDelta.config-D2IUsEYz.cjs +1 -0
- package/dist/adapters/KpiDelta.config-DT_MmAHw.js +2 -0
- package/dist/adapters/KpiNumber.config-ChgbKmx8.cjs +1 -0
- package/dist/adapters/KpiNumber.config-CvZ_FhyL.js +2 -0
- package/dist/adapters/KpiText.config-Bgkw8gr2.js +2 -0
- package/dist/adapters/KpiText.config-Bz9orqt6.cjs +1 -0
- package/dist/adapters/LineChart.config-BVew35dI.cjs +1 -0
- package/dist/adapters/LineChart.config-DSCCKXNg.js +2 -0
- package/dist/adapters/MarkdownChart.config-Bu6XUuhI.js +2 -0
- package/dist/adapters/MarkdownChart.config-E4aSVTf3.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-BF249hc_.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-lERVe38G.js +2 -0
- package/dist/adapters/PieChart.config-7Ujwp8R5.cjs +1 -0
- package/dist/adapters/PieChart.config-jQl2HIcA.js +2 -0
- package/dist/adapters/ProportionBarChart.config-o0w_Pnlt.js +2 -0
- package/dist/adapters/ProportionBarChart.config-phNohhhY.cjs +1 -0
- package/dist/adapters/RadarChart.config-BmrYBd9x.js +2 -0
- package/dist/adapters/RadarChart.config-Dlt3UflG.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CeEm8xRb.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-Dishh6bC.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-BaD4ev85.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-m2FjBUi9.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-DiMplGdk.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-Dp6oYwQZ.cjs +1 -0
- package/dist/adapters/SankeyChart.config-C4Y6qzCS.cjs +1 -0
- package/dist/adapters/SankeyChart.config-CJHqgjQ1.js +2 -0
- package/dist/adapters/ScatterChart.config-C0QqvDrN.cjs +1 -0
- package/dist/adapters/ScatterChart.config-DywOsWPW.js +2 -0
- package/dist/adapters/SunburstChart.config-DE8RxpDR.cjs +1 -0
- package/dist/adapters/SunburstChart.config-DohowrO3.js +2 -0
- package/dist/adapters/TreeMapChart.config-D2gXz-zC.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-HMlI29GG.js +2 -0
- package/dist/adapters/WaterfallChart.config-BO2WV2VB.js +2 -0
- package/dist/adapters/WaterfallChart.config-CzwGiheB.cjs +1 -0
- package/dist/adapters/{compiler-DAyodAnH.cjs → compiler-BNjqYdmc.cjs} +1 -1
- package/dist/adapters/{compiler-Dq04wAjm.js → compiler-DiYxWAKg.js} +1 -1
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BjxfG6Uf.js → core-BOPRmxPc.js} +2 -2
- package/dist/adapters/{core-zV2w0hO2.cjs → core-CzFfrJzu.cjs} +1 -1
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +5 -5
- package/dist/adapters/{handler-ox6qxLw5.js → handler-DGud-C-w.js} +31 -32
- package/dist/adapters/{handler-C6Hj6_Yk.cjs → handler-m6WgA9xu.cjs} +3 -3
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-B0b27YUB.cjs +40 -0
- package/dist/adapters/mcp-transport-BXyA4dTk.js +603 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-C9LNhHfK.js → openai-CGJM6Qun.js} +1 -1
- package/dist/adapters/{openai-BffpdO4n.cjs → openai-CmdN7Sj1.cjs} +1 -1
- package/dist/adapters/{openai-CmyXJWti.js → openai-Crp3X_zg.js} +1 -1
- package/dist/adapters/{openai-DlT-0VRC.cjs → openai-Dwt9bxOE.cjs} +1 -1
- package/dist/adapters/utils-BoOeig94.cjs +128 -0
- package/dist/adapters/{utils-tjiwXFnP.js → utils-DboNUT3A.js} +6 -2
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/client/charts/chartConfigs.d.ts +1 -1
- package/dist/cjs/client/components/charts/GaugeChart.d.ts +8 -0
- package/dist/cjs/client/components/charts/gaugeChartHelpers.d.ts +117 -12
- package/dist/client/charts/chartConfigs.d.ts +1 -1
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-ByXLlXZD.js → DashboardEditModal-BOfLdTgV.js} +1061 -992
- package/dist/client/chunks/{DashboardEditModal-ByXLlXZD.js.map → DashboardEditModal-BOfLdTgV.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-lOeVz8ZC.js → ProportionBarChart-DwoXU5VP.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-lOeVz8ZC.js.map → ProportionBarChart-DwoXU5VP.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-Mcm7zHFx.js → RetentionCombinedChart-BqlSV7yF.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-Mcm7zHFx.js.map → RetentionCombinedChart-BqlSV7yF.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-4VJx5KDM.js → RetentionHeatmap-VdVkBg8Q.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-4VJx5KDM.js.map → RetentionHeatmap-VdVkBg8Q.js.map} +1 -1
- package/dist/client/chunks/{af-ZA-BTaChuqI.js → af-ZA-C0dGb_53.js} +7 -3
- package/dist/client/chunks/af-ZA-C0dGb_53.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-CWTJQQtL.js → analysis-builder-DXw60SEs.js} +9 -9
- package/dist/client/chunks/{analysis-builder-CWTJQQtL.js.map → analysis-builder-DXw60SEs.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-l-4WKVS1.js → analysis-builder-shared-CEvHIlmk.js} +9 -9
- package/dist/client/chunks/{analysis-builder-shared-l-4WKVS1.js.map → analysis-builder-shared-CEvHIlmk.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-DVOhLgxv.js → chart-activity-grid-4jfS8khG.js} +9 -5
- package/dist/client/chunks/chart-activity-grid-4jfS8khG.js.map +1 -0
- package/dist/client/chunks/{chart-area-C-5ATxvi.js → chart-area-Dol6s9no.js} +2 -2
- package/dist/client/chunks/{chart-area-C-5ATxvi.js.map → chart-area-Dol6s9no.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-CPiLaXHP.js → chart-bar-5_niozi2.js} +3 -3
- package/dist/client/chunks/{chart-bar-CPiLaXHP.js.map → chart-bar-5_niozi2.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-Bae5O9xC.js → chart-box-plot-Dhp-VwhD.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-Bae5O9xC.js.map → chart-box-plot-Dhp-VwhD.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-BFN5WIpf.js → chart-bubble-BM2BAMSo.js} +2 -2
- package/dist/client/chunks/{chart-bubble-BFN5WIpf.js.map → chart-bubble-BM2BAMSo.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-PBQKp_z7.js → chart-candlestick-BNwLIBfm.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-PBQKp_z7.js.map → chart-candlestick-BNwLIBfm.js.map} +1 -1
- package/dist/client/chunks/{chart-config-gauge-DNafFwfS.js → chart-config-gauge-CJktdjox.js} +3 -4
- package/dist/client/chunks/chart-config-gauge-CJktdjox.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-SNSqZj9B.js → chart-data-table-DoDHQRe7.js} +4 -4
- package/dist/client/chunks/chart-data-table-DoDHQRe7.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-CkHSXp6h.js → chart-funnel-Cd7da_sa.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CkHSXp6h.js.map → chart-funnel-Cd7da_sa.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DHIGq3TH.js → chart-gauge-DOpul-Oz.js} +169 -116
- package/dist/client/chunks/chart-gauge-DOpul-Oz.js.map +1 -0
- package/dist/client/chunks/{chart-heat-map-Bb8L1XQr.js → chart-heat-map-CeKbK655.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-Bb8L1XQr.js.map → chart-heat-map-CeKbK655.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-BJCOXE-F.js → chart-kpi-delta-Dq8qUOOT.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-BJCOXE-F.js.map → chart-kpi-delta-Dq8qUOOT.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-Cdqgv20g.js → chart-kpi-number-DgiqTi9g.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-Cdqgv20g.js.map → chart-kpi-number-DgiqTi9g.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-B10ZHCsI.js → chart-kpi-text-CsZMVEnM.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-B10ZHCsI.js.map → chart-kpi-text-CsZMVEnM.js.map} +1 -1
- package/dist/client/chunks/{chart-line-CzvVL3Be.js → chart-line-DlwOB7C7.js} +3 -3
- package/dist/client/chunks/{chart-line-CzvVL3Be.js.map → chart-line-DlwOB7C7.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-C0xxBW81.js → chart-markdown-DPE34SjC.js} +2 -2
- package/dist/client/chunks/{chart-markdown-C0xxBW81.js.map → chart-markdown-DPE34SjC.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-BSUPFZCR.js → chart-measure-profile-BpTz1fce.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-BSUPFZCR.js.map → chart-measure-profile-BpTz1fce.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-CwRfwWWZ.js → chart-pie-FGw66XAH.js} +3 -3
- package/dist/client/chunks/{chart-pie-CwRfwWWZ.js.map → chart-pie-FGw66XAH.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-Dfql2E7i.js → chart-radar-D-eRDoiA.js} +3 -3
- package/dist/client/chunks/{chart-radar-Dfql2E7i.js.map → chart-radar-D-eRDoiA.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-oE9OZ1IX.js → chart-radial-bar-DgtkNTs3.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-oE9OZ1IX.js.map → chart-radial-bar-DgtkNTs3.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-tK7Oz1bC.js → chart-sankey-D0hhb_EQ.js} +2 -2
- package/dist/client/chunks/{chart-sankey-tK7Oz1bC.js.map → chart-sankey-D0hhb_EQ.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-BtLfAsZb.js → chart-scatter-D9EcAiMQ.js} +3 -3
- package/dist/client/chunks/{chart-scatter-BtLfAsZb.js.map → chart-scatter-D9EcAiMQ.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-B7ryWwQ1.js → chart-sunburst-DCYmJ5DU.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-B7ryWwQ1.js.map → chart-sunburst-DCYmJ5DU.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-DU5M3-qe.js → chart-tree-map-D_ACSSiB.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-DU5M3-qe.js.map → chart-tree-map-D_ACSSiB.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-CAwutpzd.js → chart-waterfall-CVUVNa1R.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-CAwutpzd.js.map → chart-waterfall-CVUVNa1R.js.map} +1 -1
- package/dist/client/chunks/{charts-core-BxBB2zBE.js → charts-core-BPD_hLaL.js} +2 -2
- package/dist/client/chunks/{charts-core-BxBB2zBE.js.map → charts-core-BPD_hLaL.js.map} +1 -1
- package/dist/client/chunks/charts-loader-CwMcOfwT.js +85 -0
- package/dist/client/chunks/{charts-loader-0avVzeDd.js.map → charts-loader-CwMcOfwT.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-BSMhprPr.js → nl-NL-DFLVORiD.js} +7 -3
- package/dist/client/chunks/nl-NL-DFLVORiD.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-CGbnbzj_.js → schema-visualization-C6g_LCiA.js} +3 -3
- package/dist/client/chunks/{schema-visualization-CGbnbzj_.js.map → schema-visualization-C6g_LCiA.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-Dc-Si4db.js → useDirtyStateTracking-ZfChDEd3.js} +4 -4
- package/dist/client/chunks/{useDirtyStateTracking-Dc-Si4db.js.map → useDirtyStateTracking-ZfChDEd3.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-DJbc7Lu4.js → useExplainAI-im9e1rVb.js} +4 -4
- package/dist/client/chunks/{useExplainAI-DJbc7Lu4.js.map → useExplainAI-im9e1rVb.js.map} +1 -1
- package/dist/client/chunks/{vendor-cTfe9Kho.js → vendor-Qa1s8oSX.js} +2 -2
- package/dist/client/chunks/{vendor-cTfe9Kho.js.map → vendor-Qa1s8oSX.js.map} +1 -1
- package/dist/client/components/charts/GaugeChart.d.ts +8 -0
- package/dist/client/components/charts/gaugeChartHelpers.d.ts +117 -12
- package/dist/client/components.js +1 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +13 -13
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +86 -86
- package/dist/server/index.cjs +3 -3
- package/dist/server/index.js +8 -5
- package/package.json +1 -1
- package/dist/adapters/ActivityGridChart.config-DaYILvFZ.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-_SyTBEyR.js +0 -2
- package/dist/adapters/AreaChart.config-BKh6fY1_.cjs +0 -1
- package/dist/adapters/AreaChart.config-CJoxLP3Y.js +0 -2
- package/dist/adapters/BarChart.config-Bm1bfRbI.cjs +0 -1
- package/dist/adapters/BarChart.config-CGu2Bqrx.js +0 -2
- package/dist/adapters/BoxPlotChart.config-B7M9CQaE.js +0 -2
- package/dist/adapters/BoxPlotChart.config-CXQel8Hk.cjs +0 -1
- package/dist/adapters/BubbleChart.config-BJ36IuVS.cjs +0 -1
- package/dist/adapters/BubbleChart.config-CWoXeLdm.js +0 -2
- package/dist/adapters/CandlestickChart.config-CGMLZVIy.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-CzOcfF1e.js +0 -2
- package/dist/adapters/DataTable.config-CdAzueTs.cjs +0 -1
- package/dist/adapters/DataTable.config-D_KmPyxV.js +0 -2
- package/dist/adapters/FunnelChart.config-D1QAUuYl.cjs +0 -1
- package/dist/adapters/FunnelChart.config-DCRHQoFc.js +0 -2
- package/dist/adapters/GaugeChart.config-DAybRXP3.js +0 -2
- package/dist/adapters/GaugeChart.config-WUPfyLP-.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-CziltPnC.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-DHpXNONW.js +0 -2
- package/dist/adapters/KpiDelta.config-Bw5o0ocY.js +0 -2
- package/dist/adapters/KpiDelta.config-CdAmE1pw.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CQ_wq2gx.js +0 -2
- package/dist/adapters/KpiNumber.config-wxN8x4DC.cjs +0 -1
- package/dist/adapters/KpiText.config-DIRIC97F.cjs +0 -1
- package/dist/adapters/KpiText.config-eODcP6Hn.js +0 -2
- package/dist/adapters/LineChart.config-32-9zA2V.js +0 -2
- package/dist/adapters/LineChart.config-BukeFp6z.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BVsR5LDy.js +0 -2
- package/dist/adapters/MarkdownChart.config-j4veYjcZ.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-BRDYx1hw.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-CIosBxco.cjs +0 -1
- package/dist/adapters/PieChart.config-Bj8KiA0n.cjs +0 -1
- package/dist/adapters/PieChart.config-DgAj3y-I.js +0 -2
- package/dist/adapters/ProportionBarChart.config-BfFOppHY.js +0 -2
- package/dist/adapters/ProportionBarChart.config-c8GGE1aK.cjs +0 -1
- package/dist/adapters/RadarChart.config-D7iHY1v9.js +0 -2
- package/dist/adapters/RadarChart.config-ghlANG2-.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-CsXIz-0v.js +0 -2
- package/dist/adapters/RadialBarChart.config-Dsvu2CPV.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-CdT1kXC7.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-sDjFKH9K.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-CvKBvQmu.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-DbM3ICwc.js +0 -2
- package/dist/adapters/SankeyChart.config-BNBcIHaD.js +0 -2
- package/dist/adapters/SankeyChart.config-DZscz3kh.cjs +0 -1
- package/dist/adapters/ScatterChart.config-BNYIddyM.cjs +0 -1
- package/dist/adapters/ScatterChart.config-CEhtoLWc.js +0 -2
- package/dist/adapters/SunburstChart.config-ClseCzji.cjs +0 -1
- package/dist/adapters/SunburstChart.config-nnphNoVO.js +0 -2
- package/dist/adapters/TreeMapChart.config-C8-75muA.js +0 -2
- package/dist/adapters/TreeMapChart.config-DoXeUg9Y.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-BOF1qxY3.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-uW5YyOji.js +0 -2
- package/dist/adapters/mcp-transport-C_t_p0wU.cjs +0 -40
- package/dist/adapters/mcp-transport-DFH9e6de.js +0 -603
- package/dist/adapters/utils-C5FLHK04.cjs +0 -128
- package/dist/client/chunks/af-ZA-BTaChuqI.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-DVOhLgxv.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-DNafFwfS.js.map +0 -1
- package/dist/client/chunks/chart-data-table-SNSqZj9B.js.map +0 -1
- package/dist/client/chunks/chart-gauge-DHIGq3TH.js.map +0 -1
- package/dist/client/chunks/charts-loader-0avVzeDd.js +0 -85
- package/dist/client/chunks/nl-NL-BSMhprPr.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as e } from "./rolldown-runtime-DArdT4gl.js";
|
|
2
|
-
import { P as t, S as n, w as r } from "./chart-activity-grid-
|
|
3
|
-
import { D as i, O as a, k as o } from "./chart-area-
|
|
2
|
+
import { P as t, S as n, w as r } from "./chart-activity-grid-4jfS8khG.js";
|
|
3
|
+
import { D as i, O as a, k as o } from "./chart-area-Dol6s9no.js";
|
|
4
4
|
import s, { useLayoutEffect as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
5
5
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
6
6
|
//#region node_modules/d3-shape/src/constant.js
|
|
@@ -114,7 +114,7 @@ function ee(e, t, n, r, i, a, o, s) {
|
|
|
114
114
|
var c = n - e, l = r - t, u = o - i, d = s - a, f = d * c - u * l;
|
|
115
115
|
if (!(f * f < 1e-12)) return f = (u * (t - a) - d * (e - i)) / f, [e + f * c, t + f * l];
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function te(e, t, n, r, i, a, o) {
|
|
118
118
|
var s = e - n, c = t - r, l = (o ? a : -a) / x(s * s + c * c), u = l * c, d = -l * s, f = e + u, p = t + d, m = n + u, h = r + d, g = (f + m) / 2, _ = (p + h) / 2, y = m - f, b = h - p, S = y * y + b * b, C = i - a, w = f * h - m * p, T = (b < 0 ? -1 : 1) * x(v(0, C * C * S - w * w)), E = (w * b - y * T) / S, D = (-w * y - b * T) / S, O = (w * b + y * T) / S, k = (-w * y + b * T) / S, A = E - g, j = D - _, M = O - g, N = k - _;
|
|
119
119
|
return A * A + j * j > M * M + N * N && (E = O, D = k), {
|
|
120
120
|
cx: E,
|
|
@@ -125,29 +125,29 @@ function B(e, t, n, r, i, a, o) {
|
|
|
125
125
|
y11: D * (i / C - 1)
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
|
-
function
|
|
128
|
+
function B() {
|
|
129
129
|
var e = F, t = I, n = m(0), r = null, i = L, a = R, o = z, s = null, c = P(l);
|
|
130
130
|
function l() {
|
|
131
131
|
var l, u, d = +e.apply(this, arguments), f = +t.apply(this, arguments), p = i.apply(this, arguments) - C, m = a.apply(this, arguments) - C, v = h(m - p), D = m > p;
|
|
132
132
|
if (s ||= l = c(), f < d && (u = f, f = d, d = u), !(f > 1e-12)) s.moveTo(0, 0);
|
|
133
133
|
else if (v > w - 1e-12) s.moveTo(f * _(p), f * b(p)), s.arc(0, 0, f, p, m, !D), d > 1e-12 && (s.moveTo(d * _(m), d * b(m)), s.arc(0, 0, d, m, p, D));
|
|
134
134
|
else {
|
|
135
|
-
var O = p, k = m, A = p, j = m, M = v, N = v, P = o.apply(this, arguments) / 2, F = P > 1e-12 && (r ? +r.apply(this, arguments) : x(d * d + f * f)), I = y(h(f - d) / 2, +n.apply(this, arguments)), L = I, R = I, z,
|
|
135
|
+
var O = p, k = m, A = p, j = m, M = v, N = v, P = o.apply(this, arguments) / 2, F = P > 1e-12 && (r ? +r.apply(this, arguments) : x(d * d + f * f)), I = y(h(f - d) / 2, +n.apply(this, arguments)), L = I, R = I, z, B;
|
|
136
136
|
if (F > 1e-12) {
|
|
137
|
-
var
|
|
138
|
-
(M -=
|
|
137
|
+
var V = E(F / d * b(P)), H = E(F / f * b(P));
|
|
138
|
+
(M -= V * 2) > 1e-12 ? (V *= D ? 1 : -1, A += V, j -= V) : (M = 0, A = j = (p + m) / 2), (N -= H * 2) > 1e-12 ? (H *= D ? 1 : -1, O += H, k -= H) : (N = 0, O = k = (p + m) / 2);
|
|
139
139
|
}
|
|
140
|
-
var
|
|
140
|
+
var U = f * _(O), W = f * b(O), G = d * _(j), K = d * b(j);
|
|
141
141
|
if (I > 1e-12) {
|
|
142
|
-
var
|
|
142
|
+
var q = f * _(k), J = f * b(k), ne = d * _(A), Y = d * b(A), X;
|
|
143
143
|
if (v < S) {
|
|
144
|
-
if (
|
|
145
|
-
var
|
|
144
|
+
if (X = ee(U, W, ne, Y, q, J, G, K)) {
|
|
145
|
+
var Z = U - X[0], Q = W - X[1], $ = q - X[0], re = J - X[1], ie = 1 / b(T((Z * $ + Q * re) / (x(Z * Z + Q * Q) * x($ * $ + re * re))) / 2), ae = x(X[0] * X[0] + X[1] * X[1]);
|
|
146
146
|
L = y(I, (d - ae) / (ie - 1)), R = y(I, (f - ae) / (ie + 1));
|
|
147
147
|
} else L = R = 0;
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
N > 1e-12 ? R > 1e-12 ? (z =
|
|
150
|
+
N > 1e-12 ? R > 1e-12 ? (z = te(ne, Y, U, W, f, R, D), B = te(q, J, G, K, f, R, D), s.moveTo(z.cx + z.x01, z.cy + z.y01), R < I ? s.arc(z.cx, z.cy, R, g(z.y01, z.x01), g(B.y01, B.x01), !D) : (s.arc(z.cx, z.cy, R, g(z.y01, z.x01), g(z.y11, z.x11), !D), s.arc(0, 0, f, g(z.cy + z.y11, z.cx + z.x11), g(B.cy + B.y11, B.cx + B.x11), !D), s.arc(B.cx, B.cy, R, g(B.y11, B.x11), g(B.y01, B.x01), !D))) : (s.moveTo(U, W), s.arc(0, 0, f, O, k, !D)) : s.moveTo(U, W), !(d > 1e-12) || !(M > 1e-12) ? s.lineTo(G, K) : L > 1e-12 ? (z = te(G, K, q, J, d, -L, D), B = te(U, W, ne, Y, d, -L, D), s.lineTo(z.cx + z.x01, z.cy + z.y01), L < I ? s.arc(z.cx, z.cy, L, g(z.y01, z.x01), g(B.y01, B.x01), !D) : (s.arc(z.cx, z.cy, L, g(z.y01, z.x01), g(z.y11, z.x11), !D), s.arc(0, 0, d, g(z.cy + z.y11, z.cx + z.x11), g(B.cy + B.y11, B.cx + B.x11), D), s.arc(B.cx, B.cy, L, g(B.y11, B.x11), g(B.y01, B.x01), !D))) : s.arc(0, 0, d, j, A, D);
|
|
151
151
|
}
|
|
152
152
|
if (s.closePath(), l) return s = null, l + "" || null;
|
|
153
153
|
}
|
|
@@ -174,36 +174,44 @@ function V() {
|
|
|
174
174
|
}
|
|
175
175
|
//#endregion
|
|
176
176
|
//#region src/client/components/charts/gaugeChartHelpers.ts
|
|
177
|
-
var
|
|
178
|
-
function
|
|
177
|
+
var V = -Math.PI * .75, H = Math.PI * .75 - V, U = "var(--dc-accent)", W = .04, G = .02, K = .38, q = 1e-6, J = 1 + Math.SQRT1_2, ne = .94;
|
|
178
|
+
function Y(e) {
|
|
179
179
|
if (e == null) return null;
|
|
180
180
|
let t = typeof e == "number" ? e : parseFloat(String(e));
|
|
181
181
|
return isNaN(t) ? null : t;
|
|
182
182
|
}
|
|
183
|
-
function
|
|
183
|
+
function X(e, t, n) {
|
|
184
184
|
return Math.max(t, Math.min(n, e));
|
|
185
185
|
}
|
|
186
|
-
function
|
|
187
|
-
|
|
188
|
-
return H + q((e - t) / r, 0, 1) * (U - H);
|
|
186
|
+
function Z(e, t) {
|
|
187
|
+
return typeof e == "number" && Number.isFinite(e) ? e : t;
|
|
189
188
|
}
|
|
190
|
-
function
|
|
191
|
-
|
|
189
|
+
function Q(e) {
|
|
190
|
+
return V + X(e, 0, 1) * H;
|
|
191
|
+
}
|
|
192
|
+
function $(e, t) {
|
|
193
|
+
return {
|
|
194
|
+
x: Math.sin(e) * t,
|
|
195
|
+
y: -Math.cos(e) * t
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function re(e, t) {
|
|
199
|
+
let n = se(t), r = U;
|
|
192
200
|
for (let t of n) e >= t.value && (r = t.color);
|
|
193
201
|
return r;
|
|
194
202
|
}
|
|
195
|
-
function
|
|
196
|
-
return
|
|
203
|
+
function ie(e, t, n, r, i = 0) {
|
|
204
|
+
return B().cornerRadius(i)({
|
|
197
205
|
innerRadius: e,
|
|
198
206
|
outerRadius: t,
|
|
199
207
|
startAngle: n,
|
|
200
208
|
endAngle: r
|
|
201
209
|
}) ?? "";
|
|
202
210
|
}
|
|
203
|
-
function
|
|
204
|
-
return typeof e == "object" && !!e && typeof e.value == "number" && typeof e.color == "string";
|
|
211
|
+
function ae(e) {
|
|
212
|
+
return typeof e == "object" && !!e && typeof e.value == "number" && Number.isFinite(e.value) && typeof e.color == "string" && e.color.trim() !== "";
|
|
205
213
|
}
|
|
206
|
-
function
|
|
214
|
+
function oe(e) {
|
|
207
215
|
let t = null;
|
|
208
216
|
if (Array.isArray(e)) t = e;
|
|
209
217
|
else if (typeof e == "string" && e.trim()) try {
|
|
@@ -212,55 +220,104 @@ function Q(e) {
|
|
|
212
220
|
} catch (e) {
|
|
213
221
|
return console.warn("GaugeChart: invalid threshold JSON", e), [];
|
|
214
222
|
}
|
|
215
|
-
return t ? t.filter(
|
|
223
|
+
return t ? t.filter(ae) : [];
|
|
216
224
|
}
|
|
217
|
-
function
|
|
218
|
-
|
|
219
|
-
let t = [...e].sort((e, t) => e.value - t.value);
|
|
220
|
-
return t.map((e, n) => ({
|
|
225
|
+
function se(e) {
|
|
226
|
+
return e.map((e) => ({
|
|
221
227
|
color: e.color,
|
|
222
|
-
|
|
223
|
-
|
|
228
|
+
value: X(e.value, 0, 1)
|
|
229
|
+
})).sort((e, t) => e.value - t.value);
|
|
230
|
+
}
|
|
231
|
+
function ce(e) {
|
|
232
|
+
let t = se(e), n = [];
|
|
233
|
+
return t.length === 0 ? n.push({
|
|
234
|
+
color: U,
|
|
235
|
+
startFraction: 0,
|
|
236
|
+
endFraction: 1
|
|
237
|
+
}) : (t[0].value > q && n.push({
|
|
238
|
+
color: U,
|
|
239
|
+
startFraction: 0,
|
|
240
|
+
endFraction: t[0].value
|
|
241
|
+
}), t.forEach((e, r) => {
|
|
242
|
+
n.push({
|
|
243
|
+
color: e.color,
|
|
244
|
+
startFraction: e.value,
|
|
245
|
+
endFraction: r < t.length - 1 ? t[r + 1].value : 1
|
|
246
|
+
});
|
|
247
|
+
})), n.filter((e) => e.endFraction - e.startFraction > q).map((e) => ({
|
|
248
|
+
...e,
|
|
249
|
+
startAngle: Q(e.startFraction),
|
|
250
|
+
endAngle: Q(e.endFraction)
|
|
251
|
+
}));
|
|
252
|
+
}
|
|
253
|
+
function le(e, t = W) {
|
|
254
|
+
let n = Math.max(t, 0) / 2;
|
|
255
|
+
return e.map((t, r) => ({
|
|
256
|
+
color: t.color,
|
|
257
|
+
startAngle: t.startAngle + (r === 0 ? 0 : n),
|
|
258
|
+
endAngle: t.endAngle + (r === e.length - 1 ? 0 : -n)
|
|
259
|
+
})).filter((e) => e.endAngle - e.startAngle >= G);
|
|
260
|
+
}
|
|
261
|
+
function ue(e, t, n) {
|
|
262
|
+
let r = [0];
|
|
263
|
+
for (let t of e) r.push(t.startFraction, t.endFraction);
|
|
264
|
+
r.push(1);
|
|
265
|
+
let i = [...r].sort((e, t) => e - t).filter((e, t, n) => t === 0 || e - n[t - 1] > q), a = [];
|
|
266
|
+
for (let e = i.length - 1; e >= 0; e--) {
|
|
267
|
+
let t = Q(i[e]), n = a.length > 0 ? Q(a[a.length - 1]) : null;
|
|
268
|
+
(n === null || n - t >= K) && a.push(i[e]);
|
|
269
|
+
}
|
|
270
|
+
return a.reverse().map((e) => ({
|
|
271
|
+
fraction: e,
|
|
272
|
+
value: t + e * (n - t),
|
|
273
|
+
angle: Q(e)
|
|
224
274
|
}));
|
|
225
275
|
}
|
|
226
|
-
function
|
|
227
|
-
let
|
|
276
|
+
function de(e, t, n) {
|
|
277
|
+
let r = $(e, t), i = Math.cos(e), a = Math.sin(e), o = (e) => Number(e.toFixed(3));
|
|
278
|
+
return [
|
|
279
|
+
`M${o(r.x)},${o(r.y)}`,
|
|
280
|
+
`L${o(i * n)},${o(a * n)}`,
|
|
281
|
+
`L${o(-i * n)},${o(-a * n)}`,
|
|
282
|
+
"Z"
|
|
283
|
+
].join("");
|
|
284
|
+
}
|
|
285
|
+
function fe(e, t) {
|
|
286
|
+
let n = Math.max(Z(e, 0), 1), r = Math.max(Z(t, 0), 1), i = Math.max(1, Math.min(n / 2, r / J) * ne), a = i, o = i * .8;
|
|
228
287
|
return {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
288
|
+
cx: n / 2,
|
|
289
|
+
cy: r / 2 + i * (1 - J / 2),
|
|
290
|
+
radius: i,
|
|
291
|
+
outerRadius: a,
|
|
292
|
+
innerRadius: o,
|
|
293
|
+
bandCornerRadius: (a - o) / 2,
|
|
294
|
+
tickRadius: i * .7,
|
|
295
|
+
needleLength: i * .56,
|
|
296
|
+
needleHalfWidth: i * .055,
|
|
297
|
+
hubRadius: i * .075,
|
|
298
|
+
tickFontSize: i * .095,
|
|
299
|
+
labelFontSize: i * .1,
|
|
300
|
+
labelY: i * .28,
|
|
301
|
+
valueFontSize: i * .165,
|
|
302
|
+
valueY: i * .52
|
|
235
303
|
};
|
|
236
304
|
}
|
|
237
|
-
function
|
|
238
|
-
|
|
305
|
+
function pe(e, t, n, r) {
|
|
306
|
+
let i = Z(t, 0), a = Z(n, i + 1), o = a <= i ? i + 1 : a, s = X(Z(e, i), i, o), c = X((s - i) / (o - i), 0, 1);
|
|
307
|
+
return {
|
|
308
|
+
effectiveMax: o,
|
|
309
|
+
clampedValue: s,
|
|
310
|
+
fraction: c,
|
|
311
|
+
fillColor: re(c, r),
|
|
312
|
+
needleAngle: Q(c)
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
function me(e, t) {
|
|
316
|
+
return r(e, t);
|
|
239
317
|
}
|
|
240
318
|
//#endregion
|
|
241
319
|
//#region src/client/components/charts/GaugeChart.tsx
|
|
242
|
-
var
|
|
243
|
-
function ie({ angle: e, radius: t }) {
|
|
244
|
-
let n = t * .72, r = t * .06, i = Math.cos(e - Math.PI / 2) * n, a = Math.sin(e - Math.PI / 2) * n;
|
|
245
|
-
return /* @__PURE__ */ p("g", {
|
|
246
|
-
"data-testid": "gauge-needle",
|
|
247
|
-
children: [/* @__PURE__ */ f("circle", {
|
|
248
|
-
r,
|
|
249
|
-
fill: "currentColor",
|
|
250
|
-
className: "text-dc-text-secondary"
|
|
251
|
-
}), /* @__PURE__ */ f("line", {
|
|
252
|
-
x1: 0,
|
|
253
|
-
y1: 0,
|
|
254
|
-
x2: i,
|
|
255
|
-
y2: a,
|
|
256
|
-
stroke: "currentColor",
|
|
257
|
-
strokeWidth: 3,
|
|
258
|
-
strokeLinecap: "round",
|
|
259
|
-
className: "text-dc-text-secondary"
|
|
260
|
-
})]
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
var ae = s.memo(function({ data: e, chartConfig: r, displayConfig: s = {}, height: m = "100%" }) {
|
|
320
|
+
var he = /* @__PURE__ */ e({ default: () => ge }), ge = s.memo(function({ data: e, chartConfig: r, displayConfig: s = {}, height: m = "100%" }) {
|
|
264
321
|
let { t: h } = t(), g = n(), _ = u(null), [v, y] = d({
|
|
265
322
|
width: 0,
|
|
266
323
|
height: 0
|
|
@@ -295,7 +352,7 @@ var ae = s.memo(function({ data: e, chartConfig: r, displayConfig: s = {}, heigh
|
|
|
295
352
|
maxField: n,
|
|
296
353
|
configError: "Gauge requires at least 1 measure in Y-Axis (current value)"
|
|
297
354
|
};
|
|
298
|
-
}, [r]), C = l(() =>
|
|
355
|
+
}, [r]), C = l(() => oe(s?.thresholds), [s?.thresholds]), w = l(() => ce(C), [C]), T = l(() => le(w), [w]);
|
|
299
356
|
try {
|
|
300
357
|
if (!e || e.length === 0) return /* @__PURE__ */ f(a, {
|
|
301
358
|
height: m,
|
|
@@ -305,13 +362,13 @@ var ae = s.memo(function({ data: e, chartConfig: r, displayConfig: s = {}, heigh
|
|
|
305
362
|
height: m,
|
|
306
363
|
hint: S
|
|
307
364
|
});
|
|
308
|
-
let t = e[0], n =
|
|
309
|
-
if (n === null) return /* @__PURE__ */ f(a, {
|
|
365
|
+
let t = e[0], n = Y(t[b]);
|
|
366
|
+
if (n === null || !Number.isFinite(n)) return /* @__PURE__ */ f(a, {
|
|
310
367
|
height: m,
|
|
311
368
|
titleKey: "chart.runtime.noValidData",
|
|
312
369
|
hint: h("chart.runtime.noValidDataHint.gauge")
|
|
313
370
|
});
|
|
314
|
-
let r = s?.minValue
|
|
371
|
+
let r = Z(s?.minValue, 0), o = x ? Y(t[x]) : null, { effectiveMax: c, fraction: l, fillColor: u, needleAngle: d } = pe(n, r, Z(s?.maxValue ?? o, 100), C), y = s?.showCenterLabel ?? !0, E = s?.showPercentage ?? !1, D = s?.leftYAxisFormat, O = v.width || 300, k = typeof m == "number" ? m : v.height || 200, A = fe(O, k), j = ue(w, r, c), M = E ? `${(l * 100).toFixed(1)}%` : me(n, D), N = g(b);
|
|
315
372
|
return /* @__PURE__ */ f("div", {
|
|
316
373
|
ref: _,
|
|
317
374
|
className: "dc:relative dc:w-full",
|
|
@@ -323,67 +380,63 @@ var ae = s.memo(function({ data: e, chartConfig: r, displayConfig: s = {}, heigh
|
|
|
323
380
|
preserveAspectRatio: "xMidYMid meet",
|
|
324
381
|
"data-testid": "gauge-svg",
|
|
325
382
|
children: /* @__PURE__ */ p("g", {
|
|
326
|
-
transform: `translate(${
|
|
383
|
+
transform: `translate(${A.cx}, ${A.cy})`,
|
|
327
384
|
children: [
|
|
328
|
-
/* @__PURE__ */ f("path", {
|
|
329
|
-
d:
|
|
330
|
-
fill: W,
|
|
331
|
-
"data-testid": "gauge-track"
|
|
332
|
-
}),
|
|
333
|
-
w.map((e, t) => /* @__PURE__ */ f("path", {
|
|
334
|
-
d: X(j + 4, j + 8, e.start, e.end),
|
|
385
|
+
T.map((e, t) => /* @__PURE__ */ f("path", {
|
|
386
|
+
d: ie(A.innerRadius, A.outerRadius, e.startAngle, e.endAngle, A.bandCornerRadius),
|
|
335
387
|
fill: e.color,
|
|
336
388
|
"data-testid": `gauge-band-${t}`
|
|
337
389
|
}, t)),
|
|
390
|
+
j.map((e, t) => {
|
|
391
|
+
let n = $(e.angle, A.tickRadius);
|
|
392
|
+
return /* @__PURE__ */ f("text", {
|
|
393
|
+
x: n.x,
|
|
394
|
+
y: n.y,
|
|
395
|
+
textAnchor: "middle",
|
|
396
|
+
dominantBaseline: "central",
|
|
397
|
+
fontSize: A.tickFontSize,
|
|
398
|
+
fill: "currentColor",
|
|
399
|
+
className: "text-dc-text-muted",
|
|
400
|
+
"data-testid": `gauge-tick-${t}`,
|
|
401
|
+
children: me(e.value, D)
|
|
402
|
+
}, t);
|
|
403
|
+
}),
|
|
338
404
|
/* @__PURE__ */ f("path", {
|
|
339
|
-
d:
|
|
340
|
-
fill:
|
|
341
|
-
|
|
342
|
-
"data-
|
|
405
|
+
d: de(d, A.needleLength, A.needleHalfWidth),
|
|
406
|
+
fill: "currentColor",
|
|
407
|
+
className: "text-dc-text-secondary",
|
|
408
|
+
"data-testid": "gauge-needle",
|
|
409
|
+
"data-fraction": l.toFixed(4),
|
|
410
|
+
"data-color": u
|
|
343
411
|
}),
|
|
344
|
-
/* @__PURE__ */ f(
|
|
345
|
-
|
|
346
|
-
|
|
412
|
+
/* @__PURE__ */ f("circle", {
|
|
413
|
+
r: A.hubRadius,
|
|
414
|
+
fill: "currentColor",
|
|
415
|
+
className: "text-dc-text-secondary",
|
|
416
|
+
"data-testid": "gauge-hub"
|
|
347
417
|
}),
|
|
348
|
-
|
|
418
|
+
y && /* @__PURE__ */ p("g", {
|
|
349
419
|
"data-testid": "gauge-label",
|
|
350
420
|
children: [/* @__PURE__ */ f("text", {
|
|
351
421
|
textAnchor: "middle",
|
|
352
|
-
dominantBaseline: "
|
|
353
|
-
|
|
354
|
-
|
|
422
|
+
dominantBaseline: "central",
|
|
423
|
+
y: A.labelY,
|
|
424
|
+
fontSize: A.labelFontSize,
|
|
355
425
|
fill: "currentColor",
|
|
356
|
-
|
|
357
|
-
"data-testid": "gauge-
|
|
358
|
-
children:
|
|
426
|
+
className: "text-dc-text-secondary",
|
|
427
|
+
"data-testid": "gauge-field-text",
|
|
428
|
+
children: N
|
|
359
429
|
}), /* @__PURE__ */ f("text", {
|
|
360
430
|
textAnchor: "middle",
|
|
361
|
-
|
|
431
|
+
dominantBaseline: "central",
|
|
432
|
+
y: A.valueY,
|
|
433
|
+
fontSize: A.valueFontSize,
|
|
434
|
+
fontWeight: "600",
|
|
362
435
|
fill: "currentColor",
|
|
363
|
-
className: "text-dc-text
|
|
364
|
-
|
|
365
|
-
children:
|
|
436
|
+
className: "text-dc-text",
|
|
437
|
+
"data-testid": "gauge-value-text",
|
|
438
|
+
children: M
|
|
366
439
|
})]
|
|
367
|
-
}),
|
|
368
|
-
/* @__PURE__ */ f("text", {
|
|
369
|
-
x: Math.cos(H - Math.PI / 2) * (j + 14),
|
|
370
|
-
y: Math.sin(H - Math.PI / 2) * (j + 14),
|
|
371
|
-
textAnchor: "middle",
|
|
372
|
-
fontSize: A * .12,
|
|
373
|
-
fill: "currentColor",
|
|
374
|
-
className: "text-dc-text-secondary",
|
|
375
|
-
"data-testid": "gauge-min-label",
|
|
376
|
-
children: $(r, D)
|
|
377
|
-
}),
|
|
378
|
-
/* @__PURE__ */ f("text", {
|
|
379
|
-
x: Math.cos(U - Math.PI / 2) * (j + 14),
|
|
380
|
-
y: Math.sin(U - Math.PI / 2) * (j + 14),
|
|
381
|
-
textAnchor: "middle",
|
|
382
|
-
fontSize: A * .12,
|
|
383
|
-
fill: "currentColor",
|
|
384
|
-
className: "text-dc-text-secondary",
|
|
385
|
-
"data-testid": "gauge-max-label",
|
|
386
|
-
children: $(c, D)
|
|
387
440
|
})
|
|
388
441
|
]
|
|
389
442
|
})
|
|
@@ -398,6 +451,6 @@ var ae = s.memo(function({ data: e, chartConfig: r, displayConfig: s = {}, heigh
|
|
|
398
451
|
}
|
|
399
452
|
});
|
|
400
453
|
//#endregion
|
|
401
|
-
export {
|
|
454
|
+
export { oe as n, he as t };
|
|
402
455
|
|
|
403
|
-
//# sourceMappingURL=chart-gauge-
|
|
456
|
+
//# sourceMappingURL=chart-gauge-DOpul-Oz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-gauge-DOpul-Oz.js","names":["epsilon","pi","tau","constant","tau","pi"],"sources":["../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/math.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-shape/src/path.js","../../../node_modules/d3-shape/src/arc.js","../../../src/client/components/charts/gaugeChartHelpers.ts","../../../src/client/components/charts/GaugeChart.tsx"],"sourcesContent":["export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { arc } from 'd3-shape'\nimport { formatAxisValue } from '../../utils/chartUtils.js'\nimport type { AxisFormatConfig, ThresholdBand } from '../../types.js'\n\n/**\n * Co-located geometry/value maths for {@link GaugeChart}.\n *\n * Everything here is pure so the component stays declarative: it reads a\n * layout, a list of band segments, a list of scale ticks and a needle path,\n * then renders them.\n *\n * ## Angle convention\n * d3-shape's: `0` points at 12 o'clock and positive angles run clockwise. The\n * dial sweeps 270°, from `START_ANGLE` (-135°, lower-left) to `END_ANGLE`\n * (+135°, lower-right).\n *\n * ## Threshold semantics\n * A {@link ThresholdBand}'s `value` is the **lower bound** of its band, as a\n * 0–1 fraction of the min→max range. So `[{0, red}, {0.5, amber}, {0.7, green}]`\n * paints 0–50% red, 50–70% amber and 70–100% green. This matches\n * {@link resolveColor}, and the invariant\n * `bandContaining(f).color === resolveColor(f)` holds for every `f` in [0, 1).\n */\n\n/** Dial start: -135°, lower-left. */\nexport const START_ANGLE = -Math.PI * 0.75\n/** Dial end: +135°, lower-right. */\nexport const END_ANGLE = Math.PI * 0.75\n/** Total dial sweep in radians (270°). */\nexport const ANGLE_SPAN = END_ANGLE - START_ANGLE\n\n/** Neutral band colour for the region below every configured threshold. */\nexport const DEFAULT_FILL = 'var(--dc-accent)'\n/** Angular gap rendered between adjacent band segments (radians, ~2.3°). */\nexport const BAND_GAP_RADIANS = 0.04\n/** Band segments narrower than this (after the gap) are not drawn. */\nconst MIN_SEGMENT_ANGLE = 0.02\n/**\n * Minimum angular separation between two rendered scale ticks (~22°). Keeps\n * labels from colliding on a dial configured with many thresholds.\n */\nconst MIN_TICK_SEPARATION = 0.38\n/** Fractions closer together than this are treated as the same boundary. */\nconst FRACTION_EPSILON = 1e-6\n\n/**\n * Height of the 270° arc's bounding box as a multiple of its radius.\n * The arc spans y from `-r` (top) to `+r·cos45°` (the two lower tips).\n */\nexport const ARC_BBOX_HEIGHT_RATIO = 1 + Math.SQRT1_2\n/** Width of the 270° arc's bounding box as a multiple of its radius. */\nexport const ARC_BBOX_WIDTH_RATIO = 2\n/** Fraction of the available box the dial occupies, leaving a little breathing room. */\nconst DIAL_MARGIN = 0.94\n\nexport function parseNum(v: unknown): number | null {\n if (v === undefined || v === null) return null\n const n = typeof v === 'number' ? v : parseFloat(String(v))\n return isNaN(n) ? null : n\n}\n\nexport function clamp(v: number, lo: number, hi: number): number {\n return Math.max(lo, Math.min(hi, v))\n}\n\n/** A finite `value`, or `fallback` when it is undefined / NaN / infinite. */\nexport function finiteOr(value: number | undefined | null, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback\n}\n\n/** Map a 0–1 fraction of the range onto its dial angle. */\nexport function fractionToAngle(fraction: number): number {\n return START_ANGLE + clamp(fraction, 0, 1) * ANGLE_SPAN\n}\n\nexport function valueToAngle(value: number, min: number, max: number): number {\n const span = max === min ? 1 : max - min\n return fractionToAngle((value - min) / span)\n}\n\n/** Cartesian point at `angle`/`radius` in the d3 angle convention. */\nexport function polarPoint(angle: number, radius: number): { x: number; y: number } {\n return { x: Math.sin(angle) * radius, y: -Math.cos(angle) * radius }\n}\n\nexport function resolveColor(fraction: number, thresholds: ThresholdBand[]): string {\n const sorted = normalizeThresholds(thresholds)\n let color = DEFAULT_FILL\n for (const t of sorted) {\n if (fraction >= t.value) color = t.color\n }\n return color\n}\n\nexport function buildArcPath(\n innerRadius: number,\n outerRadius: number,\n startAngle: number,\n endAngle: number,\n cornerRadius = 0\n): string {\n const pathFn = arc().cornerRadius(cornerRadius)\n return pathFn({ innerRadius, outerRadius, startAngle, endAngle }) ?? ''\n}\n\nfunction isThresholdBand(entry: unknown): entry is ThresholdBand {\n return (\n entry !== null &&\n typeof entry === 'object' &&\n typeof (entry as ThresholdBand).value === 'number' &&\n Number.isFinite((entry as ThresholdBand).value) &&\n typeof (entry as ThresholdBand).color === 'string' &&\n (entry as ThresholdBand).color.trim() !== ''\n )\n}\n\n/** Parse the displayConfig.thresholds value (array or JSON string) into bands. */\nexport function parseThresholds(raw: unknown): ThresholdBand[] {\n let arr: unknown[] | null = null\n if (Array.isArray(raw)) {\n arr = raw\n } else if (typeof raw === 'string' && raw.trim()) {\n try {\n const parsed: unknown = JSON.parse(raw)\n if (Array.isArray(parsed)) arr = parsed\n } catch (e) {\n console.warn('GaugeChart: invalid threshold JSON', e)\n return []\n }\n }\n if (!arr) return []\n return arr.filter(isThresholdBand)\n}\n\n/** Clamp threshold fractions into [0, 1] and sort them ascending. */\nexport function normalizeThresholds(thresholds: ThresholdBand[]): ThresholdBand[] {\n return thresholds\n .map((t) => ({ color: t.color, value: clamp(t.value, 0, 1) }))\n .sort((a, b) => a.value - b.value)\n}\n\nexport interface ThresholdArcBand {\n color: string\n /** Lower bound of the band, as a 0–1 fraction of the min→max range. */\n startFraction: number\n /** Upper bound of the band, as a 0–1 fraction of the min→max range. */\n endFraction: number\n /** Dial angle of {@link startFraction}. */\n startAngle: number\n /** Dial angle of {@link endFraction}. */\n endAngle: number\n}\n\n/**\n * Split the dial into coloured bands. The bands tile the whole 0–1 range with\n * no holes: a leading neutral band covers anything below the first threshold,\n * and the last threshold's band runs to 1. Zero-width bands (duplicate\n * thresholds, or one pinned at 1) are dropped.\n *\n * With no thresholds configured the dial is a single neutral band, so the\n * gauge still renders a full arc.\n */\nexport function buildThresholdBands(thresholds: ThresholdBand[]): ThresholdArcBand[] {\n const sorted = normalizeThresholds(thresholds)\n const spans: { color: string; startFraction: number; endFraction: number }[] = []\n\n if (sorted.length === 0) {\n spans.push({ color: DEFAULT_FILL, startFraction: 0, endFraction: 1 })\n } else {\n if (sorted[0].value > FRACTION_EPSILON) {\n spans.push({ color: DEFAULT_FILL, startFraction: 0, endFraction: sorted[0].value })\n }\n sorted.forEach((t, i) => {\n spans.push({\n color: t.color,\n startFraction: t.value,\n endFraction: i < sorted.length - 1 ? sorted[i + 1].value : 1\n })\n })\n }\n\n return spans\n .filter((s) => s.endFraction - s.startFraction > FRACTION_EPSILON)\n .map((s) => ({\n ...s,\n startAngle: fractionToAngle(s.startFraction),\n endAngle: fractionToAngle(s.endFraction)\n }))\n}\n\nexport interface GaugeBandSegment {\n color: string\n startAngle: number\n endAngle: number\n}\n\n/**\n * Turn logical bands into drawable segments by inserting a gap at every\n * *internal* boundary (the dial's outer ends keep the full 270° sweep).\n * Segments too narrow to render cleanly with rounded caps are dropped.\n */\nexport function buildBandSegments(\n bands: ThresholdArcBand[],\n gap = BAND_GAP_RADIANS\n): GaugeBandSegment[] {\n const half = Math.max(gap, 0) / 2\n return bands\n .map((band, i) => ({\n color: band.color,\n startAngle: band.startAngle + (i === 0 ? 0 : half),\n endAngle: band.endAngle + (i === bands.length - 1 ? 0 : -half)\n }))\n .filter((s) => s.endAngle - s.startAngle >= MIN_SEGMENT_ANGLE)\n}\n\nexport interface GaugeScaleTick {\n fraction: number\n value: number\n angle: number\n}\n\n/**\n * Numeric scale ticks at the band boundaries (plus the dial's start and end).\n * Ticks are thinned back-to-front so the max is always kept and no two labels\n * collide.\n */\nexport function buildScaleTicks(\n bands: ThresholdArcBand[],\n minValue: number,\n maxValue: number\n): GaugeScaleTick[] {\n const fractions: number[] = [0]\n for (const band of bands) fractions.push(band.startFraction, band.endFraction)\n fractions.push(1)\n\n const unique = [...fractions]\n .sort((a, b) => a - b)\n .filter((f, i, all) => i === 0 || f - all[i - 1] > FRACTION_EPSILON)\n\n const kept: number[] = []\n for (let i = unique.length - 1; i >= 0; i--) {\n const angle = fractionToAngle(unique[i])\n const last = kept.length > 0 ? fractionToAngle(kept[kept.length - 1]) : null\n if (last === null || last - angle >= MIN_TICK_SEPARATION) kept.push(unique[i])\n }\n\n return kept\n .reverse()\n .map((fraction) => ({\n fraction,\n value: minValue + fraction * (maxValue - minValue),\n angle: fractionToAngle(fraction)\n }))\n}\n\n/** Triangular needle: wide at the hub, tapering to a point at `length`. */\nexport function buildNeedlePath(angle: number, length: number, halfWidth: number): string {\n const tip = polarPoint(angle, length)\n const perpX = Math.cos(angle)\n const perpY = Math.sin(angle)\n const round = (n: number) => Number(n.toFixed(3))\n return [\n `M${round(tip.x)},${round(tip.y)}`,\n `L${round(perpX * halfWidth)},${round(perpY * halfWidth)}`,\n `L${round(-perpX * halfWidth)},${round(-perpY * halfWidth)}`,\n 'Z'\n ].join('')\n}\n\nexport interface GaugeLayout {\n /** Dial centre in SVG coordinates. */\n cx: number\n cy: number\n radius: number\n outerRadius: number\n innerRadius: number\n /** Corner radius that fully rounds a band segment's ends. */\n bandCornerRadius: number\n /** Radius at which scale tick labels are centred (just inside the band). */\n tickRadius: number\n needleLength: number\n needleHalfWidth: number\n hubRadius: number\n tickFontSize: number\n labelFontSize: number\n labelY: number\n valueFontSize: number\n valueY: number\n}\n\n/**\n * Size and position the dial so its 270° bounding box is centred in, and fits\n * inside, a `width` x `height` box. Everything else is expressed as a ratio of\n * the resulting radius so the gauge scales smoothly.\n */\nexport function computeGaugeLayout(width: number, height: number): GaugeLayout {\n const w = Math.max(finiteOr(width, 0), 1)\n const h = Math.max(finiteOr(height, 0), 1)\n const radius = Math.max(\n 1,\n Math.min(w / ARC_BBOX_WIDTH_RATIO, h / ARC_BBOX_HEIGHT_RATIO) * DIAL_MARGIN\n )\n const outerRadius = radius\n const innerRadius = radius * 0.8\n\n return {\n cx: w / 2,\n // Shift down so the bbox (which extends further above the centre than\n // below it) is vertically centred.\n cy: h / 2 + radius * (1 - ARC_BBOX_HEIGHT_RATIO / 2),\n radius,\n outerRadius,\n innerRadius,\n bandCornerRadius: (outerRadius - innerRadius) / 2,\n tickRadius: radius * 0.7,\n needleLength: radius * 0.56,\n needleHalfWidth: radius * 0.055,\n hubRadius: radius * 0.075,\n tickFontSize: radius * 0.095,\n labelFontSize: radius * 0.1,\n labelY: radius * 0.28,\n valueFontSize: radius * 0.165,\n valueY: radius * 0.52\n }\n}\n\nexport interface GaugeGeometry {\n effectiveMax: number\n clampedValue: number\n fraction: number\n fillColor: string\n needleAngle: number\n}\n\n/** Compute the gauge's clamped value, fraction, indicated colour and angle. */\nexport function computeGaugeGeometry(\n rawValue: number,\n minValue: number,\n maxValue: number,\n thresholds: ThresholdBand[]\n): GaugeGeometry {\n const min = finiteOr(minValue, 0)\n const max = finiteOr(maxValue, min + 1)\n const effectiveMax = max <= min ? min + 1 : max\n const clampedValue = clamp(finiteOr(rawValue, min), min, effectiveMax)\n const fraction = clamp((clampedValue - min) / (effectiveMax - min), 0, 1)\n return {\n effectiveMax,\n clampedValue,\n fraction,\n fillColor: resolveColor(fraction, thresholds),\n needleAngle: fractionToAngle(fraction)\n }\n}\n\n/**\n * Format a gauge value. With a configured axis format this honours its unit,\n * decimals and abbreviation (so a percent format renders `66.9%`); without one\n * it falls back to the shared default numeric formatting (`66.94`).\n */\nexport function formatGaugeValue(value: number, yAxisFormat?: AxisFormatConfig): string {\n return formatAxisValue(value, yAxisFormat)\n}\n","import React, { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport { ChartEmptyState, ChartConfigError, ChartRenderError } from './ChartStates.js'\nimport {\n parseNum,\n finiteOr,\n buildArcPath,\n buildNeedlePath,\n parseThresholds,\n buildThresholdBands,\n buildBandSegments,\n buildScaleTicks,\n computeGaugeLayout,\n computeGaugeGeometry,\n formatGaugeValue,\n polarPoint\n} from './gaugeChartHelpers.js'\nimport { useCubeFieldLabel } from '../../hooks/useCubeFieldLabel.js'\nimport type { ChartProps, ThresholdBand } from '../../types.js'\n\n/**\n * Gauge chart: a 270° dial whose arc *is* the threshold banding — one thick,\n * rounded segment per threshold with a small gap between them — read by a\n * tapered needle, with numeric scale labels at the band boundaries and the\n * measure label + value stacked below the centre.\n *\n * All geometry lives in `gaugeChartHelpers.ts`; this component only renders it.\n */\nconst GaugeChart = React.memo(function GaugeChart({\n data,\n chartConfig,\n displayConfig = {},\n height = '100%',\n}: ChartProps) {\n const { t } = useTranslation()\n const getFieldLabel = useCubeFieldLabel()\n const containerRef = useRef<HTMLDivElement>(null)\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n\n useLayoutEffect(() => {\n const el = containerRef.current\n if (!el) return\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height: h } = entry.contentRect\n if (width > 0 && h > 0) setDimensions({ width, height: h })\n }\n })\n observer.observe(el)\n const rect = el.getBoundingClientRect()\n if (rect.width > 0 && rect.height > 0) setDimensions({ width: rect.width, height: rect.height })\n return () => observer.disconnect()\n }, [])\n\n const { valueField, maxField, configError } = useMemo(() => {\n const yAxis: string[] = Array.isArray(chartConfig?.yAxis)\n ? chartConfig.yAxis\n : []\n\n const valueField = yAxis[0] ?? ''\n const maxField = yAxis[1] ?? ''\n\n if (!valueField) {\n return { valueField, maxField, configError: 'Gauge requires at least 1 measure in Y-Axis (current value)' }\n }\n return { valueField, maxField, configError: null }\n }, [chartConfig])\n\n const thresholds: ThresholdBand[] = useMemo(\n () => parseThresholds(displayConfig?.thresholds),\n [displayConfig?.thresholds]\n )\n\n const bands = useMemo(() => buildThresholdBands(thresholds), [thresholds])\n const segments = useMemo(() => buildBandSegments(bands), [bands])\n\n try {\n if (!data || data.length === 0) {\n return <ChartEmptyState height={height} hint={t('chart.runtime.noDataHint.gauge')} />\n }\n\n if (configError) {\n return <ChartConfigError height={height} hint={configError} />\n }\n\n const row = (data as Record<string, unknown>[])[0]\n const rawValue = parseNum(row[valueField])\n if (rawValue === null || !Number.isFinite(rawValue)) {\n return (\n <ChartEmptyState\n height={height}\n titleKey=\"chart.runtime.noValidData\"\n hint={t('chart.runtime.noValidDataHint.gauge')}\n />\n )\n }\n\n const minValue = finiteOr(displayConfig?.minValue, 0)\n const maxFieldValue = maxField ? parseNum(row[maxField]) : null\n const maxValue = finiteOr(displayConfig?.maxValue ?? maxFieldValue, 100)\n\n const { effectiveMax, fraction, fillColor, needleAngle } =\n computeGaugeGeometry(rawValue, minValue, maxValue, thresholds)\n\n const showCenterLabel = displayConfig?.showCenterLabel ?? true\n const showPercentage = displayConfig?.showPercentage ?? false\n const yAxisFormat = displayConfig?.leftYAxisFormat\n\n const containerW = dimensions.width || 300\n const containerH = typeof height === 'number' ? height : (dimensions.height || 200)\n\n const layout = computeGaugeLayout(containerW, containerH)\n const ticks = buildScaleTicks(bands, minValue, effectiveMax)\n\n const valueLabel = showPercentage\n ? `${(fraction * 100).toFixed(1)}%`\n : formatGaugeValue(rawValue, yAxisFormat)\n\n const fieldLabel = getFieldLabel(valueField)\n\n return (\n <div ref={containerRef} className=\"dc:relative dc:w-full\" style={{ height }}>\n <svg\n width=\"100%\"\n height=\"100%\"\n viewBox={`0 0 ${containerW} ${containerH}`}\n preserveAspectRatio=\"xMidYMid meet\"\n data-testid=\"gauge-svg\"\n >\n <g transform={`translate(${layout.cx}, ${layout.cy})`}>\n {segments.map((segment, i) => (\n <path\n key={i}\n d={buildArcPath(\n layout.innerRadius,\n layout.outerRadius,\n segment.startAngle,\n segment.endAngle,\n layout.bandCornerRadius\n )}\n fill={segment.color}\n data-testid={`gauge-band-${i}`}\n />\n ))}\n\n {ticks.map((tick, i) => {\n const point = polarPoint(tick.angle, layout.tickRadius)\n return (\n <text\n key={i}\n x={point.x}\n y={point.y}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={layout.tickFontSize}\n fill=\"currentColor\"\n className=\"text-dc-text-muted\"\n data-testid={`gauge-tick-${i}`}\n >\n {formatGaugeValue(tick.value, yAxisFormat)}\n </text>\n )\n })}\n\n <path\n d={buildNeedlePath(needleAngle, layout.needleLength, layout.needleHalfWidth)}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n data-testid=\"gauge-needle\"\n data-fraction={fraction.toFixed(4)}\n data-color={fillColor}\n />\n <circle\n r={layout.hubRadius}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n data-testid=\"gauge-hub\"\n />\n\n {showCenterLabel && (\n <g data-testid=\"gauge-label\">\n <text\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n y={layout.labelY}\n fontSize={layout.labelFontSize}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n data-testid=\"gauge-field-text\"\n >\n {fieldLabel}\n </text>\n <text\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n y={layout.valueY}\n fontSize={layout.valueFontSize}\n fontWeight=\"600\"\n fill=\"currentColor\"\n className=\"text-dc-text\"\n data-testid=\"gauge-value-text\"\n >\n {valueLabel}\n </text>\n </g>\n )}\n </g>\n </svg>\n </div>\n )\n } catch (error) {\n return <ChartRenderError height={height} chartType=\"Gauge Chart\" error={error} />\n }\n})\n\nexport default GaugeChart\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as e } from "./rolldown-runtime-DArdT4gl.js";
|
|
2
|
-
import { D as t, E as n, P as r, w as i } from "./chart-activity-grid-
|
|
3
|
-
import { O as a } from "./chart-area-
|
|
2
|
+
import { D as t, E as n, P as r, w as i } from "./chart-activity-grid-4jfS8khG.js";
|
|
3
|
+
import { O as a } from "./chart-area-Dol6s9no.js";
|
|
4
4
|
import o, { useMemo as s } from "react";
|
|
5
5
|
import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
6
|
import { ResponsiveHeatMap as d } from "@nivo/heatmap";
|
|
@@ -233,4 +233,4 @@ var w = /* @__PURE__ */ e({ default: () => T }), T = o.memo(function({ data: e,
|
|
|
233
233
|
//#endregion
|
|
234
234
|
export { w as t };
|
|
235
235
|
|
|
236
|
-
//# sourceMappingURL=chart-heat-map-
|
|
236
|
+
//# sourceMappingURL=chart-heat-map-CeKbK655.js.map
|