drizzle-cube 0.4.28 → 0.4.30
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/anthropic-BIva8k1r.cjs +1 -0
- package/dist/adapters/anthropic-B_rg0BhK.js +140 -0
- package/dist/adapters/dist-Boc63-1q.cjs +2 -0
- package/dist/adapters/dist-De5fzUEM.js +581 -0
- package/dist/adapters/express/index.cjs +2 -10
- package/dist/adapters/express/index.js +232 -342
- package/dist/adapters/fastify/index.cjs +2 -10
- package/dist/adapters/fastify/index.js +275 -424
- package/dist/adapters/google-CT4kgmBf.js +154 -0
- package/dist/adapters/google-Dgo9-Kb5.cjs +2 -0
- package/dist/adapters/handler-B8vuFQYP.cjs +25 -0
- package/dist/adapters/handler-D-2-6uLM.js +2951 -0
- package/dist/adapters/hono/index.cjs +2 -10
- package/dist/adapters/hono/index.js +307 -402
- package/dist/adapters/mcp-prompts-BAutSQYA.js +344 -0
- package/dist/adapters/mcp-prompts-DsAkafVn.cjs +5 -0
- package/dist/adapters/mcp-transport-CuugoG8t.js +7821 -0
- package/dist/adapters/mcp-transport-Dpp6hdZe.cjs +253 -0
- package/dist/adapters/nextjs/index.cjs +1 -9
- package/dist/adapters/nextjs/index.js +377 -600
- package/dist/adapters/openai-CjBvA6mK.js +4114 -0
- package/dist/adapters/openai-DhLE0A9Z.cjs +1 -0
- package/dist/adapters/openai-Zjw4Zo4R.js +153 -0
- package/dist/adapters/openai-eJBw3LfQ.cjs +16 -0
- package/dist/adapters/types.cjs +0 -1
- package/dist/adapters/types.js +0 -1
- package/dist/adapters/utils-ChhNGUOF.js +5396 -0
- package/dist/adapters/utils-CwJplXR5.cjs +15 -0
- package/dist/adapters/utils.cjs +1 -19
- package/dist/adapters/utils.js +2 -21333
- package/dist/client/charts.js +15 -186
- package/dist/client/chunks/DashboardEditModal-C076pscL.js +6678 -0
- package/dist/client/chunks/DashboardEditModal-C076pscL.js.map +1 -0
- package/dist/client/chunks/FieldSearchModal-C0DjSWk3.js +2631 -0
- package/dist/client/chunks/FieldSearchModal-C0DjSWk3.js.map +1 -0
- package/dist/client/chunks/RetentionCombinedChart-DuGXc-AP.js +270 -0
- package/dist/client/chunks/RetentionCombinedChart-DuGXc-AP.js.map +1 -0
- package/dist/client/chunks/RetentionCombinedChart.config-DprbXd1N.js +56 -0
- package/dist/client/chunks/RetentionCombinedChart.config-DprbXd1N.js.map +1 -0
- package/dist/client/chunks/RetentionHeatmap-BoGY6mlZ.js +193 -0
- package/dist/client/chunks/RetentionHeatmap-BoGY6mlZ.js.map +1 -0
- package/dist/client/chunks/RetentionHeatmap.config-cbaNExVy.js +25 -0
- package/dist/client/chunks/RetentionHeatmap.config-cbaNExVy.js.map +1 -0
- package/dist/client/chunks/analysis-builder-DF0XntqC.js +6111 -0
- package/dist/client/chunks/analysis-builder-DF0XntqC.js.map +1 -0
- package/dist/client/chunks/analysis-builder-shared-2QhKYbs6.js +3114 -0
- package/dist/client/chunks/analysis-builder-shared-2QhKYbs6.js.map +1 -0
- package/dist/client/chunks/chart-activity-grid-CNES9VBk.js +803 -0
- package/dist/client/chunks/chart-activity-grid-CNES9VBk.js.map +1 -0
- package/dist/client/chunks/chart-area-CRJc3KOu.js +449 -0
- package/dist/client/chunks/chart-area-CRJc3KOu.js.map +1 -0
- package/dist/client/chunks/chart-bar-DD2PjJ5n.js +270 -0
- package/dist/client/chunks/chart-bar-DD2PjJ5n.js.map +1 -0
- package/dist/client/chunks/chart-box-plot-BcqleldJ.js +377 -0
- package/dist/client/chunks/chart-box-plot-BcqleldJ.js.map +1 -0
- package/dist/client/chunks/chart-bubble-BmQkVk4K.js +273 -0
- package/dist/client/chunks/chart-bubble-BmQkVk4K.js.map +1 -0
- package/dist/client/chunks/chart-candlestick-C3Rep469.js +306 -0
- package/dist/client/chunks/chart-candlestick-C3Rep469.js.map +1 -0
- package/dist/client/chunks/chart-config-activity-grid-USo7JrPh.js +51 -0
- package/dist/client/chunks/chart-config-activity-grid-USo7JrPh.js.map +1 -0
- package/dist/client/chunks/chart-config-area-D_ZufYzg.js +93 -0
- package/dist/client/chunks/chart-config-area-D_ZufYzg.js.map +1 -0
- package/dist/client/chunks/chart-config-bar-BCi2Wmd6.js +87 -0
- package/dist/client/chunks/chart-config-bar-BCi2Wmd6.js.map +1 -0
- package/dist/client/chunks/chart-config-box-plot-afKLzJSp.js +35 -0
- package/dist/client/chunks/chart-config-box-plot-afKLzJSp.js.map +1 -0
- package/dist/client/chunks/chart-config-bubble-CgbBjPv8.js +82 -0
- package/dist/client/chunks/chart-config-bubble-CgbBjPv8.js.map +1 -0
- package/dist/client/chunks/chart-config-candlestick-7boGjZ-A.js +72 -0
- package/dist/client/chunks/chart-config-candlestick-7boGjZ-A.js.map +1 -0
- package/dist/client/chunks/chart-config-data-table-Cl7sBasW.js +30 -0
- package/dist/client/chunks/chart-config-data-table-Cl7sBasW.js.map +1 -0
- package/dist/client/chunks/chart-config-funnel-CXPYQtTl.js +93 -0
- package/dist/client/chunks/chart-config-funnel-CXPYQtTl.js.map +1 -0
- package/dist/client/chunks/chart-config-gauge-DUNEUCvh.js +64 -0
- package/dist/client/chunks/chart-config-gauge-DUNEUCvh.js.map +1 -0
- package/dist/client/chunks/chart-config-heat-map-BFf1tO11.js +91 -0
- package/dist/client/chunks/chart-config-heat-map-BFf1tO11.js.map +1 -0
- package/dist/client/chunks/chart-config-kpi-delta-C5k2waIJ.js +94 -0
- package/dist/client/chunks/chart-config-kpi-delta-C5k2waIJ.js.map +1 -0
- package/dist/client/chunks/chart-config-kpi-number-DptOyhk0.js +75 -0
- package/dist/client/chunks/chart-config-kpi-number-DptOyhk0.js.map +1 -0
- package/dist/client/chunks/chart-config-kpi-text-D9DdVWqd.js +47 -0
- package/dist/client/chunks/chart-config-kpi-text-D9DdVWqd.js.map +1 -0
- package/dist/client/chunks/chart-config-line-B3NgLF7K.js +104 -0
- package/dist/client/chunks/chart-config-line-B3NgLF7K.js.map +1 -0
- package/dist/client/chunks/chart-config-markdown-tlfivQTt.js +117 -0
- package/dist/client/chunks/chart-config-markdown-tlfivQTt.js.map +1 -0
- package/dist/client/chunks/chart-config-measure-profile-D7XDwrU2.js +82 -0
- package/dist/client/chunks/chart-config-measure-profile-D7XDwrU2.js.map +1 -0
- package/dist/client/chunks/chart-config-pie-wY0B52PC.js +68 -0
- package/dist/client/chunks/chart-config-pie-wY0B52PC.js.map +1 -0
- package/dist/client/chunks/chart-config-radar-DRpJBy1M.js +49 -0
- package/dist/client/chunks/chart-config-radar-DRpJBy1M.js.map +1 -0
- package/dist/client/chunks/chart-config-radial-bar-DCUpXv9G.js +38 -0
- package/dist/client/chunks/chart-config-radial-bar-DCUpXv9G.js.map +1 -0
- package/dist/client/chunks/chart-config-sankey-CdOhlm4h.js +66 -0
- package/dist/client/chunks/chart-config-sankey-CdOhlm4h.js.map +1 -0
- package/dist/client/chunks/chart-config-scatter-B2su_x8f.js +61 -0
- package/dist/client/chunks/chart-config-scatter-B2su_x8f.js.map +1 -0
- package/dist/client/chunks/chart-config-sunburst-BPdjbk18.js +45 -0
- package/dist/client/chunks/chart-config-sunburst-BPdjbk18.js.map +1 -0
- package/dist/client/chunks/chart-config-tree-map-Cbsh2fe2.js +51 -0
- package/dist/client/chunks/chart-config-tree-map-Cbsh2fe2.js.map +1 -0
- package/dist/client/chunks/chart-config-waterfall-DGmuZfQF.js +59 -0
- package/dist/client/chunks/chart-config-waterfall-DGmuZfQF.js.map +1 -0
- package/dist/client/chunks/chart-data-table-DehW1C1G.js +4088 -0
- package/dist/client/chunks/chart-data-table-DehW1C1G.js.map +1 -0
- package/dist/client/chunks/chart-funnel-BjkpnG5g.js +447 -0
- package/dist/client/chunks/chart-funnel-BjkpnG5g.js.map +1 -0
- package/dist/client/chunks/chart-gauge-BWW_HEfg.js +424 -0
- package/dist/client/chunks/chart-gauge-BWW_HEfg.js.map +1 -0
- package/dist/client/chunks/chart-heat-map-BWuOuDcm.js +236 -0
- package/dist/client/chunks/chart-heat-map-BWuOuDcm.js.map +1 -0
- package/dist/client/chunks/chart-kpi-delta-D5OHtDJx.js +343 -0
- package/dist/client/chunks/chart-kpi-delta-D5OHtDJx.js.map +1 -0
- package/dist/client/chunks/chart-kpi-number-C9zH-aKC.js +326 -0
- package/dist/client/chunks/chart-kpi-number-C9zH-aKC.js.map +1 -0
- package/dist/client/chunks/chart-kpi-text-ChVn3S7j.js +149 -0
- package/dist/client/chunks/chart-kpi-text-ChVn3S7j.js.map +1 -0
- package/dist/client/chunks/chart-line-DOIMkP0b.js +431 -0
- package/dist/client/chunks/chart-line-DOIMkP0b.js.map +1 -0
- package/dist/client/chunks/chart-markdown-DXxc43w1.js +3457 -0
- package/dist/client/chunks/chart-markdown-DXxc43w1.js.map +1 -0
- package/dist/client/chunks/chart-measure-profile-C6wrr9il.js +179 -0
- package/dist/client/chunks/chart-measure-profile-C6wrr9il.js.map +1 -0
- package/dist/client/chunks/chart-pie-BU_FgwDc.js +172 -0
- package/dist/client/chunks/chart-pie-BU_FgwDc.js.map +1 -0
- package/dist/client/chunks/chart-radar-DlufwnAX.js +154 -0
- package/dist/client/chunks/chart-radar-DlufwnAX.js.map +1 -0
- package/dist/client/chunks/chart-radial-bar-B5vS_Aw5.js +148 -0
- package/dist/client/chunks/chart-radial-bar-B5vS_Aw5.js.map +1 -0
- package/dist/client/chunks/chart-sankey-FChb26UX.js +222 -0
- package/dist/client/chunks/chart-sankey-FChb26UX.js.map +1 -0
- package/dist/client/chunks/chart-scatter-DW0cAZ2H.js +255 -0
- package/dist/client/chunks/chart-scatter-DW0cAZ2H.js.map +1 -0
- package/dist/client/chunks/chart-sunburst-Clf-6WxW.js +221 -0
- package/dist/client/chunks/chart-sunburst-Clf-6WxW.js.map +1 -0
- package/dist/client/chunks/chart-tree-map-p_VwUJPF.js +298 -0
- package/dist/client/chunks/chart-tree-map-p_VwUJPF.js.map +1 -0
- package/dist/client/chunks/chart-waterfall-jt44IQ-w.js +237 -0
- package/dist/client/chunks/chart-waterfall-jt44IQ-w.js.map +1 -0
- package/dist/client/chunks/charts-core-CUVzf4cV.js +215 -0
- package/dist/client/chunks/charts-core-CUVzf4cV.js.map +1 -0
- package/dist/client/chunks/charts-loader-AGpph8_I.js +259 -0
- package/dist/client/chunks/charts-loader-AGpph8_I.js.map +1 -0
- package/dist/client/chunks/core-D1TOj17W.js +845 -0
- package/dist/client/chunks/core-D1TOj17W.js.map +1 -0
- package/dist/client/chunks/dist-DDBeV_JI.js +847 -0
- package/dist/client/chunks/dist-DDBeV_JI.js.map +1 -0
- package/dist/client/chunks/javascript-BBwTSo6e.js +438 -0
- package/dist/client/chunks/javascript-BBwTSo6e.js.map +1 -0
- package/dist/client/chunks/json-BpTrLZSh.js +38 -0
- package/dist/client/chunks/json-BpTrLZSh.js.map +1 -0
- package/dist/client/chunks/lazyChartConfigRegistry-BjhxDaSf.js +149 -0
- package/dist/client/chunks/lazyChartConfigRegistry-BjhxDaSf.js.map +1 -0
- package/dist/client/chunks/providers-DX3Vw5kc.js +7 -0
- package/dist/client/chunks/providers-DX3Vw5kc.js.map +1 -0
- package/dist/client/chunks/retention-UEXlSdZ-.js +132 -0
- package/dist/client/chunks/retention-UEXlSdZ-.js.map +1 -0
- package/dist/client/chunks/rolldown-runtime-lc2dmIiU.js +20 -0
- package/dist/client/chunks/schema-visualization-ZugB4Io9.js +1073 -0
- package/dist/client/chunks/schema-visualization-ZugB4Io9.js.map +1 -0
- package/dist/client/chunks/sql-B0chxcEK.js +120 -0
- package/dist/client/chunks/sql-B0chxcEK.js.map +1 -0
- package/dist/client/chunks/syntaxHighlighting-87bOwTxj.js +30 -0
- package/dist/client/chunks/syntaxHighlighting-87bOwTxj.js.map +1 -0
- package/dist/client/chunks/useDebounce-BQjNWndQ.js +1394 -0
- package/dist/client/chunks/useDebounce-BQjNWndQ.js.map +1 -0
- package/dist/client/chunks/useDirtyStateTracking-CgKZWkel.js +66 -0
- package/dist/client/chunks/useDirtyStateTracking-CgKZWkel.js.map +1 -0
- package/dist/client/chunks/useExplainAI-c_bHxZe5.js +203 -0
- package/dist/client/chunks/useExplainAI-c_bHxZe5.js.map +1 -0
- package/dist/client/chunks/useNotebookLayout-BFZ_33Kb.js +37 -0
- package/dist/client/chunks/useNotebookLayout-BFZ_33Kb.js.map +1 -0
- package/dist/client/chunks/utils-A54Ny29G.js +128 -0
- package/dist/client/chunks/utils-A54Ny29G.js.map +1 -0
- package/dist/client/chunks/vendor-CoPBRumI.js +828 -0
- package/dist/client/chunks/vendor-CoPBRumI.js.map +1 -0
- package/dist/client/components.js +4 -18
- package/dist/client/hooks.js +6 -58
- package/dist/client/icons.js +2 -15
- package/dist/client/index.js +1061 -1295
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +3 -9
- package/dist/client/styles.css +2 -1
- package/dist/client/types.d.ts +1 -0
- package/dist/client/utils.js +7 -74
- package/dist/client-bundle-stats.html +1 -1
- package/dist/server/anthropic-BsNspi1r.js +140 -0
- package/dist/server/anthropic-DsCEX6Fm.cjs +1 -0
- package/dist/server/dist-CMWZC51B.js +581 -0
- package/dist/server/dist-DxegvyZF.cjs +2 -0
- package/dist/server/google-BXwMolCu.js +154 -0
- package/dist/server/google-DzQWXFwF.cjs +2 -0
- package/dist/server/index.cjs +109 -127
- package/dist/server/index.d.ts +13 -4
- package/dist/server/index.js +15089 -34349
- package/dist/server/openai-BPhmb8mi.js +4114 -0
- package/dist/server/openai-CLsoLaue.cjs +1 -0
- package/dist/server/openai-D1kZ5sdM.js +153 -0
- package/dist/server/openai-DkOKbVLC.cjs +16 -0
- package/package.json +5 -5
- package/dist/adapters/anthropic-BTkjgFpT.cjs +0 -1
- package/dist/adapters/anthropic-CTu9E801.js +0 -126
- package/dist/adapters/google-BAK9pnQf.cjs +0 -2
- package/dist/adapters/google-DficVAsJ.js +0 -146
- package/dist/adapters/handler-BV2_dul8.js +0 -2713
- package/dist/adapters/handler-LMRPeTNJ.cjs +0 -39
- package/dist/adapters/index-BgCeQBuN.cjs +0 -2
- package/dist/adapters/index-C3PskWTr.js +0 -5353
- package/dist/adapters/index-C45_meK_.js +0 -719
- package/dist/adapters/index-ht4NPca9.cjs +0 -23
- package/dist/adapters/mcp-transport-B6ZudTSk.js +0 -11010
- package/dist/adapters/mcp-transport-DCiSGtp1.cjs +0 -257
- package/dist/adapters/openai-BvA6eLs8.cjs +0 -1
- package/dist/adapters/openai-mcE24du8.js +0 -131
- package/dist/client/charts.js.map +0 -1
- package/dist/client/chunks/RetentionCombinedChart--SnU4Y_I.js +0 -256
- package/dist/client/chunks/RetentionCombinedChart--SnU4Y_I.js.map +0 -1
- package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js +0 -48
- package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js.map +0 -1
- package/dist/client/chunks/RetentionHeatmap-BHYU8MXY.js +0 -178
- package/dist/client/chunks/RetentionHeatmap-BHYU8MXY.js.map +0 -1
- package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js +0 -29
- package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js.map +0 -1
- package/dist/client/chunks/analysis-builder-DMFoAkjT.js +0 -6203
- package/dist/client/chunks/analysis-builder-DMFoAkjT.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-CunrT3gi.js +0 -3140
- package/dist/client/chunks/analysis-builder-shared-CunrT3gi.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-DCznpK6N.js +0 -347
- package/dist/client/chunks/chart-activity-grid-DCznpK6N.js.map +0 -1
- package/dist/client/chunks/chart-area-CqKRIUpj.js +0 -234
- package/dist/client/chunks/chart-area-CqKRIUpj.js.map +0 -1
- package/dist/client/chunks/chart-bar-Bl5jvrU_.js +0 -267
- package/dist/client/chunks/chart-bar-Bl5jvrU_.js.map +0 -1
- package/dist/client/chunks/chart-box-plot-CzMb00z_.js +0 -322
- package/dist/client/chunks/chart-box-plot-CzMb00z_.js.map +0 -1
- package/dist/client/chunks/chart-bubble-BF8Z52eW.js +0 -249
- package/dist/client/chunks/chart-bubble-BF8Z52eW.js.map +0 -1
- package/dist/client/chunks/chart-candlestick-ByWS945g.js +0 -269
- package/dist/client/chunks/chart-candlestick-ByWS945g.js.map +0 -1
- package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js +0 -50
- package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js.map +0 -1
- package/dist/client/chunks/chart-config-area-CK_GVApT.js +0 -77
- package/dist/client/chunks/chart-config-area-CK_GVApT.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-C8uzktxl.js +0 -71
- package/dist/client/chunks/chart-config-bar-C8uzktxl.js.map +0 -1
- package/dist/client/chunks/chart-config-box-plot-D_E_SSc2.js +0 -38
- package/dist/client/chunks/chart-config-box-plot-D_E_SSc2.js.map +0 -1
- package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js +0 -71
- package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js.map +0 -1
- package/dist/client/chunks/chart-config-candlestick-CRCpD43-.js +0 -70
- package/dist/client/chunks/chart-config-candlestick-CRCpD43-.js.map +0 -1
- package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js +0 -28
- package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js.map +0 -1
- package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js +0 -92
- package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-CQx9w3d4.js +0 -64
- package/dist/client/chunks/chart-config-gauge-CQx9w3d4.js.map +0 -1
- package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js +0 -77
- package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js +0 -97
- package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js +0 -75
- package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js +0 -47
- package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js.map +0 -1
- package/dist/client/chunks/chart-config-line-JNagi9tf.js +0 -88
- package/dist/client/chunks/chart-config-line-JNagi9tf.js.map +0 -1
- package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js +0 -97
- package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js.map +0 -1
- package/dist/client/chunks/chart-config-measure-profile-ZYaMrtws.js +0 -70
- package/dist/client/chunks/chart-config-measure-profile-ZYaMrtws.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-CNLXb-fr.js +0 -39
- package/dist/client/chunks/chart-config-pie-CNLXb-fr.js.map +0 -1
- package/dist/client/chunks/chart-config-radar-oxHfRAa3.js +0 -44
- package/dist/client/chunks/chart-config-radar-oxHfRAa3.js.map +0 -1
- package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js +0 -37
- package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js.map +0 -1
- package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js +0 -61
- package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js.map +0 -1
- package/dist/client/chunks/chart-config-scatter-DFKM80eO.js +0 -53
- package/dist/client/chunks/chart-config-scatter-DFKM80eO.js.map +0 -1
- package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js +0 -50
- package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js.map +0 -1
- package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js +0 -47
- package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js.map +0 -1
- package/dist/client/chunks/chart-config-waterfall-DTyXV_fo.js +0 -60
- package/dist/client/chunks/chart-config-waterfall-DTyXV_fo.js.map +0 -1
- package/dist/client/chunks/chart-data-table-HwfF-Ujv.js +0 -293
- package/dist/client/chunks/chart-data-table-HwfF-Ujv.js.map +0 -1
- package/dist/client/chunks/chart-funnel-WmuoWlCq.js +0 -259
- package/dist/client/chunks/chart-funnel-WmuoWlCq.js.map +0 -1
- package/dist/client/chunks/chart-gauge-Cot4By-w.js +0 -374
- package/dist/client/chunks/chart-gauge-Cot4By-w.js.map +0 -1
- package/dist/client/chunks/chart-heat-map-bGNtsZMr.js +0 -231
- package/dist/client/chunks/chart-heat-map-bGNtsZMr.js.map +0 -1
- package/dist/client/chunks/chart-kpi-delta-DeyKMxgq.js +0 -351
- package/dist/client/chunks/chart-kpi-delta-DeyKMxgq.js.map +0 -1
- package/dist/client/chunks/chart-kpi-number-D1z1gxXO.js +0 -476
- package/dist/client/chunks/chart-kpi-number-D1z1gxXO.js.map +0 -1
- package/dist/client/chunks/chart-kpi-text-b7q6KWc0.js +0 -165
- package/dist/client/chunks/chart-kpi-text-b7q6KWc0.js.map +0 -1
- package/dist/client/chunks/chart-line-3Nf-EPqJ.js +0 -450
- package/dist/client/chunks/chart-line-3Nf-EPqJ.js.map +0 -1
- package/dist/client/chunks/chart-markdown-BT_-MBq1.js +0 -2721
- package/dist/client/chunks/chart-markdown-BT_-MBq1.js.map +0 -1
- package/dist/client/chunks/chart-measure-profile-BVjUonqU.js +0 -114
- package/dist/client/chunks/chart-measure-profile-BVjUonqU.js.map +0 -1
- package/dist/client/chunks/chart-pie-DblG6w7g.js +0 -137
- package/dist/client/chunks/chart-pie-DblG6w7g.js.map +0 -1
- package/dist/client/chunks/chart-radar-BHZbeeTg.js +0 -129
- package/dist/client/chunks/chart-radar-BHZbeeTg.js.map +0 -1
- package/dist/client/chunks/chart-radial-bar-AlEJC1Jo.js +0 -119
- package/dist/client/chunks/chart-radial-bar-AlEJC1Jo.js.map +0 -1
- package/dist/client/chunks/chart-sankey-E8vYKjQF.js +0 -189
- package/dist/client/chunks/chart-sankey-E8vYKjQF.js.map +0 -1
- package/dist/client/chunks/chart-scatter-Bbxqi0iw.js +0 -202
- package/dist/client/chunks/chart-scatter-Bbxqi0iw.js.map +0 -1
- package/dist/client/chunks/chart-sunburst-BgnTKolT.js +0 -188
- package/dist/client/chunks/chart-sunburst-BgnTKolT.js.map +0 -1
- package/dist/client/chunks/chart-tree-map-i9LGCLwl.js +0 -284
- package/dist/client/chunks/chart-tree-map-i9LGCLwl.js.map +0 -1
- package/dist/client/chunks/chart-waterfall-BeIhCm83.js +0 -191
- package/dist/client/chunks/chart-waterfall-BeIhCm83.js.map +0 -1
- package/dist/client/chunks/charts-core-BUUO36OM.js +0 -692
- package/dist/client/chunks/charts-core-BUUO36OM.js.map +0 -1
- package/dist/client/chunks/charts-loader-goTYnavu.js +0 -258
- package/dist/client/chunks/charts-loader-goTYnavu.js.map +0 -1
- package/dist/client/chunks/components-BFgYvFq6.js +0 -10066
- package/dist/client/chunks/components-BFgYvFq6.js.map +0 -1
- package/dist/client/chunks/core-Y9e-sNfb.js +0 -1068
- package/dist/client/chunks/core-Y9e-sNfb.js.map +0 -1
- package/dist/client/chunks/flow-utils-CjQZG5qq.js +0 -16
- package/dist/client/chunks/flow-utils-CjQZG5qq.js.map +0 -1
- package/dist/client/chunks/funnel-utils-CyonoNeC.js +0 -135
- package/dist/client/chunks/funnel-utils-CyonoNeC.js.map +0 -1
- package/dist/client/chunks/icons-CwvgmdIP.js +0 -1636
- package/dist/client/chunks/icons-CwvgmdIP.js.map +0 -1
- package/dist/client/chunks/index-CApFCBF9.js +0 -81
- package/dist/client/chunks/index-CApFCBF9.js.map +0 -1
- package/dist/client/chunks/index-_2PSgbkC.js +0 -1046
- package/dist/client/chunks/index-_2PSgbkC.js.map +0 -1
- package/dist/client/chunks/javascript-DII1YQGr.js +0 -659
- package/dist/client/chunks/javascript-DII1YQGr.js.map +0 -1
- package/dist/client/chunks/json-C_6Prymp.js +0 -39
- package/dist/client/chunks/json-C_6Prymp.js.map +0 -1
- package/dist/client/chunks/providers-Ds7DRmnO.js +0 -554
- package/dist/client/chunks/providers-Ds7DRmnO.js.map +0 -1
- package/dist/client/chunks/retention-CzCo8262.js +0 -120
- package/dist/client/chunks/retention-CzCo8262.js.map +0 -1
- package/dist/client/chunks/schema-visualization-B97a1Ybu.js +0 -772
- package/dist/client/chunks/schema-visualization-B97a1Ybu.js.map +0 -1
- package/dist/client/chunks/sql-IeKX8fQ8.js +0 -616
- package/dist/client/chunks/sql-IeKX8fQ8.js.map +0 -1
- package/dist/client/chunks/syntaxHighlighting-DAMSW_A6.js +0 -34
- package/dist/client/chunks/syntaxHighlighting-DAMSW_A6.js.map +0 -1
- package/dist/client/chunks/theme-Dp3hFed1.js +0 -112
- package/dist/client/chunks/theme-Dp3hFed1.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-CyAXd07d.js +0 -1231
- package/dist/client/chunks/useDirtyStateTracking-CyAXd07d.js.map +0 -1
- package/dist/client/chunks/useExplainAI-CfQ_JmF1.js +0 -182
- package/dist/client/chunks/useExplainAI-CfQ_JmF1.js.map +0 -1
- package/dist/client/chunks/vendor-B2EH3V58.js +0 -2892
- package/dist/client/chunks/vendor-B2EH3V58.js.map +0 -1
- package/dist/client/components.js.map +0 -1
- package/dist/client/hooks.js.map +0 -1
- package/dist/client/icons.js.map +0 -1
- package/dist/client/providers.js.map +0 -1
- package/dist/client/utils.js.map +0 -1
- package/dist/server/anthropic-BTkjgFpT.cjs +0 -1
- package/dist/server/anthropic-CTu9E801.js +0 -126
- package/dist/server/google-BAK9pnQf.cjs +0 -2
- package/dist/server/google-DficVAsJ.js +0 -146
- package/dist/server/index-BgCeQBuN.cjs +0 -2
- package/dist/server/index-C3PskWTr.js +0 -5353
- package/dist/server/index-C45_meK_.js +0 -719
- package/dist/server/index-ht4NPca9.cjs +0 -23
- package/dist/server/openai-BvA6eLs8.cjs +0 -1
- package/dist/server/openai-mcE24du8.js +0 -131
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { jsx as e, jsxs as y } from "react/jsx-runtime";
|
|
2
|
-
import S, { useMemo as b } from "react";
|
|
3
|
-
import { LineChart as R, CartesianGrid as E, XAxis as F, YAxis as T, ReferenceLine as _, Legend as K, Line as M } from "recharts";
|
|
4
|
-
import { u as C, a as V, f as N, b as j, c as w, C as U } from "./charts-core-BUUO36OM.js";
|
|
5
|
-
import { A as Y } from "./chart-bar-Bl5jvrU_.js";
|
|
6
|
-
function z(f, a, i, m) {
|
|
7
|
-
if (!f || f.length === 0 || a.length === 0)
|
|
8
|
-
return { profileData: [], seriesKeys: [] };
|
|
9
|
-
if (i) {
|
|
10
|
-
const o = Array.from(new Set(f.map((s) => String(s[i] ?? "Unknown"))));
|
|
11
|
-
return { profileData: a.map((s) => {
|
|
12
|
-
const n = {
|
|
13
|
-
measureKey: s,
|
|
14
|
-
measureLabel: m(s)
|
|
15
|
-
};
|
|
16
|
-
for (const c of o) {
|
|
17
|
-
const p = f.filter((t) => String(t[i] ?? "Unknown") === c).map((t) => {
|
|
18
|
-
const l = t[s];
|
|
19
|
-
return typeof l == "number" ? l : parseFloat(String(l ?? ""));
|
|
20
|
-
}).filter((t) => !isNaN(t));
|
|
21
|
-
n[c] = p.length > 0 ? p.reduce((t, l) => t + l, 0) / p.length : null;
|
|
22
|
-
}
|
|
23
|
-
return n;
|
|
24
|
-
}), seriesKeys: o };
|
|
25
|
-
} else {
|
|
26
|
-
const o = "_value";
|
|
27
|
-
return { profileData: a.map((s) => {
|
|
28
|
-
const n = f.map((c) => {
|
|
29
|
-
const d = c[s];
|
|
30
|
-
return typeof d == "number" ? d : parseFloat(String(d ?? ""));
|
|
31
|
-
}).filter((c) => !isNaN(c));
|
|
32
|
-
return {
|
|
33
|
-
measureKey: s,
|
|
34
|
-
measureLabel: m(s),
|
|
35
|
-
[o]: n.length > 0 ? n.reduce((c, d) => c + d, 0) / n.length : null
|
|
36
|
-
};
|
|
37
|
-
}), seriesKeys: [o] };
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
const Z = S.memo(function({
|
|
41
|
-
data: a,
|
|
42
|
-
chartConfig: i,
|
|
43
|
-
displayConfig: m = {},
|
|
44
|
-
height: o = "100%",
|
|
45
|
-
colorPalette: h,
|
|
46
|
-
drillEnabled: s
|
|
47
|
-
}) {
|
|
48
|
-
const n = C(), c = m?.showReferenceLineAtZero ?? !0, d = m?.showDataLabels ?? !1, p = m?.lineType ?? "monotone", t = m?.leftYAxisFormat, { yAxisFields: l, seriesField: A, configError: x } = b(() => {
|
|
49
|
-
const r = Array.isArray(i?.yAxis) ? i.yAxis : [], u = Array.isArray(i?.series) ? i.series[0] : i?.series ?? void 0, v = r.length < 2 ? "Measure Profile chart requires at least 2 measures in Y-Axis" : null;
|
|
50
|
-
return { yAxisFields: r, seriesField: u, configError: v };
|
|
51
|
-
}, [i]), { profileData: L, seriesKeys: g } = b(() => x || !a || a.length === 0 ? { profileData: [], seriesKeys: [] } : z(
|
|
52
|
-
a,
|
|
53
|
-
l,
|
|
54
|
-
A,
|
|
55
|
-
n
|
|
56
|
-
), [a, l, A, n, x]), k = (m?.showLegend ?? !0) && g.length > 1;
|
|
57
|
-
try {
|
|
58
|
-
return !a || a.length === 0 ? /* @__PURE__ */ e("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: o }, children: /* @__PURE__ */ y("div", { className: "dc:text-center", children: [
|
|
59
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No data available" }),
|
|
60
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs text-dc-text-secondary", children: "No data points to display in measure profile chart" })
|
|
61
|
-
] }) }) : x ? /* @__PURE__ */ e("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning", style: { height: o }, children: /* @__PURE__ */ y("div", { className: "dc:text-center", children: [
|
|
62
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Configuration Error" }),
|
|
63
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs", children: x })
|
|
64
|
-
] }) }) : /* @__PURE__ */ e("div", { className: "dc:relative dc:w-full", style: { height: o }, children: /* @__PURE__ */ e(V, { height: "100%", children: /* @__PURE__ */ y(R, { data: L, margin: { ...U, left: 40 }, accessibilityLayer: !1, children: [
|
|
65
|
-
/* @__PURE__ */ e(E, { strokeDasharray: "3 3", style: { pointerEvents: "none" } }),
|
|
66
|
-
/* @__PURE__ */ e(F, { dataKey: "measureLabel", type: "category", tick: /* @__PURE__ */ e(Y, {}), height: 60 }),
|
|
67
|
-
/* @__PURE__ */ e(
|
|
68
|
-
T,
|
|
69
|
-
{
|
|
70
|
-
tick: { fontSize: 12 },
|
|
71
|
-
tickFormatter: t ? (r) => N(r, t) : void 0
|
|
72
|
-
}
|
|
73
|
-
),
|
|
74
|
-
/* @__PURE__ */ e(
|
|
75
|
-
j,
|
|
76
|
-
{
|
|
77
|
-
formatter: (r, u) => {
|
|
78
|
-
if (r == null) return ["No data", u];
|
|
79
|
-
const v = t ? N(r, t) : r?.toLocaleString?.() ?? r, D = u === "_value" ? n(l[0]?.split(".")[0]) || "Value" : u;
|
|
80
|
-
return [v, D];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
),
|
|
84
|
-
c && /* @__PURE__ */ e(_, { y: 0, stroke: "var(--dc-border, #94a3b8)", strokeDasharray: "4 2" }),
|
|
85
|
-
k && /* @__PURE__ */ e(K, { wrapperStyle: { fontSize: "12px", paddingTop: "8px" } }),
|
|
86
|
-
g.map((r, u) => /* @__PURE__ */ e(
|
|
87
|
-
M,
|
|
88
|
-
{
|
|
89
|
-
type: p,
|
|
90
|
-
dataKey: r,
|
|
91
|
-
name: r === "_value" ? n(l[0]?.split(".")[0]) || "Value" : r,
|
|
92
|
-
stroke: h?.colors && h.colors[u % h.colors.length] || w[u % w.length],
|
|
93
|
-
strokeWidth: 2,
|
|
94
|
-
dot: d ? { r: 4 } : { r: 3 },
|
|
95
|
-
activeDot: { r: 5 },
|
|
96
|
-
label: d ? { position: "top", fontSize: 10 } : void 0,
|
|
97
|
-
isAnimationActive: !1,
|
|
98
|
-
cursor: s ? "pointer" : void 0
|
|
99
|
-
},
|
|
100
|
-
r
|
|
101
|
-
))
|
|
102
|
-
] }) }) });
|
|
103
|
-
} catch (r) {
|
|
104
|
-
return /* @__PURE__ */ e("div", { className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4", style: { height: o }, children: /* @__PURE__ */ y("div", { className: "dc:text-center", children: [
|
|
105
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Measure Profile Chart Error" }),
|
|
106
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs dc:mb-2", children: r instanceof Error ? r.message : "Unknown rendering error" }),
|
|
107
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs text-dc-text-muted", children: "Check the data and configuration" })
|
|
108
|
-
] }) });
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
export {
|
|
112
|
-
Z as default
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=chart-measure-profile-BVjUonqU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-measure-profile-BVjUonqU.js","sources":["../../../src/client/components/charts/MeasureProfileChart.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, ReferenceLine, Legend } from 'recharts'\nimport ChartContainer from './ChartContainer'\nimport ChartTooltip from './ChartTooltip'\nimport AngledXAxisTick from './AngledXAxisTick'\nimport { CHART_COLORS, CHART_MARGINS } from '../../utils/chartConstants'\nimport { formatAxisValue } from '../../utils/chartUtils'\nimport { useCubeFieldLabel } from '../../hooks/useCubeFieldLabel'\nimport type { ChartProps } from '../../types'\n\n/**\n * Pivots N measures from chartConfig.yAxis[] into sequential X-axis points.\n * Each measure becomes one X-axis category; its numeric value is Y.\n * When a series dimension is provided, values are averaged across all rows\n * that share the same series value.\n *\n * Input (normal cube rows):\n * [{ 'Markouts.avgMinus2m': 10, 'Markouts.avgAtEvent': 0, 'Trades.symbol': 'AAPL' },\n * { 'Markouts.avgMinus2m': 12, 'Markouts.avgAtEvent': 1, 'Trades.symbol': 'AAPL' }]\n *\n * Output (one row per measure, values averaged per series):\n * [{ measureKey: 'Markouts.avgMinus2m', measureLabel: <getFieldLabel result>, AAPL: 11 },\n * { measureKey: 'Markouts.avgAtEvent', measureLabel: <getFieldLabel result>, AAPL: 0.5 }]\n */\nfunction pivotMeasuresToProfile(\n data: Record<string, unknown>[],\n yAxisFields: string[],\n seriesField: string | undefined,\n getFieldLabel: (field: string) => string\n): { profileData: Record<string, unknown>[]; seriesKeys: string[] } {\n if (!data || data.length === 0 || yAxisFields.length === 0) {\n return { profileData: [], seriesKeys: [] }\n }\n\n if (seriesField) {\n const seriesValues = Array.from(new Set(data.map((row) => String(row[seriesField] ?? 'Unknown'))))\n const profileData = yAxisFields.map((field) => {\n const base: Record<string, unknown> = {\n measureKey: field,\n measureLabel: getFieldLabel(field),\n }\n for (const seriesVal of seriesValues) {\n const matchingRows = data.filter((row) => String(row[seriesField] ?? 'Unknown') === seriesVal)\n const values = matchingRows\n .map((r) => {\n const v = r[field]\n return typeof v === 'number' ? v : parseFloat(String(v ?? ''))\n })\n .filter((v) => !isNaN(v))\n base[seriesVal] = values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : null\n }\n return base\n })\n return { profileData, seriesKeys: seriesValues }\n } else {\n const VALUE_KEY = '_value'\n const profileData = yAxisFields.map((field) => {\n const values = data\n .map((r) => {\n const v = r[field]\n return typeof v === 'number' ? v : parseFloat(String(v ?? ''))\n })\n .filter((v) => !isNaN(v))\n return {\n measureKey: field,\n measureLabel: getFieldLabel(field),\n [VALUE_KEY]: values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : null,\n }\n })\n return { profileData, seriesKeys: [VALUE_KEY] }\n }\n}\n\nconst MeasureProfileChart = React.memo(function MeasureProfileChart({\n data,\n chartConfig,\n displayConfig = {},\n height = '100%',\n colorPalette,\n drillEnabled,\n}: ChartProps) {\n const getFieldLabel = useCubeFieldLabel()\n\n const showReferenceLineAtZero = displayConfig?.showReferenceLineAtZero ?? true\n const showDataLabels = displayConfig?.showDataLabels ?? false\n const lineType = displayConfig?.lineType ?? 'monotone'\n const yAxisFormat = displayConfig?.leftYAxisFormat\n\n const { yAxisFields, seriesField, configError } = useMemo(() => {\n const yAxisFields: string[] = Array.isArray(chartConfig?.yAxis)\n ? chartConfig.yAxis\n : []\n const seriesField = Array.isArray(chartConfig?.series)\n ? chartConfig.series[0]\n : chartConfig?.series ?? undefined\n const configError =\n yAxisFields.length < 2 ? 'Measure Profile chart requires at least 2 measures in Y-Axis' : null\n return { yAxisFields, seriesField, configError }\n }, [chartConfig])\n\n const { profileData, seriesKeys } = useMemo(() => {\n if (configError || !data || data.length === 0) return { profileData: [], seriesKeys: [] }\n return pivotMeasuresToProfile(\n data as Record<string, unknown>[],\n yAxisFields,\n seriesField,\n getFieldLabel\n )\n }, [data, yAxisFields, seriesField, getFieldLabel, configError])\n\n const showLegend = (displayConfig?.showLegend ?? true) && seriesKeys.length > 1\n\n try {\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No data available</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No data points to display in measure profile chart</div>\n </div>\n </div>\n )\n }\n\n if (configError) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Configuration Error</div>\n <div className=\"dc:text-xs\">{configError}</div>\n </div>\n </div>\n )\n }\n return (\n <div className=\"dc:relative dc:w-full\" style={{ height }}>\n <ChartContainer height=\"100%\">\n <LineChart data={profileData} margin={{ ...CHART_MARGINS, left: 40 }} accessibilityLayer={false}>\n <CartesianGrid strokeDasharray=\"3 3\" style={{ pointerEvents: 'none' }} />\n <XAxis dataKey=\"measureLabel\" type=\"category\" tick={<AngledXAxisTick />} height={60} />\n <YAxis\n tick={{ fontSize: 12 }}\n tickFormatter={yAxisFormat ? (v) => formatAxisValue(v, yAxisFormat) : undefined}\n />\n <ChartTooltip\n formatter={(value: any, name: any) => {\n if (value === null || value === undefined) return ['No data', name]\n const formatted = yAxisFormat ? formatAxisValue(value, yAxisFormat) : value?.toLocaleString?.() ?? value\n const displayName = name === '_value' ? (getFieldLabel(yAxisFields[0]?.split('.')[0]) || 'Value') : name\n return [formatted, displayName]\n }}\n />\n {showReferenceLineAtZero && (\n <ReferenceLine y={0} stroke=\"var(--dc-border, #94a3b8)\" strokeDasharray=\"4 2\" />\n )}\n {showLegend && (\n <Legend wrapperStyle={{ fontSize: '12px', paddingTop: '8px' }} />\n )}\n {seriesKeys.map((seriesKey, index) => (\n <Line\n key={seriesKey}\n type={lineType}\n dataKey={seriesKey}\n name={seriesKey === '_value' ? (getFieldLabel(yAxisFields[0]?.split('.')[0]) || 'Value') : seriesKey}\n stroke={\n (colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) ||\n CHART_COLORS[index % CHART_COLORS.length]\n }\n strokeWidth={2}\n dot={showDataLabels ? { r: 4 } : { r: 3 }}\n activeDot={{ r: 5 }}\n label={showDataLabels ? { position: 'top', fontSize: 10 } : undefined}\n isAnimationActive={false}\n cursor={drillEnabled ? 'pointer' : undefined}\n />\n ))}\n </LineChart>\n </ChartContainer>\n </div>\n )\n } catch (error) {\n return (\n <div className=\"dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Measure Profile Chart Error</div>\n <div className=\"dc:text-xs dc:mb-2\">{error instanceof Error ? error.message : 'Unknown rendering error'}</div>\n <div className=\"dc:text-xs text-dc-text-muted\">Check the data and configuration</div>\n </div>\n </div>\n )\n }\n})\n\nexport default MeasureProfileChart\n"],"names":["pivotMeasuresToProfile","data","yAxisFields","seriesField","getFieldLabel","seriesValues","row","field","base","seriesVal","values","r","v","a","b","VALUE_KEY","MeasureProfileChart","React","chartConfig","displayConfig","height","colorPalette","drillEnabled","useCubeFieldLabel","showReferenceLineAtZero","showDataLabels","lineType","yAxisFormat","configError","useMemo","profileData","seriesKeys","showLegend","jsx","jsxs","ChartContainer","LineChart","CHART_MARGINS","CartesianGrid","XAxis","AngledXAxisTick","YAxis","formatAxisValue","ChartTooltip","value","name","formatted","displayName","ReferenceLine","Legend","seriesKey","index","Line","CHART_COLORS","error"],"mappings":";;;;;AAwBA,SAASA,EACPC,GACAC,GACAC,GACAC,GACkE;AAClE,MAAI,CAACH,KAAQA,EAAK,WAAW,KAAKC,EAAY,WAAW;AACvD,WAAO,EAAE,aAAa,IAAI,YAAY,CAAA,EAAC;AAGzC,MAAIC,GAAa;AACf,UAAME,IAAe,MAAM,KAAK,IAAI,IAAIJ,EAAK,IAAI,CAACK,MAAQ,OAAOA,EAAIH,CAAW,KAAK,SAAS,CAAC,CAAC,CAAC;AAkBjG,WAAO,EAAE,aAjBWD,EAAY,IAAI,CAACK,MAAU;AAC7C,YAAMC,IAAgC;AAAA,QACpC,YAAYD;AAAA,QACZ,cAAcH,EAAcG,CAAK;AAAA,MAAA;AAEnC,iBAAWE,KAAaJ,GAAc;AAEpC,cAAMK,IADeT,EAAK,OAAO,CAACK,MAAQ,OAAOA,EAAIH,CAAW,KAAK,SAAS,MAAMM,CAAS,EAE1F,IAAI,CAACE,MAAM;AACV,gBAAMC,IAAID,EAAEJ,CAAK;AACjB,iBAAO,OAAOK,KAAM,WAAWA,IAAI,WAAW,OAAOA,KAAK,EAAE,CAAC;AAAA,QAC/D,CAAC,EACA,OAAO,CAACA,MAAM,CAAC,MAAMA,CAAC,CAAC;AAC1B,QAAAJ,EAAKC,CAAS,IAAIC,EAAO,SAAS,IAAIA,EAAO,OAAO,CAACG,GAAGC,MAAMD,IAAIC,GAAG,CAAC,IAAIJ,EAAO,SAAS;AAAA,MAC5F;AACA,aAAOF;AAAA,IACT,CAAC,GACqB,YAAYH,EAAA;AAAA,EACpC,OAAO;AACL,UAAMU,IAAY;AAclB,WAAO,EAAE,aAbWb,EAAY,IAAI,CAACK,MAAU;AAC7C,YAAMG,IAAST,EACZ,IAAI,CAACU,MAAM;AACV,cAAMC,IAAID,EAAEJ,CAAK;AACjB,eAAO,OAAOK,KAAM,WAAWA,IAAI,WAAW,OAAOA,KAAK,EAAE,CAAC;AAAA,MAC/D,CAAC,EACA,OAAO,CAACA,MAAM,CAAC,MAAMA,CAAC,CAAC;AAC1B,aAAO;AAAA,QACL,YAAYL;AAAA,QACZ,cAAcH,EAAcG,CAAK;AAAA,QACjC,CAACQ,CAAS,GAAGL,EAAO,SAAS,IAAIA,EAAO,OAAO,CAACG,GAAGC,MAAMD,IAAIC,GAAG,CAAC,IAAIJ,EAAO,SAAS;AAAA,MAAA;AAAA,IAEzF,CAAC,GACqB,YAAY,CAACK,CAAS,EAAA;AAAA,EAC9C;AACF;AAEA,MAAMC,IAAsBC,EAAM,KAAK,SAA6B;AAAA,EAClE,MAAAhB;AAAA,EACA,aAAAiB;AAAA,EACA,eAAAC,IAAgB,CAAA;AAAA,EAChB,QAAAC,IAAS;AAAA,EACT,cAAAC;AAAA,EACA,cAAAC;AACF,GAAe;AACb,QAAMlB,IAAgBmB,EAAA,GAEhBC,IAA0BL,GAAe,2BAA2B,IACpEM,IAAiBN,GAAe,kBAAkB,IAClDO,IAAWP,GAAe,YAAY,YACtCQ,IAAcR,GAAe,iBAE7B,EAAE,aAAAjB,GAAa,aAAAC,GAAa,aAAAyB,EAAA,IAAgBC,EAAQ,MAAM;AAC9D,UAAM3B,IAAwB,MAAM,QAAQgB,GAAa,KAAK,IAC1DA,EAAY,QACZ,CAAA,GACEf,IAAc,MAAM,QAAQe,GAAa,MAAM,IACjDA,EAAY,OAAO,CAAC,IACpBA,GAAa,UAAU,QACrBU,IACJ1B,EAAY,SAAS,IAAI,iEAAiE;AAC5F,WAAO,EAAE,aAAAA,GAAa,aAAAC,GAAa,aAAAyB,EAAAA;AAAAA,EACrC,GAAG,CAACV,CAAW,CAAC,GAEV,EAAE,aAAAY,GAAa,YAAAC,EAAA,IAAeF,EAAQ,MACtCD,KAAe,CAAC3B,KAAQA,EAAK,WAAW,IAAU,EAAE,aAAa,IAAI,YAAY,CAAA,EAAC,IAC/ED;AAAA,IACLC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAED,CAACH,GAAMC,GAAaC,GAAaC,GAAewB,CAAW,CAAC,GAEzDI,KAAcb,GAAe,cAAc,OAASY,EAAW,SAAS;AAE9E,MAAI;AACF,WAAI,CAAC9B,KAAQA,EAAK,WAAW,IAEzB,gBAAAgC,EAAC,OAAA,EAAI,WAAU,0EAAyE,OAAO,EAAE,QAAAb,EAAA,GAC/F,UAAA,gBAAAc,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,qBAAiB;AAAA,MACtE,gBAAAA,EAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA,qDAAA,CAAkD;AAAA,IAAA,EAAA,CACvG,EAAA,CACF,IAIAL,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAU,uEAAsE,OAAO,EAAE,QAAAb,EAAA,GAC5F,UAAA,gBAAAc,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,uBAAmB;AAAA,MACxE,gBAAAA,EAAC,OAAA,EAAI,WAAU,cAAc,UAAAL,EAAA,CAAY;AAAA,IAAA,EAAA,CAC3C,EAAA,CACF,IAIF,gBAAAK,EAAC,OAAA,EAAI,WAAU,yBAAwB,OAAO,EAAE,QAAAb,EAAA,GAC9C,UAAA,gBAAAa,EAACE,GAAA,EAAe,QAAO,QACrB,4BAACC,GAAA,EAAU,MAAMN,GAAa,QAAQ,EAAE,GAAGO,GAAe,MAAM,GAAA,GAAM,oBAAoB,IACxF,UAAA;AAAA,MAAA,gBAAAJ,EAACK,KAAc,iBAAgB,OAAM,OAAO,EAAE,eAAe,UAAU;AAAA,MACvE,gBAAAL,EAACM,GAAA,EAAM,SAAQ,gBAAe,MAAK,YAAW,MAAM,gBAAAN,EAACO,GAAA,CAAA,CAAgB,GAAI,QAAQ,GAAA,CAAI;AAAA,MACrF,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,MAAM,EAAE,UAAU,GAAA;AAAA,UAClB,eAAed,IAAc,CAACf,MAAM8B,EAAgB9B,GAAGe,CAAW,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAExE,gBAAAM;AAAA,QAACU;AAAA,QAAA;AAAA,UACC,WAAW,CAACC,GAAYC,MAAc;AACpC,gBAAID,KAAU,KAA6B,QAAO,CAAC,WAAWC,CAAI;AAClE,kBAAMC,IAAYnB,IAAce,EAAgBE,GAAOjB,CAAW,IAAIiB,GAAO,sBAAsBA,GAC7FG,IAAcF,MAAS,WAAYzC,EAAcF,EAAY,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,UAAW2C;AACpG,mBAAO,CAACC,GAAWC,CAAW;AAAA,UAChC;AAAA,QAAA;AAAA,MAAA;AAAA,MAEDvB,uBACEwB,GAAA,EAAc,GAAG,GAAG,QAAO,6BAA4B,iBAAgB,OAAM;AAAA,MAE/EhB,uBACEiB,GAAA,EAAO,cAAc,EAAE,UAAU,QAAQ,YAAY,MAAA,GAAS;AAAA,MAEhElB,EAAW,IAAI,CAACmB,GAAWC,MAC1B,gBAAAlB;AAAA,QAACmB;AAAA,QAAA;AAAA,UAEC,MAAM1B;AAAA,UACN,SAASwB;AAAA,UACT,MAAMA,MAAc,WAAY9C,EAAcF,EAAY,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,UAAWgD;AAAA,UAC3F,QACG7B,GAAc,UAAUA,EAAa,OAAO8B,IAAQ9B,EAAa,OAAO,MAAM,KAC/EgC,EAAaF,IAAQE,EAAa,MAAM;AAAA,UAE1C,aAAa;AAAA,UACb,KAAK5B,IAAiB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAA;AAAA,UACtC,WAAW,EAAE,GAAG,EAAA;AAAA,UAChB,OAAOA,IAAiB,EAAE,UAAU,OAAO,UAAU,OAAO;AAAA,UAC5D,mBAAmB;AAAA,UACnB,QAAQH,IAAe,YAAY;AAAA,QAAA;AAAA,QAb9B4B;AAAA,MAAA,CAeR;AAAA,IAAA,EAAA,CACH,GACF,GACF;AAAA,EAEJ,SAASI,GAAO;AACd,WACE,gBAAArB,EAAC,OAAA,EAAI,WAAU,wFAAuF,OAAO,EAAE,QAAAb,EAAA,GAC7G,UAAA,gBAAAc,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,+BAA2B;AAAA,MAChF,gBAAAA,EAAC,SAAI,WAAU,sBAAsB,uBAAiB,QAAQqB,EAAM,UAAU,0BAAA,CAA0B;AAAA,MACxG,gBAAArB,EAAC,OAAA,EAAI,WAAU,iCAAgC,UAAA,mCAAA,CAAgC;AAAA,IAAA,EAAA,CACjF,EAAA,CACF;AAAA,EAEJ;AACF,CAAC;"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { jsx as t, jsxs as o } from "react/jsx-runtime";
|
|
2
|
-
import w, { useState as F } from "react";
|
|
3
|
-
import { PieChart as L, Pie as S, Cell as T, Legend as j } from "recharts";
|
|
4
|
-
import { u as E, t as Y, g as R, d as _, a as $, c as b, b as z, f as P } from "./charts-core-BUUO36OM.js";
|
|
5
|
-
const H = w.memo(function({
|
|
6
|
-
data: x,
|
|
7
|
-
chartConfig: i,
|
|
8
|
-
displayConfig: m = {},
|
|
9
|
-
queryObject: v,
|
|
10
|
-
height: n = "100%",
|
|
11
|
-
colorPalette: u,
|
|
12
|
-
onDataPointClick: y,
|
|
13
|
-
drillEnabled: h
|
|
14
|
-
}) {
|
|
15
|
-
const [p, A] = F(null), g = E();
|
|
16
|
-
try {
|
|
17
|
-
const c = {
|
|
18
|
-
showLegend: m?.showLegend ?? !0,
|
|
19
|
-
showTooltip: m?.showTooltip ?? !0,
|
|
20
|
-
leftYAxisFormat: m?.leftYAxisFormat
|
|
21
|
-
};
|
|
22
|
-
if (!x || x.length === 0)
|
|
23
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: n }, children: /* @__PURE__ */ o("div", { className: "dc:text-center", children: [
|
|
24
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No data available" }),
|
|
25
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs text-dc-text-secondary", children: "No data points to display in pie chart" })
|
|
26
|
-
] }) });
|
|
27
|
-
let l, a, d, f = [];
|
|
28
|
-
if (i?.xAxis && i?.yAxis)
|
|
29
|
-
a = Array.isArray(i.xAxis) ? i.xAxis[0] : i.xAxis, d = Array.isArray(i.yAxis) ? i.yAxis : [i.yAxis], f = i.series || [];
|
|
30
|
-
else if (i?.x && i?.y)
|
|
31
|
-
a = i.x, d = Array.isArray(i.y) ? i.y : [i.y];
|
|
32
|
-
else
|
|
33
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning", style: { height: n }, children: /* @__PURE__ */ o("div", { className: "dc:text-center", children: [
|
|
34
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Configuration Error" }),
|
|
35
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs", children: "chartConfig.x/y or chartConfig.xAxis/yAxis required for pie chart" })
|
|
36
|
-
] }) });
|
|
37
|
-
if (!a || !d || d.length === 0)
|
|
38
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning", style: { height: n }, children: /* @__PURE__ */ o("div", { className: "dc:text-center", children: [
|
|
39
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Configuration Error" }),
|
|
40
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs", children: "Missing required X-axis or Y-axis fields" })
|
|
41
|
-
] }) });
|
|
42
|
-
if (f.length > 0) {
|
|
43
|
-
const { data: s } = Y(
|
|
44
|
-
x,
|
|
45
|
-
a,
|
|
46
|
-
d,
|
|
47
|
-
v,
|
|
48
|
-
f,
|
|
49
|
-
g
|
|
50
|
-
);
|
|
51
|
-
if (l = [], s.length > 0) {
|
|
52
|
-
const e = s[0];
|
|
53
|
-
Object.keys(e).forEach((r) => {
|
|
54
|
-
r !== "name" && typeof e[r] == "number" && l.push({
|
|
55
|
-
name: String(r),
|
|
56
|
-
value: e[r]
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
} else {
|
|
61
|
-
const s = R(v, a);
|
|
62
|
-
l = x.map((e) => {
|
|
63
|
-
let r = _(e[a], s) || String(e[a]) || "Unknown";
|
|
64
|
-
return typeof e[a] == "boolean" ? r = e[a] ? "Active" : "Inactive" : (r === "true" || r === "false") && (r = r === "true" ? "Active" : "Inactive"), {
|
|
65
|
-
name: r,
|
|
66
|
-
value: typeof e[d[0]] == "string" ? parseFloat(e[d[0]]) : e[d[0]] || 0
|
|
67
|
-
};
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
const N = l.length;
|
|
71
|
-
return l = l.filter(
|
|
72
|
-
(s) => s.value != null && !isNaN(s.value) && s.value !== 0 && s.value > 0
|
|
73
|
-
), l.length === 0 ? /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: n }, children: /* @__PURE__ */ o("div", { className: "dc:text-center", children: [
|
|
74
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No valid data" }),
|
|
75
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs text-dc-text-secondary", children: N > 0 ? `Filtered out ${N} data points (zero or invalid values)` : "No data points to display in pie chart" })
|
|
76
|
-
] }) }) : /* @__PURE__ */ t($, { height: n, children: /* @__PURE__ */ o(L, { accessibilityLayer: !1, children: [
|
|
77
|
-
/* @__PURE__ */ t(
|
|
78
|
-
S,
|
|
79
|
-
{
|
|
80
|
-
data: l,
|
|
81
|
-
cx: "50%",
|
|
82
|
-
cy: "50%",
|
|
83
|
-
outerRadius: "70%",
|
|
84
|
-
dataKey: "value",
|
|
85
|
-
label: c.showLegend ? void 0 : ({ name: s, percent: e }) => `${s} ${((e || 0) * 100).toFixed(0)}%`,
|
|
86
|
-
cursor: h ? "pointer" : void 0,
|
|
87
|
-
onClick: (s, e, r) => {
|
|
88
|
-
y && h && s && y({
|
|
89
|
-
dataPoint: s,
|
|
90
|
-
clickedField: d[0],
|
|
91
|
-
xValue: s.name,
|
|
92
|
-
position: { x: r.clientX, y: r.clientY },
|
|
93
|
-
nativeEvent: r
|
|
94
|
-
});
|
|
95
|
-
},
|
|
96
|
-
children: l.map((s, e) => /* @__PURE__ */ t(
|
|
97
|
-
T,
|
|
98
|
-
{
|
|
99
|
-
fill: u?.colors && u.colors[e % u.colors.length] || b[e % b.length],
|
|
100
|
-
fillOpacity: p ? p === l[e].name ? 1 : 0.3 : 1
|
|
101
|
-
},
|
|
102
|
-
`cell-${e}`
|
|
103
|
-
))
|
|
104
|
-
}
|
|
105
|
-
),
|
|
106
|
-
c.showTooltip && /* @__PURE__ */ t(
|
|
107
|
-
z,
|
|
108
|
-
{
|
|
109
|
-
formatter: c.leftYAxisFormat ? (s, e) => [P(s, c.leftYAxisFormat), e] : void 0
|
|
110
|
-
}
|
|
111
|
-
),
|
|
112
|
-
c.showLegend && /* @__PURE__ */ t(
|
|
113
|
-
j,
|
|
114
|
-
{
|
|
115
|
-
wrapperStyle: { fontSize: "12px", paddingTop: "10px" },
|
|
116
|
-
iconType: "circle",
|
|
117
|
-
iconSize: 8,
|
|
118
|
-
layout: "horizontal",
|
|
119
|
-
align: "center",
|
|
120
|
-
verticalAlign: "bottom",
|
|
121
|
-
onMouseEnter: (s) => A(String(s.value || "")),
|
|
122
|
-
onMouseLeave: () => A(null)
|
|
123
|
-
}
|
|
124
|
-
)
|
|
125
|
-
] }) });
|
|
126
|
-
} catch (c) {
|
|
127
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4", style: { height: n }, children: /* @__PURE__ */ o("div", { className: "dc:text-center", children: [
|
|
128
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Pie Chart Error" }),
|
|
129
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs dc:mb-2", children: c instanceof Error ? c.message : "Unknown rendering error" }),
|
|
130
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs text-dc-text-muted", children: "Check the data and configuration" })
|
|
131
|
-
] }) });
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
export {
|
|
135
|
-
H as default
|
|
136
|
-
};
|
|
137
|
-
//# sourceMappingURL=chart-pie-DblG6w7g.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-pie-DblG6w7g.js","sources":["../../../src/client/components/charts/PieChart.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { PieChart as RechartsPieChart, Pie, Cell, Legend } from 'recharts'\nimport ChartContainer from './ChartContainer'\nimport ChartTooltip from './ChartTooltip'\nimport { CHART_COLORS } from '../../utils/chartConstants'\nimport { transformChartDataWithSeries, formatTimeValue, getFieldGranularity, formatAxisValue } from '../../utils/chartUtils'\nimport { useCubeFieldLabel } from '../../hooks/useCubeFieldLabel'\nimport type { ChartProps } from '../../types'\n\nconst PieChart = React.memo(function PieChart({\n data,\n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette,\n onDataPointClick,\n drillEnabled\n}: ChartProps) {\n const [hoveredLegend, setHoveredLegend] = useState<string | null>(null)\n // Use specialized hook to avoid re-renders from unrelated context changes\n const getFieldLabel = useCubeFieldLabel()\n \n try {\n const safeDisplayConfig = {\n showLegend: displayConfig?.showLegend ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n leftYAxisFormat: displayConfig?.leftYAxisFormat\n }\n\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No data available</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No data points to display in pie chart</div>\n </div>\n </div>\n )\n }\n\n let pieData: Array<{name: string, value: number}>\n\n // Validate chartConfig - support both legacy and new formats\n let xAxisField: string\n let yAxisFields: string[]\n let seriesFields: string[] = []\n \n if (chartConfig?.xAxis && chartConfig?.yAxis) {\n // New format\n xAxisField = Array.isArray(chartConfig.xAxis) ? chartConfig.xAxis[0] : chartConfig.xAxis\n yAxisFields = Array.isArray(chartConfig.yAxis) ? chartConfig.yAxis : [chartConfig.yAxis]\n seriesFields = chartConfig.series || []\n } else if (chartConfig?.x && chartConfig?.y) {\n // Legacy format\n xAxisField = chartConfig.x\n yAxisFields = Array.isArray(chartConfig.y) ? chartConfig.y : [chartConfig.y]\n } else {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Configuration Error</div>\n <div className=\"dc:text-xs\">chartConfig.x/y or chartConfig.xAxis/yAxis required for pie chart</div>\n </div>\n </div>\n )\n }\n\n if (!xAxisField || !yAxisFields || yAxisFields.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Configuration Error</div>\n <div className=\"dc:text-xs\">Missing required X-axis or Y-axis fields</div>\n </div>\n </div>\n )\n }\n\n if (seriesFields.length > 0) {\n // Use series-based transformation for dimension-based pie slices\n const { data: chartData } = transformChartDataWithSeries(\n data,\n xAxisField,\n yAxisFields,\n queryObject,\n seriesFields,\n getFieldLabel\n )\n \n // Convert series data to pie format\n pieData = []\n if (chartData.length > 0) {\n const firstRow = chartData[0]\n Object.keys(firstRow).forEach(key => {\n if (key !== 'name' && typeof firstRow[key] === 'number') {\n pieData.push({\n name: String(key),\n value: firstRow[key]\n })\n }\n })\n }\n } else {\n // Standard measure-based pie chart\n const granularity = getFieldGranularity(queryObject, xAxisField)\n pieData = data.map(item => {\n let name = formatTimeValue(item[xAxisField], granularity) || String(item[xAxisField]) || 'Unknown'\n // Handle boolean values with better labels\n if (typeof item[xAxisField] === 'boolean') {\n name = item[xAxisField] ? 'Active' : 'Inactive'\n } else if (name === 'true' || name === 'false') {\n name = name === 'true' ? 'Active' : 'Inactive'\n }\n return {\n name,\n value: typeof item[yAxisFields[0]] === 'string' \n ? parseFloat(item[yAxisFields[0]]) \n : (item[yAxisFields[0]] || 0)\n }\n })\n }\n\n // Filter out invalid values (null, undefined, NaN, or zero)\n const originalLength = pieData.length\n pieData = pieData.filter(item => \n item.value != null && \n !isNaN(item.value) && \n item.value !== 0 && \n item.value > 0\n )\n \n if (pieData.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No valid data</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">\n {originalLength > 0\n ? `Filtered out ${originalLength} data points (zero or invalid values)`\n : 'No data points to display in pie chart'\n }\n </div>\n </div>\n </div>\n )\n }\n \n return (\n <ChartContainer height={height}>\n <RechartsPieChart accessibilityLayer={false}>\n <Pie\n data={pieData}\n cx=\"50%\"\n cy=\"50%\"\n outerRadius=\"70%\"\n dataKey=\"value\"\n label={!safeDisplayConfig.showLegend ? ({ name, percent }) =>\n `${name} ${((percent || 0) * 100).toFixed(0)}%`\n : undefined}\n cursor={drillEnabled ? 'pointer' : undefined}\n onClick={(sliceData: any, _index: number, event: React.MouseEvent) => {\n if (onDataPointClick && drillEnabled && sliceData) {\n onDataPointClick({\n dataPoint: sliceData,\n clickedField: yAxisFields[0],\n xValue: sliceData.name,\n position: { x: event.clientX, y: event.clientY },\n nativeEvent: event\n })\n }\n }}\n >\n {pieData.map((_entry, index) => (\n <Cell\n key={`cell-${index}`}\n fill={(colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]}\n fillOpacity={hoveredLegend ? (hoveredLegend === pieData[index].name ? 1 : 0.3) : 1}\n />\n ))}\n </Pie>\n {safeDisplayConfig.showTooltip && (\n <ChartTooltip\n formatter={safeDisplayConfig.leftYAxisFormat\n ? (value: any, name: string) => [formatAxisValue(value, safeDisplayConfig.leftYAxisFormat), name]\n : undefined\n }\n />\n )}\n {safeDisplayConfig.showLegend && (\n <Legend \n wrapperStyle={{ fontSize: '12px', paddingTop: '10px' }}\n iconType=\"circle\"\n iconSize={8}\n layout=\"horizontal\"\n align=\"center\"\n verticalAlign=\"bottom\"\n onMouseEnter={(o) => setHoveredLegend(String(o.value || ''))}\n onMouseLeave={() => setHoveredLegend(null)}\n />\n )}\n </RechartsPieChart>\n </ChartContainer>\n )\n } catch (error) {\n // 'PieChart rendering error\n return (\n <div className=\"dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Pie Chart Error</div>\n <div className=\"dc:text-xs dc:mb-2\">{error instanceof Error ? error.message : 'Unknown rendering error'}</div>\n <div className=\"dc:text-xs text-dc-text-muted\">Check the data and configuration</div>\n </div>\n </div>\n )\n }\n})\n\nexport default PieChart"],"names":["PieChart","React","data","chartConfig","displayConfig","queryObject","height","colorPalette","onDataPointClick","drillEnabled","hoveredLegend","setHoveredLegend","useState","getFieldLabel","useCubeFieldLabel","safeDisplayConfig","jsx","jsxs","pieData","xAxisField","yAxisFields","seriesFields","chartData","transformChartDataWithSeries","firstRow","key","granularity","getFieldGranularity","item","name","formatTimeValue","originalLength","ChartContainer","RechartsPieChart","Pie","percent","sliceData","_index","event","_entry","index","Cell","CHART_COLORS","ChartTooltip","value","formatAxisValue","Legend","o","error"],"mappings":"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"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { jsx as e, jsxs as h } from "react/jsx-runtime";
|
|
2
|
-
import F, { useState as L } from "react";
|
|
3
|
-
import { RadarChart as S, PolarGrid as R, PolarAngleAxis as j, PolarRadiusAxis as k, Legend as T, Radar as C } from "recharts";
|
|
4
|
-
import { t as Y, g as z, d as E, a as G, f as g, b as D, c as v } from "./charts-core-BUUO36OM.js";
|
|
5
|
-
const M = F.memo(function({
|
|
6
|
-
data: n,
|
|
7
|
-
chartConfig: c,
|
|
8
|
-
displayConfig: p = {},
|
|
9
|
-
queryObject: A,
|
|
10
|
-
height: x = "100%",
|
|
11
|
-
colorPalette: l
|
|
12
|
-
}) {
|
|
13
|
-
const [y, N] = L(null);
|
|
14
|
-
try {
|
|
15
|
-
const a = {
|
|
16
|
-
showLegend: p?.showLegend ?? !0,
|
|
17
|
-
showTooltip: p?.showTooltip ?? !0,
|
|
18
|
-
showGrid: p?.showGrid ?? !0,
|
|
19
|
-
leftYAxisFormat: p?.leftYAxisFormat
|
|
20
|
-
};
|
|
21
|
-
if (!n || n.length === 0)
|
|
22
|
-
return /* @__PURE__ */ e("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: x }, children: /* @__PURE__ */ h("div", { className: "dc:text-center", children: [
|
|
23
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No data available" }),
|
|
24
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs text-dc-text-secondary", children: "No data points to display in radar chart" })
|
|
25
|
-
] }) });
|
|
26
|
-
let m, f = [];
|
|
27
|
-
if (c?.xAxis && c?.yAxis) {
|
|
28
|
-
const t = Array.isArray(c.xAxis) ? c.xAxis[0] : c.xAxis, r = Array.isArray(c.yAxis) ? c.yAxis : [c.yAxis], i = c.series || [], { data: d, seriesKeys: s } = Y(
|
|
29
|
-
n,
|
|
30
|
-
t,
|
|
31
|
-
r,
|
|
32
|
-
A,
|
|
33
|
-
i
|
|
34
|
-
);
|
|
35
|
-
m = d, f = s;
|
|
36
|
-
} else {
|
|
37
|
-
const t = n[0], r = Object.keys(t), i = r.find(
|
|
38
|
-
(s) => typeof t[s] == "string" || s.toLowerCase().includes("subject") || s.toLowerCase().includes("name") || s.toLowerCase().includes("category")
|
|
39
|
-
) || r[0], d = r.filter(
|
|
40
|
-
(s) => typeof t[s] == "number" && s !== i
|
|
41
|
-
);
|
|
42
|
-
if (d.length === 0)
|
|
43
|
-
return /* @__PURE__ */ e("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning", style: { height: x }, children: /* @__PURE__ */ h("div", { className: "dc:text-center", children: [
|
|
44
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Configuration Error" }),
|
|
45
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs", children: "No numeric fields found for radar chart values" })
|
|
46
|
-
] }) });
|
|
47
|
-
if (i) {
|
|
48
|
-
const s = z(A, i);
|
|
49
|
-
m = n.map((o) => {
|
|
50
|
-
const w = {
|
|
51
|
-
name: E(o[i], s) || String(o[i]) || "Unknown"
|
|
52
|
-
};
|
|
53
|
-
return d.forEach((u) => {
|
|
54
|
-
const b = u.split(".").pop() || u;
|
|
55
|
-
w[b] = typeof o[u] == "string" ? parseFloat(o[u]) : o[u] || 0;
|
|
56
|
-
}), w;
|
|
57
|
-
}), f = d.map((o) => o.split(".").pop() || o);
|
|
58
|
-
} else
|
|
59
|
-
m = n.map((s) => ({
|
|
60
|
-
name: String(s[r[0]] || "Unknown"),
|
|
61
|
-
value: typeof s[d[0]] == "string" ? parseFloat(s[d[0]]) : s[d[0]] || 0
|
|
62
|
-
})), f = ["value"];
|
|
63
|
-
}
|
|
64
|
-
return !m || m.length === 0 ? /* @__PURE__ */ e("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: x }, children: /* @__PURE__ */ h("div", { className: "dc:text-center", children: [
|
|
65
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No valid data" }),
|
|
66
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs text-dc-text-secondary", children: "No valid data points for radar chart after transformation" })
|
|
67
|
-
] }) }) : /* @__PURE__ */ e(G, { height: x, children: /* @__PURE__ */ h(S, { data: m, margin: { top: 20, right: 80, bottom: 20, left: 80 }, accessibilityLayer: !1, children: [
|
|
68
|
-
a.showGrid && /* @__PURE__ */ e(R, {}),
|
|
69
|
-
/* @__PURE__ */ e(
|
|
70
|
-
j,
|
|
71
|
-
{
|
|
72
|
-
dataKey: "name",
|
|
73
|
-
tick: { fontSize: 12 },
|
|
74
|
-
className: "text-dc-text-muted"
|
|
75
|
-
}
|
|
76
|
-
),
|
|
77
|
-
/* @__PURE__ */ e(
|
|
78
|
-
k,
|
|
79
|
-
{
|
|
80
|
-
tick: { fontSize: 10 },
|
|
81
|
-
className: "text-dc-text-muted",
|
|
82
|
-
tickFormatter: a.leftYAxisFormat ? (t) => g(t, a.leftYAxisFormat) : void 0
|
|
83
|
-
}
|
|
84
|
-
),
|
|
85
|
-
a.showTooltip && /* @__PURE__ */ e(
|
|
86
|
-
D,
|
|
87
|
-
{
|
|
88
|
-
formatter: a.leftYAxisFormat ? (t, r) => [g(t, a.leftYAxisFormat), r] : void 0
|
|
89
|
-
}
|
|
90
|
-
),
|
|
91
|
-
a.showLegend && f.length > 1 && /* @__PURE__ */ e(
|
|
92
|
-
T,
|
|
93
|
-
{
|
|
94
|
-
wrapperStyle: { fontSize: "12px", paddingTop: "10px" },
|
|
95
|
-
iconType: "rect",
|
|
96
|
-
iconSize: 8,
|
|
97
|
-
layout: "horizontal",
|
|
98
|
-
align: "center",
|
|
99
|
-
verticalAlign: "bottom",
|
|
100
|
-
onMouseEnter: (t) => N(String(t.dataKey || "")),
|
|
101
|
-
onMouseLeave: () => N(null)
|
|
102
|
-
}
|
|
103
|
-
),
|
|
104
|
-
f.map((t, r) => /* @__PURE__ */ e(
|
|
105
|
-
C,
|
|
106
|
-
{
|
|
107
|
-
name: t,
|
|
108
|
-
dataKey: t,
|
|
109
|
-
stroke: l?.colors && l.colors[r % l.colors.length] || v[r % v.length],
|
|
110
|
-
fill: l?.colors && l.colors[r % l.colors.length] || v[r % v.length],
|
|
111
|
-
fillOpacity: y ? y === t ? 0.6 : 0.1 : 0.3,
|
|
112
|
-
strokeOpacity: y ? y === t ? 1 : 0.3 : 1,
|
|
113
|
-
strokeWidth: 2
|
|
114
|
-
},
|
|
115
|
-
t
|
|
116
|
-
))
|
|
117
|
-
] }) });
|
|
118
|
-
} catch (a) {
|
|
119
|
-
return /* @__PURE__ */ e("div", { className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4", style: { height: x }, children: /* @__PURE__ */ h("div", { className: "dc:text-center", children: [
|
|
120
|
-
/* @__PURE__ */ e("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Radar Chart Error" }),
|
|
121
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs dc:mb-2", children: a instanceof Error ? a.message : "Unknown rendering error" }),
|
|
122
|
-
/* @__PURE__ */ e("div", { className: "dc:text-xs text-dc-text-muted", children: "Check the data and configuration" })
|
|
123
|
-
] }) });
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
export {
|
|
127
|
-
M as default
|
|
128
|
-
};
|
|
129
|
-
//# sourceMappingURL=chart-radar-BHZbeeTg.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-radar-BHZbeeTg.js","sources":["../../../src/client/components/charts/RadarChart.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { RadarChart as RechartsRadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar, Legend } from 'recharts'\nimport ChartContainer from './ChartContainer'\nimport ChartTooltip from './ChartTooltip'\nimport { CHART_COLORS } from '../../utils/chartConstants'\nimport { transformChartDataWithSeries, formatTimeValue, getFieldGranularity, formatAxisValue } from '../../utils/chartUtils'\nimport type { ChartProps } from '../../types'\n\nconst RadarChart = React.memo(function RadarChart({ \n data, \n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const [hoveredLegend, setHoveredLegend] = useState<string | null>(null)\n \n try {\n const safeDisplayConfig = {\n showLegend: displayConfig?.showLegend ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n showGrid: displayConfig?.showGrid ?? true,\n leftYAxisFormat: displayConfig?.leftYAxisFormat\n }\n\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No data available</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No data points to display in radar chart</div>\n </div>\n </div>\n )\n }\n\n let radarData: any[]\n let seriesKeys: string[] = []\n\n if (chartConfig?.xAxis && chartConfig?.yAxis) {\n // New format - use chart config\n const xAxisField = Array.isArray(chartConfig.xAxis) ? chartConfig.xAxis[0] : chartConfig.xAxis // Subject/category field\n const yAxisFields = Array.isArray(chartConfig.yAxis) ? chartConfig.yAxis : [chartConfig.yAxis] // Value fields\n const seriesFields = chartConfig.series || []\n\n // Use shared function to transform data and handle series\n const { data: chartData, seriesKeys: transformedSeriesKeys } = transformChartDataWithSeries(\n data, \n xAxisField, \n yAxisFields, \n queryObject,\n seriesFields\n )\n \n radarData = chartData\n seriesKeys = transformedSeriesKeys\n } else {\n // Legacy format or auto-detection - try to find suitable fields\n const firstRow = data[0]\n const keys = Object.keys(firstRow)\n \n // Try to find subject/category field\n const subjectField = keys.find(key => \n typeof firstRow[key] === 'string' ||\n key.toLowerCase().includes('subject') ||\n key.toLowerCase().includes('name') ||\n key.toLowerCase().includes('category')\n ) || keys[0]\n\n // Find numeric fields for values\n const valueFields = keys.filter(key => \n typeof firstRow[key] === 'number' && key !== subjectField\n )\n\n if (valueFields.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Configuration Error</div>\n <div className=\"dc:text-xs\">No numeric fields found for radar chart values</div>\n </div>\n </div>\n )\n }\n\n // Transform data for radar chart\n if (subjectField) {\n // Use subject field for radar categories\n const granularity = getFieldGranularity(queryObject, subjectField)\n radarData = data.map(item => {\n const transformedItem: any = {\n name: formatTimeValue(item[subjectField], granularity) || String(item[subjectField]) || 'Unknown'\n }\n \n valueFields.forEach(field => {\n const displayName = field.split('.').pop() || field\n transformedItem[displayName] = typeof item[field] === 'string' \n ? parseFloat(item[field]) \n : (item[field] || 0)\n })\n \n return transformedItem\n })\n \n seriesKeys = valueFields.map(field => field.split('.').pop() || field)\n } else {\n // Fallback - use first value field only\n radarData = data.map(item => ({\n name: String(item[keys[0]] || 'Unknown'),\n value: typeof item[valueFields[0]] === 'string' \n ? parseFloat(item[valueFields[0]]) \n : (item[valueFields[0]] || 0)\n }))\n seriesKeys = ['value']\n }\n }\n \n // Validate transformed data\n if (!radarData || radarData.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No valid data</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No valid data points for radar chart after transformation</div>\n </div>\n </div>\n )\n }\n\n return (\n <ChartContainer height={height}>\n <RechartsRadarChart data={radarData} margin={{ top: 20, right: 80, bottom: 20, left: 80 }} accessibilityLayer={false}>\n {safeDisplayConfig.showGrid && (\n <PolarGrid />\n )}\n <PolarAngleAxis\n dataKey=\"name\"\n tick={{ fontSize: 12 }}\n className=\"text-dc-text-muted\"\n />\n <PolarRadiusAxis\n tick={{ fontSize: 10 }}\n className=\"text-dc-text-muted\"\n tickFormatter={safeDisplayConfig.leftYAxisFormat\n ? (value: any) => formatAxisValue(value, safeDisplayConfig.leftYAxisFormat)\n : undefined\n }\n />\n {safeDisplayConfig.showTooltip && (\n <ChartTooltip\n formatter={safeDisplayConfig.leftYAxisFormat\n ? (value: any, name: string) => [formatAxisValue(value, safeDisplayConfig.leftYAxisFormat), name]\n : undefined\n }\n />\n )}\n {(safeDisplayConfig.showLegend && seriesKeys.length > 1) && (\n <Legend \n wrapperStyle={{ fontSize: '12px', paddingTop: '10px' }}\n iconType=\"rect\"\n iconSize={8}\n layout=\"horizontal\"\n align=\"center\"\n verticalAlign=\"bottom\"\n onMouseEnter={(o) => setHoveredLegend(String(o.dataKey || ''))}\n onMouseLeave={() => setHoveredLegend(null)}\n />\n )}\n {seriesKeys.map((seriesKey, index) => (\n <Radar\n key={seriesKey}\n name={seriesKey}\n dataKey={seriesKey}\n stroke={(colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]}\n fill={(colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]}\n fillOpacity={hoveredLegend ? (hoveredLegend === seriesKey ? 0.6 : 0.1) : 0.3}\n strokeOpacity={hoveredLegend ? (hoveredLegend === seriesKey ? 1 : 0.3) : 1}\n strokeWidth={2}\n />\n ))}\n </RechartsRadarChart>\n </ChartContainer>\n )\n } catch (error) {\n // 'RadarChart rendering error\n return (\n <div className=\"dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Radar Chart Error</div>\n <div className=\"dc:text-xs dc:mb-2\">{error instanceof Error ? error.message : 'Unknown rendering error'}</div>\n <div className=\"dc:text-xs text-dc-text-muted\">Check the data and configuration</div>\n </div>\n </div>\n )\n }\n})\n\nexport default RadarChart"],"names":["RadarChart","React","data","chartConfig","displayConfig","queryObject","height","colorPalette","hoveredLegend","setHoveredLegend","useState","safeDisplayConfig","jsx","jsxs","radarData","seriesKeys","xAxisField","yAxisFields","seriesFields","chartData","transformedSeriesKeys","transformChartDataWithSeries","firstRow","keys","subjectField","key","valueFields","granularity","getFieldGranularity","item","transformedItem","formatTimeValue","field","displayName","ChartContainer","RechartsRadarChart","PolarGrid","PolarAngleAxis","PolarRadiusAxis","value","formatAxisValue","ChartTooltip","name","Legend","o","seriesKey","index","Radar","CHART_COLORS","error"],"mappings":";;;;AAQA,MAAMA,IAAaC,EAAM,KAAK,SAAoB;AAAA,EAChD,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC,IAAgB,CAAA;AAAA,EAChB,aAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC;AACF,GAAe;AACb,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAwB,IAAI;AAEtE,MAAI;AACF,UAAMC,IAAoB;AAAA,MACxB,YAAYP,GAAe,cAAc;AAAA,MACzC,aAAaA,GAAe,eAAe;AAAA,MAC3C,UAAUA,GAAe,YAAY;AAAA,MACrC,iBAAiBA,GAAe;AAAA,IAAA;AAGlC,QAAI,CAACF,KAAQA,EAAK,WAAW;AAC3B,aACE,gBAAAU,EAAC,OAAA,EAAI,WAAU,0EAAyE,OAAO,EAAE,QAAAN,EAAA,GAC/F,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,qBAAiB;AAAA,QACtE,gBAAAA,EAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA,2CAAA,CAAwC;AAAA,MAAA,EAAA,CAC7F,EAAA,CACF;AAIJ,QAAIE,GACAC,IAAuB,CAAA;AAE3B,QAAIZ,GAAa,SAASA,GAAa,OAAO;AAE5C,YAAMa,IAAa,MAAM,QAAQb,EAAY,KAAK,IAAIA,EAAY,MAAM,CAAC,IAAIA,EAAY,OACnFc,IAAc,MAAM,QAAQd,EAAY,KAAK,IAAIA,EAAY,QAAQ,CAACA,EAAY,KAAK,GACvFe,IAAef,EAAY,UAAU,CAAA,GAGrC,EAAE,MAAMgB,GAAW,YAAYC,MAA0BC;AAAA,QAC7DnB;AAAA,QACAc;AAAA,QACAC;AAAA,QACAZ;AAAA,QACAa;AAAA,MAAA;AAGF,MAAAJ,IAAYK,GACZJ,IAAaK;AAAA,IACf,OAAO;AAEL,YAAME,IAAWpB,EAAK,CAAC,GACjBqB,IAAO,OAAO,KAAKD,CAAQ,GAG3BE,IAAeD,EAAK;AAAA,QAAK,CAAAE,MAC7B,OAAOH,EAASG,CAAG,KAAM,YACzBA,EAAI,YAAA,EAAc,SAAS,SAAS,KACpCA,EAAI,YAAA,EAAc,SAAS,MAAM,KACjCA,EAAI,cAAc,SAAS,UAAU;AAAA,MAAA,KAClCF,EAAK,CAAC,GAGLG,IAAcH,EAAK;AAAA,QAAO,OAC9B,OAAOD,EAASG,CAAG,KAAM,YAAYA,MAAQD;AAAA,MAAA;AAG/C,UAAIE,EAAY,WAAW;AACzB,eACE,gBAAAd,EAAC,OAAA,EAAI,WAAU,uEAAsE,OAAO,EAAE,QAAAN,EAAA,GAC5F,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,uBAAmB;AAAA,UACxE,gBAAAA,EAAC,OAAA,EAAI,WAAU,cAAa,UAAA,iDAAA,CAA8C;AAAA,QAAA,EAAA,CAC5E,EAAA,CACF;AAKJ,UAAIY,GAAc;AAEhB,cAAMG,IAAcC,EAAoBvB,GAAamB,CAAY;AACjE,QAAAV,IAAYZ,EAAK,IAAI,CAAA2B,MAAQ;AAC3B,gBAAMC,IAAuB;AAAA,YAC3B,MAAMC,EAAgBF,EAAKL,CAAY,GAAGG,CAAW,KAAK,OAAOE,EAAKL,CAAY,CAAC,KAAK;AAAA,UAAA;AAG1F,iBAAAE,EAAY,QAAQ,CAAAM,MAAS;AAC3B,kBAAMC,IAAcD,EAAM,MAAM,GAAG,EAAE,SAASA;AAC9C,YAAAF,EAAgBG,CAAW,IAAI,OAAOJ,EAAKG,CAAK,KAAM,WAClD,WAAWH,EAAKG,CAAK,CAAC,IACrBH,EAAKG,CAAK,KAAK;AAAA,UACtB,CAAC,GAEMF;AAAA,QACT,CAAC,GAEDf,IAAaW,EAAY,IAAI,CAAAM,MAASA,EAAM,MAAM,GAAG,EAAE,IAAA,KAASA,CAAK;AAAA,MACvE;AAEE,QAAAlB,IAAYZ,EAAK,IAAI,CAAA2B,OAAS;AAAA,UAC5B,MAAM,OAAOA,EAAKN,EAAK,CAAC,CAAC,KAAK,SAAS;AAAA,UACvC,OAAO,OAAOM,EAAKH,EAAY,CAAC,CAAC,KAAM,WACnC,WAAWG,EAAKH,EAAY,CAAC,CAAC,CAAC,IAC9BG,EAAKH,EAAY,CAAC,CAAC,KAAK;AAAA,QAAA,EAC7B,GACFX,IAAa,CAAC,OAAO;AAAA,IAEzB;AAGA,WAAI,CAACD,KAAaA,EAAU,WAAW,IAEnC,gBAAAF,EAAC,OAAA,EAAI,WAAU,0EAAyE,OAAO,EAAE,QAAAN,EAAA,GAC/F,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,iBAAa;AAAA,MAClE,gBAAAA,EAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA,4DAAA,CAAyD;AAAA,IAAA,EAAA,CAC9G,EAAA,CACF,sBAKDsB,GAAA,EAAe,QAAA5B,GACd,4BAAC6B,GAAA,EAAmB,MAAMrB,GAAW,QAAQ,EAAE,KAAK,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM,MAAM,oBAAoB,IAC5G,UAAA;AAAA,MAAAH,EAAkB,8BAChByB,GAAA,CAAA,CAAU;AAAA,MAEb,gBAAAxB;AAAA,QAACyB;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAM,EAAE,UAAU,GAAA;AAAA,UAClB,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,gBAAAzB;AAAA,QAAC0B;AAAA,QAAA;AAAA,UACC,MAAM,EAAE,UAAU,GAAA;AAAA,UAClB,WAAU;AAAA,UACV,eAAe3B,EAAkB,kBAC7B,CAAC4B,MAAeC,EAAgBD,GAAO5B,EAAkB,eAAe,IACxE;AAAA,QAAA;AAAA,MAAA;AAAA,MAGLA,EAAkB,eACjB,gBAAAC;AAAA,QAAC6B;AAAA,QAAA;AAAA,UACC,WAAW9B,EAAkB,kBACzB,CAAC4B,GAAYG,MAAiB,CAACF,EAAgBD,GAAO5B,EAAkB,eAAe,GAAG+B,CAAI,IAC9F;AAAA,QAAA;AAAA,MAAA;AAAA,MAIN/B,EAAkB,cAAcI,EAAW,SAAS,KACpD,gBAAAH;AAAA,QAAC+B;AAAA,QAAA;AAAA,UACC,cAAc,EAAE,UAAU,QAAQ,YAAY,OAAA;AAAA,UAC9C,UAAS;AAAA,UACT,UAAU;AAAA,UACV,QAAO;AAAA,UACP,OAAM;AAAA,UACN,eAAc;AAAA,UACd,cAAc,CAACC,MAAMnC,EAAiB,OAAOmC,EAAE,WAAW,EAAE,CAAC;AAAA,UAC7D,cAAc,MAAMnC,EAAiB,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAG5CM,EAAW,IAAI,CAAC8B,GAAWC,MAC1B,gBAAAlC;AAAA,QAACmC;AAAA,QAAA;AAAA,UAEC,MAAMF;AAAA,UACN,SAASA;AAAA,UACT,QAAStC,GAAc,UAAUA,EAAa,OAAOuC,IAAQvC,EAAa,OAAO,MAAM,KAAMyC,EAAaF,IAAQE,EAAa,MAAM;AAAA,UACrI,MAAOzC,GAAc,UAAUA,EAAa,OAAOuC,IAAQvC,EAAa,OAAO,MAAM,KAAMyC,EAAaF,IAAQE,EAAa,MAAM;AAAA,UACnI,aAAaxC,IAAiBA,MAAkBqC,IAAY,MAAM,MAAO;AAAA,UACzE,eAAerC,IAAiBA,MAAkBqC,IAAY,IAAI,MAAO;AAAA,UACzE,aAAa;AAAA,QAAA;AAAA,QAPRA;AAAA,MAAA,CASR;AAAA,IAAA,EAAA,CACH,EAAA,CACF;AAAA,EAEJ,SAASI,GAAO;AAEd,WACE,gBAAArC,EAAC,OAAA,EAAI,WAAU,wFAAuF,OAAO,EAAE,QAAAN,EAAA,GAC7G,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,uCAAsC,UAAA,qBAAiB;AAAA,MACtE,gBAAAA,EAAC,SAAI,WAAU,sBAAsB,uBAAiB,QAAQqC,EAAM,UAAU,0BAAA,CAA0B;AAAA,MACxG,gBAAArC,EAAC,OAAA,EAAI,WAAU,iCAAgC,UAAA,mCAAA,CAAgC;AAAA,IAAA,EAAA,CACjF,EAAA,CACF;AAAA,EAEJ;AACF,CAAC;"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { jsx as t, jsxs as m } from "react/jsx-runtime";
|
|
2
|
-
import N, { useState as g } from "react";
|
|
3
|
-
import { RadialBarChart as w, Legend as F, RadialBar as R, Cell as L } from "recharts";
|
|
4
|
-
import { g as S, c as u, d as C, a as T, b as j, f as A } from "./charts-core-BUUO36OM.js";
|
|
5
|
-
const _ = N.memo(function({
|
|
6
|
-
data: o,
|
|
7
|
-
chartConfig: d,
|
|
8
|
-
displayConfig: v = {},
|
|
9
|
-
queryObject: b,
|
|
10
|
-
height: f = "100%",
|
|
11
|
-
colorPalette: n
|
|
12
|
-
}) {
|
|
13
|
-
const [h, p] = g(null);
|
|
14
|
-
try {
|
|
15
|
-
const i = {
|
|
16
|
-
showLegend: v?.showLegend ?? !0,
|
|
17
|
-
showTooltip: v?.showTooltip ?? !0,
|
|
18
|
-
leftYAxisFormat: v?.leftYAxisFormat
|
|
19
|
-
};
|
|
20
|
-
if (!o || o.length === 0)
|
|
21
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: f }, children: /* @__PURE__ */ m("div", { className: "dc:text-center", children: [
|
|
22
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No data available" }),
|
|
23
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs text-dc-text-secondary", children: "No data points to display in radial bar chart" })
|
|
24
|
-
] }) });
|
|
25
|
-
let c;
|
|
26
|
-
if (d?.xAxis && d?.yAxis) {
|
|
27
|
-
const e = Array.isArray(d.xAxis) ? d.xAxis[0] : d.xAxis, r = Array.isArray(d.yAxis) ? d.yAxis[0] : d.yAxis, x = S(b, e);
|
|
28
|
-
c = o.map((l, a) => ({
|
|
29
|
-
name: C(l[e], x) || String(l[e]) || "Unknown",
|
|
30
|
-
value: typeof l[r] == "string" ? parseFloat(l[r]) : l[r] || 0,
|
|
31
|
-
fill: n?.colors && n.colors[a % n.colors.length] || u[a % u.length]
|
|
32
|
-
}));
|
|
33
|
-
} else {
|
|
34
|
-
const e = o[0], r = Object.keys(e), x = r.find(
|
|
35
|
-
(a) => typeof e[a] == "string" || a.toLowerCase().includes("name") || a.toLowerCase().includes("label") || a.toLowerCase().includes("category")
|
|
36
|
-
) || r[0], l = r.find(
|
|
37
|
-
(a) => typeof e[a] == "number" && a !== x
|
|
38
|
-
) || r[1];
|
|
39
|
-
if (!l)
|
|
40
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning", style: { height: f }, children: /* @__PURE__ */ m("div", { className: "dc:text-center", children: [
|
|
41
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Configuration Error" }),
|
|
42
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs", children: "No numeric field found for radial bar chart values" })
|
|
43
|
-
] }) });
|
|
44
|
-
c = o.map((a, y) => {
|
|
45
|
-
let s = a[x];
|
|
46
|
-
return typeof s == "boolean" ? s = s ? "Active" : "Inactive" : s === "true" || s === "false" ? s = s === "true" ? "Active" : "Inactive" : s = String(s), {
|
|
47
|
-
name: s,
|
|
48
|
-
value: typeof a[l] == "string" ? parseFloat(a[l]) : a[l] || 0,
|
|
49
|
-
fill: n?.colors && n.colors[y % n.colors.length] || u[y % u.length]
|
|
50
|
-
};
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
return c = c.filter((e) => e.value != null && e.value !== 0), c.length === 0 ? /* @__PURE__ */ t("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted", style: { height: f }, children: /* @__PURE__ */ m("div", { className: "dc:text-center", children: [
|
|
54
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "No valid data" }),
|
|
55
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs text-dc-text-secondary", children: "No valid data points for radial bar chart after transformation" })
|
|
56
|
-
] }) }) : /* @__PURE__ */ t(T, { height: f, children: /* @__PURE__ */ m(
|
|
57
|
-
w,
|
|
58
|
-
{
|
|
59
|
-
data: c,
|
|
60
|
-
innerRadius: "10%",
|
|
61
|
-
outerRadius: "80%",
|
|
62
|
-
margin: { top: 20, right: 30, bottom: 20, left: 30 },
|
|
63
|
-
accessibilityLayer: !1,
|
|
64
|
-
children: [
|
|
65
|
-
i.showTooltip && /* @__PURE__ */ t(
|
|
66
|
-
j,
|
|
67
|
-
{
|
|
68
|
-
formatter: i.leftYAxisFormat ? (e, r) => [A(e, i.leftYAxisFormat), r] : void 0
|
|
69
|
-
}
|
|
70
|
-
),
|
|
71
|
-
i.showLegend && /* @__PURE__ */ t(
|
|
72
|
-
F,
|
|
73
|
-
{
|
|
74
|
-
wrapperStyle: { fontSize: "12px", paddingTop: "10px" },
|
|
75
|
-
iconType: "circle",
|
|
76
|
-
iconSize: 8,
|
|
77
|
-
layout: "horizontal",
|
|
78
|
-
align: "center",
|
|
79
|
-
verticalAlign: "bottom",
|
|
80
|
-
onMouseEnter: (e) => p(String(e.value || "")),
|
|
81
|
-
onMouseLeave: () => p(null)
|
|
82
|
-
}
|
|
83
|
-
),
|
|
84
|
-
/* @__PURE__ */ t(
|
|
85
|
-
R,
|
|
86
|
-
{
|
|
87
|
-
dataKey: "value",
|
|
88
|
-
cornerRadius: 4,
|
|
89
|
-
label: {
|
|
90
|
-
position: "insideStart",
|
|
91
|
-
fill: "#fff",
|
|
92
|
-
fontSize: 12,
|
|
93
|
-
formatter: i.leftYAxisFormat ? (e) => A(e, i.leftYAxisFormat) : void 0
|
|
94
|
-
},
|
|
95
|
-
children: c.map((e, r) => /* @__PURE__ */ t(
|
|
96
|
-
L,
|
|
97
|
-
{
|
|
98
|
-
fill: e.fill,
|
|
99
|
-
fillOpacity: h ? h === e.name ? 1 : 0.3 : 1
|
|
100
|
-
},
|
|
101
|
-
`cell-${r}`
|
|
102
|
-
))
|
|
103
|
-
}
|
|
104
|
-
)
|
|
105
|
-
]
|
|
106
|
-
}
|
|
107
|
-
) });
|
|
108
|
-
} catch (i) {
|
|
109
|
-
return /* @__PURE__ */ t("div", { className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4", style: { height: f }, children: /* @__PURE__ */ m("div", { className: "dc:text-center", children: [
|
|
110
|
-
/* @__PURE__ */ t("div", { className: "dc:text-sm dc:font-semibold dc:mb-1", children: "Radial Bar Chart Error" }),
|
|
111
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs dc:mb-2", children: i instanceof Error ? i.message : "Unknown rendering error" }),
|
|
112
|
-
/* @__PURE__ */ t("div", { className: "dc:text-xs text-dc-text-muted", children: "Check the data and configuration" })
|
|
113
|
-
] }) });
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
export {
|
|
117
|
-
_ as default
|
|
118
|
-
};
|
|
119
|
-
//# sourceMappingURL=chart-radial-bar-AlEJC1Jo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-radial-bar-AlEJC1Jo.js","sources":["../../../src/client/components/charts/RadialBarChart.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { RadialBarChart as RechartsRadialBarChart, RadialBar, Legend, Cell } from 'recharts'\nimport ChartContainer from './ChartContainer'\nimport ChartTooltip from './ChartTooltip'\nimport { CHART_COLORS } from '../../utils/chartConstants'\nimport { formatTimeValue, getFieldGranularity, formatAxisValue } from '../../utils/chartUtils'\nimport type { ChartProps } from '../../types'\n\nconst RadialBarChart = React.memo(function RadialBarChart({ \n data, \n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const [hoveredLegend, setHoveredLegend] = useState<string | null>(null)\n \n try {\n const safeDisplayConfig = {\n showLegend: displayConfig?.showLegend ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n leftYAxisFormat: displayConfig?.leftYAxisFormat\n }\n\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No data available</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No data points to display in radial bar chart</div>\n </div>\n </div>\n )\n }\n\n let radialData: Array<{name: string, value: number, fill?: string}>\n\n if (chartConfig?.xAxis && chartConfig?.yAxis) {\n // New format - use chart config\n const xAxisField = Array.isArray(chartConfig.xAxis) ? chartConfig.xAxis[0] : chartConfig.xAxis // Name/category field\n const yAxisField = Array.isArray(chartConfig.yAxis) ? chartConfig.yAxis[0] : chartConfig.yAxis // Value field\n\n const granularity = getFieldGranularity(queryObject, xAxisField)\n radialData = data.map((item, index) => ({\n name: formatTimeValue(item[xAxisField], granularity) || String(item[xAxisField]) || 'Unknown',\n value: typeof item[yAxisField] === 'string' \n ? parseFloat(item[yAxisField]) \n : (item[yAxisField] || 0),\n fill: (colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]\n }))\n } else {\n // Legacy format or auto-detection\n const firstRow = data[0]\n const keys = Object.keys(firstRow)\n \n // Try to find name/label field\n const nameField = keys.find(key => \n typeof firstRow[key] === 'string' ||\n key.toLowerCase().includes('name') ||\n key.toLowerCase().includes('label') ||\n key.toLowerCase().includes('category')\n ) || keys[0]\n\n // Find a numeric field for values\n const valueField = keys.find(key => \n typeof firstRow[key] === 'number' && key !== nameField\n ) || keys[1]\n\n if (!valueField) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Configuration Error</div>\n <div className=\"dc:text-xs\">No numeric field found for radial bar chart values</div>\n </div>\n </div>\n )\n }\n\n // Transform data for radial bar chart\n radialData = data.map((item, index) => {\n let name = item[nameField]\n // Handle boolean values with better labels\n if (typeof name === 'boolean') {\n name = name ? 'Active' : 'Inactive'\n } else if (name === 'true' || name === 'false') {\n name = name === 'true' ? 'Active' : 'Inactive'\n } else {\n name = String(name)\n }\n return {\n name,\n value: typeof item[valueField] === 'string' \n ? parseFloat(item[valueField]) \n : (item[valueField] || 0),\n fill: (colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]\n }\n })\n }\n\n // Filter out zero/null values\n radialData = radialData.filter(item => item.value != null && item.value !== 0)\n \n if (radialData.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No valid data</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No valid data points for radial bar chart after transformation</div>\n </div>\n </div>\n )\n }\n\n return (\n <ChartContainer height={height}>\n <RechartsRadialBarChart\n data={radialData}\n innerRadius=\"10%\"\n outerRadius=\"80%\"\n margin={{ top: 20, right: 30, bottom: 20, left: 30 }}\n accessibilityLayer={false}\n >\n {safeDisplayConfig.showTooltip && (\n <ChartTooltip\n formatter={safeDisplayConfig.leftYAxisFormat\n ? (value: any, name: string) => [formatAxisValue(value, safeDisplayConfig.leftYAxisFormat), name]\n : undefined\n }\n />\n )}\n {safeDisplayConfig.showLegend && (\n <Legend \n wrapperStyle={{ fontSize: '12px', paddingTop: '10px' }}\n iconType=\"circle\"\n iconSize={8}\n layout=\"horizontal\"\n align=\"center\"\n verticalAlign=\"bottom\"\n onMouseEnter={(o) => setHoveredLegend(String(o.value || ''))}\n onMouseLeave={() => setHoveredLegend(null)}\n />\n )}\n <RadialBar\n dataKey=\"value\"\n cornerRadius={4}\n label={{\n position: 'insideStart',\n fill: '#fff',\n fontSize: 12,\n formatter: safeDisplayConfig.leftYAxisFormat\n ? (value: any) => formatAxisValue(value, safeDisplayConfig.leftYAxisFormat)\n : undefined\n }}\n >\n {radialData.map((entry, index) => (\n <Cell \n key={`cell-${index}`} \n fill={entry.fill}\n fillOpacity={hoveredLegend ? (hoveredLegend === entry.name ? 1 : 0.3) : 1}\n />\n ))}\n </RadialBar>\n </RechartsRadialBarChart>\n </ChartContainer>\n )\n } catch (error) {\n // 'RadialBarChart rendering error\n return (\n <div className=\"dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Radial Bar Chart Error</div>\n <div className=\"dc:text-xs dc:mb-2\">{error instanceof Error ? error.message : 'Unknown rendering error'}</div>\n <div className=\"dc:text-xs text-dc-text-muted\">Check the data and configuration</div>\n </div>\n </div>\n )\n }\n})\n\nexport default RadialBarChart"],"names":["RadialBarChart","React","data","chartConfig","displayConfig","queryObject","height","colorPalette","hoveredLegend","setHoveredLegend","useState","safeDisplayConfig","jsx","jsxs","radialData","xAxisField","yAxisField","granularity","getFieldGranularity","item","index","formatTimeValue","CHART_COLORS","firstRow","keys","nameField","key","valueField","name","ChartContainer","RechartsRadialBarChart","ChartTooltip","value","formatAxisValue","Legend","o","RadialBar","entry","Cell","error"],"mappings":"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"}
|