drizzle-cube 0.7.1 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/ActivityGridChart.config-DXUUgx0N.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-Dyozu3VW.js +2 -0
- package/dist/adapters/AreaChart.config-Di5odBXp.cjs +1 -0
- package/dist/adapters/AreaChart.config-KEaXP_4K.js +2 -0
- package/dist/adapters/BarChart.config-B-hBHykR.cjs +1 -0
- package/dist/adapters/BarChart.config-C5sqbn0A.js +2 -0
- package/dist/adapters/BoxPlotChart.config-B1R4Br7L.js +2 -0
- package/dist/adapters/BoxPlotChart.config-C82Fhd3c.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CoBxmmfp.js +2 -0
- package/dist/adapters/BubbleChart.config-DfOnNjL-.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-C5ggV_3j.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-ZaJpWVuL.js +2 -0
- package/dist/adapters/DataTable.config-Cx2_ACdY.cjs +1 -0
- package/dist/adapters/DataTable.config-DkAgD-iz.js +2 -0
- package/dist/adapters/FunnelChart.config-CvzcECUB.js +2 -0
- package/dist/adapters/FunnelChart.config-DVH7IFnb.cjs +1 -0
- package/dist/adapters/GaugeChart.config-Csx8rt8o.cjs +1 -0
- package/dist/adapters/GaugeChart.config-DEmrNgMa.js +2 -0
- package/dist/adapters/HeatMapChart.config-BfD_dpP7.js +2 -0
- package/dist/adapters/HeatMapChart.config-D_jlyPJL.cjs +1 -0
- package/dist/adapters/KpiDelta.config-CVBdUL_n.cjs +1 -0
- package/dist/adapters/KpiDelta.config-D4dCXOxl.js +2 -0
- package/dist/adapters/KpiNumber.config-BK5pgIKz.cjs +1 -0
- package/dist/adapters/KpiNumber.config-D6XqjZrm.js +2 -0
- package/dist/adapters/KpiText.config-ChphMwG5.js +2 -0
- package/dist/adapters/KpiText.config-fO1wc6FH.cjs +1 -0
- package/dist/adapters/LineChart.config-CXJrgz1s.js +2 -0
- package/dist/adapters/LineChart.config-Cg_h-SiJ.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-ByPjX-4O.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-Df2yY9AT.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-BBWGIteF.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-C9OFbN9Z.js +2 -0
- package/dist/adapters/PieChart.config-C6jJj6xm.js +2 -0
- package/dist/adapters/PieChart.config-CmCw_8eN.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-B9NEyFEe.js +2 -0
- package/dist/adapters/ProportionBarChart.config-C3GAVPWn.cjs +1 -0
- package/dist/adapters/RadarChart.config-5AMwEqUJ.cjs +1 -0
- package/dist/adapters/RadarChart.config-Ct_b7IM5.js +2 -0
- package/dist/adapters/RadialBarChart.config-Bp-Sl0cm.js +2 -0
- package/dist/adapters/RadialBarChart.config-D14yoexI.cjs +1 -0
- package/dist/adapters/RecordsTable.config-D2-qmG06.cjs +1 -0
- package/dist/adapters/RecordsTable.config-DIwoqZCU.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-BWHipi5M.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-D40UgTcl.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-GlnSLrjn.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-MlhZf26c.cjs +1 -0
- package/dist/adapters/SankeyChart.config-Bf1_NHiv.js +2 -0
- package/dist/adapters/SankeyChart.config-BoYf6BFE.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CV2rdGJp.js +2 -0
- package/dist/adapters/ScatterChart.config-DywduGF3.cjs +1 -0
- package/dist/adapters/SunburstChart.config-CrqiE1UZ.js +2 -0
- package/dist/adapters/SunburstChart.config-D5tbF_GJ.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-BJ8HnZU0.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-DxgIqIIj.js +2 -0
- package/dist/adapters/WaterfallChart.config-Cns8fLFu.js +2 -0
- package/dist/adapters/WaterfallChart.config-D_kdL9SN.cjs +1 -0
- package/dist/adapters/compiler-BxZHh0UD.cjs +166 -0
- package/dist/adapters/{compiler-DiYxWAKg.js → compiler-CBGD_4Et.js} +1389 -1923
- package/dist/adapters/core/http-port.d.ts +34 -7
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.d.ts +1 -0
- package/dist/adapters/core/index.js +2 -2
- package/dist/adapters/core/rest-handlers.d.ts +1 -1
- package/dist/adapters/core-CIGuwGuI.cjs +1 -0
- package/dist/adapters/{core-BOPRmxPc.js → core-DAAnqPyN.js} +81 -65
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.d.ts +11 -2
- package/dist/adapters/express/index.js +14 -14
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.d.ts +11 -2
- package/dist/adapters/fastify/index.js +29 -29
- package/dist/{server/google-eKAc20al.js → adapters/google-DRY7jnOh.js} +46 -28
- package/dist/adapters/{google-BhvizbFR.cjs → google-PsZzwedr.cjs} +2 -2
- package/dist/adapters/handler-BcYTw6zB.cjs +25 -0
- package/dist/adapters/{handler-DGud-C-w.js → handler-eA0VJDHj.js} +363 -266
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +9 -9
- package/dist/adapters/mcp-tools-handlers.d.ts +10 -3
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +18 -20
- package/dist/adapters/mcp-transport-BpG44Fvn.js +730 -0
- package/dist/adapters/mcp-transport-CDxZXpc-.cjs +42 -0
- package/dist/adapters/mcp-transport.d.ts +13 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.d.ts +5 -2
- package/dist/adapters/nextjs/index.js +32 -32
- package/dist/adapters/{openai-Crp3X_zg.js → openai-BZ48ioYp.js} +1 -1
- package/dist/adapters/{openai-CmdN7Sj1.cjs → openai-Bw1j-OiP.cjs} +1 -1
- package/dist/adapters/{openai-Dwt9bxOE.cjs → openai-CLjyL5_J.cjs} +2 -2
- package/dist/adapters/{openai-CGJM6Qun.js → openai-CYYjUG_3.js} +4 -4
- package/dist/adapters/{utils-DboNUT3A.js → utils-BagURNRb.js} +1963 -1135
- package/dist/adapters/utils-BiKIg2tk.cjs +128 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +19 -5
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/core/http-port.d.ts +34 -7
- package/dist/cjs/adapters/core/index.d.ts +1 -0
- package/dist/cjs/adapters/core/rest-handlers.d.ts +1 -1
- package/dist/cjs/adapters/express/index.d.ts +11 -2
- package/dist/cjs/adapters/fastify/index.d.ts +11 -2
- package/dist/cjs/adapters/mcp-tools-handlers.d.ts +10 -3
- package/dist/cjs/adapters/mcp-transport.d.ts +13 -2
- package/dist/cjs/adapters/nextjs/index.d.ts +5 -2
- package/dist/cjs/adapters/utils.d.ts +19 -5
- package/dist/cjs/client/charts/chartConfigRegistry.d.ts +7 -0
- package/dist/cjs/client/charts/chartConfigs.d.ts +17 -1
- package/dist/cjs/client/client/CubeClient.d.ts +11 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +4 -2
- package/dist/cjs/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +10 -0
- package/dist/cjs/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +3 -2
- package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +7 -1
- package/dist/cjs/client/components/analyticsPortlet/PortletChart.d.ts +2 -1
- package/dist/cjs/client/components/analyticsPortlet/PortletChartView.d.ts +4 -1
- package/dist/cjs/client/components/analyticsPortlet/usePortletDeadMembers.d.ts +24 -0
- package/dist/cjs/client/components/analyticsPortlet/usePortletPagination.d.ts +21 -0
- package/dist/cjs/client/components/charts/RecordsTable.config.d.ts +10 -0
- package/dist/cjs/client/components/charts/RecordsTable.d.ts +4 -0
- package/dist/cjs/client/components/charts/recordsTableHooks.d.ts +68 -0
- package/dist/cjs/client/icons/types.d.ts +1 -0
- package/dist/cjs/client/index.d.ts +2 -2
- package/dist/cjs/client/types.d.ts +92 -1
- package/dist/cjs/client/utils/recordsTableUtils.d.ts +71 -0
- package/dist/cjs/client/utils/rowLinkUtils.d.ts +35 -0
- package/dist/cjs/server/adapters/base-adapter.d.ts +46 -0
- package/dist/cjs/server/adapters/databend-adapter.d.ts +5 -0
- package/dist/cjs/server/adapters/duckdb-adapter.d.ts +5 -0
- package/dist/cjs/server/adapters/mysql-adapter.d.ts +14 -0
- package/dist/cjs/server/adapters/postgres-adapter.d.ts +15 -0
- package/dist/cjs/server/adapters/snowflake-adapter.d.ts +6 -0
- package/dist/cjs/server/adapters/sqlite-adapter.d.ts +21 -0
- package/dist/cjs/server/agent/chart-validation.d.ts +1 -1
- package/dist/cjs/server/ai/chart-schema.d.ts +117 -0
- package/dist/cjs/server/ai/discovery-helpers.d.ts +14 -0
- package/dist/cjs/server/ai/discovery.d.ts +6 -0
- package/dist/cjs/server/ai/query-schema.d.ts +1 -1
- package/dist/cjs/server/attribute-dimensions.d.ts +102 -0
- package/dist/cjs/server/builders/group-by-builder.d.ts +15 -0
- package/dist/cjs/server/cache-utils.d.ts +5 -1
- package/dist/cjs/server/compiler-metadata.d.ts +24 -3
- package/dist/cjs/server/compiler.d.ts +159 -13
- package/dist/cjs/server/execution/query-result-cache.d.ts +1 -1
- package/dist/cjs/server/executor.d.ts +15 -0
- package/dist/cjs/server/index.d.ts +13 -3
- package/dist/cjs/server/query-handlers.d.ts +2 -1
- package/dist/cjs/server/query-validator.d.ts +36 -4
- package/dist/cjs/server/types/core.d.ts +13 -0
- package/dist/cjs/server/types/cube.d.ts +39 -2
- package/dist/cjs/server/types/query.d.ts +8 -0
- package/dist/cli/index.cjs +130 -52
- package/dist/client/charts/chartConfigRegistry.d.ts +7 -0
- package/dist/client/charts/chartConfigs.d.ts +17 -1
- package/dist/client/charts.js +13 -13
- package/dist/client/chunks/{DashboardEditModal-BOfLdTgV.js → DashboardEditModal-_ZDMwaGX.js} +1653 -1188
- package/dist/client/chunks/DashboardEditModal-_ZDMwaGX.js.map +1 -0
- package/dist/client/chunks/{ProportionBarChart-DwoXU5VP.js → ProportionBarChart-qfpAWhIg.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-DwoXU5VP.js.map → ProportionBarChart-qfpAWhIg.js.map} +1 -1
- package/dist/client/chunks/RecordsTable-KmJy94xN.js +556 -0
- package/dist/client/chunks/RecordsTable-KmJy94xN.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-BqlSV7yF.js → RetentionCombinedChart-C7X6aj97.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-BqlSV7yF.js.map → RetentionCombinedChart-C7X6aj97.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-VdVkBg8Q.js → RetentionHeatmap-PpRpiqR_.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-VdVkBg8Q.js.map → RetentionHeatmap-PpRpiqR_.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-DXw60SEs.js → analysis-builder-DaqyOjLX.js} +169 -168
- package/dist/client/chunks/{analysis-builder-DXw60SEs.js.map → analysis-builder-DaqyOjLX.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-CEvHIlmk.js → analysis-builder-shared-ow9KAHDP.js} +965 -954
- package/dist/client/chunks/analysis-builder-shared-ow9KAHDP.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-4jfS8khG.js → chart-activity-grid-DO82rrbW.js} +140 -84
- package/dist/client/chunks/chart-activity-grid-DO82rrbW.js.map +1 -0
- package/dist/client/chunks/{chart-area-Dol6s9no.js → chart-area-9SBeG0GM.js} +21 -21
- package/dist/client/chunks/{chart-area-Dol6s9no.js.map → chart-area-9SBeG0GM.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-5_niozi2.js → chart-bar-tfgmLK2D.js} +5 -5
- package/dist/client/chunks/{chart-bar-5_niozi2.js.map → chart-bar-tfgmLK2D.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-Dhp-VwhD.js → chart-box-plot-BuYW6j6g.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-Dhp-VwhD.js.map → chart-box-plot-BuYW6j6g.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-BM2BAMSo.js → chart-bubble-BNmonWqW.js} +2 -2
- package/dist/client/chunks/{chart-bubble-BM2BAMSo.js.map → chart-bubble-BNmonWqW.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-BNwLIBfm.js → chart-candlestick-BYeWNkKl.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-BNwLIBfm.js.map → chart-candlestick-BYeWNkKl.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-DoDHQRe7.js → chart-data-table-C_oHiK6N.js} +1094 -1029
- package/dist/client/chunks/chart-data-table-C_oHiK6N.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-Cd7da_sa.js → chart-funnel-B_CWC3cL.js} +2 -2
- package/dist/client/chunks/{chart-funnel-Cd7da_sa.js.map → chart-funnel-B_CWC3cL.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DOpul-Oz.js → chart-gauge-D7VxwPnx.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DOpul-Oz.js.map → chart-gauge-D7VxwPnx.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-CeKbK655.js → chart-heat-map-q7Vf_dog.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-CeKbK655.js.map → chart-heat-map-q7Vf_dog.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-Dq8qUOOT.js → chart-kpi-delta-PEuA3iGs.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-Dq8qUOOT.js.map → chart-kpi-delta-PEuA3iGs.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DgiqTi9g.js → chart-kpi-number-DlxrO6Pq.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-DgiqTi9g.js.map → chart-kpi-number-DlxrO6Pq.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-CsZMVEnM.js → chart-kpi-text-Cx6cJu2s.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-CsZMVEnM.js.map → chart-kpi-text-Cx6cJu2s.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DlwOB7C7.js → chart-line-pDe25JzB.js} +3 -3
- package/dist/client/chunks/{chart-line-DlwOB7C7.js.map → chart-line-pDe25JzB.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-DPE34SjC.js → chart-markdown-CRY15yp0.js} +2 -2
- package/dist/client/chunks/{chart-markdown-DPE34SjC.js.map → chart-markdown-CRY15yp0.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-BpTz1fce.js → chart-measure-profile-DyQ-vvuC.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-BpTz1fce.js.map → chart-measure-profile-DyQ-vvuC.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-FGw66XAH.js → chart-pie-ZrnBycy1.js} +15 -15
- package/dist/client/chunks/{chart-pie-FGw66XAH.js.map → chart-pie-ZrnBycy1.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-D-eRDoiA.js → chart-radar-BXbnYMUJ.js} +13 -13
- package/dist/client/chunks/{chart-radar-D-eRDoiA.js.map → chart-radar-BXbnYMUJ.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DgtkNTs3.js → chart-radial-bar-CYxH3ryh.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-DgtkNTs3.js.map → chart-radial-bar-CYxH3ryh.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-D0hhb_EQ.js → chart-sankey-C9R_TDDh.js} +2 -2
- package/dist/client/chunks/{chart-sankey-D0hhb_EQ.js.map → chart-sankey-C9R_TDDh.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-D9EcAiMQ.js → chart-scatter-DrwRkzzl.js} +3 -3
- package/dist/client/chunks/{chart-scatter-D9EcAiMQ.js.map → chart-scatter-DrwRkzzl.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-DCYmJ5DU.js → chart-sunburst-Bs1yqIPp.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-DCYmJ5DU.js.map → chart-sunburst-Bs1yqIPp.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-D_ACSSiB.js → chart-tree-map-BNjHhhVq.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-D_ACSSiB.js.map → chart-tree-map-BNjHhhVq.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-CVUVNa1R.js → chart-waterfall-CyoC0uLT.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-CVUVNa1R.js.map → chart-waterfall-CyoC0uLT.js.map} +1 -1
- package/dist/client/chunks/charts-core-DCQ7od_L.js +190 -0
- package/dist/client/chunks/charts-core-DCQ7od_L.js.map +1 -0
- package/dist/client/chunks/charts-loader-Bya_zDIA.js +86 -0
- package/dist/client/chunks/charts-loader-Bya_zDIA.js.map +1 -0
- package/dist/client/chunks/{en-US-BE6VoG0o.js → en-US-HP6FHuNy.js} +3 -1
- package/dist/client/chunks/{en-US-BE6VoG0o.js.map → en-US-HP6FHuNy.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-DWC_b8G9.js → exceljs.min-CiByP8VQ.js} +2 -3
- package/dist/client/chunks/{exceljs.min-DWC_b8G9.js.map → exceljs.min-CiByP8VQ.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-DFLVORiD.js → nl-NL-CEdoCz6Q.js} +54 -1
- package/dist/client/chunks/nl-NL-CEdoCz6Q.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-C6g_LCiA.js → schema-visualization-DfXxFBIY.js} +3 -3
- package/dist/client/chunks/{schema-visualization-C6g_LCiA.js.map → schema-visualization-DfXxFBIY.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-ZfChDEd3.js → useDirtyStateTracking-BFJHiiVK.js} +15 -15
- package/dist/client/chunks/{useDirtyStateTracking-ZfChDEd3.js.map → useDirtyStateTracking-BFJHiiVK.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-im9e1rVb.js → useExplainAI-_C4WQE5I.js} +16 -16
- package/dist/client/chunks/{useExplainAI-im9e1rVb.js.map → useExplainAI-_C4WQE5I.js.map} +1 -1
- package/dist/client/chunks/{vendor-Qa1s8oSX.js → vendor-Gb3lH0cc.js} +49 -49
- package/dist/client/chunks/vendor-Gb3lH0cc.js.map +1 -0
- package/dist/client/client/CubeClient.d.ts +11 -1
- package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +4 -2
- package/dist/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +3 -2
- package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +7 -1
- package/dist/client/components/analyticsPortlet/PortletChart.d.ts +2 -1
- package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +4 -1
- package/dist/client/components/analyticsPortlet/usePortletDeadMembers.d.ts +24 -0
- package/dist/client/components/analyticsPortlet/usePortletPagination.d.ts +21 -0
- package/dist/client/components/charts/RecordsTable.config.d.ts +10 -0
- package/dist/client/components/charts/RecordsTable.d.ts +4 -0
- package/dist/client/components/charts/recordsTableHooks.d.ts +68 -0
- package/dist/client/components.js +1 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons/types.d.ts +1 -0
- package/dist/client/icons.js +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +213 -213
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/types.d.ts +92 -1
- package/dist/client/utils/recordsTableUtils.d.ts +71 -0
- package/dist/client/utils/rowLinkUtils.d.ts +35 -0
- package/dist/client/utils.js +14 -14
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +109 -109
- package/dist/server/adapters/base-adapter.d.ts +46 -0
- package/dist/server/adapters/databend-adapter.d.ts +5 -0
- package/dist/server/adapters/duckdb-adapter.d.ts +5 -0
- package/dist/server/adapters/mysql-adapter.d.ts +14 -0
- package/dist/server/adapters/postgres-adapter.d.ts +15 -0
- package/dist/server/adapters/snowflake-adapter.d.ts +6 -0
- package/dist/server/adapters/sqlite-adapter.d.ts +21 -0
- package/dist/server/agent/chart-validation.d.ts +1 -1
- package/dist/server/ai/chart-schema.d.ts +117 -0
- package/dist/server/ai/discovery-helpers.d.ts +14 -0
- package/dist/server/ai/discovery.d.ts +6 -0
- package/dist/server/ai/query-schema.d.ts +1 -1
- package/dist/server/attribute-dimensions.d.ts +102 -0
- package/dist/server/builders/group-by-builder.d.ts +15 -0
- package/dist/server/cache-utils.d.ts +5 -1
- package/dist/server/compiler-metadata.d.ts +24 -3
- package/dist/server/compiler.d.ts +159 -13
- package/dist/server/execution/query-result-cache.d.ts +1 -1
- package/dist/server/executor.d.ts +15 -0
- package/dist/{adapters/google-eKAc20al.js → server/google-DRY7jnOh.js} +46 -28
- package/dist/server/{google-BhvizbFR.cjs → google-PsZzwedr.cjs} +2 -2
- package/dist/server/index.cjs +42 -38
- package/dist/server/index.d.ts +13 -3
- package/dist/server/index.js +2079 -1573
- package/dist/server/{openai-Czk1BdHa.js → openai-6uUf7h-5.js} +1 -1
- package/dist/server/{openai-DBwI1OSu.cjs → openai-BBe1XbZd.cjs} +1 -1
- package/dist/server/{openai-Cu4TXXjl.cjs → openai-BmADmD1e.cjs} +1 -1
- package/dist/server/{openai-CUf4vc3Q.js → openai-C1gLuR-0.js} +1 -1
- package/dist/server/query-handlers.d.ts +2 -1
- package/dist/server/query-validator.d.ts +36 -4
- package/dist/server/types/core.d.ts +13 -0
- package/dist/server/types/cube.d.ts +39 -2
- package/dist/server/types/query.d.ts +8 -0
- package/package.json +2 -2
- package/dist/adapters/ActivityGridChart.config-D6hhj345.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-QZKs_NYg.js +0 -2
- package/dist/adapters/AreaChart.config-B5XM6G22.js +0 -2
- package/dist/adapters/AreaChart.config-NP34BH5y.cjs +0 -1
- package/dist/adapters/BarChart.config-Bqlmr81N.js +0 -2
- package/dist/adapters/BarChart.config-C3bw-cAP.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-BOAvoj6x.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-CTXiycYY.js +0 -2
- package/dist/adapters/BubbleChart.config-CGFIkl4H.cjs +0 -1
- package/dist/adapters/BubbleChart.config-Njxx4Eq1.js +0 -2
- package/dist/adapters/CandlestickChart.config-BZ_yWaSo.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-D4Svhmef.js +0 -2
- package/dist/adapters/DataTable.config-B-bT9puT.js +0 -2
- package/dist/adapters/DataTable.config-BHtt1cPM.cjs +0 -1
- package/dist/adapters/FunnelChart.config-C1e07O7B.cjs +0 -1
- package/dist/adapters/FunnelChart.config-CVEy0tV9.js +0 -2
- package/dist/adapters/GaugeChart.config-5PLNlQlu.js +0 -2
- package/dist/adapters/GaugeChart.config-Cdv6knjZ.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-MGTfYpWJ.js +0 -2
- package/dist/adapters/HeatMapChart.config-jfBEi1ZI.cjs +0 -1
- package/dist/adapters/KpiDelta.config-D2IUsEYz.cjs +0 -1
- package/dist/adapters/KpiDelta.config-DT_MmAHw.js +0 -2
- package/dist/adapters/KpiNumber.config-ChgbKmx8.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CvZ_FhyL.js +0 -2
- package/dist/adapters/KpiText.config-Bgkw8gr2.js +0 -2
- package/dist/adapters/KpiText.config-Bz9orqt6.cjs +0 -1
- package/dist/adapters/LineChart.config-BVew35dI.cjs +0 -1
- package/dist/adapters/LineChart.config-DSCCKXNg.js +0 -2
- package/dist/adapters/MarkdownChart.config-Bu6XUuhI.js +0 -2
- package/dist/adapters/MarkdownChart.config-E4aSVTf3.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-BF249hc_.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-lERVe38G.js +0 -2
- package/dist/adapters/PieChart.config-7Ujwp8R5.cjs +0 -1
- package/dist/adapters/PieChart.config-jQl2HIcA.js +0 -2
- package/dist/adapters/ProportionBarChart.config-o0w_Pnlt.js +0 -2
- package/dist/adapters/ProportionBarChart.config-phNohhhY.cjs +0 -1
- package/dist/adapters/RadarChart.config-BmrYBd9x.js +0 -2
- package/dist/adapters/RadarChart.config-Dlt3UflG.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-CeEm8xRb.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-Dishh6bC.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-BaD4ev85.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-m2FjBUi9.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-DiMplGdk.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-Dp6oYwQZ.cjs +0 -1
- package/dist/adapters/SankeyChart.config-C4Y6qzCS.cjs +0 -1
- package/dist/adapters/SankeyChart.config-CJHqgjQ1.js +0 -2
- package/dist/adapters/ScatterChart.config-C0QqvDrN.cjs +0 -1
- package/dist/adapters/ScatterChart.config-DywOsWPW.js +0 -2
- package/dist/adapters/SunburstChart.config-DE8RxpDR.cjs +0 -1
- package/dist/adapters/SunburstChart.config-DohowrO3.js +0 -2
- package/dist/adapters/TreeMapChart.config-D2gXz-zC.cjs +0 -1
- package/dist/adapters/TreeMapChart.config-HMlI29GG.js +0 -2
- package/dist/adapters/WaterfallChart.config-BO2WV2VB.js +0 -2
- package/dist/adapters/WaterfallChart.config-CzwGiheB.cjs +0 -1
- package/dist/adapters/compiler-BNjqYdmc.cjs +0 -166
- package/dist/adapters/core-CzFfrJzu.cjs +0 -1
- package/dist/adapters/handler-m6WgA9xu.cjs +0 -25
- package/dist/adapters/mcp-transport-B0b27YUB.cjs +0 -40
- package/dist/adapters/mcp-transport-BXyA4dTk.js +0 -603
- package/dist/adapters/utils-BoOeig94.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-BOfLdTgV.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-CEvHIlmk.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-4jfS8khG.js.map +0 -1
- package/dist/client/chunks/chart-data-table-DoDHQRe7.js.map +0 -1
- package/dist/client/chunks/charts-core-BPD_hLaL.js +0 -215
- package/dist/client/chunks/charts-core-BPD_hLaL.js.map +0 -1
- package/dist/client/chunks/charts-loader-CwMcOfwT.js +0 -85
- package/dist/client/chunks/charts-loader-CwMcOfwT.js.map +0 -1
- package/dist/client/chunks/nl-NL-DFLVORiD.js.map +0 -1
- package/dist/client/chunks/vendor-Qa1s8oSX.js.map +0 -1
package/dist/client/chunks/{chart-activity-grid-4jfS8khG.js → chart-activity-grid-DO82rrbW.js}
RENAMED
|
@@ -276,6 +276,9 @@ var v = (e, t, n) => {
|
|
|
276
276
|
"chart.table.label": "Data Table",
|
|
277
277
|
"chart.table.description": "Display detailed tabular data",
|
|
278
278
|
"chart.table.useCase": "Best for precise values, detailed analysis, sortable/filterable data exploration",
|
|
279
|
+
"chart.recordsTable.label": "Records Table",
|
|
280
|
+
"chart.recordsTable.description": "List individual records with per-column formatting",
|
|
281
|
+
"chart.recordsTable.useCase": "Best for browsing record-level detail — badges, progress bars and links per column",
|
|
279
282
|
"chart.activityGrid.label": "Activity Grid",
|
|
280
283
|
"chart.activityGrid.description": "GitHub-style activity grid showing temporal patterns across different time scales",
|
|
281
284
|
"chart.activityGrid.useCase": "Best for visualising activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities",
|
|
@@ -369,6 +372,44 @@ var v = (e, t, n) => {
|
|
|
369
372
|
"chart.treemap.dropZone.yAxis.empty": "Drop a measure for size",
|
|
370
373
|
"chart.treemap.dropZone.series.empty": "Drop a dimension for colour grouping",
|
|
371
374
|
"chart.table.dropZone.xAxis.empty": "Drop fields to display as columns (or leave empty for all)",
|
|
375
|
+
"chart.recordsTable.dropZone.columns.label": "Columns",
|
|
376
|
+
"chart.recordsTable.dropZone.columns.description": "Fields rendered as columns, in this order",
|
|
377
|
+
"chart.recordsTable.dropZone.columns.empty": "Drop fields to display as columns (or leave empty for all)",
|
|
378
|
+
"chart.recordsTable.dropZone.hiddenColumns.label": "Hidden fields",
|
|
379
|
+
"chart.recordsTable.dropZone.hiddenColumns.description": "Fetched for row context and links, never displayed",
|
|
380
|
+
"chart.recordsTable.dropZone.hiddenColumns.empty": "Drop fields to fetch without showing them",
|
|
381
|
+
"chart.recordsTable.option.columnFormats.label": "Column formats",
|
|
382
|
+
"chart.recordsTable.option.columnFormats.description": "Choose how each column renders its value",
|
|
383
|
+
"chart.recordsTable.option.pageSize.label": "Rows per page",
|
|
384
|
+
"chart.recordsTable.option.pageSize.description": "How many records to show at a time",
|
|
385
|
+
"chart.recordsTable.option.pageSize.option.25": "25",
|
|
386
|
+
"chart.recordsTable.option.pageSize.option.50": "50",
|
|
387
|
+
"chart.recordsTable.option.pageSize.option.100": "100",
|
|
388
|
+
"chart.recordsTable.option.rowLink.label": "Row link",
|
|
389
|
+
"chart.recordsTable.option.rowLink.description": "Make each row a link. Use {Cube.field} tokens — hidden fields work too. Relative paths and http(s) URLs only.",
|
|
390
|
+
"chart.recordsTable.rowLink.urlTemplate": "URL template",
|
|
391
|
+
"chart.recordsTable.rowLink.placeholder": "/employees/{Employees.id}",
|
|
392
|
+
"chart.recordsTable.rowLink.target.self": "Same tab",
|
|
393
|
+
"chart.recordsTable.rowLink.target.blank": "New tab",
|
|
394
|
+
"chart.recordsTable.columnFormats.noColumns": "Assign columns first — each one can then be formatted here",
|
|
395
|
+
"chart.recordsTable.columnFormats.kind.text": "Text",
|
|
396
|
+
"chart.recordsTable.columnFormats.kind.number": "Number",
|
|
397
|
+
"chart.recordsTable.columnFormats.kind.date": "Date",
|
|
398
|
+
"chart.recordsTable.columnFormats.kind.badge": "Badge",
|
|
399
|
+
"chart.recordsTable.columnFormats.kind.progress": "Progress",
|
|
400
|
+
"chart.recordsTable.columnFormats.numberFormat": "Number format",
|
|
401
|
+
"chart.recordsTable.columnFormats.granularity": "Granularity",
|
|
402
|
+
"chart.recordsTable.columnFormats.badgeColours": "Value colours",
|
|
403
|
+
"chart.recordsTable.columnFormats.badgeColour": "Colour",
|
|
404
|
+
"chart.recordsTable.columnFormats.badgeValue": "Value",
|
|
405
|
+
"chart.recordsTable.columnFormats.badgeAdd": "Add value",
|
|
406
|
+
"chart.recordsTable.columnFormats.badgeRemove": "Remove value",
|
|
407
|
+
"chart.recordsTable.columnFormats.progressMin": "Minimum",
|
|
408
|
+
"chart.recordsTable.columnFormats.progressMax": "Maximum",
|
|
409
|
+
"chart.recordsTable.columnFormats.progressStyle": "Style",
|
|
410
|
+
"chart.recordsTable.columnFormats.progressStyle.bar": "Bar",
|
|
411
|
+
"chart.recordsTable.columnFormats.progressStyle.circle": "Circle",
|
|
412
|
+
"chart.recordsTable.columnFormats.header": "Header",
|
|
372
413
|
"chart.activityGrid.dropZone.dateField.empty": "Drop a time dimension (granularity affects grid structure)",
|
|
373
414
|
"chart.activityGrid.dropZone.valueField.empty": "Drop a measure for activity intensity",
|
|
374
415
|
"chart.kpiNumber.dropZone.yAxis.empty": "Drop a measure here",
|
|
@@ -712,6 +753,9 @@ var v = (e, t, n) => {
|
|
|
712
753
|
"server.errors.retentionValidationFailed": "Retention validation failed: {errors}",
|
|
713
754
|
"server.errors.cubeRefUnresolved": "{cubeName}.joins.{joinName}: target cube '{targetCube}' is not registered",
|
|
714
755
|
"server.errors.unresolvedCubeRefs": "Unresolved cube references:\n{details}",
|
|
756
|
+
"server.errors.cubeSetIdEmpty": "Cube set id must not be empty — the empty id is reserved for the base cube set",
|
|
757
|
+
"server.errors.cubeSetNotFound": "No cube set registered for '{setId}'",
|
|
758
|
+
"server.errors.attributeIdRequired": "Attribute definitions must have a non-empty id",
|
|
715
759
|
"server.errors.calculatedMeasureValidation": "Calculated measure validation failed for cube '{cubeName}':\n{details}",
|
|
716
760
|
"server.errors.queryValidationFailed": "Query validation failed: {errors}",
|
|
717
761
|
"server.errors.queryContainsMultipleModes": "Query contains multiple query modes: {modes}",
|
|
@@ -763,6 +807,7 @@ var v = (e, t, n) => {
|
|
|
763
807
|
"server.validation.chart.barNeedsDimension": "Bar charts need an xAxis dimension for category labels. Add a dimension to the query or use \"table\" chart type instead.",
|
|
764
808
|
"server.validation.chart.barXAxisRequired": "chartConfig.xAxis is required for bar charts. Put a dimension in xAxis so bars have category labels.",
|
|
765
809
|
"server.validation.chart.dropZoneRequired": "chartConfig.{key} is required for {chartType} chart ({label}). Accepts: {acceptDesc}.",
|
|
810
|
+
"server.validation.chart.recordGrainNeedsUngrouped": "{chartType} lists one row per record, so its query must set \"ungrouped\": true. Add it to the query, and remove count/countDistinct measures — they cannot be ungrouped. An ungrouped query also cannot span two cubes joined by hasMany, so keep it to one cube plus its to-one joins.",
|
|
766
811
|
"server.validation.chart.seriesDuplicatesXAxis": "chartConfig.series must not contain the same field as xAxis (found: {duplicates}). The series field is only for splitting into grouped/stacked sub-series by a DIFFERENT dimension. Remove the duplicate from series.",
|
|
767
812
|
"server.validation.flow.bindingKeyCubeNotFound": "Binding key cube not found: {cubeName}",
|
|
768
813
|
"server.validation.flow.bindingKeyDimNotFound": "Binding key dimension not found: {dimName} in cube {cubeName}",
|
|
@@ -1018,6 +1063,11 @@ var v = (e, t, n) => {
|
|
|
1018
1063
|
"chart.runtime.responsiveContainerError": "Failed to create responsive container",
|
|
1019
1064
|
"chart.runtime.noDataToDisplay": "No data to display",
|
|
1020
1065
|
"chart.runtime.table.invalidStructure": "Data structure is invalid",
|
|
1066
|
+
"chart.runtime.recordsTable.noColumns": "No columns available",
|
|
1067
|
+
"chart.runtime.recordsTable.rowRange": "{from}–{to} of {total}",
|
|
1068
|
+
"chart.runtime.recordsTable.pageOf": "Page {page} of {pages}",
|
|
1069
|
+
"chart.runtime.recordsTable.previousPage": "Previous page",
|
|
1070
|
+
"chart.runtime.recordsTable.nextPage": "Next page",
|
|
1021
1071
|
"chart.runtime.heatmapNoResults": "The query returned no results for the heatmap",
|
|
1022
1072
|
"chart.runtime.heatmapConfigRequired": "Configuration required",
|
|
1023
1073
|
"chart.runtime.heatmapXRequired": "X-axis dimension required. ",
|
|
@@ -1064,6 +1114,8 @@ var v = (e, t, n) => {
|
|
|
1064
1114
|
"chart.runtime.axisFormat.prefixExample": "e.g., $",
|
|
1065
1115
|
"chart.runtime.axisFormat.suffix": "Suffix",
|
|
1066
1116
|
"chart.runtime.axisFormat.suffixExample": "e.g., units",
|
|
1117
|
+
"chart.runtime.axisFormat.currencyCode": "Currency code",
|
|
1118
|
+
"chart.runtime.axisFormat.currencyCodeHint": "Leave blank to follow the viewer's locale",
|
|
1067
1119
|
"chart.runtime.axisFormat.abbreviation": "Abbreviation",
|
|
1068
1120
|
"chart.runtime.axisFormat.yes": "Yes",
|
|
1069
1121
|
"chart.runtime.axisFormat.no": "No",
|
|
@@ -1469,6 +1521,7 @@ var v = (e, t, n) => {
|
|
|
1469
1521
|
"portlet.invalidQuery": "Invalid query or no results",
|
|
1470
1522
|
"portlet.unsupportedChartType": "Unsupported chart type",
|
|
1471
1523
|
"portlet.unableToRender": "Unable to render chart",
|
|
1524
|
+
"portlet.droppedMembers": "Hidden — no longer in the model: {members}",
|
|
1472
1525
|
"portlet.enterTitle": "Enter portlet title...",
|
|
1473
1526
|
"portlet.enterPortletTitle": "Please enter a title for the portlet.",
|
|
1474
1527
|
"portlet.configureQuery": "Please configure a query before saving.",
|
|
@@ -1607,9 +1660,9 @@ async function te(e) {
|
|
|
1607
1660
|
try {
|
|
1608
1661
|
let t = await v(/* #__PURE__ */ Object.assign({
|
|
1609
1662
|
"./locales/af-ZA.json": () => import("./af-ZA-C0dGb_53.js"),
|
|
1610
|
-
"./locales/en-US.json": () => import("./en-US-
|
|
1663
|
+
"./locales/en-US.json": () => import("./en-US-HP6FHuNy.js"),
|
|
1611
1664
|
"./locales/en.json": () => Promise.resolve().then(() => y),
|
|
1612
|
-
"./locales/nl-NL.json": () => import("./nl-NL-
|
|
1665
|
+
"./locales/nl-NL.json": () => import("./nl-NL-CEdoCz6Q.js")
|
|
1613
1666
|
}), `./locales/${e}.json`, 3);
|
|
1614
1667
|
x = e, S = {
|
|
1615
1668
|
...b,
|
|
@@ -1671,7 +1724,7 @@ function D(e) {
|
|
|
1671
1724
|
}
|
|
1672
1725
|
//#endregion
|
|
1673
1726
|
//#region src/client/utils/axisValueFormatting.ts
|
|
1674
|
-
function
|
|
1727
|
+
function O(e) {
|
|
1675
1728
|
return {
|
|
1676
1729
|
US: "USD",
|
|
1677
1730
|
CA: "CAD",
|
|
@@ -1717,7 +1770,7 @@ function ae(e) {
|
|
|
1717
1770
|
TR: "TRY"
|
|
1718
1771
|
}[e.split("-")[1]?.toUpperCase()] || "USD";
|
|
1719
1772
|
}
|
|
1720
|
-
function
|
|
1773
|
+
function ae(e, t) {
|
|
1721
1774
|
if (!t) return {
|
|
1722
1775
|
displayValue: e,
|
|
1723
1776
|
abbreviationSuffix: ""
|
|
@@ -1737,8 +1790,11 @@ function oe(e, t) {
|
|
|
1737
1790
|
abbreviationSuffix: ""
|
|
1738
1791
|
};
|
|
1739
1792
|
}
|
|
1793
|
+
function oe(e, t) {
|
|
1794
|
+
return e && /^[A-Za-z]{3}$/.test(e) ? e.toUpperCase() : O(t);
|
|
1795
|
+
}
|
|
1740
1796
|
function se(e) {
|
|
1741
|
-
let { displayValue: t, abbreviate: n, abbreviationSuffix: r, decimals: i, locale: a } = e, o =
|
|
1797
|
+
let { displayValue: t, abbreviate: n, abbreviationSuffix: r, decimals: i, locale: a } = e, o = oe(e.config.currencyCode, a);
|
|
1742
1798
|
if (n && r) {
|
|
1743
1799
|
let e = new Intl.NumberFormat(a, {
|
|
1744
1800
|
style: "currency",
|
|
@@ -1772,7 +1828,7 @@ function le(e) {
|
|
|
1772
1828
|
maximumFractionDigits: r
|
|
1773
1829
|
}).format(t) + n + s;
|
|
1774
1830
|
}
|
|
1775
|
-
function
|
|
1831
|
+
function k(e) {
|
|
1776
1832
|
let { displayValue: t, abbreviationSuffix: n, decimals: r, locale: i } = e;
|
|
1777
1833
|
return new Intl.NumberFormat(i, {
|
|
1778
1834
|
minimumFractionDigits: r,
|
|
@@ -1783,10 +1839,10 @@ var ue = {
|
|
|
1783
1839
|
currency: se,
|
|
1784
1840
|
percent: ce,
|
|
1785
1841
|
custom: le,
|
|
1786
|
-
number:
|
|
1842
|
+
number: k
|
|
1787
1843
|
};
|
|
1788
1844
|
function de(e) {
|
|
1789
|
-
return ((e.config.unit ? ue[e.config.unit] : void 0) ||
|
|
1845
|
+
return ((e.config.unit ? ue[e.config.unit] : void 0) || k)(e);
|
|
1790
1846
|
}
|
|
1791
1847
|
//#endregion
|
|
1792
1848
|
//#region src/client/utils/timeValueFormatting.ts
|
|
@@ -1823,27 +1879,27 @@ function me(e) {
|
|
|
1823
1879
|
}
|
|
1824
1880
|
//#endregion
|
|
1825
1881
|
//#region src/client/utils/chartUtils.ts
|
|
1826
|
-
function
|
|
1882
|
+
function A(e) {
|
|
1827
1883
|
return e != null && !isNaN(Number(e));
|
|
1828
1884
|
}
|
|
1829
|
-
function
|
|
1885
|
+
function j(e) {
|
|
1830
1886
|
if (e == null) return null;
|
|
1831
1887
|
let t = typeof e == "string" ? parseFloat(e) : Number(e);
|
|
1832
1888
|
return isNaN(t) ? null : t;
|
|
1833
1889
|
}
|
|
1834
|
-
function
|
|
1890
|
+
function M(e) {
|
|
1835
1891
|
if (e == null) return "No data";
|
|
1836
1892
|
let t = typeof e == "number" ? e : parseFloat(e);
|
|
1837
1893
|
return isNaN(t) ? String(e) : Number.isInteger(t) ? t.toLocaleString() : parseFloat(t.toFixed(2)).toLocaleString();
|
|
1838
1894
|
}
|
|
1839
|
-
function
|
|
1895
|
+
function N(e, t, n) {
|
|
1840
1896
|
if (e == null) return "No data";
|
|
1841
1897
|
let r = typeof e == "number" ? e : parseFloat(String(e));
|
|
1842
1898
|
if (isNaN(r)) return String(e);
|
|
1843
1899
|
if (!isFinite(r)) return r > 0 ? "∞" : "-∞";
|
|
1844
1900
|
let i = n || (typeof navigator < "u" ? navigator.language : "en-US");
|
|
1845
|
-
if (!t) return
|
|
1846
|
-
let { abbreviate: a = !0, decimals: o } = t, { displayValue: s, abbreviationSuffix: c } =
|
|
1901
|
+
if (!t) return M(e);
|
|
1902
|
+
let { abbreviate: a = !0, decimals: o } = t, { displayValue: s, abbreviationSuffix: c } = ae(r, a);
|
|
1847
1903
|
return de({
|
|
1848
1904
|
displayValue: s,
|
|
1849
1905
|
abbreviate: a,
|
|
@@ -1854,15 +1910,15 @@ function M(e, t, n) {
|
|
|
1854
1910
|
});
|
|
1855
1911
|
}
|
|
1856
1912
|
function he(e) {
|
|
1857
|
-
return (t) =>
|
|
1913
|
+
return (t) => N(t, e);
|
|
1858
1914
|
}
|
|
1859
|
-
function
|
|
1915
|
+
function P(e, t) {
|
|
1860
1916
|
return t[e] || e;
|
|
1861
1917
|
}
|
|
1862
1918
|
function ge(e, t) {
|
|
1863
|
-
return e.map((e) =>
|
|
1919
|
+
return e.map((e) => P(e, t));
|
|
1864
1920
|
}
|
|
1865
|
-
function
|
|
1921
|
+
function F(e, t) {
|
|
1866
1922
|
if (!e) return "Unknown";
|
|
1867
1923
|
let n = String(e), r = fe(n);
|
|
1868
1924
|
if (!r) return n;
|
|
@@ -1872,7 +1928,7 @@ function P(e, t) {
|
|
|
1872
1928
|
}
|
|
1873
1929
|
return me(r);
|
|
1874
1930
|
}
|
|
1875
|
-
function
|
|
1931
|
+
function I(e, t) {
|
|
1876
1932
|
try {
|
|
1877
1933
|
if (e?.timeDimensions) {
|
|
1878
1934
|
let n = e.timeDimensions.find((e) => t === e.dimension || t.startsWith(e.dimension.replace(".", "_")) || t === `${e.dimension}_${e.granularity}`);
|
|
@@ -1897,18 +1953,18 @@ function F(e, t) {
|
|
|
1897
1953
|
return;
|
|
1898
1954
|
}
|
|
1899
1955
|
}
|
|
1900
|
-
function
|
|
1956
|
+
function L(e, t, n, r, i = (e) => e) {
|
|
1901
1957
|
if (!e || e.length === 0) return [];
|
|
1902
|
-
let a =
|
|
1958
|
+
let a = I(r, t);
|
|
1903
1959
|
return e.map((e) => {
|
|
1904
|
-
let r = { name:
|
|
1960
|
+
let r = { name: F(e[t], a) || e[t] || "Unknown" };
|
|
1905
1961
|
return n.forEach((t) => {
|
|
1906
1962
|
let n = i(t);
|
|
1907
|
-
n !== "__proto__" && n !== "constructor" && n !== "prototype" && (r[n] =
|
|
1963
|
+
n !== "__proto__" && n !== "constructor" && n !== "prototype" && (r[n] = j(e[t]));
|
|
1908
1964
|
}), r;
|
|
1909
1965
|
});
|
|
1910
1966
|
}
|
|
1911
|
-
function
|
|
1967
|
+
function _e(e, t, n, r, i, a = (e) => e) {
|
|
1912
1968
|
if (!e || e.length === 0) return {
|
|
1913
1969
|
data: [],
|
|
1914
1970
|
seriesKeys: [],
|
|
@@ -1918,11 +1974,11 @@ function L(e, t, n, r, i, a = (e) => e) {
|
|
|
1918
1974
|
if (u.length > 0) {
|
|
1919
1975
|
let n = {};
|
|
1920
1976
|
return e.forEach((e) => {
|
|
1921
|
-
let i =
|
|
1977
|
+
let i = I(r, t), o = F(e[t], i) || e[t] || "Unknown";
|
|
1922
1978
|
o !== "__proto__" && o !== "constructor" && o !== "prototype" && (n[o] || (n[o] = { name: String(o) }), l.forEach((t) => {
|
|
1923
1979
|
let r = a(t);
|
|
1924
1980
|
if (r === "__proto__" || r === "constructor" || r === "prototype") return;
|
|
1925
|
-
let i =
|
|
1981
|
+
let i = j(e[t]);
|
|
1926
1982
|
if (i !== null) {
|
|
1927
1983
|
let e = n[o][r];
|
|
1928
1984
|
n[o][r] = e == null ? i : e + i;
|
|
@@ -1933,7 +1989,7 @@ function L(e, t, n, r, i, a = (e) => e) {
|
|
|
1933
1989
|
let t = String(r), i = l[0] || c.find((e) => e.includes("totalCost") || e.includes("count") || e.includes("sum")) || c[0];
|
|
1934
1990
|
if (i) {
|
|
1935
1991
|
if (t === "__proto__" || t === "constructor" || t === "prototype") return;
|
|
1936
|
-
let r =
|
|
1992
|
+
let r = j(e[i]);
|
|
1937
1993
|
if (r !== null) {
|
|
1938
1994
|
let e = n[o][t];
|
|
1939
1995
|
n[o][t] = e == null ? r : e + r;
|
|
@@ -1951,7 +2007,7 @@ function L(e, t, n, r, i, a = (e) => e) {
|
|
|
1951
2007
|
};
|
|
1952
2008
|
}
|
|
1953
2009
|
return {
|
|
1954
|
-
data:
|
|
2010
|
+
data: L(e, t, n, r, a),
|
|
1955
2011
|
seriesKeys: n.map((e) => a(e)),
|
|
1956
2012
|
hasDimensions: !1
|
|
1957
2013
|
};
|
|
@@ -1965,18 +2021,18 @@ function R() {
|
|
|
1965
2021
|
}
|
|
1966
2022
|
//#endregion
|
|
1967
2023
|
//#region src/client/theme/index.ts
|
|
1968
|
-
function
|
|
2024
|
+
function ve(e) {
|
|
1969
2025
|
return typeof window > "u" ? "" : getComputedStyle(document.documentElement).getPropertyValue(`--dc-${e}`).trim();
|
|
1970
2026
|
}
|
|
1971
2027
|
function z(e, t) {
|
|
1972
2028
|
typeof window > "u" || document.documentElement.style.setProperty(`--dc-${e}`, t);
|
|
1973
2029
|
}
|
|
1974
|
-
function
|
|
2030
|
+
function ye(e) {
|
|
1975
2031
|
typeof window > "u" || Object.entries(e.colors).forEach(([e, t]) => {
|
|
1976
2032
|
t && z(e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), t);
|
|
1977
2033
|
});
|
|
1978
2034
|
}
|
|
1979
|
-
function
|
|
2035
|
+
function be() {
|
|
1980
2036
|
if (typeof window > "u") return;
|
|
1981
2037
|
let e = document.documentElement.style;
|
|
1982
2038
|
Array.from(e).forEach((t) => {
|
|
@@ -1990,10 +2046,10 @@ function B() {
|
|
|
1990
2046
|
let t = document.documentElement.getAttribute("data-theme");
|
|
1991
2047
|
return t === "dark" || t === "neon" ? t : document.documentElement.classList.contains("dark") || document.body.classList.contains("dark") ? "dark" : document.documentElement.classList.contains("neon") || document.body.classList.contains("neon") ? "neon" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
1992
2048
|
}
|
|
1993
|
-
function
|
|
2049
|
+
function xe(e) {
|
|
1994
2050
|
typeof window > "u" || (document.documentElement.classList.remove("dark", "neon"), document.documentElement.setAttribute("data-theme", e), (e === "dark" || e === "neon") && document.documentElement.classList.add(e), localStorage.setItem("theme", e));
|
|
1995
2051
|
}
|
|
1996
|
-
function
|
|
2052
|
+
function Se() {
|
|
1997
2053
|
let e = B();
|
|
1998
2054
|
return e === "dark" || e === "neon";
|
|
1999
2055
|
}
|
|
@@ -2011,7 +2067,7 @@ function V(e) {
|
|
|
2011
2067
|
t.disconnect(), n.removeEventListener("change", r);
|
|
2012
2068
|
};
|
|
2013
2069
|
}
|
|
2014
|
-
var
|
|
2070
|
+
var Ce = {
|
|
2015
2071
|
light: {
|
|
2016
2072
|
name: "light",
|
|
2017
2073
|
colors: {
|
|
@@ -2059,7 +2115,7 @@ var Se = {
|
|
|
2059
2115
|
danger: "#ff1493"
|
|
2060
2116
|
}
|
|
2061
2117
|
}
|
|
2062
|
-
},
|
|
2118
|
+
}, we = [
|
|
2063
2119
|
"#3b82f6",
|
|
2064
2120
|
"#10b981",
|
|
2065
2121
|
"#f59e0b",
|
|
@@ -2075,12 +2131,12 @@ var Se = {
|
|
|
2075
2131
|
"#22a884",
|
|
2076
2132
|
"#7ad151",
|
|
2077
2133
|
"#fde725"
|
|
2078
|
-
],
|
|
2134
|
+
], Te = "#10b981", Ee = "#ef4444", U = {
|
|
2079
2135
|
top: 5,
|
|
2080
2136
|
right: 30,
|
|
2081
2137
|
left: 20,
|
|
2082
2138
|
bottom: 5
|
|
2083
|
-
},
|
|
2139
|
+
}, De = {
|
|
2084
2140
|
top: 5,
|
|
2085
2141
|
right: 30,
|
|
2086
2142
|
left: 20,
|
|
@@ -2136,7 +2192,7 @@ function W() {
|
|
|
2136
2192
|
}
|
|
2137
2193
|
//#endregion
|
|
2138
2194
|
//#region src/client/components/charts/BubbleChart.helpers.ts
|
|
2139
|
-
function
|
|
2195
|
+
function Oe(e) {
|
|
2140
2196
|
return {
|
|
2141
2197
|
showLegend: e?.showLegend ?? !0,
|
|
2142
2198
|
showGrid: e?.showGrid ?? !0,
|
|
@@ -2148,7 +2204,7 @@ function De(e) {
|
|
|
2148
2204
|
leftYAxisFormat: e?.leftYAxisFormat
|
|
2149
2205
|
};
|
|
2150
2206
|
}
|
|
2151
|
-
function
|
|
2207
|
+
function ke(e) {
|
|
2152
2208
|
if (!e?.xAxis || !e?.yAxis || !e?.series) return null;
|
|
2153
2209
|
let t = Array.isArray(e.xAxis) ? e.xAxis[0] : e.xAxis, n = Array.isArray(e.yAxis) ? e.yAxis[0] : e.yAxis, r = Array.isArray(e.series) ? e.series[0] : e.series, i = (Array.isArray(e.sizeField) ? e.sizeField[0] : e.sizeField) || n;
|
|
2154
2210
|
return !t || !n || !r || !i ? null : {
|
|
@@ -2159,7 +2215,7 @@ function Oe(e) {
|
|
|
2159
2215
|
colorFieldName: Array.isArray(e.colorField) ? e.colorField[0] : e.colorField
|
|
2160
2216
|
};
|
|
2161
2217
|
}
|
|
2162
|
-
function
|
|
2218
|
+
function Ae(e, t, n) {
|
|
2163
2219
|
if (t && e) {
|
|
2164
2220
|
let t = String(e), r;
|
|
2165
2221
|
if (t.match(/^\d{4}-\d{2}-\d{2}[T ]/)) {
|
|
@@ -2168,19 +2224,19 @@ function ke(e, t, n) {
|
|
|
2168
2224
|
} else r = new Date(t);
|
|
2169
2225
|
return {
|
|
2170
2226
|
xNum: isNaN(r.getTime()) ? parseFloat(t) : r.getTime(),
|
|
2171
|
-
xLabel:
|
|
2227
|
+
xLabel: F(e, n)
|
|
2172
2228
|
};
|
|
2173
2229
|
}
|
|
2174
|
-
let r =
|
|
2230
|
+
let r = F(e, n) || e;
|
|
2175
2231
|
return {
|
|
2176
2232
|
xNum: typeof r == "string" ? parseFloat(r) : r,
|
|
2177
2233
|
xLabel: String(r)
|
|
2178
2234
|
};
|
|
2179
2235
|
}
|
|
2180
|
-
function
|
|
2181
|
-
let { xAxisField: r, yAxisField: i, sizeFieldName: a, seriesField: o, colorFieldName: s } = t, c =
|
|
2236
|
+
function je(e, t, n) {
|
|
2237
|
+
let { xAxisField: r, yAxisField: i, sizeFieldName: a, seriesField: o, colorFieldName: s } = t, c = I(n, r), l = n?.timeDimensions?.some((e) => e.dimension === r) || !1;
|
|
2182
2238
|
return e.map((e) => {
|
|
2183
|
-
let { xNum: t, xLabel: n } =
|
|
2239
|
+
let { xNum: t, xLabel: n } = Ae(e[r], l, c), u = j(e[i]), d = j(e[a]), f = e[o];
|
|
2184
2240
|
return {
|
|
2185
2241
|
x: t,
|
|
2186
2242
|
xLabel: n,
|
|
@@ -2189,14 +2245,14 @@ function Ae(e, t, n) {
|
|
|
2189
2245
|
color: s ? e[s] : f,
|
|
2190
2246
|
series: f,
|
|
2191
2247
|
label: `${f || "Unknown"}`,
|
|
2192
|
-
isValid:
|
|
2248
|
+
isValid: A(t) && u !== null && d !== null && d > 0
|
|
2193
2249
|
};
|
|
2194
2250
|
}).filter((e) => e.isValid && e.size > 0).map(({ isValid: e, ...t }) => t);
|
|
2195
2251
|
}
|
|
2196
2252
|
function G(e, t) {
|
|
2197
2253
|
return getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
|
|
2198
2254
|
}
|
|
2199
|
-
function
|
|
2255
|
+
function Me(e) {
|
|
2200
2256
|
return {
|
|
2201
2257
|
textColor: e ? G("--dc-text-muted", "#cbd5e1") : G("--dc-text-secondary", "#374151"),
|
|
2202
2258
|
gridColor: e ? G("--dc-border", "#475569") : "#9ca3af"
|
|
@@ -2204,7 +2260,7 @@ function je(e) {
|
|
|
2204
2260
|
}
|
|
2205
2261
|
//#endregion
|
|
2206
2262
|
//#region src/client/components/charts/ActivityGridChart.helpers.ts
|
|
2207
|
-
var K = (e) => Math.floor(e.getMonth() / 3) + 1,
|
|
2263
|
+
var K = (e) => Math.floor(e.getMonth() / 3) + 1, Ne = (e) => e.getMonth() % 3 + 1, Pe = (e) => Math.floor((e.getDate() - 1) / 7) + 1, Fe = [
|
|
2208
2264
|
"J",
|
|
2209
2265
|
"F",
|
|
2210
2266
|
"M",
|
|
@@ -2250,7 +2306,7 @@ var K = (e) => Math.floor(e.getMonth() / 3) + 1, Me = (e) => e.getMonth() % 3 +
|
|
|
2250
2306
|
"18-21",
|
|
2251
2307
|
"21-00"
|
|
2252
2308
|
];
|
|
2253
|
-
function
|
|
2309
|
+
function Ie(e) {
|
|
2254
2310
|
let t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), n = t.getUTCDay() || 7;
|
|
2255
2311
|
t.setUTCDate(t.getUTCDate() + 4 - n);
|
|
2256
2312
|
let r = t.getUTCFullYear(), i = new Date(Date.UTC(r, 0, 1));
|
|
@@ -2259,7 +2315,7 @@ function Fe(e) {
|
|
|
2259
2315
|
week: Math.ceil(((t.getTime() - i.getTime()) / 864e5 + 1) / 7)
|
|
2260
2316
|
};
|
|
2261
2317
|
}
|
|
2262
|
-
var
|
|
2318
|
+
var Le = {
|
|
2263
2319
|
quarter: {
|
|
2264
2320
|
extractX: (e) => e.getFullYear(),
|
|
2265
2321
|
extractY: (e) => K(e) - 1,
|
|
@@ -2272,7 +2328,7 @@ var Ie = {
|
|
|
2272
2328
|
},
|
|
2273
2329
|
month: {
|
|
2274
2330
|
extractX: (e) => e.getFullYear() * 10 + K(e),
|
|
2275
|
-
extractY: (e) =>
|
|
2331
|
+
extractY: (e) => Ne(e) - 1,
|
|
2276
2332
|
xLabels: [],
|
|
2277
2333
|
yLabels: J,
|
|
2278
2334
|
xFormat: (e) => `Q${e % 10}`,
|
|
@@ -2284,10 +2340,10 @@ var Ie = {
|
|
|
2284
2340
|
},
|
|
2285
2341
|
week: {
|
|
2286
2342
|
extractX: (e) => e.getFullYear() * 100 + (e.getMonth() + 1),
|
|
2287
|
-
extractY: (e) =>
|
|
2343
|
+
extractY: (e) => Pe(e) - 1,
|
|
2288
2344
|
xLabels: [],
|
|
2289
2345
|
yLabels: Y,
|
|
2290
|
-
xFormat: (e) =>
|
|
2346
|
+
xFormat: (e) => Fe[e % 100 - 1] || "",
|
|
2291
2347
|
yFormat: (e) => Y[e] || "",
|
|
2292
2348
|
cellWidth: 16,
|
|
2293
2349
|
cellHeight: 16,
|
|
@@ -2296,7 +2352,7 @@ var Ie = {
|
|
|
2296
2352
|
},
|
|
2297
2353
|
day: {
|
|
2298
2354
|
extractX: (e) => {
|
|
2299
|
-
let { year: t, week: n } =
|
|
2355
|
+
let { year: t, week: n } = Ie(e);
|
|
2300
2356
|
return t * 100 + n;
|
|
2301
2357
|
},
|
|
2302
2358
|
extractY: (e) => e.getDay(),
|
|
@@ -2322,13 +2378,13 @@ var Ie = {
|
|
|
2322
2378
|
getYearFromX: (e) => Math.floor(e / 100)
|
|
2323
2379
|
}
|
|
2324
2380
|
};
|
|
2325
|
-
function
|
|
2326
|
-
return
|
|
2381
|
+
function Re(e) {
|
|
2382
|
+
return Le[e?.toLowerCase()] ?? null;
|
|
2327
2383
|
}
|
|
2328
2384
|
function Q(e) {
|
|
2329
2385
|
if (e) return Array.isArray(e) ? e[0] : e;
|
|
2330
2386
|
}
|
|
2331
|
-
function
|
|
2387
|
+
function ze(e, t) {
|
|
2332
2388
|
let n = e?.timeDimensions;
|
|
2333
2389
|
if (!n || n.length === 0) return "day";
|
|
2334
2390
|
let r = n.find((e) => e.dimension === t || e.dimension.includes(t));
|
|
@@ -2336,28 +2392,28 @@ function Re(e, t) {
|
|
|
2336
2392
|
let i = n[0];
|
|
2337
2393
|
return i && i.granularity ? i.granularity : "day";
|
|
2338
2394
|
}
|
|
2339
|
-
function
|
|
2395
|
+
function Be(e) {
|
|
2340
2396
|
if (typeof e == "string") {
|
|
2341
2397
|
let t = e;
|
|
2342
2398
|
return e.includes(" ") && (t = e.replace(" ", "T").replace("+00", "Z").replace(/\+\d{2}:\d{2}$/, "Z")), !t.endsWith("Z") && !t.includes("+") && (t += "Z"), new Date(t);
|
|
2343
2399
|
}
|
|
2344
2400
|
return new Date(e);
|
|
2345
2401
|
}
|
|
2346
|
-
function
|
|
2402
|
+
function Ve(e, t, n, r, i) {
|
|
2347
2403
|
return e.map((e) => {
|
|
2348
|
-
let a = e[t], o = typeof e[n] == "string" ? parseFloat(e[n]) : e[n] || 0, s =
|
|
2404
|
+
let a = e[t], o = typeof e[n] == "string" ? parseFloat(e[n]) : e[n] || 0, s = Be(a);
|
|
2349
2405
|
return isNaN(s.getTime()) ? null : {
|
|
2350
2406
|
x: r.extractX(s),
|
|
2351
2407
|
y: r.extractY(s),
|
|
2352
2408
|
value: o,
|
|
2353
2409
|
date: s,
|
|
2354
|
-
label:
|
|
2410
|
+
label: F(a, i)
|
|
2355
2411
|
};
|
|
2356
2412
|
}).filter((e) => e !== null);
|
|
2357
2413
|
}
|
|
2358
2414
|
//#endregion
|
|
2359
2415
|
//#region src/client/components/charts/ActivityGridChart.render.ts
|
|
2360
|
-
var
|
|
2416
|
+
var He = [
|
|
2361
2417
|
"Jan",
|
|
2362
2418
|
"Feb",
|
|
2363
2419
|
"Mar",
|
|
@@ -2371,7 +2427,7 @@ var Ve = [
|
|
|
2371
2427
|
"Nov",
|
|
2372
2428
|
"Dec"
|
|
2373
2429
|
];
|
|
2374
|
-
function
|
|
2430
|
+
function Ue(e) {
|
|
2375
2431
|
return {
|
|
2376
2432
|
textColor: e ? G("--dc-text-muted", "#cbd5e1") : G("--dc-text-secondary", "#374151"),
|
|
2377
2433
|
lineColor: G("--dc-border", "#e5e7eb"),
|
|
@@ -2379,7 +2435,7 @@ function $(e) {
|
|
|
2379
2435
|
cellStrokeColor: e ? G("--dc-border", "#334155") : G("--dc-bg", "#ffffff")
|
|
2380
2436
|
};
|
|
2381
2437
|
}
|
|
2382
|
-
function
|
|
2438
|
+
function We(e) {
|
|
2383
2439
|
let { gridData: t, gridMapping: n, dimensions: r, safeDisplayConfig: i } = e, a = f(t, (e) => e.y) || 0, o = p(t, (e) => e.y) || 0, s = [...new Set(t.map((e) => e.x))].sort((e, t) => e - t), c = s.length * n.cellWidth + (s.length - 1) * 4, l = (a - o + 1) * n.cellHeight + (a - o) * 4, u = {
|
|
2384
2440
|
...U,
|
|
2385
2441
|
left: 60,
|
|
@@ -2399,10 +2455,10 @@ function He(e) {
|
|
|
2399
2455
|
svgWidth: y
|
|
2400
2456
|
};
|
|
2401
2457
|
}
|
|
2402
|
-
function
|
|
2458
|
+
function Ge() {
|
|
2403
2459
|
return h("body").append("div").attr("class", "activity-grid-tooltip").style("position", "absolute").style("padding", "8px").style("background", "rgba(0, 0, 0, 0.8)").style("color", "white").style("border-radius", "4px").style("font-size", "12px").style("pointer-events", "none").style("opacity", 0).style("z-index", 1e3);
|
|
2404
2460
|
}
|
|
2405
|
-
function
|
|
2461
|
+
function $(e, t, n, r, i) {
|
|
2406
2462
|
e.style("cursor", t.drillEnabled ? "pointer" : "default").on("mouseover", function(e) {
|
|
2407
2463
|
if (h(this).style("stroke", "#000").style("stroke-width", 2), n) {
|
|
2408
2464
|
let i = [`<strong>${n.label}</strong>`, `${t.getFieldLabel(t.valueField)}: ${n.value}`].join("<br>");
|
|
@@ -2414,14 +2470,14 @@ function We(e, t, n, r, i) {
|
|
|
2414
2470
|
h(this).style("stroke", i).style("stroke-width", 1), r.transition().duration(200).style("opacity", 0);
|
|
2415
2471
|
});
|
|
2416
2472
|
}
|
|
2417
|
-
function
|
|
2473
|
+
function Ke(e, t, n, r, i, a) {
|
|
2418
2474
|
let { gridData: o, valueField: s, dateField: c, drillEnabled: l, onDataPointClick: u, safeDisplayConfig: d } = e, { completeXRange: f, minY: p, maxY: m, finalCellWidth: h, finalCellHeight: g } = n, _ = /* @__PURE__ */ new Map();
|
|
2419
2475
|
o.forEach((e) => _.set(`${e.x}-${e.y}`, e));
|
|
2420
2476
|
let v = /* @__PURE__ */ new Map();
|
|
2421
2477
|
f.forEach((e, t) => v.set(e, t));
|
|
2422
2478
|
for (let n of f) for (let o = p; o <= m; o++) {
|
|
2423
2479
|
let f = _.get(`${n}-${o}`), m = v.get(n) || 0, y = t.append("rect").attr("x", m * (h + 4)).attr("y", (o - p) * (g + 4)).attr("width", h).attr("height", g).attr("rx", 2).attr("ry", 2).style("fill", f ? r(f.value) : a.emptyCellColor).style("stroke", a.cellStrokeColor).style("stroke-width", 1);
|
|
2424
|
-
d.showTooltip ?
|
|
2480
|
+
d.showTooltip ? $(y, e, f, i, a.cellStrokeColor) : l && y.style("cursor", "pointer"), l && u && f && y.on("click", function(e) {
|
|
2425
2481
|
u({
|
|
2426
2482
|
dataPoint: {
|
|
2427
2483
|
[s]: f.value,
|
|
@@ -2438,14 +2494,14 @@ function Ge(e, t, n, r, i, a) {
|
|
|
2438
2494
|
});
|
|
2439
2495
|
}
|
|
2440
2496
|
}
|
|
2441
|
-
function
|
|
2497
|
+
function qe(e) {
|
|
2442
2498
|
if (e > 9999) {
|
|
2443
2499
|
let t = Math.floor(e / 100);
|
|
2444
|
-
return `${
|
|
2500
|
+
return `${He[e % 100 - 1]} '${t.toString().slice(-2)}`;
|
|
2445
2501
|
}
|
|
2446
2502
|
return `'${e.toString().slice(-2)}`;
|
|
2447
2503
|
}
|
|
2448
|
-
function
|
|
2504
|
+
function Je(e, t, n, r) {
|
|
2449
2505
|
let { gridMapping: i } = e, { completeXRange: a, finalCellWidth: o } = n, s = /* @__PURE__ */ new Map();
|
|
2450
2506
|
a.forEach((e, t) => s.set(e, t));
|
|
2451
2507
|
let c = /* @__PURE__ */ new Map();
|
|
@@ -2460,29 +2516,29 @@ function qe(e, t, n, r) {
|
|
|
2460
2516
|
for (let [e, n] of c) {
|
|
2461
2517
|
if (n.length === 0) continue;
|
|
2462
2518
|
let i = Math.min(...n.map((e) => s.get(e) || 0)), a = Math.max(...n.map((e) => s.get(e) || 0)), c = (i + a) / 2;
|
|
2463
|
-
t.append("text").attr("x", c * (o + 4) + o / 2).attr("y", -25).attr("text-anchor", "middle").style("font-size", "12px").style("font-weight", "bold").style("fill", r.textColor).text(
|
|
2519
|
+
t.append("text").attr("x", c * (o + 4) + o / 2).attr("y", -25).attr("text-anchor", "middle").style("font-size", "12px").style("font-weight", "bold").style("fill", r.textColor).text(qe(e)), n.length > 1 && t.append("line").attr("x1", i * (o + 4)).attr("x2", a * (o + 4) + o).attr("y1", -20).attr("y2", -20).style("stroke", r.lineColor).style("stroke-width", 1).style("opacity", .3);
|
|
2464
2520
|
}
|
|
2465
2521
|
}
|
|
2466
|
-
function
|
|
2522
|
+
function Ye(e, t, n, r) {
|
|
2467
2523
|
let { gridMapping: i } = e, { completeXRange: a, finalCellWidth: o } = n, s = Math.max(1, Math.floor(a.length / 10));
|
|
2468
2524
|
for (let e = 0; e < a.length; e += s) t.append("text").attr("x", e * (o + 4) + o / 2).attr("y", -8).attr("text-anchor", "middle").style("font-size", "10px").style("fill", r.textColor).text(i.xFormat(a[e]));
|
|
2469
2525
|
}
|
|
2470
|
-
function
|
|
2526
|
+
function Xe(e, t, n, r) {
|
|
2471
2527
|
let { gridMapping: i } = e, { minY: a, maxY: o, finalCellHeight: s } = n;
|
|
2472
|
-
i.hasHierarchicalLabels && i.getYearFromX ?
|
|
2528
|
+
i.hasHierarchicalLabels && i.getYearFromX ? Je(e, t, n, r) : Ye(e, t, n, r);
|
|
2473
2529
|
for (let e = a; e <= o; e++) t.append("text").attr("x", -8).attr("y", (e - a) * (s + 4) + s / 2).attr("text-anchor", "end").attr("dy", ".35em").style("font-size", "10px").style("fill", r.textColor).text(i.yFormat(e));
|
|
2474
2530
|
}
|
|
2475
|
-
function
|
|
2531
|
+
function Ze(e) {
|
|
2476
2532
|
let { svgEl: t, gridData: n, dimensions: r, colorPalette: i, isDark: a, safeDisplayConfig: o } = e;
|
|
2477
2533
|
if (h(t).selectAll("*").remove(), n.length === 0) return;
|
|
2478
|
-
let s =
|
|
2479
|
-
return
|
|
2534
|
+
let s = We(e), c = h(t).attr("width", s.svgWidth).attr("height", r.height).append("g").attr("transform", `translate(${s.margin.left},${s.margin.top})`), l = n.map((e) => e.value), u = m().domain([p(l) || 0, f(l) || 1]).range(i?.gradient || H), d = Ue(a), g = Ge();
|
|
2535
|
+
return Ke(e, c, s, u, g, d), o.showLabels && Xe(e, c, s, d), () => {
|
|
2480
2536
|
g.remove();
|
|
2481
2537
|
};
|
|
2482
2538
|
}
|
|
2483
2539
|
//#endregion
|
|
2484
2540
|
//#region src/client/components/charts/ActivityGridChart.tsx
|
|
2485
|
-
var
|
|
2541
|
+
var Qe = /* @__PURE__ */ e({ default: () => $e }), $e = t.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: r, height: i = "100%", colorPalette: o, onDataPointClick: f, drillEnabled: p }) {
|
|
2486
2542
|
let { t: m } = D(), h = c(null), { containerRef: g, dimensions: _, dimensionsReady: v } = W(), [y, b] = l("light"), x = R();
|
|
2487
2543
|
a(() => (b(B()), V((e) => b(e))), []);
|
|
2488
2544
|
let S = s(() => ({
|
|
@@ -2498,10 +2554,10 @@ var Ze = /* @__PURE__ */ e({ default: () => Qe }), Qe = t.memo(function({ data:
|
|
|
2498
2554
|
if (!e || e.length === 0 || !h.current || !v || _.width === 0 || !t?.dateField || !t?.valueField) return;
|
|
2499
2555
|
let n = Q(t.dateField), i = Q(t.valueField);
|
|
2500
2556
|
if (!n || !i) return;
|
|
2501
|
-
let a =
|
|
2557
|
+
let a = ze(r, n), s = Re(a);
|
|
2502
2558
|
if (!s) return;
|
|
2503
|
-
let c =
|
|
2504
|
-
return
|
|
2559
|
+
let c = Ve(e, n, i, s, a);
|
|
2560
|
+
return Ze({
|
|
2505
2561
|
svgEl: h.current,
|
|
2506
2562
|
gridData: c,
|
|
2507
2563
|
gridMapping: s,
|
|
@@ -2603,6 +2659,6 @@ var Ze = /* @__PURE__ */ e({ default: () => Qe }), Qe = t.memo(function({ data:
|
|
|
2603
2659
|
});
|
|
2604
2660
|
});
|
|
2605
2661
|
//#endregion
|
|
2606
|
-
export { A, he as C,
|
|
2662
|
+
export { j as A, _ as B, he as C, I as D, F as E, D as F, ie as I, ee as L, _e as M, ge as N, P as O, O as P, w as R, R as S, M as T, Se as _, je as a, z as b, H as c, Te as d, De as f, ve as g, B as h, Me as i, L as j, A as k, U as l, ye as m, Oe as n, W as o, Ce as p, ke as r, we as s, Qe as t, Ee as u, be as v, N as w, V as x, xe as y, g as z };
|
|
2607
2663
|
|
|
2608
|
-
//# sourceMappingURL=chart-activity-grid-
|
|
2664
|
+
//# sourceMappingURL=chart-activity-grid-DO82rrbW.js.map
|