drizzle-cube 0.4.52 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.js +92 -83
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +126 -116
- package/dist/adapters/{handler-RItnSaEl.js → handler-3LGcjLtr.js} +617 -612
- package/dist/adapters/handler-BzzbVpcl.cjs +25 -0
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +94 -86
- package/dist/adapters/{compiler-D_o2IzHn.js → locale-DTnJrxm1.js} +1363 -1079
- package/dist/adapters/locale-DueXjqMh.cjs +198 -0
- package/dist/adapters/locale.d.ts +8 -0
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +14 -14
- package/dist/adapters/mcp-transport-45SiFcCH.cjs +39 -0
- package/dist/adapters/mcp-transport-Bxpc4mRy.js +553 -0
- package/dist/adapters/mcp-transport.d.ts +11 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +138 -122
- package/dist/adapters/utils-DNrj-ryp.cjs +17 -0
- package/dist/adapters/{utils-IH1ePsBd.js → utils-DOg9oGdt.js} +2341 -819
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +7 -0
- package/dist/adapters/utils.js +1 -1
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-BTdV528l.js → DashboardEditModal-cSSIAZGy.js} +1968 -1973
- package/dist/client/chunks/DashboardEditModal-cSSIAZGy.js.map +1 -0
- package/dist/client/chunks/{FieldSearchModal-D75vy4Wb.js → FieldSearchModal-CZNo4pNK.js} +550 -536
- package/dist/client/chunks/FieldSearchModal-CZNo4pNK.js.map +1 -0
- package/dist/client/chunks/KpiDelta-Dll_eCV1.js +2 -0
- package/dist/client/chunks/KpiNumber-BPlR92hI.js +2 -0
- package/dist/client/chunks/KpiText-BIxq7Jso.js +2 -0
- package/dist/client/chunks/{RetentionCombinedChart-DIhK5pD8.js → RetentionCombinedChart-BD8tGeM_.js} +96 -96
- package/dist/client/chunks/RetentionCombinedChart-BD8tGeM_.js.map +1 -0
- package/dist/client/chunks/{RetentionHeatmap-CyREolyP.js → RetentionHeatmap-B_5sewwi.js} +77 -77
- package/dist/client/chunks/RetentionHeatmap-B_5sewwi.js.map +1 -0
- package/dist/client/chunks/SchemaVisualization-CCICjhvv.js +2 -0
- package/dist/client/chunks/SchemaVisualizationLazy-DraGsMx6.js +2 -0
- package/dist/client/chunks/af-ZA-xDmO5F0s.js +1431 -0
- package/dist/client/chunks/af-ZA-xDmO5F0s.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-C1CJ0c7L.js → analysis-builder-BeVZhiQ5.js} +1519 -1507
- package/dist/client/chunks/analysis-builder-BeVZhiQ5.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-rkjJfWLT.js → analysis-builder-shared-BWc7ZZnG.js} +925 -954
- package/dist/client/chunks/analysis-builder-shared-BWc7ZZnG.js.map +1 -0
- package/dist/client/chunks/chart-activity-grid-CWT0gLv4.js +2376 -0
- package/dist/client/chunks/chart-activity-grid-CWT0gLv4.js.map +1 -0
- package/dist/client/chunks/{chart-area-BwYaflNk.js → chart-area-D63kG8OT.js} +157 -157
- package/dist/client/chunks/chart-area-D63kG8OT.js.map +1 -0
- package/dist/client/chunks/{chart-bar-BiENfFgE.js → chart-bar-BEfsCLjl.js} +78 -78
- package/dist/client/chunks/chart-bar-BEfsCLjl.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-BJF1tBXC.js → chart-box-plot-o-h9MRX5.js} +111 -114
- package/dist/client/chunks/chart-box-plot-o-h9MRX5.js.map +1 -0
- package/dist/client/chunks/{chart-bubble-DQQhGVDJ.js → chart-bubble-CMDp4Pfm.js} +121 -121
- package/dist/client/chunks/chart-bubble-CMDp4Pfm.js.map +1 -0
- package/dist/client/chunks/chart-candlestick-WyANJ0Ky.js +303 -0
- package/dist/client/chunks/chart-candlestick-WyANJ0Ky.js.map +1 -0
- package/dist/client/chunks/chart-config-activity-grid-C-EkgYoa.js +51 -0
- package/dist/client/chunks/chart-config-activity-grid-C-EkgYoa.js.map +1 -0
- package/dist/client/chunks/chart-config-area-CMZpbIah.js +93 -0
- package/dist/client/chunks/chart-config-area-CMZpbIah.js.map +1 -0
- package/dist/client/chunks/chart-config-bar-B8_V4YLg.js +87 -0
- package/dist/client/chunks/chart-config-bar-B8_V4YLg.js.map +1 -0
- package/dist/client/chunks/chart-config-box-plot-Dwj7sEbU.js +35 -0
- package/dist/client/chunks/chart-config-box-plot-Dwj7sEbU.js.map +1 -0
- package/dist/client/chunks/chart-config-bubble-B0w0ZVp4.js +82 -0
- package/dist/client/chunks/chart-config-bubble-B0w0ZVp4.js.map +1 -0
- package/dist/client/chunks/chart-config-candlestick-Bvo3zeIn.js +72 -0
- package/dist/client/chunks/chart-config-candlestick-Bvo3zeIn.js.map +1 -0
- package/dist/client/chunks/{chart-config-data-table-Bhdx5Hem.js → chart-config-data-table-BQXSn4b_.js} +9 -9
- package/dist/client/chunks/chart-config-data-table-BQXSn4b_.js.map +1 -0
- package/dist/client/chunks/chart-config-funnel-BzEsHmjR.js +93 -0
- package/dist/client/chunks/chart-config-funnel-BzEsHmjR.js.map +1 -0
- package/dist/client/chunks/chart-config-gauge-C5ZiyZy7.js +64 -0
- package/dist/client/chunks/chart-config-gauge-C5ZiyZy7.js.map +1 -0
- package/dist/client/chunks/chart-config-heat-map-Cv8qNnVP.js +91 -0
- package/dist/client/chunks/chart-config-heat-map-Cv8qNnVP.js.map +1 -0
- package/dist/client/chunks/chart-config-kpi-delta-BraHQc2E.js +94 -0
- package/dist/client/chunks/chart-config-kpi-delta-BraHQc2E.js.map +1 -0
- package/dist/client/chunks/chart-config-kpi-number-CeCkx7mC.js +75 -0
- package/dist/client/chunks/chart-config-kpi-number-CeCkx7mC.js.map +1 -0
- package/dist/client/chunks/chart-config-kpi-text-CImM3SvH.js +47 -0
- package/dist/client/chunks/chart-config-kpi-text-CImM3SvH.js.map +1 -0
- package/dist/client/chunks/chart-config-line-BVKapAQK.js +104 -0
- package/dist/client/chunks/chart-config-line-BVKapAQK.js.map +1 -0
- package/dist/client/chunks/chart-config-markdown-C-_g_8te.js +117 -0
- package/dist/client/chunks/chart-config-markdown-C-_g_8te.js.map +1 -0
- package/dist/client/chunks/chart-config-measure-profile-KTVV1gO3.js +82 -0
- package/dist/client/chunks/chart-config-measure-profile-KTVV1gO3.js.map +1 -0
- package/dist/client/chunks/chart-config-pie-BZxVl25X.js +68 -0
- package/dist/client/chunks/chart-config-pie-BZxVl25X.js.map +1 -0
- package/dist/client/chunks/chart-config-radar-B7FByX3t.js +49 -0
- package/dist/client/chunks/chart-config-radar-B7FByX3t.js.map +1 -0
- package/dist/client/chunks/chart-config-radial-bar-UfW_3yyX.js +38 -0
- package/dist/client/chunks/chart-config-radial-bar-UfW_3yyX.js.map +1 -0
- package/dist/client/chunks/chart-config-sankey-DGAThN9i.js +66 -0
- package/dist/client/chunks/chart-config-sankey-DGAThN9i.js.map +1 -0
- package/dist/client/chunks/chart-config-scatter-BVVJuOnt.js +61 -0
- package/dist/client/chunks/chart-config-scatter-BVVJuOnt.js.map +1 -0
- package/dist/client/chunks/chart-config-sunburst-utejM2YS.js +45 -0
- package/dist/client/chunks/chart-config-sunburst-utejM2YS.js.map +1 -0
- package/dist/client/chunks/chart-config-tree-map-IHp97OyV.js +51 -0
- package/dist/client/chunks/chart-config-tree-map-IHp97OyV.js.map +1 -0
- package/dist/client/chunks/chart-config-waterfall-BdqG1V-x.js +59 -0
- package/dist/client/chunks/chart-config-waterfall-BdqG1V-x.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-2iCsn0CF.js → chart-data-table-C3Xh9jwL.js} +1083 -1086
- package/dist/client/chunks/chart-data-table-C3Xh9jwL.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-poyOf7-e.js → chart-funnel-C7pgktN5.js} +132 -132
- package/dist/client/chunks/chart-funnel-C7pgktN5.js.map +1 -0
- package/dist/client/chunks/{chart-gauge-D5J4gRky.js → chart-gauge-D2r2B_AR.js} +150 -150
- package/dist/client/chunks/chart-gauge-D2r2B_AR.js.map +1 -0
- package/dist/client/chunks/{chart-heat-map-BAMVhLGG.js → chart-heat-map-Dw2yjwfO.js} +75 -80
- package/dist/client/chunks/chart-heat-map-Dw2yjwfO.js.map +1 -0
- package/dist/client/chunks/{chart-kpi-delta-KQjUIeal.js → chart-kpi-delta-CYE0S1x_.js} +117 -117
- package/dist/client/chunks/chart-kpi-delta-CYE0S1x_.js.map +1 -0
- package/dist/client/chunks/chart-kpi-number-BlZ79xHW.js +321 -0
- package/dist/client/chunks/chart-kpi-number-BlZ79xHW.js.map +1 -0
- package/dist/client/chunks/chart-kpi-text-DY1BnxPe.js +148 -0
- package/dist/client/chunks/chart-kpi-text-DY1BnxPe.js.map +1 -0
- package/dist/client/chunks/{chart-line-B5_WntY5.js → chart-line-CBsTThTv.js} +123 -123
- package/dist/client/chunks/chart-line-CBsTThTv.js.map +1 -0
- package/dist/client/chunks/chart-markdown-BWaWVkuz.js +3474 -0
- package/dist/client/chunks/chart-markdown-BWaWVkuz.js.map +1 -0
- package/dist/client/chunks/chart-measure-profile-B41qCTBG.js +179 -0
- package/dist/client/chunks/chart-measure-profile-B41qCTBG.js.map +1 -0
- package/dist/client/chunks/chart-pie-Djbu8x2v.js +172 -0
- package/dist/client/chunks/chart-pie-Djbu8x2v.js.map +1 -0
- package/dist/client/chunks/chart-radar-BsTcKV0K.js +154 -0
- package/dist/client/chunks/chart-radar-BsTcKV0K.js.map +1 -0
- package/dist/client/chunks/chart-radial-bar-Du7XNnwE.js +148 -0
- package/dist/client/chunks/chart-radial-bar-Du7XNnwE.js.map +1 -0
- package/dist/client/chunks/{chart-sankey-BOyxfG1Q.js → chart-sankey-WwkZAhLy.js} +73 -73
- package/dist/client/chunks/chart-sankey-WwkZAhLy.js.map +1 -0
- package/dist/client/chunks/chart-scatter-D8krEYsA.js +255 -0
- package/dist/client/chunks/chart-scatter-D8krEYsA.js.map +1 -0
- package/dist/client/chunks/{chart-sunburst-D9lGEOCc.js → chart-sunburst-CIDB_pTl.js} +66 -66
- package/dist/client/chunks/chart-sunburst-CIDB_pTl.js.map +1 -0
- package/dist/client/chunks/chart-tree-map-C5C2iaWM.js +298 -0
- package/dist/client/chunks/chart-tree-map-C5C2iaWM.js.map +1 -0
- package/dist/client/chunks/{chart-waterfall-BCdUx4DC.js → chart-waterfall-BGdPrJ5Y.js} +80 -80
- package/dist/client/chunks/chart-waterfall-BGdPrJ5Y.js.map +1 -0
- package/dist/client/chunks/{charts-core-C5Yokk-x.js → charts-core-BXOqaYFn.js} +92 -92
- package/dist/client/chunks/charts-core-BXOqaYFn.js.map +1 -0
- package/dist/client/chunks/en-US-5xPTdCXg.js +35 -0
- package/dist/client/chunks/en-US-5xPTdCXg.js.map +1 -0
- package/dist/client/chunks/nl-NL-vCifBijs.js +1491 -0
- package/dist/client/chunks/nl-NL-vCifBijs.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-t1KiOORo.js → schema-visualization-Xp60Ff2W.js} +352 -364
- package/dist/client/chunks/schema-visualization-Xp60Ff2W.js.map +1 -0
- package/dist/client/chunks/{useDebounce-CKqkM42n.js → useDebounce-CfmUMFau.js} +85 -85
- package/dist/client/chunks/useDebounce-CfmUMFau.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-DBIfYwz-.js → useExplainAI-BKGmejIj.js} +4 -4
- package/dist/client/chunks/{useExplainAI-DBIfYwz-.js.map → useExplainAI-BKGmejIj.js.map} +1 -1
- package/dist/client/chunks/{utils--qCr8Yn5.js → utils-BldkcRHv.js} +2 -2
- package/dist/client/chunks/{utils--qCr8Yn5.js.map → utils-BldkcRHv.js.map} +1 -1
- package/dist/client/chunks/{vendor-BRlsCGnK.js → vendor-ClXpIiea.js} +2 -2
- package/dist/client/chunks/{vendor-BRlsCGnK.js.map → vendor-ClXpIiea.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/types.d.ts +6 -6
- package/dist/client/components.js +3 -3
- package/dist/client/hooks/useTranslation.d.ts +21 -0
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +493 -488
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers/CubeApiProvider.d.ts +2 -1
- package/dist/client/providers/CubeProvider.d.ts +7 -1
- package/dist/client/providers/I18nProvider.d.ts +18 -0
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/types.d.ts +5 -20
- package/dist/client/styles.css +1 -1
- package/dist/client/utils.js +5 -5
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +26 -24
- package/dist/server/index.cjs +42 -40
- package/dist/server/index.js +3353 -1567
- package/package.json +5 -2
- package/dist/adapters/compiler-Bbsijr3W.cjs +0 -198
- package/dist/adapters/handler-DumFgnNM.cjs +0 -25
- package/dist/adapters/mcp-transport-C6bsIOSV.js +0 -545
- package/dist/adapters/mcp-transport-DMhuYmFp.cjs +0 -39
- package/dist/adapters/utils-CyBt-as9.cjs +0 -15
- package/dist/client/chunks/DashboardEditModal-BTdV528l.js.map +0 -1
- package/dist/client/chunks/FieldSearchModal-D75vy4Wb.js.map +0 -1
- package/dist/client/chunks/KpiDelta-Bk8bzKYM.js +0 -2
- package/dist/client/chunks/KpiNumber-CKF-8e_T.js +0 -2
- package/dist/client/chunks/KpiText-Iz1vIvu_.js +0 -2
- package/dist/client/chunks/RetentionCombinedChart-DIhK5pD8.js.map +0 -1
- package/dist/client/chunks/RetentionHeatmap-CyREolyP.js.map +0 -1
- package/dist/client/chunks/SchemaVisualization-B1GUT-FM.js +0 -2
- package/dist/client/chunks/SchemaVisualizationLazy-DymwT34e.js +0 -2
- package/dist/client/chunks/analysis-builder-C1CJ0c7L.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-rkjJfWLT.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-DLktOINm.js +0 -806
- package/dist/client/chunks/chart-activity-grid-DLktOINm.js.map +0 -1
- package/dist/client/chunks/chart-area-BwYaflNk.js.map +0 -1
- package/dist/client/chunks/chart-bar-BiENfFgE.js.map +0 -1
- package/dist/client/chunks/chart-box-plot-BJF1tBXC.js.map +0 -1
- package/dist/client/chunks/chart-bubble-DQQhGVDJ.js.map +0 -1
- package/dist/client/chunks/chart-candlestick-C2UuXbLe.js +0 -306
- package/dist/client/chunks/chart-candlestick-C2UuXbLe.js.map +0 -1
- package/dist/client/chunks/chart-config-activity-grid-DJOU3TEz.js +0 -51
- package/dist/client/chunks/chart-config-activity-grid-DJOU3TEz.js.map +0 -1
- package/dist/client/chunks/chart-config-area-CWnWVT6a.js +0 -93
- package/dist/client/chunks/chart-config-area-CWnWVT6a.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-C-7Dr1Ho.js +0 -87
- package/dist/client/chunks/chart-config-bar-C-7Dr1Ho.js.map +0 -1
- package/dist/client/chunks/chart-config-box-plot-mVOwmLdu.js +0 -35
- package/dist/client/chunks/chart-config-box-plot-mVOwmLdu.js.map +0 -1
- package/dist/client/chunks/chart-config-bubble-BPE2CeiD.js +0 -82
- package/dist/client/chunks/chart-config-bubble-BPE2CeiD.js.map +0 -1
- package/dist/client/chunks/chart-config-candlestick-BSB9DRy2.js +0 -72
- package/dist/client/chunks/chart-config-candlestick-BSB9DRy2.js.map +0 -1
- package/dist/client/chunks/chart-config-data-table-Bhdx5Hem.js.map +0 -1
- package/dist/client/chunks/chart-config-funnel-Cl-v-bm1.js +0 -93
- package/dist/client/chunks/chart-config-funnel-Cl-v-bm1.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-CdrUTJMJ.js +0 -64
- package/dist/client/chunks/chart-config-gauge-CdrUTJMJ.js.map +0 -1
- package/dist/client/chunks/chart-config-heat-map-DGE3NzoF.js +0 -91
- package/dist/client/chunks/chart-config-heat-map-DGE3NzoF.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-DMrQerUW.js +0 -94
- package/dist/client/chunks/chart-config-kpi-delta-DMrQerUW.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-DCytCytn.js +0 -75
- package/dist/client/chunks/chart-config-kpi-number-DCytCytn.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-text-KdKQUvHo.js +0 -47
- package/dist/client/chunks/chart-config-kpi-text-KdKQUvHo.js.map +0 -1
- package/dist/client/chunks/chart-config-line-Bl9VDAdz.js +0 -104
- package/dist/client/chunks/chart-config-line-Bl9VDAdz.js.map +0 -1
- package/dist/client/chunks/chart-config-markdown-BX26b94i.js +0 -117
- package/dist/client/chunks/chart-config-markdown-BX26b94i.js.map +0 -1
- package/dist/client/chunks/chart-config-measure-profile-DwtRhEFh.js +0 -82
- package/dist/client/chunks/chart-config-measure-profile-DwtRhEFh.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-BzBcqPMJ.js +0 -68
- package/dist/client/chunks/chart-config-pie-BzBcqPMJ.js.map +0 -1
- package/dist/client/chunks/chart-config-radar-6ZOgt__z.js +0 -49
- package/dist/client/chunks/chart-config-radar-6ZOgt__z.js.map +0 -1
- package/dist/client/chunks/chart-config-radial-bar-Df6Eta7N.js +0 -38
- package/dist/client/chunks/chart-config-radial-bar-Df6Eta7N.js.map +0 -1
- package/dist/client/chunks/chart-config-sankey-DgqKBFvN.js +0 -66
- package/dist/client/chunks/chart-config-sankey-DgqKBFvN.js.map +0 -1
- package/dist/client/chunks/chart-config-scatter-D5nVLDvi.js +0 -61
- package/dist/client/chunks/chart-config-scatter-D5nVLDvi.js.map +0 -1
- package/dist/client/chunks/chart-config-sunburst-Ca3FX9nW.js +0 -45
- package/dist/client/chunks/chart-config-sunburst-Ca3FX9nW.js.map +0 -1
- package/dist/client/chunks/chart-config-tree-map-Bjy4QNa3.js +0 -51
- package/dist/client/chunks/chart-config-tree-map-Bjy4QNa3.js.map +0 -1
- package/dist/client/chunks/chart-config-waterfall-C5K2eqR7.js +0 -59
- package/dist/client/chunks/chart-config-waterfall-C5K2eqR7.js.map +0 -1
- package/dist/client/chunks/chart-data-table-2iCsn0CF.js.map +0 -1
- package/dist/client/chunks/chart-funnel-poyOf7-e.js.map +0 -1
- package/dist/client/chunks/chart-gauge-D5J4gRky.js.map +0 -1
- package/dist/client/chunks/chart-heat-map-BAMVhLGG.js.map +0 -1
- package/dist/client/chunks/chart-kpi-delta-KQjUIeal.js.map +0 -1
- package/dist/client/chunks/chart-kpi-number-CsQgV_x3.js +0 -325
- package/dist/client/chunks/chart-kpi-number-CsQgV_x3.js.map +0 -1
- package/dist/client/chunks/chart-kpi-text-BR0IyeUU.js +0 -148
- package/dist/client/chunks/chart-kpi-text-BR0IyeUU.js.map +0 -1
- package/dist/client/chunks/chart-line-B5_WntY5.js.map +0 -1
- package/dist/client/chunks/chart-markdown-B6bENbel.js +0 -3473
- package/dist/client/chunks/chart-markdown-B6bENbel.js.map +0 -1
- package/dist/client/chunks/chart-measure-profile-yWk-obNb.js +0 -179
- package/dist/client/chunks/chart-measure-profile-yWk-obNb.js.map +0 -1
- package/dist/client/chunks/chart-pie-BodrUoHv.js +0 -172
- package/dist/client/chunks/chart-pie-BodrUoHv.js.map +0 -1
- package/dist/client/chunks/chart-radar-gG3zfLud.js +0 -154
- package/dist/client/chunks/chart-radar-gG3zfLud.js.map +0 -1
- package/dist/client/chunks/chart-radial-bar-C2IPCV8c.js +0 -148
- package/dist/client/chunks/chart-radial-bar-C2IPCV8c.js.map +0 -1
- package/dist/client/chunks/chart-sankey-BOyxfG1Q.js.map +0 -1
- package/dist/client/chunks/chart-scatter-B8OwlsAX.js +0 -255
- package/dist/client/chunks/chart-scatter-B8OwlsAX.js.map +0 -1
- package/dist/client/chunks/chart-sunburst-D9lGEOCc.js.map +0 -1
- package/dist/client/chunks/chart-tree-map-DZaKy9he.js +0 -298
- package/dist/client/chunks/chart-tree-map-DZaKy9he.js.map +0 -1
- package/dist/client/chunks/chart-waterfall-BCdUx4DC.js.map +0 -1
- package/dist/client/chunks/charts-core-C5Yokk-x.js.map +0 -1
- package/dist/client/chunks/schema-visualization-t1KiOORo.js.map +0 -1
- package/dist/client/chunks/useDebounce-CKqkM42n.js.map +0 -1
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./rolldown-runtime-CCl2IeXn.js";
|
|
2
|
-
import { y as t } from "./chart-activity-grid-DLktOINm.js";
|
|
3
|
-
import n, { useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
4
|
-
import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
|
-
//#region src/client/components/charts/CandlestickChart.tsx
|
|
6
|
-
var u = /* @__PURE__ */ e({ default: () => v }), d = "#22c55e", f = "#ef4444", p = "#94a3b8", m = 200;
|
|
7
|
-
function h(e) {
|
|
8
|
-
if (e == null) return null;
|
|
9
|
-
let t = typeof e == "number" ? e : parseFloat(String(e));
|
|
10
|
-
return isNaN(t) ? null : t;
|
|
11
|
-
}
|
|
12
|
-
function g({ x: e, candleWidth: t, openY: n, closeY: r, highY: i, lowY: a, isBullish: o, bullColor: u, bearColor: d, showWicks: f, label: m }) {
|
|
13
|
-
let h = o ? u : d, g = Math.min(n, r), _ = Math.max(n, r), v = Math.max(_ - g, 1), y = t / 2;
|
|
14
|
-
return /* @__PURE__ */ l("g", {
|
|
15
|
-
"data-testid": `candle-${m}`,
|
|
16
|
-
children: [/* @__PURE__ */ c("rect", {
|
|
17
|
-
x: e - y,
|
|
18
|
-
y: g,
|
|
19
|
-
width: t,
|
|
20
|
-
height: v,
|
|
21
|
-
fill: h,
|
|
22
|
-
"data-testid": `candle-body-${m}`,
|
|
23
|
-
"data-bullish": o
|
|
24
|
-
}), f && /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("line", {
|
|
25
|
-
x1: e,
|
|
26
|
-
y1: i,
|
|
27
|
-
x2: e,
|
|
28
|
-
y2: g,
|
|
29
|
-
stroke: p,
|
|
30
|
-
strokeWidth: 1,
|
|
31
|
-
"data-testid": `wick-high-${m}`
|
|
32
|
-
}), /* @__PURE__ */ c("line", {
|
|
33
|
-
x1: e,
|
|
34
|
-
y1: _,
|
|
35
|
-
x2: e,
|
|
36
|
-
y2: a,
|
|
37
|
-
stroke: p,
|
|
38
|
-
strokeWidth: 1,
|
|
39
|
-
"data-testid": `wick-low-${m}`
|
|
40
|
-
})] })]
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
function _({ domainMin: e, domainMax: t, innerHeight: n, tickCount: r, format: a }) {
|
|
44
|
-
let o = i(() => {
|
|
45
|
-
let n = (t - e) / (r - 1);
|
|
46
|
-
return Array.from({ length: r }, (t, r) => e + r * n);
|
|
47
|
-
}, [
|
|
48
|
-
e,
|
|
49
|
-
t,
|
|
50
|
-
r
|
|
51
|
-
]), s = (r) => n - (r - e) / (t - e) * n;
|
|
52
|
-
return /* @__PURE__ */ l("g", {
|
|
53
|
-
"data-testid": "y-axis",
|
|
54
|
-
children: [/* @__PURE__ */ c("line", {
|
|
55
|
-
y1: 0,
|
|
56
|
-
y2: n,
|
|
57
|
-
stroke: "currentColor",
|
|
58
|
-
strokeWidth: 1
|
|
59
|
-
}), o.map((e, t) => /* @__PURE__ */ l("g", {
|
|
60
|
-
transform: `translate(0, ${s(e)})`,
|
|
61
|
-
children: [
|
|
62
|
-
/* @__PURE__ */ c("line", {
|
|
63
|
-
x1: 0,
|
|
64
|
-
x2: -6,
|
|
65
|
-
stroke: "currentColor",
|
|
66
|
-
strokeWidth: 1
|
|
67
|
-
}),
|
|
68
|
-
/* @__PURE__ */ c("text", {
|
|
69
|
-
x: -10,
|
|
70
|
-
textAnchor: "end",
|
|
71
|
-
dominantBaseline: "middle",
|
|
72
|
-
fontSize: 11,
|
|
73
|
-
fill: "currentColor",
|
|
74
|
-
className: "text-dc-text-secondary",
|
|
75
|
-
children: a ? a(e) : e.toLocaleString()
|
|
76
|
-
}),
|
|
77
|
-
/* @__PURE__ */ c("line", {
|
|
78
|
-
x1: 0,
|
|
79
|
-
x2: "100%",
|
|
80
|
-
stroke: "currentColor",
|
|
81
|
-
strokeOpacity: .1,
|
|
82
|
-
strokeWidth: 1
|
|
83
|
-
})
|
|
84
|
-
]
|
|
85
|
-
}, t))]
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
var v = n.memo(function({ data: e, chartConfig: n, displayConfig: s = {}, height: u = "100%", onDataPointClick: p, drillEnabled: v }) {
|
|
89
|
-
let y = a(null), [b, x] = o({
|
|
90
|
-
width: 0,
|
|
91
|
-
height: 0
|
|
92
|
-
});
|
|
93
|
-
r(() => {
|
|
94
|
-
let e = y.current;
|
|
95
|
-
if (!e) return;
|
|
96
|
-
let t = new ResizeObserver((e) => {
|
|
97
|
-
for (let t of e) {
|
|
98
|
-
let { width: e, height: n } = t.contentRect;
|
|
99
|
-
e > 0 && n > 0 && x({
|
|
100
|
-
width: e,
|
|
101
|
-
height: n
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
t.observe(e);
|
|
106
|
-
let n = e.getBoundingClientRect();
|
|
107
|
-
return n.width > 0 && n.height > 0 && x({
|
|
108
|
-
width: n.width,
|
|
109
|
-
height: n.height
|
|
110
|
-
}), () => t.disconnect();
|
|
111
|
-
}, []);
|
|
112
|
-
let S = s?.bullColor ?? d, C = s?.bearColor ?? f, w = s?.showWicks ?? !0, T = s?.rangeMode ?? "ohlc", E = s?.leftYAxisFormat, { xField: D, openField: O, closeField: k, highField: A, lowField: j, configError: M } = i(() => {
|
|
113
|
-
let e = Array.isArray(n?.xAxis) ? n.xAxis[0] : n?.xAxis ?? n?.x, t = Array.isArray(n?.yAxis) ? n.yAxis : [], r = t[0] ?? "", i = (T === "range" ? t[0] : t[1]) ?? "", a = (T === "range" ? t[0] : t[2]) ?? "", o = (T === "range" ? t[1] : t[3]) ?? "";
|
|
114
|
-
return e ? T === "range" && (!a || !o) ? {
|
|
115
|
-
xField: e,
|
|
116
|
-
openField: r,
|
|
117
|
-
closeField: i,
|
|
118
|
-
highField: a,
|
|
119
|
-
lowField: o,
|
|
120
|
-
configError: "Range mode requires at least 2 measures (high, low) in Y-Axis"
|
|
121
|
-
} : T === "ohlc" && (!r || !i) ? {
|
|
122
|
-
xField: e,
|
|
123
|
-
openField: r,
|
|
124
|
-
closeField: i,
|
|
125
|
-
highField: a,
|
|
126
|
-
lowField: o,
|
|
127
|
-
configError: "OHLC mode requires at least 2 measures (open, close) in Y-Axis"
|
|
128
|
-
} : {
|
|
129
|
-
xField: e,
|
|
130
|
-
openField: r,
|
|
131
|
-
closeField: i,
|
|
132
|
-
highField: a,
|
|
133
|
-
lowField: o,
|
|
134
|
-
configError: null
|
|
135
|
-
} : {
|
|
136
|
-
xField: e,
|
|
137
|
-
openField: r,
|
|
138
|
-
closeField: i,
|
|
139
|
-
highField: a,
|
|
140
|
-
lowField: o,
|
|
141
|
-
configError: "Candlestick chart requires an X-Axis (time or category dimension)"
|
|
142
|
-
};
|
|
143
|
-
}, [n, T]), N = i(() => {
|
|
144
|
-
if (M || !e || e.length === 0) return [];
|
|
145
|
-
let t = e.slice(0, m), n = [];
|
|
146
|
-
for (let e = 0; e < t.length; e++) {
|
|
147
|
-
let r = t[e], i = String(r[D] ?? `Bar ${e + 1}`), a = h(r[O]), o = h(r[k]);
|
|
148
|
-
if (a === null || o === null) continue;
|
|
149
|
-
let s = a, c = o, l = A ? h(r[A]) ?? Math.max(s, c) : Math.max(s, c), u = j ? h(r[j]) ?? Math.min(s, c) : Math.min(s, c);
|
|
150
|
-
T === "range" && (s = u, c = l), n.push({
|
|
151
|
-
label: i,
|
|
152
|
-
open: s,
|
|
153
|
-
close: c,
|
|
154
|
-
high: Math.max(s, c, l),
|
|
155
|
-
low: Math.min(s, c, u),
|
|
156
|
-
isBullish: c >= s,
|
|
157
|
-
originalIndex: e
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
return n;
|
|
161
|
-
}, [
|
|
162
|
-
e,
|
|
163
|
-
D,
|
|
164
|
-
O,
|
|
165
|
-
k,
|
|
166
|
-
A,
|
|
167
|
-
j,
|
|
168
|
-
T,
|
|
169
|
-
M
|
|
170
|
-
]);
|
|
171
|
-
try {
|
|
172
|
-
if (!e || e.length === 0) return /* @__PURE__ */ c("div", {
|
|
173
|
-
className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted",
|
|
174
|
-
style: { height: u },
|
|
175
|
-
children: /* @__PURE__ */ l("div", {
|
|
176
|
-
className: "dc:text-center",
|
|
177
|
-
children: [/* @__PURE__ */ c("div", {
|
|
178
|
-
className: "dc:text-sm dc:font-semibold dc:mb-1",
|
|
179
|
-
children: "No data available"
|
|
180
|
-
}), /* @__PURE__ */ c("div", {
|
|
181
|
-
className: "dc:text-xs text-dc-text-secondary",
|
|
182
|
-
children: "No data points to display in candlestick chart"
|
|
183
|
-
})]
|
|
184
|
-
})
|
|
185
|
-
});
|
|
186
|
-
if (M) return /* @__PURE__ */ c("div", {
|
|
187
|
-
className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning",
|
|
188
|
-
style: { height: u },
|
|
189
|
-
children: /* @__PURE__ */ l("div", {
|
|
190
|
-
className: "dc:text-center",
|
|
191
|
-
children: [/* @__PURE__ */ c("div", {
|
|
192
|
-
className: "dc:text-sm dc:font-semibold dc:mb-1",
|
|
193
|
-
children: "Configuration Error"
|
|
194
|
-
}), /* @__PURE__ */ c("div", {
|
|
195
|
-
className: "dc:text-xs",
|
|
196
|
-
children: M
|
|
197
|
-
})]
|
|
198
|
-
})
|
|
199
|
-
});
|
|
200
|
-
let n = {
|
|
201
|
-
top: 20,
|
|
202
|
-
right: 20,
|
|
203
|
-
bottom: 60,
|
|
204
|
-
left: 70
|
|
205
|
-
}, r = b.width || 600, i = typeof u == "number" ? u : b.height || 400, a = Math.max(r - n.left - n.right, 50), o = Math.max((typeof i == "number" ? i : parseInt(String(i)) || 400) - n.top - n.bottom, 50), s = N.flatMap((e) => [e.low, e.high]), d = Math.min(...s), f = Math.max(...s), h = (f - d) * .05 || 1, x = d - h, T = f + h, O = (e) => o - (e - x) / (T - x) * o, k = a / N.length, A = Math.min(k * .7, 20), j = e.length > m;
|
|
206
|
-
return /* @__PURE__ */ l("div", {
|
|
207
|
-
ref: y,
|
|
208
|
-
className: "dc:relative dc:w-full",
|
|
209
|
-
style: { height: u },
|
|
210
|
-
children: [/* @__PURE__ */ c("svg", {
|
|
211
|
-
width: "100%",
|
|
212
|
-
height: j ? "calc(100% - 20px)" : "100%",
|
|
213
|
-
viewBox: `0 0 ${r} ${typeof i == "number" ? i : 400}`,
|
|
214
|
-
"data-testid": "candlestick-svg",
|
|
215
|
-
children: /* @__PURE__ */ l("g", {
|
|
216
|
-
transform: `translate(${n.left}, ${n.top})`,
|
|
217
|
-
children: [/* @__PURE__ */ c(_, {
|
|
218
|
-
domainMin: x,
|
|
219
|
-
domainMax: T,
|
|
220
|
-
innerHeight: o,
|
|
221
|
-
tickCount: 5,
|
|
222
|
-
format: E ? (e) => t(e, E) : void 0
|
|
223
|
-
}), N.map((e, t) => {
|
|
224
|
-
let n = k * t + k / 2;
|
|
225
|
-
return /* @__PURE__ */ l("g", {
|
|
226
|
-
onClick: (t) => {
|
|
227
|
-
p && v && p({
|
|
228
|
-
dataPoint: { ...e },
|
|
229
|
-
clickedField: D ?? "",
|
|
230
|
-
xValue: e.label,
|
|
231
|
-
position: {
|
|
232
|
-
x: t.clientX,
|
|
233
|
-
y: t.clientY
|
|
234
|
-
},
|
|
235
|
-
nativeEvent: t
|
|
236
|
-
});
|
|
237
|
-
},
|
|
238
|
-
cursor: v ? "pointer" : void 0,
|
|
239
|
-
children: [
|
|
240
|
-
/* @__PURE__ */ c("title", { children: `${e.label}: O=${e.open} H=${e.high} L=${e.low} C=${e.close}` }),
|
|
241
|
-
/* @__PURE__ */ c(g, {
|
|
242
|
-
x: n,
|
|
243
|
-
candleWidth: A,
|
|
244
|
-
openY: O(e.open),
|
|
245
|
-
closeY: O(e.close),
|
|
246
|
-
highY: O(e.high),
|
|
247
|
-
lowY: O(e.low),
|
|
248
|
-
isBullish: e.isBullish,
|
|
249
|
-
bullColor: S,
|
|
250
|
-
bearColor: C,
|
|
251
|
-
showWicks: w,
|
|
252
|
-
label: e.label
|
|
253
|
-
}),
|
|
254
|
-
/* @__PURE__ */ c("text", {
|
|
255
|
-
x: n,
|
|
256
|
-
y: o + 20,
|
|
257
|
-
textAnchor: "middle",
|
|
258
|
-
fontSize: 10,
|
|
259
|
-
fill: "currentColor",
|
|
260
|
-
className: "text-dc-text-secondary",
|
|
261
|
-
"data-testid": `x-label-${e.label}`,
|
|
262
|
-
children: e.label
|
|
263
|
-
})
|
|
264
|
-
]
|
|
265
|
-
}, e.label + t);
|
|
266
|
-
})]
|
|
267
|
-
})
|
|
268
|
-
}), j && /* @__PURE__ */ l("div", {
|
|
269
|
-
className: "dc:text-xs text-dc-warning dc:text-center dc:mt-1",
|
|
270
|
-
children: [
|
|
271
|
-
"Showing first ",
|
|
272
|
-
m,
|
|
273
|
-
" candles (total: ",
|
|
274
|
-
e.length,
|
|
275
|
-
")"
|
|
276
|
-
]
|
|
277
|
-
})]
|
|
278
|
-
});
|
|
279
|
-
} catch (e) {
|
|
280
|
-
return /* @__PURE__ */ c("div", {
|
|
281
|
-
className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4",
|
|
282
|
-
style: { height: u },
|
|
283
|
-
children: /* @__PURE__ */ l("div", {
|
|
284
|
-
className: "dc:text-center",
|
|
285
|
-
children: [
|
|
286
|
-
/* @__PURE__ */ c("div", {
|
|
287
|
-
className: "dc:text-sm dc:font-semibold dc:mb-1",
|
|
288
|
-
children: "Candlestick Chart Error"
|
|
289
|
-
}),
|
|
290
|
-
/* @__PURE__ */ c("div", {
|
|
291
|
-
className: "dc:text-xs dc:mb-2",
|
|
292
|
-
children: e instanceof Error ? e.message : "Unknown rendering error"
|
|
293
|
-
}),
|
|
294
|
-
/* @__PURE__ */ c("div", {
|
|
295
|
-
className: "dc:text-xs text-dc-text-muted",
|
|
296
|
-
children: "Check the data and configuration"
|
|
297
|
-
})
|
|
298
|
-
]
|
|
299
|
-
})
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
//#endregion
|
|
304
|
-
export { u as t };
|
|
305
|
-
|
|
306
|
-
//# sourceMappingURL=chart-candlestick-C2UuXbLe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-candlestick-C2UuXbLe.js","names":[],"sources":["../../../src/client/components/charts/CandlestickChart.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { formatAxisValue } from '../../utils/chartUtils'\nimport type { ChartProps } from '../../types'\n\nconst BULL_COLOR_DEFAULT = '#22c55e'\nconst BEAR_COLOR_DEFAULT = '#ef4444'\nconst WICK_COLOR = '#94a3b8'\nconst MAX_CANDLES = 200\n\ninterface CandleData {\n label: string\n open: number\n close: number\n high: number\n low: number\n isBullish: boolean\n originalIndex: number\n}\n\nfunction 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\nfunction Candle({\n x,\n candleWidth,\n openY,\n closeY,\n highY,\n lowY,\n isBullish,\n bullColor,\n bearColor,\n showWicks,\n label,\n}: {\n x: number\n candleWidth: number\n openY: number\n closeY: number\n highY: number\n lowY: number\n isBullish: boolean\n bullColor: string\n bearColor: string\n showWicks: boolean\n label: string\n}) {\n const fill = isBullish ? bullColor : bearColor\n const bodyTop = Math.min(openY, closeY)\n const bodyBottom = Math.max(openY, closeY)\n const bodyHeight = Math.max(bodyBottom - bodyTop, 1)\n const halfWidth = candleWidth / 2\n\n return (\n <g data-testid={`candle-${label}`}>\n <rect\n x={x - halfWidth}\n y={bodyTop}\n width={candleWidth}\n height={bodyHeight}\n fill={fill}\n data-testid={`candle-body-${label}`}\n data-bullish={isBullish}\n />\n {showWicks && (\n <>\n <line\n x1={x}\n y1={highY}\n x2={x}\n y2={bodyTop}\n stroke={WICK_COLOR}\n strokeWidth={1}\n data-testid={`wick-high-${label}`}\n />\n <line\n x1={x}\n y1={bodyBottom}\n x2={x}\n y2={lowY}\n stroke={WICK_COLOR}\n strokeWidth={1}\n data-testid={`wick-low-${label}`}\n />\n </>\n )}\n </g>\n )\n}\n\nfunction YAxisTicks({\n domainMin,\n domainMax,\n innerHeight,\n tickCount,\n format,\n}: {\n domainMin: number\n domainMax: number\n innerHeight: number\n tickCount: number\n format?: (v: number) => string\n}) {\n const ticks = useMemo(() => {\n const step = (domainMax - domainMin) / (tickCount - 1)\n return Array.from({ length: tickCount }, (_, i) => domainMin + i * step)\n }, [domainMin, domainMax, tickCount])\n\n const yScale = (v: number) => innerHeight - ((v - domainMin) / (domainMax - domainMin)) * innerHeight\n\n return (\n <g data-testid=\"y-axis\">\n <line y1={0} y2={innerHeight} stroke=\"currentColor\" strokeWidth={1} />\n {ticks.map((tick, i) => (\n <g key={i} transform={`translate(0, ${yScale(tick)})`}>\n <line x1={0} x2={-6} stroke=\"currentColor\" strokeWidth={1} />\n <text\n x={-10}\n textAnchor=\"end\"\n dominantBaseline=\"middle\"\n fontSize={11}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n >\n {format ? format(tick) : tick.toLocaleString()}\n </text>\n <line x1={0} x2=\"100%\" stroke=\"currentColor\" strokeOpacity={0.1} strokeWidth={1} />\n </g>\n ))}\n </g>\n )\n}\n\nconst CandlestickChart = React.memo(function CandlestickChart({\n data,\n chartConfig,\n displayConfig = {},\n height = '100%',\n onDataPointClick,\n drillEnabled,\n}: ChartProps) {\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 bullColor = displayConfig?.bullColor ?? BULL_COLOR_DEFAULT\n const bearColor = displayConfig?.bearColor ?? BEAR_COLOR_DEFAULT\n const showWicks = displayConfig?.showWicks ?? true\n const rangeMode = displayConfig?.rangeMode ?? 'ohlc'\n const yAxisFormat = displayConfig?.leftYAxisFormat\n\n const { xField, openField, closeField, highField, lowField, configError } = useMemo(() => {\n const xField = Array.isArray(chartConfig?.xAxis)\n ? chartConfig.xAxis[0]\n : chartConfig?.xAxis ?? chartConfig?.x\n\n const yAxisFields: string[] = Array.isArray(chartConfig?.yAxis)\n ? chartConfig.yAxis\n : []\n\n const openField = yAxisFields[0] ?? ''\n const closeField = (rangeMode === 'range' ? yAxisFields[0] : yAxisFields[1]) ?? ''\n const highField = (rangeMode === 'range' ? yAxisFields[0] : yAxisFields[2]) ?? ''\n const lowField = (rangeMode === 'range' ? yAxisFields[1] : yAxisFields[3]) ?? ''\n\n if (!xField) {\n return {\n xField,\n openField,\n closeField,\n highField,\n lowField,\n configError: 'Candlestick chart requires an X-Axis (time or category dimension)',\n }\n }\n\n if (rangeMode === 'range' && (!highField || !lowField)) {\n return {\n xField,\n openField,\n closeField,\n highField,\n lowField,\n configError: 'Range mode requires at least 2 measures (high, low) in Y-Axis',\n }\n }\n\n if (rangeMode === 'ohlc' && (!openField || !closeField)) {\n return {\n xField,\n openField,\n closeField,\n highField,\n lowField,\n configError: 'OHLC mode requires at least 2 measures (open, close) in Y-Axis',\n }\n }\n\n return { xField, openField, closeField, highField, lowField, configError: null }\n }, [chartConfig, rangeMode])\n\n const candles: CandleData[] = useMemo(() => {\n if (configError || !data || data.length === 0) return []\n const rows = (data as Record<string, unknown>[]).slice(0, MAX_CANDLES)\n const result: CandleData[] = []\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const label = String(row[xField!] ?? `Bar ${i + 1}`)\n const rawOpen = parseNum(row[openField])\n const rawClose = parseNum(row[closeField])\n if (rawOpen === null || rawClose === null) continue\n\n let open = rawOpen\n let close = rawClose\n const high = highField ? (parseNum(row[highField]) ?? Math.max(open, close)) : Math.max(open, close)\n const low = lowField ? (parseNum(row[lowField]) ?? Math.min(open, close)) : Math.min(open, close)\n\n if (rangeMode === 'range') {\n open = low\n close = high\n }\n\n result.push({\n label,\n open,\n close,\n high: Math.max(open, close, high),\n low: Math.min(open, close, low),\n isBullish: close >= open,\n originalIndex: i,\n })\n }\n return result\n }, [data, xField, openField, closeField, highField, lowField, rangeMode, configError])\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 candlestick 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 const margin = { top: 20, right: 20, bottom: 60, left: 70 }\n const containerWidth = dimensions.width || 600\n const containerHeight =\n typeof height === 'number' ? height : dimensions.height || 400\n const innerWidth = Math.max(containerWidth - margin.left - margin.right, 50)\n const innerHeight = Math.max(\n (typeof containerHeight === 'number' ? containerHeight : parseInt(String(containerHeight)) || 400) -\n margin.top -\n margin.bottom,\n 50\n )\n\n const allValues = candles.flatMap((c) => [c.low, c.high])\n const rawMin = Math.min(...allValues)\n const rawMax = Math.max(...allValues)\n const pad = (rawMax - rawMin) * 0.05 || 1\n const domainMin = rawMin - pad\n const domainMax = rawMax + pad\n\n const yScale = (v: number) =>\n innerHeight - ((v - domainMin) / (domainMax - domainMin)) * innerHeight\n\n const candleSpacing = innerWidth / candles.length\n const candleWidth = Math.min(candleSpacing * 0.7, 20)\n\n const isTruncated = (data as unknown[]).length > MAX_CANDLES\n\n return (\n <div ref={containerRef} className=\"dc:relative dc:w-full\" style={{ height }}>\n <svg\n width=\"100%\"\n height={isTruncated ? 'calc(100% - 20px)' : '100%'}\n viewBox={`0 0 ${containerWidth} ${typeof containerHeight === 'number' ? containerHeight : 400}`}\n data-testid=\"candlestick-svg\"\n >\n <g transform={`translate(${margin.left}, ${margin.top})`}>\n <YAxisTicks\n domainMin={domainMin}\n domainMax={domainMax}\n innerHeight={innerHeight}\n tickCount={5}\n format={yAxisFormat ? (v) => formatAxisValue(v, yAxisFormat) : undefined}\n />\n\n {candles.map((candle, i) => {\n const cx = candleSpacing * i + candleSpacing / 2\n return (\n <g\n key={candle.label + i}\n onClick={(event: React.MouseEvent) => {\n if (onDataPointClick && drillEnabled) {\n onDataPointClick({\n dataPoint: { ...candle },\n clickedField: xField ?? '',\n xValue: candle.label,\n position: { x: event.clientX, y: event.clientY },\n nativeEvent: event,\n })\n }\n }}\n cursor={drillEnabled ? 'pointer' : undefined}\n >\n <title>{`${candle.label}: O=${candle.open} H=${candle.high} L=${candle.low} C=${candle.close}`}</title>\n <Candle\n x={cx}\n candleWidth={candleWidth}\n openY={yScale(candle.open)}\n closeY={yScale(candle.close)}\n highY={yScale(candle.high)}\n lowY={yScale(candle.low)}\n isBullish={candle.isBullish}\n bullColor={bullColor}\n bearColor={bearColor}\n showWicks={showWicks}\n label={candle.label}\n />\n <text\n x={cx}\n y={innerHeight + 20}\n textAnchor=\"middle\"\n fontSize={10}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n data-testid={`x-label-${candle.label}`}\n >\n {candle.label}\n </text>\n </g>\n )\n })}\n </g>\n </svg>\n {isTruncated && (\n <div className=\"dc:text-xs text-dc-warning dc:text-center dc:mt-1\">\n Showing first {MAX_CANDLES} candles (total: {(data as unknown[]).length})\n </div>\n )}\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\">Candlestick 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 CandlestickChart\n"],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./rolldown-runtime-CCl2IeXn.js";
|
|
2
|
-
//#region src/client/components/charts/ActivityGridChart.config.ts
|
|
3
|
-
var t = /* @__PURE__ */ e({ activityGridChartConfig: () => n }), n = {
|
|
4
|
-
label: "Activity Grid",
|
|
5
|
-
description: "GitHub-style activity grid showing temporal patterns across different time scales",
|
|
6
|
-
useCase: "Best for visualizing activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities",
|
|
7
|
-
dropZones: [{
|
|
8
|
-
key: "dateField",
|
|
9
|
-
label: "Time Dimension",
|
|
10
|
-
description: "Time field that determines grid structure (granularity affects layout)",
|
|
11
|
-
mandatory: !0,
|
|
12
|
-
maxItems: 1,
|
|
13
|
-
acceptTypes: ["timeDimension"],
|
|
14
|
-
emptyText: "Drop a time dimension (granularity affects grid structure)"
|
|
15
|
-
}, {
|
|
16
|
-
key: "valueField",
|
|
17
|
-
label: "Activity Measure",
|
|
18
|
-
description: "Measure used for activity intensity (color coding)",
|
|
19
|
-
mandatory: !0,
|
|
20
|
-
maxItems: 1,
|
|
21
|
-
acceptTypes: ["measure"],
|
|
22
|
-
emptyText: "Drop a measure for activity intensity"
|
|
23
|
-
}],
|
|
24
|
-
displayOptions: [
|
|
25
|
-
"showLabels",
|
|
26
|
-
"showTooltip",
|
|
27
|
-
"hideHeader"
|
|
28
|
-
],
|
|
29
|
-
displayOptionsConfig: [{
|
|
30
|
-
key: "fitToWidth",
|
|
31
|
-
label: "Fit to Width",
|
|
32
|
-
type: "boolean",
|
|
33
|
-
defaultValue: !1,
|
|
34
|
-
description: "Automatically size blocks to fill portlet width and height while maintaining aspect ratio"
|
|
35
|
-
}],
|
|
36
|
-
validate: (e) => {
|
|
37
|
-
let { dateField: t, valueField: n } = e;
|
|
38
|
-
return !t || Array.isArray(t) && t.length === 0 ? {
|
|
39
|
-
isValid: !1,
|
|
40
|
-
message: "Time dimension is required for activity grid"
|
|
41
|
-
} : !n || Array.isArray(n) && n.length === 0 ? {
|
|
42
|
-
isValid: !1,
|
|
43
|
-
message: "Activity measure is required for intensity mapping"
|
|
44
|
-
} : { isValid: !0 };
|
|
45
|
-
},
|
|
46
|
-
clickableElements: { cell: !0 }
|
|
47
|
-
};
|
|
48
|
-
//#endregion
|
|
49
|
-
export { n, t };
|
|
50
|
-
|
|
51
|
-
//# sourceMappingURL=chart-config-activity-grid-DJOU3TEz.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-config-activity-grid-DJOU3TEz.js","names":[],"sources":["../../../src/client/components/charts/ActivityGridChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the activity grid chart type\n */\nexport const activityGridChartConfig: ChartTypeConfig = {\n label: 'Activity Grid',\n description: 'GitHub-style activity grid showing temporal patterns across different time scales',\n useCase: 'Best for visualizing activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities',\n dropZones: [\n {\n key: 'dateField',\n label: 'Time Dimension',\n description: 'Time field that determines grid structure (granularity affects layout)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['timeDimension'],\n emptyText: 'Drop a time dimension (granularity affects grid structure)'\n },\n {\n key: 'valueField',\n label: 'Activity Measure',\n description: 'Measure used for activity intensity (color coding)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'Drop a measure for activity intensity'\n }\n ],\n displayOptions: ['showLabels', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'fitToWidth',\n label: 'Fit to Width',\n type: 'boolean',\n defaultValue: false,\n description: 'Automatically size blocks to fill portlet width and height while maintaining aspect ratio'\n }\n ],\n validate: (config) => {\n const { dateField, valueField } = config\n\n if (!dateField || (Array.isArray(dateField) && dateField.length === 0)) {\n return {\n isValid: false,\n message: 'Time dimension is required for activity grid'\n }\n }\n\n if (!valueField || (Array.isArray(valueField) && valueField.length === 0)) {\n return {\n isValid: false,\n message: 'Activity measure is required for intensity mapping'\n }\n }\n\n return { isValid: true }\n },\n clickableElements: { cell: true }\n}"],"mappings":";;iEAKa,IAA2C;CACtD,OAAO;CACP,aAAa;CACb,SAAS;CACT,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,gBAAgB;EAC9B,WAAW;EACZ,EACD;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,UAAU;EACxB,WAAW;EACZ,CACF;CACD,gBAAgB;EAAC;EAAc;EAAe;EAAa;CAC3D,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,cAAc;EACd,aAAa;EACd,CACF;CACD,WAAW,MAAW;EACpB,IAAM,EAAE,cAAW,kBAAe;AAgBlC,SAdI,CAAC,KAAc,MAAM,QAAQ,EAAU,IAAI,EAAU,WAAW,IAC3D;GACL,SAAS;GACT,SAAS;GACV,GAGC,CAAC,KAAe,MAAM,QAAQ,EAAW,IAAI,EAAW,WAAW,IAC9D;GACL,SAAS;GACT,SAAS;GACV,GAGI,EAAE,SAAS,IAAM;;CAE1B,mBAAmB,EAAE,MAAM,IAAM"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./rolldown-runtime-CCl2IeXn.js";
|
|
2
|
-
//#region src/client/components/charts/AreaChart.config.ts
|
|
3
|
-
var t = /* @__PURE__ */ e({ areaChartConfig: () => n }), n = {
|
|
4
|
-
label: "Area Chart",
|
|
5
|
-
description: "Emphasize magnitude of change over time",
|
|
6
|
-
useCase: "Best for showing cumulative totals, volume changes, or stacked comparisons over time",
|
|
7
|
-
dropZones: [
|
|
8
|
-
{
|
|
9
|
-
key: "xAxis",
|
|
10
|
-
label: "X-Axis (Time/Categories)",
|
|
11
|
-
description: "Time dimensions or dimensions for X-axis",
|
|
12
|
-
mandatory: !0,
|
|
13
|
-
acceptTypes: ["dimension", "timeDimension"],
|
|
14
|
-
emptyText: "Drop time dimensions or dimensions here"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
key: "yAxis",
|
|
18
|
-
label: "Y-Axis (Values)",
|
|
19
|
-
description: "Measures for area values",
|
|
20
|
-
mandatory: !0,
|
|
21
|
-
acceptTypes: ["measure"],
|
|
22
|
-
emptyText: "Drop measures here",
|
|
23
|
-
enableDualAxis: !0
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
key: "series",
|
|
27
|
-
label: "Series (Stack Areas)",
|
|
28
|
-
description: "Dimensions to create stacked areas",
|
|
29
|
-
mandatory: !1,
|
|
30
|
-
acceptTypes: ["dimension"],
|
|
31
|
-
emptyText: "Drop dimensions here for stacked areas"
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
displayOptions: [
|
|
35
|
-
"showLegend",
|
|
36
|
-
"showGrid",
|
|
37
|
-
"showTooltip",
|
|
38
|
-
"hideHeader"
|
|
39
|
-
],
|
|
40
|
-
displayOptionsConfig: [
|
|
41
|
-
{
|
|
42
|
-
key: "stackType",
|
|
43
|
-
label: "Stacking",
|
|
44
|
-
type: "select",
|
|
45
|
-
defaultValue: "none",
|
|
46
|
-
options: [
|
|
47
|
-
{
|
|
48
|
-
value: "none",
|
|
49
|
-
label: "None"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
value: "normal",
|
|
53
|
-
label: "Stacked"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
value: "percent",
|
|
57
|
-
label: "Stacked 100%"
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
description: "How to stack multiple area series"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
key: "connectNulls",
|
|
64
|
-
label: "Connect Nulls",
|
|
65
|
-
type: "boolean",
|
|
66
|
-
defaultValue: !1,
|
|
67
|
-
description: "Draw continuous line through missing data points"
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
key: "target",
|
|
71
|
-
label: "Target Values",
|
|
72
|
-
type: "string",
|
|
73
|
-
placeholder: "e.g., 100 or 50,75 for spread",
|
|
74
|
-
description: "Single value or comma-separated values to spread across X-axis"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
key: "leftYAxisFormat",
|
|
78
|
-
label: "Left Y-Axis Format",
|
|
79
|
-
type: "axisFormat",
|
|
80
|
-
description: "Number formatting for left Y-axis"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
key: "rightYAxisFormat",
|
|
84
|
-
label: "Right Y-Axis Format",
|
|
85
|
-
type: "axisFormat",
|
|
86
|
-
description: "Number formatting for right Y-axis"
|
|
87
|
-
}
|
|
88
|
-
]
|
|
89
|
-
};
|
|
90
|
-
//#endregion
|
|
91
|
-
export { n, t };
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=chart-config-area-CWnWVT6a.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-config-area-CWnWVT6a.js","names":[],"sources":["../../../src/client/components/charts/AreaChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the area chart type\n */\nexport const areaChartConfig: ChartTypeConfig = {\n label: 'Area Chart',\n description: 'Emphasize magnitude of change over time',\n useCase: 'Best for showing cumulative totals, volume changes, or stacked comparisons over time',\n dropZones: [\n {\n key: 'xAxis',\n label: 'X-Axis (Time/Categories)',\n description: 'Time dimensions or dimensions for X-axis',\n mandatory: true,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'Drop time dimensions or dimensions here'\n },\n {\n key: 'yAxis',\n label: 'Y-Axis (Values)',\n description: 'Measures for area values',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'Drop measures here',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'Series (Stack Areas)',\n description: 'Dimensions to create stacked areas',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'Drop dimensions here for stacked areas'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'stackType',\n label: 'Stacking',\n type: 'select',\n defaultValue: 'none',\n options: [\n { value: 'none', label: 'None' },\n { value: 'normal', label: 'Stacked' },\n { value: 'percent', label: 'Stacked 100%' }\n ],\n description: 'How to stack multiple area series'\n },\n {\n key: 'connectNulls',\n label: 'Connect Nulls',\n type: 'boolean',\n defaultValue: false,\n description: 'Draw continuous line through missing data points'\n },\n {\n key: 'target',\n label: 'Target Values',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'Single value or comma-separated values to spread across X-axis'\n },\n {\n key: 'leftYAxisFormat',\n label: 'Left Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for left Y-axis'\n },\n {\n key: 'rightYAxisFormat',\n label: 'Right Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for right Y-axis'\n }\n ]\n}"],"mappings":";;yDAKa,IAAmC;CAC9C,OAAO;CACP,aAAa;CACb,SAAS;CACT,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,gBAAgB;GAC3C,WAAW;GACZ;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,UAAU;GACxB,WAAW;GACX,gBAAgB;GACjB;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,YAAY;GAC1B,WAAW;GACZ;EACF;CACD,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAa;CACvE,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAQ,OAAO;KAAQ;IAChC;KAAE,OAAO;KAAU,OAAO;KAAW;IACrC;KAAE,OAAO;KAAW,OAAO;KAAgB;IAC5C;GACD,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACF"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./rolldown-runtime-CCl2IeXn.js";
|
|
2
|
-
//#region src/client/components/charts/BarChart.config.ts
|
|
3
|
-
var t = /* @__PURE__ */ e({ barChartConfig: () => n }), n = {
|
|
4
|
-
label: "Bar Chart",
|
|
5
|
-
description: "Compare values across categories",
|
|
6
|
-
useCase: "Best for comparing discrete categories, showing rankings, or displaying changes over time",
|
|
7
|
-
clickableElements: { bar: !0 },
|
|
8
|
-
dropZones: [
|
|
9
|
-
{
|
|
10
|
-
key: "xAxis",
|
|
11
|
-
label: "X-Axis (Categories)",
|
|
12
|
-
description: "Dimensions and time dimensions for grouping",
|
|
13
|
-
mandatory: !1,
|
|
14
|
-
acceptTypes: ["dimension", "timeDimension"],
|
|
15
|
-
emptyText: "Drop dimensions & time dimensions here"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
key: "yAxis",
|
|
19
|
-
label: "Y-Axis (Values)",
|
|
20
|
-
description: "Measures for bar heights",
|
|
21
|
-
mandatory: !0,
|
|
22
|
-
acceptTypes: ["measure"],
|
|
23
|
-
emptyText: "Drop measures here",
|
|
24
|
-
enableDualAxis: !0
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
key: "series",
|
|
28
|
-
label: "Series (Split into Multiple Series)",
|
|
29
|
-
description: "Dimensions to create separate data series",
|
|
30
|
-
mandatory: !1,
|
|
31
|
-
acceptTypes: ["dimension"],
|
|
32
|
-
emptyText: "Drop dimensions here to split data into series"
|
|
33
|
-
}
|
|
34
|
-
],
|
|
35
|
-
displayOptions: [
|
|
36
|
-
"showLegend",
|
|
37
|
-
"showGrid",
|
|
38
|
-
"showTooltip",
|
|
39
|
-
"hideHeader"
|
|
40
|
-
],
|
|
41
|
-
displayOptionsConfig: [
|
|
42
|
-
{
|
|
43
|
-
key: "stackType",
|
|
44
|
-
label: "Stacking",
|
|
45
|
-
type: "select",
|
|
46
|
-
defaultValue: "none",
|
|
47
|
-
options: [
|
|
48
|
-
{
|
|
49
|
-
value: "none",
|
|
50
|
-
label: "None"
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
value: "normal",
|
|
54
|
-
label: "Stacked"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
value: "percent",
|
|
58
|
-
label: "Stacked 100%"
|
|
59
|
-
}
|
|
60
|
-
],
|
|
61
|
-
description: "How to stack multiple bar series"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
key: "target",
|
|
65
|
-
label: "Target Values",
|
|
66
|
-
type: "string",
|
|
67
|
-
placeholder: "e.g., 100 or 50,75 for spread",
|
|
68
|
-
description: "Single value or comma-separated values to spread across X-axis"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
key: "leftYAxisFormat",
|
|
72
|
-
label: "Left Y-Axis Format",
|
|
73
|
-
type: "axisFormat",
|
|
74
|
-
description: "Number formatting for left Y-axis"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
key: "rightYAxisFormat",
|
|
78
|
-
label: "Right Y-Axis Format",
|
|
79
|
-
type: "axisFormat",
|
|
80
|
-
description: "Number formatting for right Y-axis"
|
|
81
|
-
}
|
|
82
|
-
]
|
|
83
|
-
};
|
|
84
|
-
//#endregion
|
|
85
|
-
export { n, t };
|
|
86
|
-
|
|
87
|
-
//# sourceMappingURL=chart-config-bar-C-7Dr1Ho.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-config-bar-C-7Dr1Ho.js","names":[],"sources":["../../../src/client/components/charts/BarChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the bar chart type\n */\nexport const barChartConfig: ChartTypeConfig = {\n label: 'Bar Chart',\n description: 'Compare values across categories',\n useCase: 'Best for comparing discrete categories, showing rankings, or displaying changes over time',\n clickableElements: { bar: true },\n dropZones: [\n {\n key: 'xAxis',\n label: 'X-Axis (Categories)',\n description: 'Dimensions and time dimensions for grouping',\n mandatory: false,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'Drop dimensions & time dimensions here'\n },\n {\n key: 'yAxis',\n label: 'Y-Axis (Values)',\n description: 'Measures for bar heights',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'Drop measures here',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'Series (Split into Multiple Series)',\n description: 'Dimensions to create separate data series',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'Drop dimensions here to split data into series'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'stackType',\n label: 'Stacking',\n type: 'select',\n defaultValue: 'none',\n options: [\n { value: 'none', label: 'None' },\n { value: 'normal', label: 'Stacked' },\n { value: 'percent', label: 'Stacked 100%' }\n ],\n description: 'How to stack multiple bar series'\n },\n {\n key: 'target',\n label: 'Target Values',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'Single value or comma-separated values to spread across X-axis'\n },\n {\n key: 'leftYAxisFormat',\n label: 'Left Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for left Y-axis'\n },\n {\n key: 'rightYAxisFormat',\n label: 'Right Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for right Y-axis'\n }\n ]\n}"],"mappings":";;wDAKa,IAAkC;CAC7C,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,EAAE,KAAK,IAAM;CAChC,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,gBAAgB;GAC3C,WAAW;GACZ;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,UAAU;GACxB,WAAW;GACX,gBAAgB;GACjB;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,YAAY;GAC1B,WAAW;GACZ;EACF;CACD,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAa;CACvE,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAQ,OAAO;KAAQ;IAChC;KAAE,OAAO;KAAU,OAAO;KAAW;IACrC;KAAE,OAAO;KAAW,OAAO;KAAgB;IAC5C;GACD,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACF"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./rolldown-runtime-CCl2IeXn.js";
|
|
2
|
-
//#region src/client/components/charts/BoxPlotChart.config.ts
|
|
3
|
-
var t = /* @__PURE__ */ e({ boxPlotChartConfig: () => n }), n = {
|
|
4
|
-
label: "Box Plot",
|
|
5
|
-
description: "Show statistical distribution (median, IQR, whiskers) across categories",
|
|
6
|
-
useCase: "Best for P&L spread per symbol, trade size distribution, latency distribution across platforms",
|
|
7
|
-
displayOptions: ["hideHeader"],
|
|
8
|
-
dropZones: [{
|
|
9
|
-
key: "xAxis",
|
|
10
|
-
label: "X-Axis (Groups)",
|
|
11
|
-
description: "Dimension to group boxes by (e.g. symbol, platform)",
|
|
12
|
-
mandatory: !0,
|
|
13
|
-
maxItems: 1,
|
|
14
|
-
acceptTypes: ["dimension", "timeDimension"],
|
|
15
|
-
emptyText: "Drop a dimension here"
|
|
16
|
-
}, {
|
|
17
|
-
key: "yAxis",
|
|
18
|
-
label: "Y-Axis (Measures)",
|
|
19
|
-
description: "Drop 1 measure for auto mode, 3 for avg/stddev/median mode, or 5 for min/q1/median/q3/max mode",
|
|
20
|
-
mandatory: !0,
|
|
21
|
-
maxItems: 5,
|
|
22
|
-
acceptTypes: ["measure"],
|
|
23
|
-
emptyText: "Drop 1, 3, or 5 measures here"
|
|
24
|
-
}],
|
|
25
|
-
displayOptionsConfig: [{
|
|
26
|
-
key: "leftYAxisFormat",
|
|
27
|
-
label: "Y-Axis Format",
|
|
28
|
-
type: "axisFormat",
|
|
29
|
-
description: "Number formatting for the value axis"
|
|
30
|
-
}]
|
|
31
|
-
};
|
|
32
|
-
//#endregion
|
|
33
|
-
export { n, t };
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=chart-config-box-plot-mVOwmLdu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-config-box-plot-mVOwmLdu.js","names":[],"sources":["../../../src/client/components/charts/BoxPlotChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the box plot chart type\n */\nexport const boxPlotChartConfig: ChartTypeConfig = {\n label: 'Box Plot',\n description: 'Show statistical distribution (median, IQR, whiskers) across categories',\n useCase:\n 'Best for P&L spread per symbol, trade size distribution, latency distribution across platforms',\n displayOptions: ['hideHeader'],\n dropZones: [\n {\n key: 'xAxis',\n label: 'X-Axis (Groups)',\n description: 'Dimension to group boxes by (e.g. symbol, platform)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'Drop a dimension here',\n },\n {\n key: 'yAxis',\n label: 'Y-Axis (Measures)',\n description:\n 'Drop 1 measure for auto mode, 3 for avg/stddev/median mode, or 5 for min/q1/median/q3/max mode',\n mandatory: true,\n maxItems: 5,\n acceptTypes: ['measure'],\n emptyText: 'Drop 1, 3, or 5 measures here',\n },\n ],\n displayOptionsConfig: [\n {\n key: 'leftYAxisFormat',\n label: 'Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for the value axis',\n },\n ],\n}\n"],"mappings":";;4DAKa,IAAsC;CACjD,OAAO;CACP,aAAa;CACb,SACE;CACF,gBAAgB,CAAC,aAAa;CAC9B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,aAAa,gBAAgB;EAC3C,WAAW;EACZ,EACD;EACE,KAAK;EACL,OAAO;EACP,aACE;EACF,WAAW;EACX,UAAU;EACV,aAAa,CAAC,UAAU;EACxB,WAAW;EACZ,CACF;CACD,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACd,CACF;CACF"}
|