drizzle-cube 0.6.7 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/ActivityGridChart.config-DaYILvFZ.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-_SyTBEyR.js +2 -0
- package/dist/adapters/AreaChart.config-BKh6fY1_.cjs +1 -0
- package/dist/adapters/AreaChart.config-CJoxLP3Y.js +2 -0
- package/dist/adapters/BarChart.config-Bm1bfRbI.cjs +1 -0
- package/dist/adapters/BarChart.config-CGu2Bqrx.js +2 -0
- package/dist/adapters/BoxPlotChart.config-B7M9CQaE.js +2 -0
- package/dist/adapters/BoxPlotChart.config-CXQel8Hk.cjs +1 -0
- package/dist/adapters/BubbleChart.config-BJ36IuVS.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CWoXeLdm.js +2 -0
- package/dist/adapters/CandlestickChart.config-CGMLZVIy.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-CzOcfF1e.js +2 -0
- package/dist/adapters/DataTable.config-CdAzueTs.cjs +1 -0
- package/dist/adapters/DataTable.config-D_KmPyxV.js +2 -0
- package/dist/adapters/FunnelChart.config-D1QAUuYl.cjs +1 -0
- package/dist/adapters/FunnelChart.config-DCRHQoFc.js +2 -0
- package/dist/adapters/GaugeChart.config-DAybRXP3.js +2 -0
- package/dist/adapters/GaugeChart.config-WUPfyLP-.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-CziltPnC.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-DHpXNONW.js +2 -0
- package/dist/adapters/KpiDelta.config-Bw5o0ocY.js +2 -0
- package/dist/adapters/KpiDelta.config-CdAmE1pw.cjs +1 -0
- package/dist/adapters/KpiNumber.config-CQ_wq2gx.js +2 -0
- package/dist/adapters/KpiNumber.config-wxN8x4DC.cjs +1 -0
- package/dist/adapters/KpiText.config-DIRIC97F.cjs +1 -0
- package/dist/adapters/KpiText.config-eODcP6Hn.js +2 -0
- package/dist/adapters/LineChart.config-32-9zA2V.js +2 -0
- package/dist/adapters/LineChart.config-BukeFp6z.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-BVsR5LDy.js +2 -0
- package/dist/adapters/MarkdownChart.config-j4veYjcZ.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-BRDYx1hw.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-CIosBxco.cjs +1 -0
- package/dist/adapters/PieChart.config-Bj8KiA0n.cjs +1 -0
- package/dist/adapters/PieChart.config-DgAj3y-I.js +2 -0
- package/dist/adapters/ProportionBarChart.config-BfFOppHY.js +2 -0
- package/dist/adapters/ProportionBarChart.config-c8GGE1aK.cjs +1 -0
- package/dist/adapters/RadarChart.config-D7iHY1v9.js +2 -0
- package/dist/adapters/RadarChart.config-ghlANG2-.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CsXIz-0v.js +2 -0
- package/dist/adapters/RadialBarChart.config-Dsvu2CPV.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-CdT1kXC7.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-sDjFKH9K.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-CvKBvQmu.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-DbM3ICwc.js +2 -0
- package/dist/adapters/SankeyChart.config-BNBcIHaD.js +2 -0
- package/dist/adapters/SankeyChart.config-DZscz3kh.cjs +1 -0
- package/dist/adapters/ScatterChart.config-BNYIddyM.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CEhtoLWc.js +2 -0
- package/dist/adapters/SunburstChart.config-ClseCzji.cjs +1 -0
- package/dist/adapters/SunburstChart.config-nnphNoVO.js +2 -0
- package/dist/adapters/TreeMapChart.config-C8-75muA.js +2 -0
- package/dist/adapters/TreeMapChart.config-DoXeUg9Y.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-BOF1qxY3.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-uW5YyOji.js +2 -0
- package/dist/adapters/{compiler-CGJQlQ6Q.cjs → compiler-DAyodAnH.cjs} +1 -1
- package/dist/adapters/{compiler-mz2Uudwd.js → compiler-Dq04wAjm.js} +1 -1
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-4WY4M7hp.js → core-BjxfG6Uf.js} +2 -2
- package/dist/adapters/{core-FpI2NfHt.cjs → core-zV2w0hO2.cjs} +1 -1
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +5 -5
- package/dist/adapters/{handler-g8k2CZG2.cjs → handler-C6Hj6_Yk.cjs} +3 -3
- package/dist/adapters/{handler-PjEeNmXY.js → handler-ox6qxLw5.js} +29 -29
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-C_t_p0wU.cjs +40 -0
- package/dist/adapters/mcp-transport-DFH9e6de.js +603 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-DnWF0wCU.cjs → openai-BffpdO4n.cjs} +1 -1
- package/dist/adapters/{openai-DHjN2OwG.js → openai-C9LNhHfK.js} +1 -1
- package/dist/adapters/{openai-CcY2fW3E.js → openai-CmyXJWti.js} +1 -1
- package/dist/adapters/{openai-7xjDI7R2.cjs → openai-DlT-0VRC.cjs} +1 -1
- package/dist/adapters/utils-C5FLHK04.cjs +128 -0
- package/dist/adapters/{utils-G52pPkce.js → utils-tjiwXFnP.js} +18 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/client/components/DashboardPortletCard.d.ts +1 -1
- package/dist/cjs/client/components/PortletGroupCard.d.ts +18 -0
- package/dist/cjs/client/components/RowManagedLayout.d.ts +15 -3
- package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +5 -1
- package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
- package/dist/cjs/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
- package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
- package/dist/cjs/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
- package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
- package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
- package/dist/cjs/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
- package/dist/cjs/client/components.d.ts +1 -1
- package/dist/cjs/client/hooks/dashboard/groupGeometry.d.ts +23 -0
- package/dist/cjs/client/hooks/dashboard/groupUtils.d.ts +57 -0
- package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +34 -3
- package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +11 -3
- package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
- package/dist/cjs/client/hooks/useDashboardHook.d.ts +14 -1
- package/dist/cjs/client/index.d.ts +1 -1
- package/dist/cjs/client/stores/dashboardStore.d.ts +11 -1
- package/dist/cjs/client/types.d.ts +30 -1
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-BEG0d7wI.js → DashboardEditModal-ByXLlXZD.js} +3289 -2370
- package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js.map +1 -0
- package/dist/client/chunks/{ProportionBarChart-xLX6XD4W.js → ProportionBarChart-lOeVz8ZC.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-xLX6XD4W.js.map → ProportionBarChart-lOeVz8ZC.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-DeFz5wJh.js → RetentionCombinedChart-Mcm7zHFx.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-DeFz5wJh.js.map → RetentionCombinedChart-Mcm7zHFx.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DkJOiNwz.js → RetentionHeatmap-4VJx5KDM.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-DkJOiNwz.js.map → RetentionHeatmap-4VJx5KDM.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-BWLL6ztg.js → analysis-builder-CWTJQQtL.js} +9 -9
- package/dist/client/chunks/{analysis-builder-BWLL6ztg.js.map → analysis-builder-CWTJQQtL.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-Ba3JsRNw.js → analysis-builder-shared-l-4WKVS1.js} +9 -9
- package/dist/client/chunks/{analysis-builder-shared-Ba3JsRNw.js.map → analysis-builder-shared-l-4WKVS1.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-CyVDJSAI.js → chart-activity-grid-DVOhLgxv.js} +20 -2
- package/dist/client/chunks/{chart-activity-grid-CyVDJSAI.js.map → chart-activity-grid-DVOhLgxv.js.map} +1 -1
- package/dist/client/chunks/{chart-area-b5UAS6NZ.js → chart-area-C-5ATxvi.js} +2 -2
- package/dist/client/chunks/{chart-area-b5UAS6NZ.js.map → chart-area-C-5ATxvi.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-aVNonvWw.js → chart-bar-CPiLaXHP.js} +3 -3
- package/dist/client/chunks/{chart-bar-aVNonvWw.js.map → chart-bar-CPiLaXHP.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-Bx6M97VL.js → chart-box-plot-Bae5O9xC.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-Bx6M97VL.js.map → chart-box-plot-Bae5O9xC.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-EWd4_ucG.js → chart-bubble-BFN5WIpf.js} +2 -2
- package/dist/client/chunks/{chart-bubble-EWd4_ucG.js.map → chart-bubble-BFN5WIpf.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-CG5EX67b.js → chart-candlestick-PBQKp_z7.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-CG5EX67b.js.map → chart-candlestick-PBQKp_z7.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-D6Cu86m_.js → chart-data-table-SNSqZj9B.js} +2 -2
- package/dist/client/chunks/{chart-data-table-D6Cu86m_.js.map → chart-data-table-SNSqZj9B.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-CLRYMbFj.js → chart-funnel-CkHSXp6h.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CLRYMbFj.js.map → chart-funnel-CkHSXp6h.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-BRqb8eNU.js → chart-gauge-DHIGq3TH.js} +3 -3
- package/dist/client/chunks/{chart-gauge-BRqb8eNU.js.map → chart-gauge-DHIGq3TH.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-BCfr3nYJ.js → chart-heat-map-Bb8L1XQr.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-BCfr3nYJ.js.map → chart-heat-map-Bb8L1XQr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-ISxzG6g_.js → chart-kpi-delta-BJCOXE-F.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-ISxzG6g_.js.map → chart-kpi-delta-BJCOXE-F.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-OmRCPf7D.js → chart-kpi-number-Cdqgv20g.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-OmRCPf7D.js.map → chart-kpi-number-Cdqgv20g.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-BUm932QA.js → chart-kpi-text-B10ZHCsI.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-BUm932QA.js.map → chart-kpi-text-B10ZHCsI.js.map} +1 -1
- package/dist/client/chunks/{chart-line-BM_DrpQW.js → chart-line-CzvVL3Be.js} +3 -3
- package/dist/client/chunks/{chart-line-BM_DrpQW.js.map → chart-line-CzvVL3Be.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-BNrsZpqM.js → chart-markdown-C0xxBW81.js} +2 -2
- package/dist/client/chunks/{chart-markdown-BNrsZpqM.js.map → chart-markdown-C0xxBW81.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-DttUWxIu.js → chart-measure-profile-BSUPFZCR.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-DttUWxIu.js.map → chart-measure-profile-BSUPFZCR.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-D7pxCMll.js → chart-pie-CwRfwWWZ.js} +3 -3
- package/dist/client/chunks/{chart-pie-D7pxCMll.js.map → chart-pie-CwRfwWWZ.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-sUnyHn3a.js → chart-radar-Dfql2E7i.js} +3 -3
- package/dist/client/chunks/{chart-radar-sUnyHn3a.js.map → chart-radar-Dfql2E7i.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-Df9zbhst.js → chart-radial-bar-oE9OZ1IX.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-Df9zbhst.js.map → chart-radial-bar-oE9OZ1IX.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-d_iS5fjB.js → chart-sankey-tK7Oz1bC.js} +2 -2
- package/dist/client/chunks/{chart-sankey-d_iS5fjB.js.map → chart-sankey-tK7Oz1bC.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-DD5v7r4K.js → chart-scatter-BtLfAsZb.js} +3 -3
- package/dist/client/chunks/{chart-scatter-DD5v7r4K.js.map → chart-scatter-BtLfAsZb.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-jL5f9PiB.js → chart-sunburst-B7ryWwQ1.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-jL5f9PiB.js.map → chart-sunburst-B7ryWwQ1.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-DK-pNvh4.js → chart-tree-map-DU5M3-qe.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-DK-pNvh4.js.map → chart-tree-map-DU5M3-qe.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-CBGewe2Z.js → chart-waterfall-CAwutpzd.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-CBGewe2Z.js.map → chart-waterfall-CAwutpzd.js.map} +1 -1
- package/dist/client/chunks/{charts-core-BHjcM-rm.js → charts-core-BxBB2zBE.js} +2 -2
- package/dist/client/chunks/{charts-core-BHjcM-rm.js.map → charts-core-BxBB2zBE.js.map} +1 -1
- package/dist/client/chunks/charts-loader-0avVzeDd.js +85 -0
- package/dist/client/chunks/{charts-loader-FXj1JiQZ.js.map → charts-loader-0avVzeDd.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-B1MNDJT-.js → nl-NL-BSMhprPr.js} +19 -1
- package/dist/client/chunks/{nl-NL-B1MNDJT-.js.map → nl-NL-BSMhprPr.js.map} +1 -1
- package/dist/client/chunks/{schema-visualization-BXdd320w.js → schema-visualization-CGbnbzj_.js} +3 -3
- package/dist/client/chunks/{schema-visualization-BXdd320w.js.map → schema-visualization-CGbnbzj_.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-CFgSTyny.js → useDirtyStateTracking-Dc-Si4db.js} +4 -4
- package/dist/client/chunks/{useDirtyStateTracking-CFgSTyny.js.map → useDirtyStateTracking-Dc-Si4db.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-CisDjZNp.js → useExplainAI-DJbc7Lu4.js} +4 -4
- package/dist/client/chunks/{useExplainAI-CisDjZNp.js.map → useExplainAI-DJbc7Lu4.js.map} +1 -1
- package/dist/client/chunks/{vendor-D5xADz_A.js → vendor-cTfe9Kho.js} +2 -2
- package/dist/client/chunks/{vendor-D5xADz_A.js.map → vendor-cTfe9Kho.js.map} +1 -1
- package/dist/client/components/DashboardPortletCard.d.ts +1 -1
- package/dist/client/components/PortletGroupCard.d.ts +18 -0
- package/dist/client/components/RowManagedLayout.d.ts +15 -3
- package/dist/client/components/dashboard/DashboardContext.d.ts +5 -1
- package/dist/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
- package/dist/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
- package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
- package/dist/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
- package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
- package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
- package/dist/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
- package/dist/client/components.d.ts +1 -1
- package/dist/client/components.js +1 -1
- package/dist/client/hooks/dashboard/groupGeometry.d.ts +23 -0
- package/dist/client/hooks/dashboard/groupUtils.d.ts +57 -0
- package/dist/client/hooks/dashboard/layoutUtils.d.ts +34 -3
- package/dist/client/hooks/dashboard/useDashboardController.d.ts +11 -3
- package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
- package/dist/client/hooks/useDashboardHook.d.ts +14 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +13 -13
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/stores/dashboardStore.d.ts +11 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/types.d.ts +30 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +3 -3
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.js +18 -0
- package/package.json +1 -1
- package/dist/adapters/ActivityGridChart.config-CA4DWvoH.js +0 -2
- package/dist/adapters/ActivityGridChart.config-DC2PXV56.cjs +0 -1
- package/dist/adapters/AreaChart.config-BY4hUUJY.js +0 -2
- package/dist/adapters/AreaChart.config-CPwW53vL.cjs +0 -1
- package/dist/adapters/BarChart.config-Be-PGzp5.js +0 -2
- package/dist/adapters/BarChart.config-CfdsJtHY.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-BYwJZm4S.js +0 -2
- package/dist/adapters/BoxPlotChart.config-BoZN94lR.cjs +0 -1
- package/dist/adapters/BubbleChart.config-DX9aSqMD.js +0 -2
- package/dist/adapters/BubbleChart.config-ijpB_fme.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-C3iEXUN1.js +0 -2
- package/dist/adapters/CandlestickChart.config-DIGeboSZ.cjs +0 -1
- package/dist/adapters/DataTable.config-BjFTY-Md.js +0 -2
- package/dist/adapters/DataTable.config-ClJZRtsp.cjs +0 -1
- package/dist/adapters/FunnelChart.config-DYDd9Y2z.cjs +0 -1
- package/dist/adapters/FunnelChart.config-cVxnY9hD.js +0 -2
- package/dist/adapters/GaugeChart.config-BxWKW2b5.js +0 -2
- package/dist/adapters/GaugeChart.config-DsmevM9y.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-BhO-Wj54.js +0 -2
- package/dist/adapters/HeatMapChart.config-HWcgNRuG.cjs +0 -1
- package/dist/adapters/KpiDelta.config-D3JOnd5n.js +0 -2
- package/dist/adapters/KpiDelta.config-DmLmTPSH.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CVghzBbF.cjs +0 -1
- package/dist/adapters/KpiNumber.config-aK-Ueuhk.js +0 -2
- package/dist/adapters/KpiText.config-DLl8NWit.js +0 -2
- package/dist/adapters/KpiText.config-DbWJ42vd.cjs +0 -1
- package/dist/adapters/LineChart.config-C3i3Tgro.cjs +0 -1
- package/dist/adapters/LineChart.config-El3XPCFT.js +0 -2
- package/dist/adapters/MarkdownChart.config-D39QzWHW.js +0 -2
- package/dist/adapters/MarkdownChart.config-e_9gUs93.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-BWQ82qcV.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-l9WITF80.cjs +0 -1
- package/dist/adapters/PieChart.config-CO3Gib0h.js +0 -2
- package/dist/adapters/PieChart.config-yqXTNkix.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-B7CtjFwg.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-tGjQou_c.js +0 -2
- package/dist/adapters/RadarChart.config-B2YZnD_e.js +0 -2
- package/dist/adapters/RadarChart.config-DwJmHK8y.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-B9XP-cQ1.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-y2riBDwJ.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-Fzxwm_WV.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-ohy-zQbu.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-0ykBWgUp.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-DF_4ARr0.cjs +0 -1
- package/dist/adapters/SankeyChart.config-ChdkKqAn.cjs +0 -1
- package/dist/adapters/SankeyChart.config-Cl8kxpKq.js +0 -2
- package/dist/adapters/ScatterChart.config-BIqh_Z8u.cjs +0 -1
- package/dist/adapters/ScatterChart.config-D4v0Z_w4.js +0 -2
- package/dist/adapters/SunburstChart.config-CGMw6hSr.cjs +0 -1
- package/dist/adapters/SunburstChart.config-CmK6DVYQ.js +0 -2
- package/dist/adapters/TreeMapChart.config-B6WC-TVm.js +0 -2
- package/dist/adapters/TreeMapChart.config-q-kBddZC.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-BiOMGjjF.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-C_K8zN09.js +0 -2
- package/dist/adapters/mcp-transport-OBc8jVG5.js +0 -603
- package/dist/adapters/mcp-transport-n1r1Kqzn.cjs +0 -40
- package/dist/adapters/utils-DJ0_72_G.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-BEG0d7wI.js.map +0 -1
- package/dist/client/chunks/charts-loader-FXj1JiQZ.js +0 -85
|
@@ -1439,11 +1439,29 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
|
|
|
1439
1439
|
"dashboard.deletePortletConfirm": "Are you sure you want to delete",
|
|
1440
1440
|
"dashboard.deletePortletSuffix": "? This action cannot be undone.",
|
|
1441
1441
|
"dashboard.thisPortlet": "this portlet",
|
|
1442
|
+
"dashboard.portlet.action.edit": "Edit portlet",
|
|
1443
|
+
"dashboard.portlet.action.duplicate": "Duplicate portlet",
|
|
1444
|
+
"dashboard.portlet.action.delete": "Delete portlet",
|
|
1445
|
+
"dashboard.portlet.action.refresh": "Refresh portlet",
|
|
1446
|
+
"dashboard.portlet.action.drag": "Drag portlet",
|
|
1447
|
+
"dashboard.portlet.action.filterConfig": "Configure dashboard filters",
|
|
1448
|
+
"dashboard.portlet.action.filterConfigActive": "Configure dashboard filters ({count} active)",
|
|
1449
|
+
"dashboard.group.rename": "Rename group",
|
|
1450
|
+
"dashboard.group.drag": "Drag group",
|
|
1451
|
+
"dashboard.group.titlePlaceholder": "Group title",
|
|
1452
|
+
"dashboard.group.ungroup": "Ungroup",
|
|
1453
|
+
"dashboard.group.delete": "Delete group",
|
|
1454
|
+
"dashboard.group.deleteTitle": "Delete Group",
|
|
1455
|
+
"dashboard.group.deleteConfirm": "Are you sure you want to delete this group and all {count} portlets inside it? This action cannot be undone.",
|
|
1442
1456
|
"dashboard.editModal.dashboardName": "Dashboard Name",
|
|
1443
1457
|
"dashboard.editModal.enterDashboardName": "Enter dashboard name...",
|
|
1444
1458
|
"dashboard.editModal.descriptionOptional": "Description (optional)",
|
|
1445
1459
|
"dashboard.editModal.enterDescription": "Enter description...",
|
|
1446
1460
|
"portlet.configRequired": "Configuration Required",
|
|
1461
|
+
"portlet.copyToClipboard": "Copy chart to clipboard",
|
|
1462
|
+
"portlet.copied": "Copied!",
|
|
1463
|
+
"portlet.downloadXlsx": "Download data as XLSX",
|
|
1464
|
+
"portlet.exporting": "Exporting...",
|
|
1447
1465
|
"portlet.configRequiredHint": "Please configure this chart",
|
|
1448
1466
|
"portlet.queryError": "Query Error",
|
|
1449
1467
|
"portlet.queryWithFilters": "Query (with filters applied)",
|
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-C5FLHK04.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.S,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 { S as e, a as t, c as n, d as r, f as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "./utils-
|
|
1
|
+
import { S as e, a as t, c as n, d as r, f as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "./utils-tjiwXFnP.js";
|
|
2
2
|
export { m as buildTransformedQuery, l as calculateQueryComplexity, f as formatCubeResponse, o as formatErrorResponse, t as formatMetaResponse, u as formatSqlResponse, e as formatSqlString, p as generateRequestId, n as getDatabaseType, s as handleBatchRequest, d as handleDiscover, h as handleDryRun, c as handleLoad, r as handleSuggest, i as handleValidate, a as normalizeQueryFields };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { DashboardPortletCardProps } from './dashboardPortletCard/propsEqual.js';
|
|
3
|
-
declare const DashboardPortletCard: React.MemoExoticComponent<({ portlet, editable, layoutMode, dashboardFilters, configEagerLoad, loadingComponent, colorPalette, containerProps, headerProps, setPortletRef, setPortletComponentRef, callbacks, icons }: DashboardPortletCardProps) => React.JSX.Element>;
|
|
3
|
+
declare const DashboardPortletCard: React.MemoExoticComponent<({ portlet, editable, layoutMode, dashboardFilters, configEagerLoad, loadingComponent, colorPalette, containerProps, headerProps, variant, setPortletRef, setPortletComponentRef, callbacks, icons }: DashboardPortletCardProps) => React.JSX.Element>;
|
|
4
4
|
export default DashboardPortletCard;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DragEvent, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { PortletConfig, PortletGroup } from '../types.js';
|
|
3
|
+
export interface PortletGroupCardProps {
|
|
4
|
+
group: PortletGroup;
|
|
5
|
+
portlets: Map<string, PortletConfig>;
|
|
6
|
+
canEdit: boolean;
|
|
7
|
+
/** Renders one child portlet with group chrome (no border, no header). */
|
|
8
|
+
renderChild: (portlet: PortletConfig, wrapperProps: HTMLAttributes<HTMLDivElement>) => ReactNode;
|
|
9
|
+
onRename: (groupId: string, title: string) => void;
|
|
10
|
+
onUngroup: (groupId: string) => void;
|
|
11
|
+
onDelete: (groupId: string) => void;
|
|
12
|
+
/** Fired when a child starts being dragged out of, or around within, the group. */
|
|
13
|
+
onChildDragStart: (groupId: string, portletId: string, event: DragEvent<HTMLDivElement>) => void;
|
|
14
|
+
onChildDragEnd: () => void;
|
|
15
|
+
/** Snap bands rendered inside each child; supplied by the row layout. */
|
|
16
|
+
renderSnapBands?: (portletId: string) => ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export default function PortletGroupCard({ group, portlets, canEdit, renderChild, onRename, onUngroup, onDelete, onChildDragStart, onChildDragEnd, renderSnapBands }: PortletGroupCardProps): import("react").JSX.Element;
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode, MouseEvent, DragEvent } from 'react';
|
|
2
|
-
import { DashboardGridSettings, PortletConfig, RowLayout } from '../types.js';
|
|
2
|
+
import { DashboardGridSettings, PortletConfig, PortletGroup, RowLayout } from '../types.js';
|
|
3
|
+
import { SnapEdge } from '../hooks/dashboard/groupUtils.js';
|
|
3
4
|
interface RowManagedLayoutProps {
|
|
4
5
|
rows: RowLayout[];
|
|
5
6
|
portlets: PortletConfig[];
|
|
7
|
+
groups?: PortletGroup[];
|
|
6
8
|
gridSettings: DashboardGridSettings;
|
|
7
9
|
gridWidth: number;
|
|
8
10
|
canEdit: boolean;
|
|
9
11
|
isDragging: boolean;
|
|
10
12
|
onRowResize: (rowIndex: number, event: MouseEvent<HTMLDivElement>) => void;
|
|
11
13
|
onColumnResize: (rowIndex: number, columnIndex: number, event: MouseEvent<HTMLDivElement>) => void;
|
|
12
|
-
onPortletDragStart: (rowIndex: number, columnIndex: number, portletId: string, event: DragEvent<HTMLDivElement
|
|
14
|
+
onPortletDragStart: (rowIndex: number, columnIndex: number, portletId: string, event: DragEvent<HTMLDivElement>,
|
|
15
|
+
/** Set when the whole column is a group being moved, not a single portlet. */
|
|
16
|
+
groupId?: string) => void;
|
|
13
17
|
onPortletDragEnd: () => void;
|
|
14
18
|
onRowDrop: (rowIndex: number, insertIndex: number | null) => void;
|
|
15
19
|
onNewRowDrop: (insertIndex: number) => void;
|
|
20
|
+
/** Snap the dragged portlet against `edge` of `targetPortletId`. */
|
|
21
|
+
onSnapDrop?: (targetPortletId: string, edge: SnapEdge) => void;
|
|
22
|
+
/** Id of the portlet currently being dragged, so it can ignore its own bands. */
|
|
23
|
+
draggingPortletId?: string | null;
|
|
24
|
+
/** Id of the group currently being dragged, so its members ignore their bands. */
|
|
25
|
+
draggingGroupId?: string | null;
|
|
16
26
|
renderPortlet: (portlet: PortletConfig, containerProps?: HTMLAttributes<HTMLDivElement>, headerProps?: HTMLAttributes<HTMLDivElement>) => ReactNode;
|
|
27
|
+
/** Renders a group column. Omitted in contexts that have no groups. */
|
|
28
|
+
renderGroup?: (group: PortletGroup, renderSnapBands: (portletId: string) => ReactNode) => ReactNode;
|
|
17
29
|
}
|
|
18
|
-
export default function RowManagedLayout({ rows, portlets, gridSettings, gridWidth, canEdit, isDragging, onRowResize, onColumnResize, onPortletDragStart, onPortletDragEnd, onRowDrop, onNewRowDrop, renderPortlet }: RowManagedLayoutProps): import("react").JSX.Element;
|
|
30
|
+
export default function RowManagedLayout({ rows, portlets, groups, gridSettings, gridWidth, canEdit, isDragging, onRowResize, onColumnResize, onPortletDragStart, onPortletDragEnd, onRowDrop, onNewRowDrop, onSnapDrop, draggingPortletId, draggingGroupId, renderPortlet, renderGroup }: RowManagedLayoutProps): import("react").JSX.Element;
|
|
19
31
|
export {};
|
|
@@ -3,7 +3,7 @@ import { LayoutItem, Layout } from 'react-grid-layout';
|
|
|
3
3
|
import { UseDashboardActions } from '../../hooks/useDashboardHook.js';
|
|
4
4
|
import { DashboardDisplayMode } from '../../hooks/useResponsiveDashboard.js';
|
|
5
5
|
import { ColorPalette } from '../../utils/colorPalettes.js';
|
|
6
|
-
import { DashboardConfig, PortletConfig, DashboardFilter, DashboardFilterMapping, CubeMeta, DashboardLayoutMode, DashboardGridSettings, RowLayout, FeaturesConfig } from '../../types.js';
|
|
6
|
+
import { DashboardConfig, PortletConfig, DashboardFilter, DashboardFilterMapping, CubeMeta, DashboardLayoutMode, DashboardGridSettings, RowLayout, PortletGroup, FeaturesConfig } from '../../types.js';
|
|
7
7
|
/**
|
|
8
8
|
* Props accepted by DashboardProvider (the public composable entry point).
|
|
9
9
|
* Mirrors the former DashboardGridProps plus `hideToolbar` and `children`.
|
|
@@ -55,6 +55,7 @@ export interface DashboardContextValue {
|
|
|
55
55
|
isFilterConfigModalOpen: boolean;
|
|
56
56
|
filterConfigPortlet: PortletConfig | null;
|
|
57
57
|
deleteConfirmPortletId: string | null;
|
|
58
|
+
deleteConfirmGroupId: string | null;
|
|
58
59
|
draftRows: RowLayout[] | null;
|
|
59
60
|
isDraggingPortlet: boolean;
|
|
60
61
|
isInitialized: boolean;
|
|
@@ -62,8 +63,11 @@ export interface DashboardContextValue {
|
|
|
62
63
|
canChangeLayoutMode: boolean;
|
|
63
64
|
selectedFilter: DashboardFilter | null;
|
|
64
65
|
resolvedRows: RowLayout[];
|
|
66
|
+
resolvedGroups: PortletGroup[];
|
|
65
67
|
layoutMode: DashboardLayoutMode;
|
|
66
68
|
allowedModes: DashboardLayoutMode[];
|
|
69
|
+
/** Modes the toggle should offer; a subset of allowedModes. */
|
|
70
|
+
selectableModes: DashboardLayoutMode[];
|
|
67
71
|
actions: UseDashboardActions;
|
|
68
72
|
displayMode: DashboardDisplayMode;
|
|
69
73
|
scaleFactor: number;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { CSSProperties } from 'react';
|
|
2
|
-
import { DashboardConfig, DashboardGridSettings
|
|
2
|
+
import { DashboardConfig, DashboardGridSettings } from '../../types.js';
|
|
3
3
|
export declare const DEFAULT_GRID_SETTINGS: DashboardGridSettings;
|
|
4
|
-
export
|
|
4
|
+
export { createRowId, equalizeRowColumns, equalizeColumns, adjustRowWidths, adjustInsertIndexForRemovedRow } from '../../hooks/dashboard/layoutUtils.js';
|
|
5
5
|
export declare const getGridSettings: (config: DashboardConfig) => DashboardGridSettings;
|
|
6
|
-
export declare const equalizeRowColumns: (portletIds: string[], gridSettings: DashboardGridSettings) => RowLayoutColumn[];
|
|
7
|
-
export declare const adjustRowWidths: (columns: RowLayoutColumn[], gridSettings: DashboardGridSettings) => RowLayoutColumn[];
|
|
8
6
|
/**
|
|
9
7
|
* Finds the nearest scrollable ancestor of an element.
|
|
10
8
|
* Used to detect scroll container for lazy loading IntersectionObserver.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { default as React, CSSProperties, ComponentType } from 'react';
|
|
2
|
+
import { PortletConfig } from '../../types.js';
|
|
3
|
+
export declare const ICON_STYLE: CSSProperties;
|
|
4
|
+
export interface CardIcons {
|
|
5
|
+
RefreshIcon: ComponentType<{
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
}>;
|
|
9
|
+
EditIcon: ComponentType<{
|
|
10
|
+
className?: string;
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
}>;
|
|
13
|
+
DeleteIcon: ComponentType<{
|
|
14
|
+
className?: string;
|
|
15
|
+
style?: CSSProperties;
|
|
16
|
+
}>;
|
|
17
|
+
CopyIcon: ComponentType<{
|
|
18
|
+
className?: string;
|
|
19
|
+
style?: CSSProperties;
|
|
20
|
+
}>;
|
|
21
|
+
FilterIcon: ComponentType<{
|
|
22
|
+
className?: string;
|
|
23
|
+
style?: CSSProperties;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export interface EditActionButtonsProps {
|
|
27
|
+
portlet: PortletConfig;
|
|
28
|
+
icons: CardIcons;
|
|
29
|
+
onOpenFilterConfig: () => void;
|
|
30
|
+
onDuplicate: () => void;
|
|
31
|
+
onEdit: () => void;
|
|
32
|
+
onDelete: () => void;
|
|
33
|
+
}
|
|
34
|
+
export default function EditActionButtons({ portlet, icons, onOpenFilterConfig, onDuplicate, onEdit, onDelete }: EditActionButtonsProps): React.JSX.Element;
|
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
import { default as React, CSSProperties
|
|
1
|
+
import { default as React, CSSProperties } from 'react';
|
|
2
2
|
import { PortletConfig } from '../../types.js';
|
|
3
3
|
import { PortletDebugDataEntry } from '../../stores/dashboardStore.js';
|
|
4
|
-
|
|
5
|
-
className?: string;
|
|
6
|
-
style?: CSSProperties;
|
|
7
|
-
}>;
|
|
8
|
-
interface CardIcons {
|
|
9
|
-
RefreshIcon: IconComponent;
|
|
10
|
-
EditIcon: IconComponent;
|
|
11
|
-
DeleteIcon: IconComponent;
|
|
12
|
-
CopyIcon: IconComponent;
|
|
13
|
-
FilterIcon: IconComponent;
|
|
14
|
-
}
|
|
4
|
+
import { CardIcons } from './EditActionButtons.js';
|
|
15
5
|
interface PortletCardHeaderProps {
|
|
16
6
|
portlet: PortletConfig;
|
|
17
7
|
className: string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { PortletConfig } from '../../types.js';
|
|
3
|
+
import { CardIcons } from './EditActionButtons.js';
|
|
4
|
+
interface PortletFloatingActionsProps {
|
|
5
|
+
portlet: PortletConfig;
|
|
6
|
+
icons: CardIcons;
|
|
7
|
+
/** Show the edit-only actions (drag, filter config, duplicate, edit, delete). */
|
|
8
|
+
showEditActions: boolean;
|
|
9
|
+
copyAvailable: boolean;
|
|
10
|
+
copySuccess: boolean;
|
|
11
|
+
xlsExportAvailable: boolean;
|
|
12
|
+
exportInProgress: boolean;
|
|
13
|
+
onRefresh: (options?: {
|
|
14
|
+
bustCache?: boolean;
|
|
15
|
+
}) => void;
|
|
16
|
+
onCopyToClipboard: (event: React.MouseEvent | React.TouchEvent) => void;
|
|
17
|
+
onExportXlsx: (event: React.MouseEvent | React.TouchEvent) => void;
|
|
18
|
+
onOpenFilterConfig: () => void;
|
|
19
|
+
onDuplicate: () => void;
|
|
20
|
+
onEdit: () => void;
|
|
21
|
+
onDelete: () => void;
|
|
22
|
+
}
|
|
23
|
+
export default function PortletFloatingActions({ portlet, icons, showEditActions, copyAvailable, copySuccess, xlsExportAvailable, exportInProgress, onRefresh, onCopyToClipboard, onExportXlsx, onOpenFilterConfig, onDuplicate, onEdit, onDelete }: PortletFloatingActionsProps): React.JSX.Element;
|
|
24
|
+
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CSSProperties } from 'react';
|
|
2
2
|
import { ChartType, ChartDisplayConfig } from '../../types.js';
|
|
3
|
+
/** How much chrome a card draws. Group children are frameless and headerless. */
|
|
4
|
+
export type PortletCardVariant = 'standalone' | 'groupChild';
|
|
3
5
|
export interface PortletDisplayModes {
|
|
4
6
|
isMarkdownAutoHeight: boolean;
|
|
5
7
|
isTransparentContent: boolean;
|
|
@@ -17,12 +19,14 @@ export declare function resolveDisplayModes(params: {
|
|
|
17
19
|
layoutMode: string;
|
|
18
20
|
isEditMode: boolean;
|
|
19
21
|
portletTitle?: string;
|
|
22
|
+
variant?: PortletCardVariant;
|
|
20
23
|
}): PortletDisplayModes;
|
|
21
24
|
export declare function buildContainerClassName(params: {
|
|
22
25
|
isTransparent: boolean;
|
|
23
26
|
isMarkdownAutoHeight: boolean;
|
|
24
27
|
isInSelectionMode: boolean;
|
|
25
28
|
extraClassName?: string;
|
|
29
|
+
variant?: PortletCardVariant;
|
|
26
30
|
}): string;
|
|
27
31
|
export declare function buildHeaderClassName(isEditMode: boolean, extraClassName?: string): string;
|
|
28
32
|
export declare function buildContainerStyle(params: {
|
|
@@ -30,4 +34,5 @@ export declare function buildContainerStyle(params: {
|
|
|
30
34
|
isInSelectionMode: boolean;
|
|
31
35
|
hasSelectedFilter: boolean;
|
|
32
36
|
containerStyle?: CSSProperties;
|
|
37
|
+
variant?: PortletCardVariant;
|
|
33
38
|
}): CSSProperties;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode, ComponentType, CSSProperties } from 'react';
|
|
2
2
|
import { ChartType, DashboardFilter, DashboardLayoutMode, PortletConfig } from '../../types.js';
|
|
3
|
+
import { PortletCardVariant } from './cardStyles.js';
|
|
3
4
|
import { ColorPalette } from '../../utils/colorPalettes.js';
|
|
4
5
|
export interface DashboardPortletCardProps {
|
|
5
6
|
portlet: PortletConfig;
|
|
6
7
|
editable: boolean;
|
|
7
8
|
layoutMode?: DashboardLayoutMode;
|
|
9
|
+
variant?: PortletCardVariant;
|
|
8
10
|
dashboardFilters?: DashboardFilter[];
|
|
9
11
|
configEagerLoad?: boolean;
|
|
10
12
|
loadingComponent?: ReactNode;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ChartAxisConfig, ChartDisplayConfig, ChartType, PortletConfig } from '../../types.js';
|
|
2
|
+
export interface MobilePortletDisplay {
|
|
3
|
+
query: string;
|
|
4
|
+
chartType: ChartType;
|
|
5
|
+
chartConfig?: ChartAxisConfig;
|
|
6
|
+
displayConfig?: ChartDisplayConfig;
|
|
7
|
+
isTransparent: boolean;
|
|
8
|
+
isAutoHeight: boolean;
|
|
9
|
+
shouldHideHeader: boolean;
|
|
10
|
+
/** Outer height in px; `isAutoHeight` callers ignore it. */
|
|
11
|
+
height: number;
|
|
12
|
+
/** Height available to the chart once header and padding are removed. */
|
|
13
|
+
contentHeight: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function resolveMobilePortletDisplay(params: {
|
|
16
|
+
portlet: PortletConfig;
|
|
17
|
+
/** False for a portlet inside a group card, which supplies its own frame. */
|
|
18
|
+
framed: boolean;
|
|
19
|
+
/** How many portlets share the group card, so its height can be shared out. */
|
|
20
|
+
memberCount: number;
|
|
21
|
+
}): MobilePortletDisplay;
|
|
@@ -14,4 +14,4 @@ export { default as DashboardEditModal } from './components/DashboardEditModal.j
|
|
|
14
14
|
export { default as Modal } from './components/Modal.js';
|
|
15
15
|
export { default as AnalysisDisplayConfigPanel } from './components/AnalysisBuilder/AnalysisDisplayConfigPanel.js';
|
|
16
16
|
export { createDashboardLayout, generateResponsiveLayouts, generatePortletId, findNextPosition, validateCubeQuery, createSamplePortlet } from './utils/index.js';
|
|
17
|
-
export type { PortletConfig, DashboardConfig } from './types.js';
|
|
17
|
+
export type { PortletConfig, DashboardConfig, PortletGroup, PortletGroupCell } from './types.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PortletGroup } from '../../types.js';
|
|
2
|
+
/** Edge of a card a drag can be dropped against. Lives here, not in
|
|
3
|
+
* `groupUtils`, so `layoutUtils` can name it without importing back. */
|
|
4
|
+
export type SnapEdge = 'top' | 'right' | 'bottom' | 'left';
|
|
5
|
+
/**
|
|
6
|
+
* Split `total` integer units across `weights` using largest-remainder, never
|
|
7
|
+
* handing out less than 1. When `total < weights.length` every entry still gets
|
|
8
|
+
* 1 and the result overflows - callers accept that rather than dropping a
|
|
9
|
+
* portlet to zero size.
|
|
10
|
+
*/
|
|
11
|
+
export declare function partitionUnits(total: number, weights: number[]): number[];
|
|
12
|
+
/**
|
|
13
|
+
* Grid-unit rectangle for every portlet in a group, given the rectangle the
|
|
14
|
+
* group itself occupies. Written back onto the portlets so grid mode, the
|
|
15
|
+
* mobile stack and thumbnails keep working without knowing groups exist.
|
|
16
|
+
*/
|
|
17
|
+
export declare function deriveGroupGeometry(group: PortletGroup, x: number, y: number, w: number, h: number): Array<{
|
|
18
|
+
portletId: string;
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
w: number;
|
|
22
|
+
h: number;
|
|
23
|
+
}>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DashboardGridSettings, PortletConfig, PortletGroup, RowLayout } from '../../types.js';
|
|
2
|
+
import { SnapEdge } from './groupGeometry.js';
|
|
3
|
+
export { deriveGroupGeometry, partitionUnits } from './groupGeometry.js';
|
|
4
|
+
export type { SnapEdge } from './groupGeometry.js';
|
|
5
|
+
export interface GroupLayoutState {
|
|
6
|
+
rows: RowLayout[];
|
|
7
|
+
groups: PortletGroup[];
|
|
8
|
+
}
|
|
9
|
+
/** Where a portlet currently lives within the rows/groups structure. */
|
|
10
|
+
export interface PortletLocation {
|
|
11
|
+
rowIndex: number;
|
|
12
|
+
colIndex: number;
|
|
13
|
+
/** Set when the portlet lives inside a group rather than owning its column. */
|
|
14
|
+
groupId?: string;
|
|
15
|
+
cellIndex?: number;
|
|
16
|
+
stackIndex?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare const createGroupId: () => string;
|
|
19
|
+
/** Portlet ids in visual order: cells along the main axis, stacks within each. */
|
|
20
|
+
export declare const groupPortletIds: (group: PortletGroup) => string[];
|
|
21
|
+
/** Locate a portlet across rows and groups. Returns null when it is unplaced. */
|
|
22
|
+
export declare function findPortletLocation(rows: RowLayout[], groups: PortletGroup[], portletId: string): PortletLocation | null;
|
|
23
|
+
/** Remove a portlet from whichever group holds it. Empty cells/groups are pruned. */
|
|
24
|
+
export declare function removeFromGroup(groups: PortletGroup[], portletId: string): {
|
|
25
|
+
groups: PortletGroup[];
|
|
26
|
+
groupId: string | null;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Reconcile groups against the portlets that exist and the rows that host them.
|
|
30
|
+
*
|
|
31
|
+
* Returns rows as well as groups, because the two are coupled: collapsing a
|
|
32
|
+
* one-portlet group has to rewrite its column back to a plain `portletId`, and
|
|
33
|
+
* pruning a group has to remove its column. **Always run this before
|
|
34
|
+
* `normalizeRows`** - otherwise `normalizeRows` sees a `groupId` column whose
|
|
35
|
+
* group has just been emptied and renders a blank card.
|
|
36
|
+
*/
|
|
37
|
+
export declare function normalizeGroups(groups: PortletGroup[] | undefined, portlets: PortletConfig[], rows: RowLayout[], gridSettings: DashboardGridSettings): GroupLayoutState;
|
|
38
|
+
/**
|
|
39
|
+
* Snap `movedPortletId` against an edge of `targetPortletId`.
|
|
40
|
+
*
|
|
41
|
+
* Left/right build a `row` group, top/bottom a `column` group. When the target
|
|
42
|
+
* is already grouped, a snap along the group's main axis adds a cell, and a
|
|
43
|
+
* perpendicular snap joins the target's stack (the depth-2 clamp).
|
|
44
|
+
*
|
|
45
|
+
* Returns null when the move is a no-op.
|
|
46
|
+
*/
|
|
47
|
+
export declare function snapIntoGroup(state: GroupLayoutState, movedPortletId: string, targetPortletId: string, edge: SnapEdge, gridSettings: DashboardGridSettings): GroupLayoutState | null;
|
|
48
|
+
/**
|
|
49
|
+
* Dissolve a group, replacing its column with one column per member portlet in
|
|
50
|
+
* visual order. The row is re-equalised afterwards.
|
|
51
|
+
*/
|
|
52
|
+
export declare function ungroup(state: GroupLayoutState, groupId: string, gridSettings: DashboardGridSettings): GroupLayoutState;
|
|
53
|
+
/** Remove a group and every portlet id it holds. Callers delete the portlets. */
|
|
54
|
+
export declare function deleteGroup(state: GroupLayoutState, groupId: string, gridSettings: DashboardGridSettings): {
|
|
55
|
+
state: GroupLayoutState;
|
|
56
|
+
removedPortletIds: string[];
|
|
57
|
+
};
|
|
@@ -1,7 +1,38 @@
|
|
|
1
|
-
import { DashboardGridSettings, PortletConfig, RowLayout, RowLayoutColumn } from '../../types.js';
|
|
1
|
+
import { DashboardGridSettings, PortletConfig, PortletGroup, RowLayout, RowLayoutColumn } from '../../types.js';
|
|
2
2
|
export declare const createRowId: () => string;
|
|
3
|
+
/**
|
|
4
|
+
* Correct a row insertion index for a source row that the move emptied.
|
|
5
|
+
*
|
|
6
|
+
* Splicing the source row out shifts every later index up by one, so an
|
|
7
|
+
* unadjusted index lands the row one position too low. `handleRowDrop` has
|
|
8
|
+
* always done this for column moves; new-row drops need it too, and hit it more
|
|
9
|
+
* often, because a group is usually the only column in its row.
|
|
10
|
+
*/
|
|
11
|
+
export declare const adjustInsertIndexForRemovedRow: (insertIndex: number, sourceRowIndex: number, sourceRowRemoved: boolean) => number;
|
|
12
|
+
/**
|
|
13
|
+
* Distribute `cols` evenly across the given columns, preserving each column's
|
|
14
|
+
* identity (`portletId` **or** `groupId`) so re-equalisation never drops a group
|
|
15
|
+
* reference. This is the function to use; `equalizeRowColumns` below is the
|
|
16
|
+
* legacy id-only wrapper.
|
|
17
|
+
*/
|
|
18
|
+
export declare const equalizeColumns: (columns: RowLayoutColumn[], gridSettings: DashboardGridSettings) => RowLayoutColumn[];
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Loses `groupId`. Use {@link equalizeColumns} with the real columns.
|
|
21
|
+
*/
|
|
3
22
|
export declare const equalizeRowColumns: (portletIds: string[], gridSettings: DashboardGridSettings) => RowLayoutColumn[];
|
|
4
23
|
export declare const adjustRowWidths: (columns: RowLayoutColumn[], gridSettings: DashboardGridSettings) => RowLayoutColumn[];
|
|
5
24
|
export declare const convertPortletsToRows: (portlets: PortletConfig[], gridSettings: DashboardGridSettings) => RowLayout[];
|
|
6
|
-
|
|
7
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Drop columns whose target no longer exists, clamp row height, re-balance
|
|
27
|
+
* widths. `groups` must be the already-normalized group list - a column
|
|
28
|
+
* referencing a group is kept only when that group survives, so run
|
|
29
|
+
* `normalizeGroups` first.
|
|
30
|
+
*/
|
|
31
|
+
export declare const normalizeRows: (rows: RowLayout[], portlets: PortletConfig[], gridSettings: DashboardGridSettings, groups?: PortletGroup[]) => RowLayout[];
|
|
32
|
+
/**
|
|
33
|
+
* Re-derive every portlet's x/y/w/h from the row layout. Group columns are
|
|
34
|
+
* subdivided via `deriveGroupGeometry`, so grouped children get real grid
|
|
35
|
+
* coordinates too - that is what keeps grid mode, the mobile stack and
|
|
36
|
+
* thumbnails working without any knowledge of groups.
|
|
37
|
+
*/
|
|
38
|
+
export declare const convertRowsToPortlets: (rows: RowLayout[], portlets: PortletConfig[], groups?: PortletGroup[]) => PortletConfig[];
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import { MutableRefObject, RefObject } from 'react';
|
|
2
2
|
import { StoreApi } from 'zustand';
|
|
3
|
-
import { DashboardConfig, DashboardFilterMapping, DashboardGridSettings, DashboardLayoutMode, PortletConfig, RowLayout, ThumbnailFeatureConfig } from '../../types.js';
|
|
3
|
+
import { DashboardConfig, DashboardFilterMapping, DashboardGridSettings, DashboardLayoutMode, PortletConfig, PortletGroup, RowLayout, ThumbnailFeatureConfig } from '../../types.js';
|
|
4
4
|
import { DashboardStore, DashboardStoreActions } from '../../stores/dashboardStore.js';
|
|
5
|
+
import { LayoutUpdate } from './useRowLayoutEngine.js';
|
|
6
|
+
import { SnapEdge } from './groupUtils.js';
|
|
5
7
|
interface UseDashboardControllerOptions {
|
|
6
8
|
allowedModes: DashboardLayoutMode[];
|
|
7
9
|
canChangeLayoutMode: boolean;
|
|
8
10
|
isResponsiveEditable: boolean;
|
|
9
11
|
layoutMode: DashboardLayoutMode;
|
|
10
12
|
resolvedRows: RowLayout[];
|
|
13
|
+
resolvedGroups: PortletGroup[];
|
|
11
14
|
gridSettings: DashboardGridSettings;
|
|
12
15
|
thumbnailConfig?: ThumbnailFeatureConfig;
|
|
13
16
|
dashboardRef?: RefObject<HTMLElement | null>;
|
|
14
17
|
storeApi: StoreApi<DashboardStore>;
|
|
15
|
-
storeActions: Pick<DashboardStoreActions, 'setEditMode' | 'exitFilterSelectionMode' | 'openPortletModal' | 'closePortletModal' | 'openTextModal' | 'closeTextModal' | 'openFilterConfigModal' | 'closeFilterConfigModal' | 'openDeleteConfirm' | 'closeDeleteConfirm' | 'setThumbnailDirty'>;
|
|
18
|
+
storeActions: Pick<DashboardStoreActions, 'setEditMode' | 'exitFilterSelectionMode' | 'openPortletModal' | 'closePortletModal' | 'openTextModal' | 'closeTextModal' | 'openFilterConfigModal' | 'closeFilterConfigModal' | 'openDeleteConfirm' | 'openDeleteGroupConfirm' | 'setDraftGroups' | 'closeDeleteConfirm' | 'setThumbnailDirty'>;
|
|
16
19
|
configRef: MutableRefObject<DashboardConfig>;
|
|
17
20
|
onConfigChangeRef: MutableRefObject<((config: DashboardConfig) => void) | undefined>;
|
|
18
21
|
onSaveRef: MutableRefObject<((config: DashboardConfig) => Promise<void> | void) | undefined>;
|
|
19
22
|
onSaveThumbnailRef: MutableRefObject<((thumbnailData: string) => Promise<string | void>) | undefined>;
|
|
23
|
+
updateLayout: (next: LayoutUpdate, save?: boolean) => Promise<void>;
|
|
20
24
|
updateRowLayout: (rows: RowLayout[], save?: boolean, portletsOverride?: PortletConfig[]) => Promise<void>;
|
|
21
25
|
portletComponentRefs?: MutableRefObject<Record<string, {
|
|
22
26
|
refresh: (options?: {
|
|
@@ -27,7 +31,7 @@ interface UseDashboardControllerOptions {
|
|
|
27
31
|
bustCache?: boolean;
|
|
28
32
|
}) => void;
|
|
29
33
|
}
|
|
30
|
-
export declare function useDashboardController({ allowedModes, canChangeLayoutMode, isResponsiveEditable, layoutMode, resolvedRows, gridSettings, thumbnailConfig, dashboardRef, storeApi, storeActions, configRef, onConfigChangeRef, onSaveRef, onSaveThumbnailRef, updateRowLayout, portletComponentRefs, onPortletRefresh, }: UseDashboardControllerOptions): {
|
|
34
|
+
export declare function useDashboardController({ allowedModes, canChangeLayoutMode, isResponsiveEditable, layoutMode, resolvedRows, resolvedGroups, gridSettings, thumbnailConfig, dashboardRef, storeApi, storeActions, configRef, onConfigChangeRef, onSaveRef, onSaveThumbnailRef, updateLayout, updateRowLayout, portletComponentRefs, onPortletRefresh, }: UseDashboardControllerOptions): {
|
|
31
35
|
enterEditMode: () => void;
|
|
32
36
|
exitEditMode: () => void;
|
|
33
37
|
toggleEditMode: () => void;
|
|
@@ -49,5 +53,9 @@ export declare function useDashboardController({ allowedModes, canChangeLayoutMo
|
|
|
49
53
|
selectAllForFilter: (filterId: string) => Promise<void>;
|
|
50
54
|
saveFilterConfig: (mapping: DashboardFilterMapping) => Promise<void>;
|
|
51
55
|
handlePaletteChange: (paletteName: string) => Promise<void>;
|
|
56
|
+
snapPortletIntoGroup: (movedPortletId: string, targetPortletId: string, edge: SnapEdge) => Promise<void>;
|
|
57
|
+
ungroupGroup: (groupId: string) => Promise<void>;
|
|
58
|
+
deleteGroup: (groupId: string) => void;
|
|
59
|
+
renameGroup: (groupId: string, title: string) => Promise<void>;
|
|
52
60
|
};
|
|
53
61
|
export {};
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import { MutableRefObject } from 'react';
|
|
2
|
-
import { DashboardConfig, DashboardGridSettings, DashboardLayoutMode, PortletConfig, RowLayout } from '../../types.js';
|
|
2
|
+
import { DashboardConfig, DashboardGridSettings, DashboardLayoutMode, PortletConfig, PortletGroup, RowLayout } from '../../types.js';
|
|
3
|
+
/** A single layout commit. Rows and groups are coupled, so they travel together. */
|
|
4
|
+
export interface LayoutUpdate {
|
|
5
|
+
rows: RowLayout[];
|
|
6
|
+
groups?: PortletGroup[];
|
|
7
|
+
portlets?: PortletConfig[];
|
|
8
|
+
}
|
|
3
9
|
interface UseRowLayoutEngineOptions {
|
|
4
10
|
layoutMode: DashboardLayoutMode;
|
|
5
11
|
draftRows: RowLayout[] | null;
|
|
12
|
+
draftGroups: PortletGroup[] | null;
|
|
6
13
|
config: DashboardConfig;
|
|
7
14
|
gridSettings: DashboardGridSettings;
|
|
8
15
|
configRef: MutableRefObject<DashboardConfig>;
|
|
9
16
|
onConfigChangeRef: MutableRefObject<((config: DashboardConfig) => void) | undefined>;
|
|
10
17
|
onSaveRef: MutableRefObject<((config: DashboardConfig) => Promise<void> | void) | undefined>;
|
|
11
18
|
setDraftRows: (rows: RowLayout[] | null) => void;
|
|
19
|
+
setDraftGroups: (groups: PortletGroup[] | null) => void;
|
|
12
20
|
setThumbnailDirty: (dirty: boolean) => void;
|
|
13
21
|
}
|
|
14
|
-
export declare function useRowLayoutEngine({ layoutMode, draftRows, config, gridSettings, configRef, onConfigChangeRef, onSaveRef, setDraftRows, setThumbnailDirty, }: UseRowLayoutEngineOptions): {
|
|
22
|
+
export declare function useRowLayoutEngine({ layoutMode, draftRows, draftGroups, config, gridSettings, configRef, onConfigChangeRef, onSaveRef, setDraftRows, setDraftGroups, setThumbnailDirty, }: UseRowLayoutEngineOptions): {
|
|
15
23
|
resolvedRows: RowLayout[];
|
|
24
|
+
resolvedGroups: PortletGroup[];
|
|
25
|
+
updateLayout: (next: LayoutUpdate, save?: boolean) => Promise<void>;
|
|
16
26
|
updateRowLayout: (rows: RowLayout[], save?: boolean, portletsOverride?: PortletConfig[]) => Promise<void>;
|
|
17
27
|
};
|
|
18
28
|
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { PortletDebugDataEntry } from '../stores/dashboardStore.js';
|
|
3
3
|
import { LayoutItem } from 'react-grid-layout';
|
|
4
|
-
import { DashboardConfig, PortletConfig, RowLayout, DashboardFilter, DashboardFilterMapping, DashboardGridSettings, DashboardLayoutMode } from '../types.js';
|
|
4
|
+
import { DashboardConfig, PortletConfig, RowLayout, PortletGroup, DashboardFilter, DashboardFilterMapping, DashboardGridSettings, DashboardLayoutMode } from '../types.js';
|
|
5
|
+
import { SnapEdge } from './dashboard/groupUtils.js';
|
|
6
|
+
import { LayoutUpdate } from './dashboard/useRowLayoutEngine.js';
|
|
5
7
|
export interface UseDashboardOptions {
|
|
6
8
|
/** Dashboard configuration */
|
|
7
9
|
config: DashboardConfig;
|
|
@@ -55,6 +57,7 @@ export interface UseDashboardResult {
|
|
|
55
57
|
filterConfigPortlet: PortletConfig | null;
|
|
56
58
|
/** Portlet ID pending delete confirmation */
|
|
57
59
|
deleteConfirmPortletId: string | null;
|
|
60
|
+
deleteConfirmGroupId: string | null;
|
|
58
61
|
/** Draft rows during drag operations */
|
|
59
62
|
draftRows: RowLayout[] | null;
|
|
60
63
|
/** Whether a portlet is being dragged */
|
|
@@ -71,6 +74,9 @@ export interface UseDashboardResult {
|
|
|
71
74
|
selectedFilter: DashboardFilter | null;
|
|
72
75
|
/** Resolved rows for row-based layout */
|
|
73
76
|
resolvedRows: RowLayout[];
|
|
77
|
+
resolvedGroups: PortletGroup[];
|
|
78
|
+
/** Modes the toggle should offer; a subset of allowedModes. */
|
|
79
|
+
selectableModes: DashboardLayoutMode[];
|
|
74
80
|
/** Current layout mode */
|
|
75
81
|
layoutMode: DashboardLayoutMode;
|
|
76
82
|
/** Allowed layout modes */
|
|
@@ -92,6 +98,7 @@ export interface UseDashboardActions {
|
|
|
92
98
|
openFilterConfig: (portlet: PortletConfig) => void;
|
|
93
99
|
closeFilterConfig: () => void;
|
|
94
100
|
setDraftRows: (rows: RowLayout[] | null) => void;
|
|
101
|
+
setDraftGroups: (groups: PortletGroup[] | null) => void;
|
|
95
102
|
setIsDraggingPortlet: (isDragging: boolean) => void;
|
|
96
103
|
setLastKnownLayout: (layout: LayoutItem[]) => void;
|
|
97
104
|
setIsInitialized: (initialized: boolean) => void;
|
|
@@ -102,6 +109,7 @@ export interface UseDashboardActions {
|
|
|
102
109
|
} | null) => void;
|
|
103
110
|
clearDragState: () => void;
|
|
104
111
|
hasLayoutActuallyChanged: (newLayout: LayoutItem[]) => boolean;
|
|
112
|
+
updateLayout: (next: LayoutUpdate, save?: boolean) => Promise<void>;
|
|
105
113
|
updateRowLayout: (rows: RowLayout[], save?: boolean, portletsOverride?: PortletConfig[]) => Promise<void>;
|
|
106
114
|
handleLayoutModeChange: (mode: DashboardLayoutMode) => Promise<void>;
|
|
107
115
|
savePortlet: (portletData: PortletConfig | Omit<PortletConfig, 'id' | 'x' | 'y'>) => Promise<string | null>;
|
|
@@ -114,6 +122,11 @@ export interface UseDashboardActions {
|
|
|
114
122
|
selectAllForFilter: (filterId: string) => Promise<void>;
|
|
115
123
|
saveFilterConfig: (mapping: DashboardFilterMapping) => Promise<void>;
|
|
116
124
|
handlePaletteChange: (paletteName: string) => Promise<void>;
|
|
125
|
+
snapPortletIntoGroup: (movedPortletId: string, targetPortletId: string, edge: SnapEdge) => Promise<void>;
|
|
126
|
+
ungroupGroup: (groupId: string) => Promise<void>;
|
|
127
|
+
deleteGroup: (groupId: string) => void;
|
|
128
|
+
renameGroup: (groupId: string, title: string) => Promise<void>;
|
|
129
|
+
openDeleteGroupConfirm: (groupId: string) => void;
|
|
117
130
|
openDeleteConfirm: (portletId: string) => void;
|
|
118
131
|
closeDeleteConfirm: () => void;
|
|
119
132
|
confirmDelete: () => Promise<void>;
|
|
@@ -55,7 +55,7 @@ export { useTheme } from './hooks/useTheme.js';
|
|
|
55
55
|
export { useScrollDetection } from './hooks/useScrollDetection.js';
|
|
56
56
|
export { useElementVisibility } from './hooks/useElementVisibility.js';
|
|
57
57
|
export { useDrillInteraction } from './hooks/useDrillInteraction.js';
|
|
58
|
-
export type { PortletConfig, ChartType, BuiltInChartType, ChartAxisConfig, ChartDisplayConfig, ChartProps, ColorPalette, CubeQuery, CubeQueryOptions, CubeApiOptions, DashboardConfig, FeaturesConfig, XlsExportFeatureConfig, ThumbnailFeatureConfig, MultiQueryConfig, QueryMergeStrategy, FunnelBindingKey, FunnelBindingKeyMapping, FunnelStep, FunnelConfig, FunnelStepResult, FunnelExecutionResult, FunnelChartData, FunnelValidationError, FunnelValidationResult, UseFunnelQueryOptions, UseFunnelQueryResult, ServerFlowQuery, FlowQueryConfig, FlowChartData, FlowSliceState, SankeyNode, SankeyLink, FlowStartingStep, FlowResultRow, } from './types.js';
|
|
58
|
+
export type { PortletConfig, ChartType, BuiltInChartType, ChartAxisConfig, ChartDisplayConfig, ChartProps, ColorPalette, CubeQuery, CubeQueryOptions, CubeApiOptions, DashboardConfig, PortletGroup, PortletGroupCell, FeaturesConfig, XlsExportFeatureConfig, ThumbnailFeatureConfig, MultiQueryConfig, QueryMergeStrategy, FunnelBindingKey, FunnelBindingKeyMapping, FunnelStep, FunnelConfig, FunnelStepResult, FunnelExecutionResult, FunnelChartData, FunnelValidationError, FunnelValidationResult, UseFunnelQueryOptions, UseFunnelQueryResult, ServerFlowQuery, FlowQueryConfig, FlowChartData, FlowSliceState, SankeyNode, SankeyLink, FlowStartingStep, FlowResultRow, } from './types.js';
|
|
59
59
|
export { isQueryConfig, isFunnelConfig, isFlowConfig, isRetentionConfig, isMultiQuery, isSingleQuery, isValidAnalysisConfig, createDefaultQueryConfig, createDefaultFunnelConfig, createDefaultFlowConfig, createDefaultRetentionConfig, createDefaultConfig, isValidAnalysisWorkspace, createDefaultWorkspace } from './types/analysisConfig.js';
|
|
60
60
|
export type { AnalysisConfig, QueryAnalysisConfig, FunnelAnalysisConfig, FlowAnalysisConfig, RetentionAnalysisConfig, AnalysisWorkspace } from './types/analysisConfig.js';
|
|
61
61
|
export { isMultiQueryConfig, isServerFunnelQuery, isServerFlowQuery, isSankeyData } from './types.js';
|