drizzle-cube 0.10.1 → 0.11.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-XMtoteb6.js +2 -0
- package/dist/adapters/ActivityGridChart.config-h1AXPvn0.cjs +1 -0
- package/dist/adapters/AreaChart.config-DYf9wufo.cjs +1 -0
- package/dist/adapters/AreaChart.config-We6b53aT.js +2 -0
- package/dist/adapters/BarChart.config-4SX44IYv.cjs +1 -0
- package/dist/adapters/BarChart.config-CwBnyptL.js +2 -0
- package/dist/adapters/BoxPlotChart.config-BzNe-FlW.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-mfAHqmcp.js +2 -0
- package/dist/adapters/BubbleChart.config-CBT5jMdc.cjs +1 -0
- package/dist/adapters/BubbleChart.config-DxG_Umal.js +2 -0
- package/dist/adapters/CandlestickChart.config-Cqw3XP1h.js +2 -0
- package/dist/adapters/CandlestickChart.config-DPSSlzUD.cjs +1 -0
- package/dist/adapters/DataTable.config-DS1bvaDu.js +2 -0
- package/dist/adapters/DataTable.config-D_NsMeyz.cjs +1 -0
- package/dist/adapters/DotStripChart.config-BApWn6QV.cjs +1 -0
- package/dist/adapters/DotStripChart.config-Bdk5-YfB.js +2 -0
- package/dist/adapters/FunnelChart.config-BT5up_Bg.cjs +1 -0
- package/dist/adapters/FunnelChart.config-ISZiz9fn.js +2 -0
- package/dist/adapters/GaugeChart.config-Biaq1cKc.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BjGfB84t.js +2 -0
- package/dist/adapters/HeatMapChart.config-Bmca8KiH.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-uWvR0B-N.js +2 -0
- package/dist/adapters/KpiDelta.config-CJeDdj_1.js +2 -0
- package/dist/adapters/KpiDelta.config-CKr9pAxL.cjs +1 -0
- package/dist/adapters/KpiNumber.config-6YLEF2fy.cjs +1 -0
- package/dist/adapters/KpiNumber.config-C00M46GA.js +2 -0
- package/dist/adapters/KpiText.config-C8Av_D2W.cjs +1 -0
- package/dist/adapters/KpiText.config-bKTHob0C.js +2 -0
- package/dist/adapters/LineChart.config-DH68HT_B.js +2 -0
- package/dist/adapters/LineChart.config-DPq7GvL9.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-CaaJPO3c.js +2 -0
- package/dist/adapters/MarkdownChart.config-ca_UyhWJ.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-C1Il0IqL.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-DMOnkmb6.js +2 -0
- package/dist/adapters/PieChart.config-Bg-8cxWK.js +2 -0
- package/dist/adapters/PieChart.config-joJcF--K.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-B2sltKsI.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-BlCedy1v.js +2 -0
- package/dist/adapters/RadarChart.config-DD1pX6FZ.js +2 -0
- package/dist/adapters/RadarChart.config-DVCCLSVw.cjs +1 -0
- package/dist/adapters/RadialBarChart.config--VIE2jMM.js +2 -0
- package/dist/adapters/RadialBarChart.config-BZwyWhTg.cjs +1 -0
- package/dist/adapters/RecordsTable.config-CTBQc-2r.js +2 -0
- package/dist/adapters/RecordsTable.config-DPdO0DL5.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-PGVxnkRL.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-mX5PMh82.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-Co-JMzBm.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-Cub3-ksy.cjs +1 -0
- package/dist/adapters/SankeyChart.config-BkIyUcAE.cjs +1 -0
- package/dist/adapters/SankeyChart.config-DGTnRmYg.js +2 -0
- package/dist/adapters/ScatterChart.config-CdZrBorg.js +2 -0
- package/dist/adapters/ScatterChart.config-CwN9niUL.cjs +1 -0
- package/dist/adapters/SunburstChart.config-D0ZkRSJv.cjs +1 -0
- package/dist/adapters/SunburstChart.config-RF3uu5Sa.js +2 -0
- package/dist/adapters/TreeMapChart.config-B2Yn_V7p.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-diJtcs4D.js +2 -0
- package/dist/adapters/WaterfallChart.config-B10PxftT.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-BImlkLmR.js +2 -0
- package/dist/adapters/chartConfigHelpers-BhME7ow_.cjs +1 -0
- package/dist/adapters/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
- package/dist/adapters/{compiler-Dw5tYox7.cjs → compiler-B-yljK02.cjs} +6 -6
- package/dist/adapters/{compiler-C8fOs43d.js → compiler-BhityGUO.js} +197 -186
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BP6GiYzO.cjs → core-CQOrzBNh.cjs} +1 -1
- package/dist/adapters/{core-z6vXJ8nF.js → core-xZE0miIu.js} +2 -2
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +5 -5
- package/dist/adapters/{handler-CI3Rt-Zt.js → handler-ByeQ0-1r.js} +237 -234
- package/dist/adapters/handler-DSNmfv1R.cjs +16 -0
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-app-html-CNp0VqS_.cjs +1 -0
- package/dist/adapters/mcp-app-html-CvWoYMO3.js +5 -0
- package/dist/adapters/mcp-app-html.cjs +1 -1
- package/dist/adapters/mcp-app-html.js +1 -1
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +3 -3
- package/dist/adapters/{mcp-transport-DpS_e0gL.js → mcp-transport-Cy6n4uj1.js} +1 -1
- package/dist/adapters/{mcp-transport-Bc7-KSG_.cjs → mcp-transport-DnLP5FPL.cjs} +1 -1
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-7064EJ1j.cjs → openai-BQl0yJCS.cjs} +1 -1
- package/dist/adapters/{openai-CnUBYFyY.js → openai-C4HrjyJj.js} +1 -1
- package/dist/adapters/{openai-DpGdZL3m.js → openai-D3Nt6Bj7.js} +1 -1
- package/dist/adapters/{openai-B0mByiYQ.cjs → openai-z1ai-G4Q.cjs} +1 -1
- package/dist/adapters/{utils-CN_bxSiq.js → utils-BaxFceDq.js} +6 -1
- package/dist/adapters/{utils-CvC1czqb.cjs → utils-a2p2B6x8.cjs} +2 -2
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/client/charts/chartConfigHelpers.d.ts +5 -0
- package/dist/cjs/client/components/AnalysisBuilder/types.d.ts +4 -0
- package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +6 -1
- package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
- package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
- package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
- package/dist/cjs/client/hooks/useAnalysisQuery.d.ts +6 -1
- package/dist/cjs/client/index.d.ts +2 -0
- package/dist/cjs/client/types.d.ts +5 -0
- package/dist/cjs/client/utils/gapFilling.d.ts +52 -0
- package/dist/cjs/client/utils/index.d.ts +1 -0
- package/dist/cjs/server/ai/query-schema.d.ts +1 -1
- package/dist/cjs/server/execution/result-post-processor.d.ts +4 -2
- package/dist/cjs/server/executor.d.ts +2 -0
- package/dist/cjs/server/gap-filler.d.ts +8 -43
- package/dist/cjs/server/types/core.d.ts +2 -0
- package/dist/cjs/server/types/cube.d.ts +12 -0
- package/dist/cjs/server/types/metadata.d.ts +5 -0
- package/dist/cjs/server/types/query.d.ts +2 -1
- package/dist/client/charts/chartConfigHelpers.d.ts +5 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-5ZSP--FQ.js → DashboardEditModal-DifODH4h.js} +2360 -2548
- package/dist/client/chunks/DashboardEditModal-DifODH4h.js.map +1 -0
- package/dist/client/chunks/{DotStripChart-DTukhwG-.js → DotStripChart-B9IVCFPO.js} +3 -3
- package/dist/client/chunks/{DotStripChart-DTukhwG-.js.map → DotStripChart-B9IVCFPO.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js → ProportionBarChart-DieF9AzP.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js.map → ProportionBarChart-DieF9AzP.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-BC5l67Dc.js → RecordsTable-Mo3ai5_M.js} +4 -4
- package/dist/client/chunks/{RecordsTable-BC5l67Dc.js.map → RecordsTable-Mo3ai5_M.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js → RetentionCombinedChart-Bie4ADyA.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js.map → RetentionCombinedChart-Bie4ADyA.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js → RetentionHeatmap-qstIAx5B.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js.map → RetentionHeatmap-qstIAx5B.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-Db4umQtd.js → analysis-builder-D78aDJoL.js} +41 -41
- package/dist/client/chunks/analysis-builder-D78aDJoL.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-BEvvX6ln.js → analysis-builder-shared-CsIs4-Xf.js} +538 -523
- package/dist/client/chunks/analysis-builder-shared-CsIs4-Xf.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-Bbc58UJD.js → chart-activity-grid-Ly_-2B-f.js} +7 -2
- package/dist/client/chunks/chart-activity-grid-Ly_-2B-f.js.map +1 -0
- package/dist/client/chunks/{chart-area-9uCXIvMN.js → chart-area-D3l-71Wy.js} +2 -2
- package/dist/client/chunks/{chart-area-9uCXIvMN.js.map → chart-area-D3l-71Wy.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-C5a1T9Ce.js → chart-bar-BaTyQOqs.js} +3 -3
- package/dist/client/chunks/{chart-bar-C5a1T9Ce.js.map → chart-bar-BaTyQOqs.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js → chart-box-plot-Cem6PHjz.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js.map → chart-box-plot-Cem6PHjz.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-dt5ESb7m.js → chart-bubble-DFlfqCDG.js} +2 -2
- package/dist/client/chunks/{chart-bubble-dt5ESb7m.js.map → chart-bubble-DFlfqCDG.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js → chart-candlestick-BkAFBXtZ.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js.map → chart-candlestick-BkAFBXtZ.js.map} +1 -1
- package/dist/client/chunks/{chart-config-area-DsrZCIwF.js → chart-config-area-BnsRQ-MY.js} +35 -14
- package/dist/client/chunks/chart-config-area-BnsRQ-MY.js.map +1 -0
- package/dist/client/chunks/{chart-config-bar-BixSs43E.js → chart-config-bar-G2HJJBVV.js} +8 -7
- package/dist/client/chunks/chart-config-bar-G2HJJBVV.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js → chart-config-kpi-delta-BIAq1Ftg.js} +2 -2
- package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js.map → chart-config-kpi-delta-BIAq1Ftg.js.map} +1 -1
- package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js → chart-config-kpi-number-Dgc4gIYu.js} +2 -2
- package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js.map → chart-config-kpi-number-Dgc4gIYu.js.map} +1 -1
- package/dist/client/chunks/{chart-config-line-CBF9Px9b.js → chart-config-line-DLkRs1Zr.js} +9 -8
- package/dist/client/chunks/chart-config-line-DLkRs1Zr.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js → chart-config-pie-XrHim0C8.js} +2 -2
- package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js.map → chart-config-pie-XrHim0C8.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js → chart-config-radar-xNS6Juqc.js} +2 -2
- package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js.map → chart-config-radar-xNS6Juqc.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js → chart-config-radial-bar-ChUChsEe.js} +2 -2
- package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js.map → chart-config-radial-bar-ChUChsEe.js.map} +1 -1
- package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js → chart-config-tree-map-CnrJ7OC1.js} +2 -2
- package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js.map → chart-config-tree-map-CnrJ7OC1.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-zSjYEy0r.js → chart-data-table-Cxd0cdAl.js} +36 -36
- package/dist/client/chunks/{chart-data-table-zSjYEy0r.js.map → chart-data-table-Cxd0cdAl.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-CuOSCsbt.js → chart-funnel-71Kn4eeF.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CuOSCsbt.js.map → chart-funnel-71Kn4eeF.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DxKeqCCD.js → chart-gauge-BddS_9oS.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DxKeqCCD.js.map → chart-gauge-BddS_9oS.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js → chart-heat-map-BQIsrn8m.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js.map → chart-heat-map-BQIsrn8m.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js → chart-kpi-delta-DndbqdZT.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js.map → chart-kpi-delta-DndbqdZT.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js → chart-kpi-number-DAbfoHMt.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js.map → chart-kpi-number-DAbfoHMt.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js → chart-kpi-text-D8oQgpxL.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js.map → chart-kpi-text-D8oQgpxL.js.map} +1 -1
- package/dist/client/chunks/{chart-line-CjW9Yo03.js → chart-line-BNqjUowg.js} +3 -3
- package/dist/client/chunks/{chart-line-CjW9Yo03.js.map → chart-line-BNqjUowg.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-Cgs62had.js → chart-markdown-DtgpU3xd.js} +2 -2
- package/dist/client/chunks/{chart-markdown-Cgs62had.js.map → chart-markdown-DtgpU3xd.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js → chart-measure-profile-D5nZMWlI.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js.map → chart-measure-profile-D5nZMWlI.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-BTb5nKd7.js → chart-pie-D8r9HCZ4.js} +3 -3
- package/dist/client/chunks/{chart-pie-BTb5nKd7.js.map → chart-pie-D8r9HCZ4.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-8384sPlX.js → chart-radar-R4PuCIWp.js} +3 -3
- package/dist/client/chunks/{chart-radar-8384sPlX.js.map → chart-radar-R4PuCIWp.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js → chart-radial-bar-hmrSFa6O.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js.map → chart-radial-bar-hmrSFa6O.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js → chart-sankey-CFXPybny.js} +2 -2
- package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js.map → chart-sankey-CFXPybny.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-Bdj95OeV.js → chart-scatter-CH82md0L.js} +3 -3
- package/dist/client/chunks/{chart-scatter-Bdj95OeV.js.map → chart-scatter-CH82md0L.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-CuG8520_.js → chart-sunburst-CTj95eEC.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-CuG8520_.js.map → chart-sunburst-CTj95eEC.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CtJADX87.js → chart-tree-map-CmysE4bF.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-CtJADX87.js.map → chart-tree-map-CmysE4bF.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-D430fO48.js → chart-waterfall-Bv1mPvlB.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-D430fO48.js.map → chart-waterfall-Bv1mPvlB.js.map} +1 -1
- package/dist/client/chunks/{charts-core-BSmlKmf0.js → charts-core-BdEQgbqN.js} +2 -2
- package/dist/client/chunks/{charts-core-BSmlKmf0.js.map → charts-core-BdEQgbqN.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DoLQqFXg.js +87 -0
- package/dist/client/chunks/{charts-loader-Bz9yHkW1.js.map → charts-loader-DoLQqFXg.js.map} +1 -1
- package/dist/client/chunks/gapFilling-DKBRHcQL.js +391 -0
- package/dist/client/chunks/gapFilling-DKBRHcQL.js.map +1 -0
- package/dist/client/chunks/{nl-NL-BrqrWoAj.js → nl-NL-DVZXf8U7.js} +6 -1
- package/dist/client/chunks/nl-NL-DVZXf8U7.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-D2NvjQny.js → schema-visualization-MlRrcJQH.js} +3 -3
- package/dist/client/chunks/{schema-visualization-D2NvjQny.js.map → schema-visualization-MlRrcJQH.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-DL_AnCWZ.js → useDirtyStateTracking-DUyYwuN_.js} +318 -293
- package/dist/client/chunks/useDirtyStateTracking-DUyYwuN_.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-CdPWtj7E.js → useExplainAI-BtoS3tb5.js} +4 -4
- package/dist/client/chunks/{useExplainAI-CdPWtj7E.js.map → useExplainAI-BtoS3tb5.js.map} +1 -1
- package/dist/client/chunks/utils-CToHkuhU.js.map +1 -1
- package/dist/client/chunks/{vendor-Bpaolt6h.js → vendor-BfBpNmMa.js} +2 -2
- package/dist/client/chunks/{vendor-Bpaolt6h.js.map → vendor-BfBpNmMa.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/types.d.ts +4 -0
- package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +6 -1
- package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
- package/dist/client/components.js +2 -2
- package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
- package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
- package/dist/client/hooks/useAnalysisQuery.d.ts +6 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +193 -192
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/types.d.ts +5 -0
- package/dist/client/utils/gapFilling.d.ts +52 -0
- package/dist/client/utils/index.d.ts +1 -0
- package/dist/client/utils.js +9 -8
- package/dist/client/utils.js.map +1 -1
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +101 -101
- package/dist/server/ai/query-schema.d.ts +1 -1
- package/dist/server/chartConfigHelpers-BhME7ow_.cjs +1 -0
- package/dist/server/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
- package/dist/server/execution/result-post-processor.d.ts +4 -2
- package/dist/server/executor.d.ts +2 -0
- package/dist/server/gap-filler.d.ts +8 -43
- package/dist/server/index.cjs +34 -34
- package/dist/server/index.js +2049 -2030
- package/dist/server/types/core.d.ts +2 -0
- package/dist/server/types/cube.d.ts +12 -0
- package/dist/server/types/metadata.d.ts +5 -0
- package/dist/server/types/query.d.ts +2 -1
- package/package.json +1 -1
- package/dist/adapters/ActivityGridChart.config-BpGv0FYq.js +0 -2
- package/dist/adapters/ActivityGridChart.config-DWs9dRl7.cjs +0 -1
- package/dist/adapters/AreaChart.config-Cn8nAQqj.cjs +0 -1
- package/dist/adapters/AreaChart.config-NDMkAi9w.js +0 -2
- package/dist/adapters/BarChart.config-CuGCupRX.cjs +0 -1
- package/dist/adapters/BarChart.config-D4Ct_ZuS.js +0 -2
- package/dist/adapters/BoxPlotChart.config-BEHZDgrz.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DnC3xk7q.cjs +0 -1
- package/dist/adapters/BubbleChart.config-D0ouKOKS.cjs +0 -1
- package/dist/adapters/BubbleChart.config-Du8aEfdQ.js +0 -2
- package/dist/adapters/CandlestickChart.config-B0B6dKYG.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-DBilZaFc.js +0 -2
- package/dist/adapters/DataTable.config-BXalzUPO.cjs +0 -1
- package/dist/adapters/DataTable.config-CF8BzQHu.js +0 -2
- package/dist/adapters/DotStripChart.config-0ggseDij.cjs +0 -1
- package/dist/adapters/DotStripChart.config-CfHh0XSW.js +0 -2
- package/dist/adapters/FunnelChart.config-AcSpen_Q.js +0 -2
- package/dist/adapters/FunnelChart.config-D6k89qDc.cjs +0 -1
- package/dist/adapters/GaugeChart.config-B5BcrEvW.cjs +0 -1
- package/dist/adapters/GaugeChart.config-BChbha74.js +0 -2
- package/dist/adapters/HeatMapChart.config-BgkP8kiW.js +0 -2
- package/dist/adapters/HeatMapChart.config-Crq7vBwj.cjs +0 -1
- package/dist/adapters/KpiDelta.config-Cqu1WOkV.js +0 -2
- package/dist/adapters/KpiDelta.config-edWLG1bM.cjs +0 -1
- package/dist/adapters/KpiNumber.config-BLkE67us.cjs +0 -1
- package/dist/adapters/KpiNumber.config-DNsH72Rs.js +0 -2
- package/dist/adapters/KpiText.config-CAnLZYht.cjs +0 -1
- package/dist/adapters/KpiText.config-CQGd10Hj.js +0 -2
- package/dist/adapters/LineChart.config-C7l_xff-.js +0 -2
- package/dist/adapters/LineChart.config-DOxwtnfG.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BV5j1oJl.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-CBkJAEpW.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-CyyFz-x_.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-VIvr7lq6.js +0 -2
- package/dist/adapters/PieChart.config-BP8OlSJ4.js +0 -2
- package/dist/adapters/PieChart.config-BaMxIlBa.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-CtZaP8Xn.js +0 -2
- package/dist/adapters/ProportionBarChart.config-DAyEQ8Pn.cjs +0 -1
- package/dist/adapters/RadarChart.config-CG07QZUT.cjs +0 -1
- package/dist/adapters/RadarChart.config-DJJuD-Tb.js +0 -2
- package/dist/adapters/RadialBarChart.config-BNgzWkot.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-DVM_jg9B.js +0 -2
- package/dist/adapters/RecordsTable.config-BEQmKQ-S.cjs +0 -1
- package/dist/adapters/RecordsTable.config-d4s8HV9m.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-DJ4N-ffd.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-DV1h3rW2.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CIJDenRg.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-P3VVn3QJ.js +0 -2
- package/dist/adapters/SankeyChart.config-CQ89DYf7.cjs +0 -1
- package/dist/adapters/SankeyChart.config-CfMmdmXJ.js +0 -2
- package/dist/adapters/ScatterChart.config-C4zrFpF-.cjs +0 -1
- package/dist/adapters/ScatterChart.config-DaJ3LVWH.js +0 -2
- package/dist/adapters/SunburstChart.config-1ZRhfGr0.cjs +0 -1
- package/dist/adapters/SunburstChart.config-DHgrSIkQ.js +0 -2
- package/dist/adapters/TreeMapChart.config-Cy3sAsJP.js +0 -2
- package/dist/adapters/TreeMapChart.config-D365WWEK.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-DYEf1vQT.js +0 -2
- package/dist/adapters/WaterfallChart.config-s8pICbm8.cjs +0 -1
- package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +0 -1
- package/dist/adapters/handler-B78akmC_.cjs +0 -16
- package/dist/adapters/mcp-app-html-C1fEW5oE.js +0 -5
- package/dist/adapters/mcp-app-html-CGk4ubE0.cjs +0 -1
- package/dist/client/chunks/DashboardEditModal-5ZSP--FQ.js.map +0 -1
- package/dist/client/chunks/analysis-builder-Db4umQtd.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-BEvvX6ln.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-Bbc58UJD.js.map +0 -1
- package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-BixSs43E.js.map +0 -1
- package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +0 -1
- package/dist/client/chunks/charts-loader-Bz9yHkW1.js +0 -87
- package/dist/client/chunks/nl-NL-BrqrWoAj.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-DL_AnCWZ.js.map +0 -1
- package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +0 -1
package/dist/adapters/utils.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-a2p2B6x8.cjs");exports.buildTransformedQuery=e.t,exports.calculateQueryComplexity=e.n,exports.formatCubeResponse=e.r,exports.formatErrorResponse=e.i,exports.formatMetaResponse=e.a,exports.formatSqlResponse=e.o,exports.formatSqlString=e.x,exports.generateRequestId=e.s,exports.getDatabaseType=e.c,exports.handleBatchRequest=e.l,exports.handleDiscover=e.p,exports.handleDryRun=e.u,exports.handleLoad=e.m,exports.handleSuggest=e.d,exports.handleValidate=e.f,exports.normalizeQueryFields=e.h;
|
package/dist/adapters/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m, x as h } from "./utils-
|
|
1
|
+
import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m, x as h } from "./utils-BaxFceDq.js";
|
|
2
2
|
export { p as buildTransformedQuery, c as calculateQueryComplexity, d as formatCubeResponse, a as formatErrorResponse, e as formatMetaResponse, l as formatSqlResponse, h as formatSqlString, f as generateRequestId, t as getDatabaseType, o as handleBatchRequest, u as handleDiscover, m as handleDryRun, s as handleLoad, n as handleSuggest, r as handleValidate, i as normalizeQueryFields };
|
|
@@ -21,6 +21,11 @@ export declare function requiresMeasure({ measureCount }: ChartAvailabilityConte
|
|
|
21
21
|
export declare const targetDisplayOption: DisplayOptionConfig;
|
|
22
22
|
/** Connect-nulls toggle for line/area charts. */
|
|
23
23
|
export declare const connectNullsDisplayOption: DisplayOptionConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Gap-filling control for time-series charts (issue #1368). `auto` follows the
|
|
26
|
+
* query, then the cube time dimension's `fillMissingDates`, then fills.
|
|
27
|
+
*/
|
|
28
|
+
export declare const fillMissingDatesDisplayOption: DisplayOptionConfig;
|
|
24
29
|
/** Left Y-axis numeric format control (dual-axis charts). */
|
|
25
30
|
export declare const leftYAxisFormatDisplayOption: DisplayOptionConfig;
|
|
26
31
|
/** Right Y-axis numeric format control (dual-axis charts). */
|
|
@@ -31,6 +31,8 @@ export interface BreakdownItem {
|
|
|
31
31
|
isTimeDimension: boolean;
|
|
32
32
|
/** Enable period comparison for time dimensions (compares current filter period vs prior period) */
|
|
33
33
|
enableComparison?: boolean;
|
|
34
|
+
/** Whether to fill missing buckets for this time dimension. */
|
|
35
|
+
fillMissingDates?: boolean;
|
|
34
36
|
}
|
|
35
37
|
/** Validation status for query building */
|
|
36
38
|
export type ValidationStatus = 'idle' | 'validating' | 'valid' | 'invalid';
|
|
@@ -54,6 +56,8 @@ export interface AnalysisBuilderState {
|
|
|
54
56
|
order?: Record<string, 'asc' | 'desc'>;
|
|
55
57
|
/** Row limit for the query (sent to server) */
|
|
56
58
|
limit?: number;
|
|
59
|
+
/** Value for filled time buckets; `null` leaves a gap. Unset fills with 0. */
|
|
60
|
+
fillMissingDatesValue?: number | null;
|
|
57
61
|
validationStatus: ValidationStatus;
|
|
58
62
|
validationError: string | null;
|
|
59
63
|
}
|
|
@@ -9,8 +9,13 @@ export declare function buildCubeQuery(metrics: MetricItem[], breakdowns: Breakd
|
|
|
9
9
|
* Record-grain charts list rows rather than aggregates — see
|
|
10
10
|
* `ChartTypeConfig.recordGrain`. Without this, editing a records-table
|
|
11
11
|
* portlet in the builder silently rebuilds its query as a grouped one.
|
|
12
|
+
*
|
|
13
|
+
* The server rejects period comparison and `fillMissingDates: true` on an
|
|
14
|
+
* ungrouped query, so it leaves both out and keeps the date filter. The
|
|
15
|
+
* breakdowns keep both settings for when the chart switches back. An
|
|
16
|
+
* explicit `fillMissingDates: false` stays, since the server accepts it.
|
|
12
17
|
*/
|
|
13
|
-
ungrouped?: boolean): CubeQuery;
|
|
18
|
+
ungrouped?: boolean, fillMissingDatesValue?: number | null): CubeQuery;
|
|
14
19
|
/**
|
|
15
20
|
* Check if a query has any content
|
|
16
21
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCubeLoadQuery, useFunnelQuery, useFlowQuery, useRetentionQuery } from '../../hooks/queries/index.js';
|
|
2
|
-
import { CubeQuery, MultiQueryConfig, ServerFunnelQuery } from '../../types.js';
|
|
2
|
+
import { ChartDisplayConfig, CubeQuery, MultiQueryConfig, ServerFunnelQuery } from '../../types.js';
|
|
3
3
|
import { FlowChartData, ServerFlowQuery } from '../../types/flow.js';
|
|
4
4
|
import { RetentionChartData, ServerRetentionQuery } from '../../types/retention.js';
|
|
5
5
|
interface RefreshOptions {
|
|
@@ -18,6 +18,8 @@ export interface UsePortletQueryResultsParams {
|
|
|
18
18
|
shouldSkipQuery: boolean;
|
|
19
19
|
eagerLoad: boolean;
|
|
20
20
|
isVisible: boolean;
|
|
21
|
+
/** Chart display config — its `fillMissingDates` drives client-side gap filling */
|
|
22
|
+
displayConfig?: ChartDisplayConfig;
|
|
21
23
|
}
|
|
22
24
|
export interface PortletQueryResults {
|
|
23
25
|
resultSet: ReturnType<typeof useCubeLoadQuery>['resultSet'];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CubeQuery, CubeResultSet } from '../../types.js';
|
|
2
2
|
import { QueryWarning } from '../../shared/types.js';
|
|
3
|
+
import { ChartGapFillOptions } from '../../utils/gapFilling.js';
|
|
3
4
|
/**
|
|
4
5
|
* Create a stable query key from a CubeQuery
|
|
5
6
|
* The key includes all query parameters to ensure proper caching
|
|
@@ -31,6 +32,12 @@ export interface UseCubeLoadQueryOptions {
|
|
|
31
32
|
* @default true
|
|
32
33
|
*/
|
|
33
34
|
keepPreviousData?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Fill missing time buckets for a chart (Cube.js-style, client-side). The
|
|
37
|
+
* server returns observed rows only; when set, the returned result set's rows
|
|
38
|
+
* are gap-filled per `ChartGapFillOptions`. Omit for raw rows.
|
|
39
|
+
*/
|
|
40
|
+
gapFill?: ChartGapFillOptions;
|
|
34
41
|
}
|
|
35
42
|
/** Options for the refetch function */
|
|
36
43
|
export interface RefetchOptions {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MultiQueryConfig, CubeResultSet } from '../../types.js';
|
|
2
|
+
import { ChartGapFillOptions } from '../../utils/gapFilling.js';
|
|
2
3
|
/**
|
|
3
4
|
* Create a stable query key for multi-query
|
|
4
5
|
*/
|
|
@@ -29,6 +30,12 @@ export interface UseMultiCubeLoadQueryOptions {
|
|
|
29
30
|
* @default true
|
|
30
31
|
*/
|
|
31
32
|
keepPreviousData?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Fill missing time buckets for a chart (Cube.js-style, client-side). When
|
|
35
|
+
* set, each query's rows are gap-filled per `ChartGapFillOptions` before
|
|
36
|
+
* merging. Omit for raw rows.
|
|
37
|
+
*/
|
|
38
|
+
gapFill?: ChartGapFillOptions;
|
|
32
39
|
}
|
|
33
40
|
export interface UseMultiCubeLoadQueryResult {
|
|
34
41
|
/** Merged data from all queries */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DebugDataEntry } from './queries/index.js';
|
|
2
|
-
import { CubeQuery, MultiQueryConfig, FunnelBindingKey, QueryMergeStrategy, AnalysisType } from '../types.js';
|
|
2
|
+
import { CubeQuery, MultiQueryConfig, FunnelBindingKey, QueryMergeStrategy, AnalysisType, ChartDisplayConfig } from '../types.js';
|
|
3
3
|
import { ExecutionStatus } from '../components/AnalysisBuilder/types.js';
|
|
4
4
|
import { ServerFunnelQuery } from '../types/funnel.js';
|
|
5
5
|
import { ServerFlowQuery, FlowChartData } from '../types/flow.js';
|
|
@@ -56,6 +56,11 @@ export interface UseAnalysisQueryOptions {
|
|
|
56
56
|
errors: string[];
|
|
57
57
|
warnings: string[];
|
|
58
58
|
} | null;
|
|
59
|
+
/**
|
|
60
|
+
* The chart's gap-filling setting (`displayConfig.fillMissingDates`). Results
|
|
61
|
+
* are gap-filled client-side per this setting, the query and the cube.
|
|
62
|
+
*/
|
|
63
|
+
fillMissingDates?: ChartDisplayConfig['fillMissingDates'];
|
|
59
64
|
}
|
|
60
65
|
export interface UseAnalysisQueryResult {
|
|
61
66
|
/** Query execution status */
|
|
@@ -71,6 +71,8 @@ export type { DashboardExportFile, DashboardImportResult, DashboardImportError,
|
|
|
71
71
|
export type { DashboardImportExportState, PendingDashboardImport, FailedDashboardImport, } from './hooks/dashboard/useDashboardImportExport.js';
|
|
72
72
|
export { compressAndEncode, decodeAndDecompress, generateShareUrl, parseShareUrl, isShareableSize } from './utils/shareUtils.js';
|
|
73
73
|
export { isMultiQueryData, mergeQueryResults, mergeResultsConcat, mergeResultsByKey, getCombinedFields, getQueryLabels, getQueryIndices, generateQueryLabel, validateMergeKey } from './utils/multiQueryUtils.js';
|
|
74
|
+
export { fillChartRows, withChartGapFilling } from './utils/gapFilling.js';
|
|
75
|
+
export type { ChartGapFillOptions } from './utils/gapFilling.js';
|
|
74
76
|
export { validateFunnelConfig, validateBindingKeyExists, validateStepQueries, validateBindingKeyForSteps, isMinimumFunnelConfigValid, getAvailableBindingKeyDimensions, getBindingKeyLabel, } from './utils/funnelValidation.js';
|
|
75
77
|
export { getBindingKeyField, getCubeNameFromQuery, formatDuration, transformServerFunnelResult, buildServerFunnelQuery, isFunnelData, buildFunnelConfigFromQueries, } from './utils/funnelExecution.js';
|
|
76
78
|
export { getThemeVariable, setThemeVariable, applyTheme, resetTheme, getTheme, setTheme, isDarkMode, watchThemeChanges, THEME_PRESETS } from './theme/index.js';
|
|
@@ -19,6 +19,8 @@ export interface CubeMetaDimension {
|
|
|
19
19
|
type: string;
|
|
20
20
|
/** Supported granularities for time dimensions (for time-based drill-down) */
|
|
21
21
|
granularities?: TimeGranularity[];
|
|
22
|
+
/** The cube time dimension's gap-filling default, when it declares one */
|
|
23
|
+
fillMissingDates?: boolean;
|
|
22
24
|
}
|
|
23
25
|
export interface CubeMetaField {
|
|
24
26
|
name: string;
|
|
@@ -146,6 +148,7 @@ export interface ChartDisplayConfig {
|
|
|
146
148
|
stacked?: boolean;
|
|
147
149
|
stackType?: 'none' | 'normal' | 'percent';
|
|
148
150
|
connectNulls?: boolean;
|
|
151
|
+
fillMissingDates?: boolean | 'auto';
|
|
149
152
|
showSummary?: boolean;
|
|
150
153
|
showPoints?: boolean;
|
|
151
154
|
showAllXLabels?: boolean;
|
|
@@ -400,6 +403,8 @@ export interface CubeQuery {
|
|
|
400
403
|
limit?: number;
|
|
401
404
|
offset?: number;
|
|
402
405
|
segments?: string[];
|
|
406
|
+
/** Value for filled time buckets; `null` leaves a gap. Unset fills with 0. */
|
|
407
|
+
fillMissingDatesValue?: number | null;
|
|
403
408
|
/** When true, returns raw row-level data without GROUP BY or aggregation */
|
|
404
409
|
ungrouped?: boolean;
|
|
405
410
|
/**
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CubeResultSet } from '../types.js';
|
|
2
|
+
/** A chart's gap-filling preference. */
|
|
3
|
+
export interface ChartGapFillOptions {
|
|
4
|
+
/** `true`/`false` force filling on/off; `'auto'` or unset defers to the query and cube. */
|
|
5
|
+
fillMissingDates?: boolean | 'auto';
|
|
6
|
+
}
|
|
7
|
+
/** A time dimension of the query a result came from. */
|
|
8
|
+
export interface ChartGapFillTimeDimension {
|
|
9
|
+
dimension: string;
|
|
10
|
+
granularity?: string;
|
|
11
|
+
dateRange?: string | string[];
|
|
12
|
+
fillMissingDates?: boolean;
|
|
13
|
+
compareDateRange?: readonly unknown[];
|
|
14
|
+
}
|
|
15
|
+
/** The parts of a query chart gap filling reads. */
|
|
16
|
+
export interface ChartGapFillQuery {
|
|
17
|
+
measures?: readonly string[];
|
|
18
|
+
dimensions?: readonly string[];
|
|
19
|
+
timeDimensions?: readonly ChartGapFillTimeDimension[];
|
|
20
|
+
filters?: readonly ChartGapFillFilter[];
|
|
21
|
+
fillMissingDatesValue?: number | null;
|
|
22
|
+
ungrouped?: boolean;
|
|
23
|
+
}
|
|
24
|
+
interface ChartGapFillFilter {
|
|
25
|
+
member?: string;
|
|
26
|
+
operator?: string;
|
|
27
|
+
values?: readonly unknown[];
|
|
28
|
+
dateRange?: string | string[];
|
|
29
|
+
and?: readonly ChartGapFillFilter[];
|
|
30
|
+
or?: readonly ChartGapFillFilter[];
|
|
31
|
+
}
|
|
32
|
+
interface TimeDimensionAnnotation {
|
|
33
|
+
fillMissingDates?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Fill missing time buckets in result rows for a chart.
|
|
37
|
+
*
|
|
38
|
+
* Comparison (`compareDateRange`) dimensions are left alone — the server fills
|
|
39
|
+
* each period already and the rows carry period metadata. Ungrouped queries are
|
|
40
|
+
* never filled.
|
|
41
|
+
*/
|
|
42
|
+
export declare function fillChartRows(rows: Record<string, unknown>[], query: ChartGapFillQuery, annotation: {
|
|
43
|
+
timeDimensions?: Record<string, TimeDimensionAnnotation>;
|
|
44
|
+
} | undefined, options?: ChartGapFillOptions): Record<string, unknown>[];
|
|
45
|
+
/**
|
|
46
|
+
* Wrap a result set so its rows are gap-filled for a chart. The underlying
|
|
47
|
+
* result set (and the query cache holding it) stays raw, so changing the chart
|
|
48
|
+
* setting never refetches. Returns the result set unchanged when it does not
|
|
49
|
+
* carry the query it came from.
|
|
50
|
+
*/
|
|
51
|
+
export declare function withChartGapFilling(resultSet: CubeResultSet, options?: ChartGapFillOptions): CubeResultSet;
|
|
52
|
+
export {};
|
|
@@ -6,6 +6,7 @@ export * from './periodUtils.js';
|
|
|
6
6
|
export * from './pivotUtils.js';
|
|
7
7
|
export * from './syntaxHighlighting.js';
|
|
8
8
|
export * from './comparisonUtils.js';
|
|
9
|
+
export * from './gapFilling.js';
|
|
9
10
|
export { captureThumbnail, isThumbnailCaptureAvailable } from './thumbnail.js';
|
|
10
11
|
export { exportPortletToXlsx, isExportAvailable } from './exportXlsx.js';
|
|
11
12
|
export { createDashboardExport, serializeDashboardExport, parseDashboardExport, readDashboardExportFile, downloadDashboardExport, dashboardExportFilename, normalizeDashboardConfigForExport, } from './dashboardExport.js';
|
|
@@ -76,7 +76,7 @@ export declare const QUERY_PARAMS_SCHEMA: {
|
|
|
76
76
|
};
|
|
77
77
|
readonly fillMissingDates: {
|
|
78
78
|
readonly type: "boolean";
|
|
79
|
-
readonly description: "Fill gaps in time series with fillMissingDatesValue
|
|
79
|
+
readonly description: "Fill gaps in time series with fillMissingDatesValue. Default: off (observed rows only) unless the cube time dimension enables it. Requires granularity + dateRange.";
|
|
80
80
|
};
|
|
81
81
|
readonly compareDateRange: {
|
|
82
82
|
readonly type: "array";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SemanticQuery } from '../types/index.js';
|
|
1
|
+
import { Cube, SemanticQuery } from '../types/index.js';
|
|
2
2
|
import { DatabaseAdapter } from '../adapters/base-adapter.js';
|
|
3
3
|
/**
|
|
4
4
|
* Normalise time-dimension values in result rows and apply gap filling.
|
|
@@ -6,5 +6,7 @@ import { DatabaseAdapter } from '../adapters/base-adapter.js';
|
|
|
6
6
|
* @param data Raw rows from the database executor
|
|
7
7
|
* @param query The semantic query (for timeDimensions + measures)
|
|
8
8
|
* @param databaseAdapter Adapter used to convert engine-specific date results
|
|
9
|
+
* @param cubes Cube definitions, for each time dimension's `fillMissingDates`
|
|
10
|
+
* @param fillByDefault Gap-fill time dimensions neither the query nor the cube configures
|
|
9
11
|
*/
|
|
10
|
-
export declare function postProcessResultRows(data: unknown, query: SemanticQuery, databaseAdapter: DatabaseAdapter): Record<string, unknown>[];
|
|
12
|
+
export declare function postProcessResultRows(data: unknown, query: SemanticQuery, databaseAdapter: DatabaseAdapter, cubes?: Map<string, Cube>, fillByDefault?: boolean): Record<string, unknown>[];
|
|
@@ -93,6 +93,8 @@ export declare class QueryExecutor {
|
|
|
93
93
|
* @param cacheKey - When provided (and a cache provider is configured), the
|
|
94
94
|
* fresh result is written to the cache. Pass `undefined` to skip caching
|
|
95
95
|
* (e.g. comparison period sub-queries cache at the comparison level).
|
|
96
|
+
* @param fillByDefault - Gap-fill time dimensions that neither the query nor
|
|
97
|
+
* the cube configures. Only comparison period sub-queries pass `true`.
|
|
96
98
|
*/
|
|
97
99
|
private executeStandardQuery;
|
|
98
100
|
/**
|
|
@@ -1,48 +1,13 @@
|
|
|
1
|
+
import { Cube } from './types/cube.js';
|
|
1
2
|
import { SemanticQuery } from './types/query.js';
|
|
2
|
-
|
|
3
|
+
export { generateTimeBuckets, fillTimeSeriesGaps, parseDateRange, MAX_GAP_FILL_BUCKETS, type GapFillerConfig } from '../shared/gap-filler.js';
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
-
* filling is skipped entirely (data is returned unmodified) to avoid both
|
|
6
|
-
* runaway memory use and silent truncation of real rows.
|
|
7
|
-
*/
|
|
8
|
-
export declare const MAX_GAP_FILL_BUCKETS = 10000;
|
|
9
|
-
export interface GapFillerConfig {
|
|
10
|
-
/** The time dimension key (e.g., 'Sales.date') */
|
|
11
|
-
timeDimensionKey: string;
|
|
12
|
-
/** Time granularity for bucket generation */
|
|
13
|
-
granularity: TimeGranularity;
|
|
14
|
-
/** Date range [start, end] */
|
|
15
|
-
dateRange: [Date, Date];
|
|
16
|
-
/** Value to fill for missing measures (default: 0) */
|
|
17
|
-
fillValue: number | null;
|
|
18
|
-
/** List of measure keys in the data */
|
|
19
|
-
measures: string[];
|
|
20
|
-
/** List of dimension keys in the data (excluding time dimensions) */
|
|
21
|
-
dimensions: string[];
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Generate all time buckets for a given date range and granularity
|
|
25
|
-
*/
|
|
26
|
-
export declare function generateTimeBuckets(startDate: Date, endDate: Date, granularity: TimeGranularity): Date[];
|
|
27
|
-
/**
|
|
28
|
-
* Fill time series gaps in query result data
|
|
5
|
+
* Apply server-side gap filling to query result rows.
|
|
29
6
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* @returns Data with gaps filled
|
|
33
|
-
*/
|
|
34
|
-
export declare function fillTimeSeriesGaps(data: Record<string, unknown>[], config: GapFillerConfig): Record<string, unknown>[];
|
|
35
|
-
/**
|
|
36
|
-
* Parse date range from query time dimension
|
|
37
|
-
* Handles both array format ['2024-01-01', '2024-01-31'] and string format
|
|
38
|
-
*/
|
|
39
|
-
export declare function parseDateRange(dateRange: string | string[] | undefined): [Date, Date] | null;
|
|
40
|
-
/**
|
|
41
|
-
* Apply gap filling to query result data based on query configuration
|
|
7
|
+
* Precedence per time dimension: the query's `fillMissingDates`, then the cube
|
|
8
|
+
* dimension's, then `fillByDefault`. Ungrouped queries are never filled.
|
|
42
9
|
*
|
|
43
|
-
* @param
|
|
44
|
-
*
|
|
45
|
-
* @param measures - List of measure names in the result
|
|
46
|
-
* @returns Data with gaps filled (if applicable)
|
|
10
|
+
* @param fillByDefault - Fill when neither the query nor the cube says. Only
|
|
11
|
+
* comparison-period sub-queries pass `true`, to keep periods aligned.
|
|
47
12
|
*/
|
|
48
|
-
export declare function
|
|
13
|
+
export declare function applyServerGapFilling(data: Record<string, unknown>[], query: SemanticQuery, cubes?: Map<string, Cube>, fillByDefault?: boolean): Record<string, unknown>[];
|
|
@@ -165,6 +165,8 @@ export interface TimeDimensionAnnotation {
|
|
|
165
165
|
shortTitle: string;
|
|
166
166
|
type: string;
|
|
167
167
|
granularity?: TimeGranularity;
|
|
168
|
+
/** The cube time dimension's `fillMissingDates`, when it declares one */
|
|
169
|
+
fillMissingDates?: boolean;
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
170
172
|
* Type enums and constants
|
|
@@ -191,6 +191,18 @@ export interface Dimension {
|
|
|
191
191
|
* @example ['year', 'quarter', 'month', 'day'] for a custom subset
|
|
192
192
|
*/
|
|
193
193
|
granularities?: TimeGranularity[];
|
|
194
|
+
/**
|
|
195
|
+
* Whether missing time buckets are filled for this time dimension when a
|
|
196
|
+
* query or chart does not say. Only applies when type is 'time'.
|
|
197
|
+
*
|
|
198
|
+
* - Server: a query that omits `fillMissingDates` is filled only when this is
|
|
199
|
+
* `true`. Unset means observed rows only (the Cube.js default).
|
|
200
|
+
* - Charts: fill gaps by default, like Cube.js. Set `false` where a missing
|
|
201
|
+
* bucket means "no data" rather than zero, e.g. daily snapshot tables.
|
|
202
|
+
*
|
|
203
|
+
* A query's or chart's own `fillMissingDates` always wins.
|
|
204
|
+
*/
|
|
205
|
+
fillMissingDates?: boolean;
|
|
194
206
|
}
|
|
195
207
|
/**
|
|
196
208
|
* Measure definition
|
|
@@ -77,6 +77,11 @@ export interface DimensionMetadata {
|
|
|
77
77
|
* Used for time-based drill-down (year -> quarter -> month -> week -> day)
|
|
78
78
|
*/
|
|
79
79
|
granularities?: TimeGranularity[];
|
|
80
|
+
/**
|
|
81
|
+
* The time dimension's `fillMissingDates` default, when the cube declares one.
|
|
82
|
+
* Charts use it to decide whether to fill missing buckets.
|
|
83
|
+
*/
|
|
84
|
+
fillMissingDates?: boolean;
|
|
80
85
|
}
|
|
81
86
|
/**
|
|
82
87
|
* Hierarchy metadata for structured drill-down paths
|
|
@@ -135,7 +135,8 @@ export interface TimeDimension {
|
|
|
135
135
|
/**
|
|
136
136
|
* Fill missing dates in time series with the fill value.
|
|
137
137
|
* Requires both granularity and dateRange to be set.
|
|
138
|
-
* Default:
|
|
138
|
+
* Default: the cube time dimension's `fillMissingDates`, else false — the
|
|
139
|
+
* server returns observed rows only and charts fill gaps client-side.
|
|
139
140
|
*/
|
|
140
141
|
fillMissingDates?: boolean;
|
|
141
142
|
/**
|
|
@@ -21,6 +21,11 @@ export declare function requiresMeasure({ measureCount }: ChartAvailabilityConte
|
|
|
21
21
|
export declare const targetDisplayOption: DisplayOptionConfig;
|
|
22
22
|
/** Connect-nulls toggle for line/area charts. */
|
|
23
23
|
export declare const connectNullsDisplayOption: DisplayOptionConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Gap-filling control for time-series charts (issue #1368). `auto` follows the
|
|
26
|
+
* query, then the cube time dimension's `fillMissingDates`, then fills.
|
|
27
|
+
*/
|
|
28
|
+
export declare const fillMissingDatesDisplayOption: DisplayOptionConfig;
|
|
24
29
|
/** Left Y-axis numeric format control (dual-axis charts). */
|
|
25
30
|
export declare const leftYAxisFormatDisplayOption: DisplayOptionConfig;
|
|
26
31
|
/** Right Y-axis numeric format control (dual-axis charts). */
|
package/dist/client/charts.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { dt as e, ft as t, gt as n, ht as r, lt as i, mt as a, pt as o, t as s, ut as c } from "./chunks/chart-data-table-
|
|
2
|
-
import { d as l, l as u, s as d, u as f } from "./chunks/chart-activity-grid-
|
|
3
|
-
import { t as p } from "./chunks/chart-funnel-
|
|
4
|
-
import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./chunks/charts-loader-
|
|
5
|
-
import { t as x } from "./chunks/chart-area-
|
|
1
|
+
import { dt as e, ft as t, gt as n, ht as r, lt as i, mt as a, pt as o, t as s, ut as c } from "./chunks/chart-data-table-Cxd0cdAl.js";
|
|
2
|
+
import { d as l, l as u, s as d, u as f } from "./chunks/chart-activity-grid-Ly_-2B-f.js";
|
|
3
|
+
import { t as p } from "./chunks/chart-funnel-71Kn4eeF.js";
|
|
4
|
+
import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./chunks/charts-loader-DoLQqFXg.js";
|
|
5
|
+
import { t as x } from "./chunks/chart-area-D3l-71Wy.js";
|
|
6
6
|
import { i as S } from "./chunks/utils-CToHkuhU.js";
|
|
7
|
-
import { t as C } from "./chunks/chart-bar-
|
|
8
|
-
import { t as w } from "./chunks/chart-line-
|
|
9
|
-
import { t as T } from "./chunks/chart-pie-
|
|
10
|
-
import { t as E } from "./chunks/chart-scatter-
|
|
11
|
-
import { t as D } from "./chunks/chart-radar-
|
|
12
|
-
import { t as O } from "./chunks/chart-radial-bar-
|
|
13
|
-
import { t as k } from "./chunks/chart-tree-map-
|
|
7
|
+
import { t as C } from "./chunks/chart-bar-BaTyQOqs.js";
|
|
8
|
+
import { t as w } from "./chunks/chart-line-BNqjUowg.js";
|
|
9
|
+
import { t as T } from "./chunks/chart-pie-D8r9HCZ4.js";
|
|
10
|
+
import { t as E } from "./chunks/chart-scatter-CH82md0L.js";
|
|
11
|
+
import { t as D } from "./chunks/chart-radar-R4PuCIWp.js";
|
|
12
|
+
import { t as O } from "./chunks/chart-radial-bar-hmrSFa6O.js";
|
|
13
|
+
import { t as k } from "./chunks/chart-tree-map-CmysE4bF.js";
|
|
14
14
|
export { d as CHART_COLORS, u as CHART_MARGINS, s as DataTable, p as FunnelChart, b as LazyChart, f as NEGATIVE_COLOR, l as POSITIVE_COLOR, x as RechartsAreaChart, C as RechartsBarChart, w as RechartsLineChart, T as RechartsPieChart, D as RechartsRadarChart, O as RechartsRadialBarChart, E as RechartsScatterChart, k as RechartsTreeMapChart, i as clearChartConfigCache, S as formatChartData, g as getAvailableChartTypes, c as getChartConfigAsync, e as getChartConfigSync, v as getUnavailableChartTypes, t as isChartConfigLoaded, h as isChartTypeAvailable, m as isValidChartType, o as loadAllChartConfigs, _ as preloadChart, a as preloadChartConfig, r as preloadChartConfigs, y as preloadCharts, n as useChartConfig };
|