@panoboard/core 1.2.0 → 1.8.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/annotations/executor.d.ts +32 -0
- package/dist/annotations/executor.d.ts.map +1 -0
- package/dist/annotations/executor.js +74 -0
- package/dist/annotations/executor.js.map +1 -0
- package/dist/annotations/index.d.ts +2 -0
- package/dist/annotations/index.d.ts.map +1 -0
- package/dist/annotations/index.js +15 -0
- package/dist/annotations/index.js.map +1 -0
- package/dist/cache/keys.d.ts.map +1 -1
- package/dist/cache/keys.js +4 -4
- package/dist/cache/keys.js.map +1 -1
- package/dist/components/ConfigErrorBanner.d.ts +7 -0
- package/dist/components/ConfigErrorBanner.d.ts.map +1 -0
- package/dist/components/ConfigErrorBanner.js +43 -0
- package/dist/components/ConfigErrorBanner.js.map +1 -0
- package/dist/components/CrosshairContext.d.ts +13 -0
- package/dist/components/CrosshairContext.d.ts.map +1 -0
- package/dist/components/CrosshairContext.js +37 -0
- package/dist/components/CrosshairContext.js.map +1 -0
- package/dist/components/DashboardCard.d.ts +2 -1
- package/dist/components/DashboardCard.d.ts.map +1 -1
- package/dist/components/DashboardCard.js +11 -4
- package/dist/components/DashboardCard.js.map +1 -1
- package/dist/components/DashboardDescription.d.ts +19 -0
- package/dist/components/DashboardDescription.d.ts.map +1 -0
- package/dist/components/DashboardDescription.js +61 -0
- package/dist/components/DashboardDescription.js.map +1 -0
- package/dist/components/DashboardLinks.d.ts +8 -0
- package/dist/components/DashboardLinks.d.ts.map +1 -0
- package/dist/components/DashboardLinks.js +53 -0
- package/dist/components/DashboardLinks.js.map +1 -0
- package/dist/components/DashboardShell.d.ts +5 -1
- package/dist/components/DashboardShell.d.ts.map +1 -1
- package/dist/components/DashboardShell.js +42 -25
- package/dist/components/DashboardShell.js.map +1 -1
- package/dist/components/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState.js +7 -1
- package/dist/components/EmptyState.js.map +1 -1
- package/dist/components/ErrorPage.d.ts.map +1 -1
- package/dist/components/ErrorPage.js +22 -33
- package/dist/components/ErrorPage.js.map +1 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +21 -5
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/NotificationCenter.d.ts +6 -0
- package/dist/components/NotificationCenter.d.ts.map +1 -0
- package/dist/components/NotificationCenter.js +67 -0
- package/dist/components/NotificationCenter.js.map +1 -0
- package/dist/components/NotificationIndicator.d.ts +6 -0
- package/dist/components/NotificationIndicator.d.ts.map +1 -0
- package/dist/components/NotificationIndicator.js +27 -0
- package/dist/components/NotificationIndicator.js.map +1 -0
- package/dist/components/PanelGrid.js +2 -2
- package/dist/components/PanelGrid.js.map +1 -1
- package/dist/components/PanelWrapper.d.ts +2 -1
- package/dist/components/PanelWrapper.d.ts.map +1 -1
- package/dist/components/PanelWrapper.js +101 -16
- package/dist/components/PanelWrapper.js.map +1 -1
- package/dist/components/RefreshContext.d.ts +3 -0
- package/dist/components/RefreshContext.d.ts.map +1 -0
- package/dist/components/RefreshContext.js +7 -0
- package/dist/components/RefreshContext.js.map +1 -0
- package/dist/components/RefreshControl.d.ts +17 -0
- package/dist/components/RefreshControl.d.ts.map +1 -0
- package/dist/components/RefreshControl.js +72 -0
- package/dist/components/RefreshControl.js.map +1 -0
- package/dist/components/SectionGrid.d.ts +9 -0
- package/dist/components/SectionGrid.d.ts.map +1 -0
- package/dist/components/SectionGrid.js +76 -0
- package/dist/components/SectionGrid.js.map +1 -0
- package/dist/components/SectionHeader.d.ts +8 -0
- package/dist/components/SectionHeader.d.ts.map +1 -0
- package/dist/components/SectionHeader.js +21 -0
- package/dist/components/SectionHeader.js.map +1 -0
- package/dist/components/TagPills.d.ts +7 -0
- package/dist/components/TagPills.d.ts.map +1 -0
- package/dist/components/TagPills.js +41 -0
- package/dist/components/TagPills.js.map +1 -0
- package/dist/components/filters/BooleanFilter.d.ts.map +1 -1
- package/dist/components/filters/BooleanFilter.js +1 -3
- package/dist/components/filters/BooleanFilter.js.map +1 -1
- package/dist/components/filters/CalendarGrid.d.ts.map +1 -1
- package/dist/components/filters/CalendarGrid.js +1 -1
- package/dist/components/filters/CalendarGrid.js.map +1 -1
- package/dist/components/filters/DateRangeFilter.d.ts.map +1 -1
- package/dist/components/filters/DateRangeFilter.js +4 -6
- package/dist/components/filters/DateRangeFilter.js.map +1 -1
- package/dist/components/filters/FilterChips.d.ts.map +1 -1
- package/dist/components/filters/FilterChips.js +71 -10
- package/dist/components/filters/FilterChips.js.map +1 -1
- package/dist/components/filters/IntervalFilter.d.ts +9 -0
- package/dist/components/filters/IntervalFilter.d.ts.map +1 -0
- package/dist/components/filters/IntervalFilter.js +29 -0
- package/dist/components/filters/IntervalFilter.js.map +1 -0
- package/dist/components/filters/MultiSelectFilter.d.ts.map +1 -1
- package/dist/components/filters/MultiSelectFilter.js +1 -3
- package/dist/components/filters/MultiSelectFilter.js.map +1 -1
- package/dist/components/filters/NumberFilter.d.ts.map +1 -1
- package/dist/components/filters/NumberFilter.js +5 -1
- package/dist/components/filters/NumberFilter.js.map +1 -1
- package/dist/components/filters/SelectFilter.d.ts +2 -1
- package/dist/components/filters/SelectFilter.d.ts.map +1 -1
- package/dist/components/filters/SelectFilter.js +9 -10
- package/dist/components/filters/SelectFilter.js.map +1 -1
- package/dist/components/filters/TextFilter.d.ts.map +1 -1
- package/dist/components/filters/TextFilter.js +5 -1
- package/dist/components/filters/TextFilter.js.map +1 -1
- package/dist/components/index.d.ts +12 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +15 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/panels/AnnotationLayer.d.ts +28 -0
- package/dist/components/panels/AnnotationLayer.d.ts.map +1 -0
- package/dist/components/panels/AnnotationLayer.js +102 -0
- package/dist/components/panels/AnnotationLayer.js.map +1 -0
- package/dist/components/panels/AreaChart.d.ts +3 -1
- package/dist/components/panels/AreaChart.d.ts.map +1 -1
- package/dist/components/panels/AreaChart.js +86 -5
- package/dist/components/panels/AreaChart.js.map +1 -1
- package/dist/components/panels/BarChart.d.ts.map +1 -1
- package/dist/components/panels/BarChart.js +61 -7
- package/dist/components/panels/BarChart.js.map +1 -1
- package/dist/components/panels/ChartTooltip.d.ts.map +1 -1
- package/dist/components/panels/ChartTooltip.js +9 -48
- package/dist/components/panels/ChartTooltip.js.map +1 -1
- package/dist/components/panels/DataLinks.d.ts +35 -0
- package/dist/components/panels/DataLinks.d.ts.map +1 -0
- package/dist/components/panels/DataLinks.js +67 -0
- package/dist/components/panels/DataLinks.js.map +1 -0
- package/dist/components/panels/GaugePanel.d.ts +7 -0
- package/dist/components/panels/GaugePanel.d.ts.map +1 -0
- package/dist/components/panels/GaugePanel.js +116 -0
- package/dist/components/panels/GaugePanel.js.map +1 -0
- package/dist/components/panels/HistogramPanel.d.ts +18 -0
- package/dist/components/panels/HistogramPanel.d.ts.map +1 -0
- package/dist/components/panels/HistogramPanel.js +92 -0
- package/dist/components/panels/HistogramPanel.js.map +1 -0
- package/dist/components/panels/LineChart.d.ts +3 -1
- package/dist/components/panels/LineChart.d.ts.map +1 -1
- package/dist/components/panels/LineChart.js +89 -5
- package/dist/components/panels/LineChart.js.map +1 -1
- package/dist/components/panels/ListPanel.d.ts.map +1 -1
- package/dist/components/panels/ListPanel.js +1 -1
- package/dist/components/panels/ListPanel.js.map +1 -1
- package/dist/components/panels/MarkdownPanel.d.ts +15 -1
- package/dist/components/panels/MarkdownPanel.d.ts.map +1 -1
- package/dist/components/panels/MarkdownPanel.js +70 -7
- package/dist/components/panels/MarkdownPanel.js.map +1 -1
- package/dist/components/panels/MetricPanel.d.ts.map +1 -1
- package/dist/components/panels/MetricPanel.js +1 -1
- package/dist/components/panels/MetricPanel.js.map +1 -1
- package/dist/components/panels/PanelEmpty.d.ts.map +1 -1
- package/dist/components/panels/PanelEmpty.js +1 -1
- package/dist/components/panels/PanelEmpty.js.map +1 -1
- package/dist/components/panels/PanelError.d.ts.map +1 -1
- package/dist/components/panels/PanelError.js +4 -1
- package/dist/components/panels/PanelError.js.map +1 -1
- package/dist/components/panels/PanelSkeleton.js +2 -2
- package/dist/components/panels/PanelSkeleton.js.map +1 -1
- package/dist/components/panels/ScatterChart.d.ts +15 -1
- package/dist/components/panels/ScatterChart.d.ts.map +1 -1
- package/dist/components/panels/ScatterChart.js +96 -26
- package/dist/components/panels/ScatterChart.js.map +1 -1
- package/dist/components/panels/Sparkline.d.ts +21 -0
- package/dist/components/panels/Sparkline.d.ts.map +1 -0
- package/dist/components/panels/Sparkline.js +53 -0
- package/dist/components/panels/Sparkline.js.map +1 -0
- package/dist/components/panels/StatPanel.d.ts +3 -1
- package/dist/components/panels/StatPanel.d.ts.map +1 -1
- package/dist/components/panels/StatPanel.js +33 -4
- package/dist/components/panels/StatPanel.js.map +1 -1
- package/dist/components/panels/TablePanel.d.ts +2 -1
- package/dist/components/panels/TablePanel.d.ts.map +1 -1
- package/dist/components/panels/TablePanel.js +96 -6
- package/dist/components/panels/TablePanel.js.map +1 -1
- package/dist/components/panels/VideoPanel.d.ts.map +1 -1
- package/dist/components/panels/VideoPanel.js +1 -1
- package/dist/components/panels/VideoPanel.js.map +1 -1
- package/dist/components/panels/nivo-theme.d.ts +1 -44
- package/dist/components/panels/nivo-theme.d.ts.map +1 -1
- package/dist/components/panels/nivo-theme.js +9 -104
- package/dist/components/panels/nivo-theme.js.map +1 -1
- package/dist/components/panels/semantic-colors.d.ts.map +1 -1
- package/dist/components/panels/semantic-colors.js +2 -39
- package/dist/components/panels/semantic-colors.js.map +1 -1
- package/dist/components/ui/Button.d.ts +1 -1
- package/dist/components/ui/Button.d.ts.map +1 -1
- package/dist/components/ui/Button.js +6 -9
- package/dist/components/ui/Button.js.map +1 -1
- package/dist/components/ui/Tabs.d.ts.map +1 -1
- package/dist/components/ui/Tabs.js +1 -1
- package/dist/components/ui/Tabs.js.map +1 -1
- package/dist/connectors/bigquery.d.ts.map +1 -1
- package/dist/connectors/bigquery.js +6 -1
- package/dist/connectors/bigquery.js.map +1 -1
- package/dist/connectors/postgres.d.ts.map +1 -1
- package/dist/connectors/postgres.js +3 -0
- package/dist/connectors/postgres.js.map +1 -1
- package/dist/connectors/redshift.d.ts.map +1 -1
- package/dist/connectors/redshift.js +3 -0
- package/dist/connectors/redshift.js.map +1 -1
- package/dist/contexts/NotificationContext.d.ts +10 -0
- package/dist/contexts/NotificationContext.d.ts.map +1 -0
- package/dist/contexts/NotificationContext.js +24 -0
- package/dist/contexts/NotificationContext.js.map +1 -0
- package/dist/filters/daterange.d.ts +1 -1
- package/dist/filters/daterange.d.ts.map +1 -1
- package/dist/filters/daterange.js +54 -9
- package/dist/filters/daterange.js.map +1 -1
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.d.ts.map +1 -1
- package/dist/filters/index.js +2 -0
- package/dist/filters/index.js.map +1 -1
- package/dist/filters/interval.d.ts +13 -0
- package/dist/filters/interval.d.ts.map +1 -0
- package/dist/filters/interval.js +40 -0
- package/dist/filters/interval.js.map +1 -0
- package/dist/filters/resolver.d.ts +1 -1
- package/dist/filters/resolver.d.ts.map +1 -1
- package/dist/filters/resolver.js +28 -2
- package/dist/filters/resolver.js.map +1 -1
- package/dist/flattenTabs.d.ts +8 -0
- package/dist/flattenTabs.d.ts.map +1 -0
- package/dist/flattenTabs.js +24 -0
- package/dist/flattenTabs.js.map +1 -0
- package/dist/formats.d.ts +1 -1
- package/dist/formats.d.ts.map +1 -1
- package/dist/formats.js +19 -9
- package/dist/formats.js.map +1 -1
- package/dist/hooks/useNotifications.d.ts +5 -0
- package/dist/hooks/useNotifications.d.ts.map +1 -0
- package/dist/hooks/useNotifications.js +48 -0
- package/dist/hooks/useNotifications.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/interpolation.d.ts +10 -0
- package/dist/interpolation.d.ts.map +1 -0
- package/dist/interpolation.js +64 -0
- package/dist/interpolation.js.map +1 -0
- package/dist/panels/conditional.d.ts +12 -0
- package/dist/panels/conditional.d.ts.map +1 -0
- package/dist/panels/conditional.js +90 -0
- package/dist/panels/conditional.js.map +1 -0
- package/dist/panels/index.d.ts +11 -0
- package/dist/panels/index.d.ts.map +1 -0
- package/dist/panels/index.js +19 -0
- package/dist/panels/index.js.map +1 -0
- package/dist/panels/mappings.d.ts +40 -0
- package/dist/panels/mappings.d.ts.map +1 -0
- package/dist/panels/mappings.js +83 -0
- package/dist/panels/mappings.js.map +1 -0
- package/dist/panels/overrides.d.ts +37 -0
- package/dist/panels/overrides.d.ts.map +1 -0
- package/dist/panels/overrides.js +57 -0
- package/dist/panels/overrides.js.map +1 -0
- package/dist/panels/threshold-layers.d.ts +18 -0
- package/dist/panels/threshold-layers.d.ts.map +1 -0
- package/dist/panels/threshold-layers.js +35 -0
- package/dist/panels/threshold-layers.js.map +1 -0
- package/dist/panels/thresholds.d.ts +36 -0
- package/dist/panels/thresholds.d.ts.map +1 -0
- package/dist/panels/thresholds.js +81 -0
- package/dist/panels/thresholds.js.map +1 -0
- package/dist/schemas/annotations.d.ts +34 -0
- package/dist/schemas/annotations.d.ts.map +1 -0
- package/dist/schemas/annotations.js +19 -0
- package/dist/schemas/annotations.js.map +1 -0
- package/dist/schemas/config.d.ts +1 -0
- package/dist/schemas/config.d.ts.map +1 -1
- package/dist/schemas/config.js +1 -0
- package/dist/schemas/config.js.map +1 -1
- package/dist/schemas/dashboard.d.ts +5861 -235
- package/dist/schemas/dashboard.d.ts.map +1 -1
- package/dist/schemas/dashboard.js +173 -10
- package/dist/schemas/dashboard.js.map +1 -1
- package/dist/schemas/index.d.ts +6 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +6 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/mappings.d.ts +46 -0
- package/dist/schemas/mappings.d.ts.map +1 -0
- package/dist/schemas/mappings.js +46 -0
- package/dist/schemas/mappings.js.map +1 -0
- package/dist/schemas/overrides.d.ts +77 -0
- package/dist/schemas/overrides.d.ts.map +1 -0
- package/dist/schemas/overrides.js +38 -0
- package/dist/schemas/overrides.js.map +1 -0
- package/dist/schemas/theme.d.ts +89 -7
- package/dist/schemas/theme.d.ts.map +1 -1
- package/dist/schemas/theme.js +40 -24
- package/dist/schemas/theme.js.map +1 -1
- package/dist/schemas/thresholds.d.ts +19 -0
- package/dist/schemas/thresholds.d.ts.map +1 -0
- package/dist/schemas/thresholds.js +31 -0
- package/dist/schemas/thresholds.js.map +1 -0
- package/dist/schemas/transforms.d.ts +54 -0
- package/dist/schemas/transforms.d.ts.map +1 -0
- package/dist/schemas/transforms.js +51 -0
- package/dist/schemas/transforms.js.map +1 -0
- package/dist/startup/sql-lint.d.ts.map +1 -1
- package/dist/startup/sql-lint.js +3 -2
- package/dist/startup/sql-lint.js.map +1 -1
- package/dist/theme/builtin.d.ts.map +1 -1
- package/dist/theme/builtin.js +56 -62
- package/dist/theme/builtin.js.map +1 -1
- package/dist/theme/colors.d.ts +11 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +71 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/context.d.ts.map +1 -1
- package/dist/theme/context.js +16 -3
- package/dist/theme/context.js.map +1 -1
- package/dist/theme/loader-export.d.ts +1 -1
- package/dist/theme/loader-export.d.ts.map +1 -1
- package/dist/theme/loader-export.js +1 -1
- package/dist/theme/loader-export.js.map +1 -1
- package/dist/theme/loader.d.ts +8 -3
- package/dist/theme/loader.d.ts.map +1 -1
- package/dist/theme/loader.js +24 -13
- package/dist/theme/loader.js.map +1 -1
- package/dist/transforms/computed.d.ts +11 -0
- package/dist/transforms/computed.d.ts.map +1 -0
- package/dist/transforms/computed.js +24 -0
- package/dist/transforms/computed.js.map +1 -0
- package/dist/transforms/engine.d.ts +17 -0
- package/dist/transforms/engine.d.ts.map +1 -0
- package/dist/transforms/engine.js +65 -0
- package/dist/transforms/engine.js.map +1 -0
- package/dist/transforms/expression.d.ts +9 -0
- package/dist/transforms/expression.d.ts.map +1 -0
- package/dist/transforms/expression.js +306 -0
- package/dist/transforms/expression.js.map +1 -0
- package/dist/transforms/filter.d.ts +11 -0
- package/dist/transforms/filter.d.ts.map +1 -0
- package/dist/transforms/filter.js +10 -0
- package/dist/transforms/filter.js.map +1 -0
- package/dist/transforms/index.d.ts +10 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +9 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/limit.d.ts +11 -0
- package/dist/transforms/limit.d.ts.map +1 -0
- package/dist/transforms/limit.js +4 -0
- package/dist/transforms/limit.js.map +1 -0
- package/dist/transforms/percentage.d.ts +11 -0
- package/dist/transforms/percentage.d.ts.map +1 -0
- package/dist/transforms/percentage.js +25 -0
- package/dist/transforms/percentage.js.map +1 -0
- package/dist/transforms/rename.d.ts +11 -0
- package/dist/transforms/rename.d.ts.map +1 -0
- package/dist/transforms/rename.js +17 -0
- package/dist/transforms/rename.js.map +1 -0
- package/dist/transforms/sort.d.ts +11 -0
- package/dist/transforms/sort.d.ts.map +1 -0
- package/dist/transforms/sort.js +21 -0
- package/dist/transforms/sort.js.map +1 -0
- package/dist/types/config-error.d.ts +16 -0
- package/dist/types/config-error.d.ts.map +1 -0
- package/dist/types/config-error.js +2 -0
- package/dist/types/config-error.js.map +1 -0
- package/dist/types/notification.d.ts +19 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/notification.js +15 -0
- package/dist/types/notification.js.map +1 -0
- package/package.json +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daterange.js","sourceRoot":"","sources":["../../src/filters/daterange.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,wBAAwB,GACzB,MAAM,UAAU,CAAC;AASlB,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,WAAmB,KAAK,EACxB,aAAoB;
|
|
1
|
+
{"version":3,"file":"daterange.js","sourceRoot":"","sources":["../../src/filters/daterange.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,wBAAwB,GACzB,MAAM,UAAU,CAAC;AASlB,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,WAAmB,KAAK,EACxB,aAAoB,EACpB,eAAwB;IAExB,sCAAsC;IACtC,MAAM,GAAG,GAAG,aAAa;QACvB,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;QACrC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAErC,IAAI,KAAW,CAAC;IAChB,IAAI,GAAS,CAAC;IAEd,wDAAwD;IACxD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7D,GAAG,GAAG,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE/B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,OAAO;gBACV,KAAK,GAAG,KAAK,CAAC;gBACd,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,SAAS;gBACZ,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtC,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,YAAY;gBACf,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC1B,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,cAAc;gBACjB,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5B,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBACzB,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3D,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvD,MAAM;YACR,KAAK,YAAY;gBACf,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,cAAc;gBACjB,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtC,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,kBAAkB;gBACzD,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY;gBACrD,MAAM,OAAO,GAAG,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACrF,KAAK,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnE,GAAG,GAAG,QAAQ,CAAC;gBACf,MAAM;YACR,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,kBAAkB;gBACzD,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY;gBAErD,yDAAyD;gBACzD,4DAA4D;gBAC5D,IAAI,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;gBAC1C,IAAI,WAAW,GAAG,CAAC;oBAAE,WAAW,IAAI,EAAE,CAAC;gBAEvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU;gBAEpE,0BAA0B;gBAC1B,MAAM,WAAW,GAAG,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAE9E,+DAA+D;gBAC/D,IAAI,qBAAqB,GAAG,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,YAAY;gBACpE,IAAI,qBAAqB,GAAG,EAAE;oBAAE,qBAAqB,IAAI,EAAE,CAAC;gBAE5D,iBAAiB;gBACjB,IAAI,eAAe,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,qBAAqB,GAAG,YAAY,EAAE,CAAC;oBACzC,eAAe,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC1C,CAAC;gBAED,KAAK,GAAG,UAAU,CAChB,IAAI,MAAM,CAAC,eAAe,EAAE,qBAAqB,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CACpE,CAAC;gBACF,gDAAgD;gBAChD,IAAI,QAAQ,GAAG,qBAAqB,GAAG,CAAC,CAAC,CAAC,uCAAuC;gBACjF,IAAI,OAAO,GAAG,eAAe,CAAC;gBAC9B,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;oBAClB,QAAQ,IAAI,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC,CAAC;gBACf,CAAC;gBACD,GAAG,GAAG,QAAQ,CACZ,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAC3D,CAAC;gBACF,MAAM;YACR,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB;IAC/E,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEzE,kEAAkE;IAClE,gFAAgF;IAChF,MAAM,YAAY,GAAG,CAAC,CAAO,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;QAC1B,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC;QACtB,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC;QACpC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;KACjC,CAAC;AACJ,CAAC"}
|
package/dist/filters/index.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ export type { DateRange } from "./daterange";
|
|
|
4
4
|
export { validateParam, ParamValidationError } from "./validation";
|
|
5
5
|
export type { ParamSchema } from "./validation";
|
|
6
6
|
export { getFilterDependencies } from "./dependencies";
|
|
7
|
+
export { resolveAutoInterval } from "./interval";
|
|
8
|
+
export { interpolate } from "../interpolation";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/filters/index.js
CHANGED
|
@@ -15,4 +15,6 @@ export { resolveFilters } from "./resolver";
|
|
|
15
15
|
export { resolveDateRange } from "./daterange";
|
|
16
16
|
export { validateParam, ParamValidationError } from "./validation";
|
|
17
17
|
export { getFilterDependencies } from "./dependencies";
|
|
18
|
+
export { resolveAutoInterval } from "./interval";
|
|
19
|
+
export { interpolate } from "../interpolation";
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate the appropriate interval for a given date range width.
|
|
3
|
+
*
|
|
4
|
+
* Thresholds:
|
|
5
|
+
* range < 6h -> 1m
|
|
6
|
+
* range < 2d -> 5m
|
|
7
|
+
* range < 7d -> 15m
|
|
8
|
+
* range < 30d -> 1h
|
|
9
|
+
* range < 90d -> 6h
|
|
10
|
+
* else -> 1d
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveAutoInterval(rangeMs: number): string;
|
|
13
|
+
//# sourceMappingURL=interval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval.d.ts","sourceRoot":"","sources":["../../src/filters/interval.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO3D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright 2026 Mataki Labs LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
const HOUR = 60 * 60 * 1000;
|
|
15
|
+
const DAY = 24 * HOUR;
|
|
16
|
+
/**
|
|
17
|
+
* Calculate the appropriate interval for a given date range width.
|
|
18
|
+
*
|
|
19
|
+
* Thresholds:
|
|
20
|
+
* range < 6h -> 1m
|
|
21
|
+
* range < 2d -> 5m
|
|
22
|
+
* range < 7d -> 15m
|
|
23
|
+
* range < 30d -> 1h
|
|
24
|
+
* range < 90d -> 6h
|
|
25
|
+
* else -> 1d
|
|
26
|
+
*/
|
|
27
|
+
export function resolveAutoInterval(rangeMs) {
|
|
28
|
+
if (rangeMs < 6 * HOUR)
|
|
29
|
+
return "1m";
|
|
30
|
+
if (rangeMs < 2 * DAY)
|
|
31
|
+
return "5m";
|
|
32
|
+
if (rangeMs < 7 * DAY)
|
|
33
|
+
return "15m";
|
|
34
|
+
if (rangeMs < 30 * DAY)
|
|
35
|
+
return "1h";
|
|
36
|
+
if (rangeMs < 90 * DAY)
|
|
37
|
+
return "6h";
|
|
38
|
+
return "1d";
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=interval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval.js","sourceRoot":"","sources":["../../src/filters/interval.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5B,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,OAAO,GAAG,EAAE,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,GAAG,EAAE,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Filter } from "../schemas/dashboard";
|
|
2
|
-
export declare function resolveFilters(searchParams: URLSearchParams, filterDefs: Filter[], timezone: string, ctx?: Record<string, unknown
|
|
2
|
+
export declare function resolveFilters(searchParams: URLSearchParams, filterDefs: Filter[], timezone: string, ctx?: Record<string, unknown>, fiscalYearStart?: number): Record<string, unknown>;
|
|
3
3
|
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/filters/resolver.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,eAAe,EAC7B,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/filters/resolver.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,eAAe,EAC7B,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACjC,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiKzB"}
|
package/dist/filters/resolver.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
import { resolveDateRange } from "./daterange";
|
|
15
15
|
import { validateParam } from "./validation";
|
|
16
|
-
export function resolveFilters(searchParams, filterDefs, timezone, ctx = {}) {
|
|
16
|
+
export function resolveFilters(searchParams, filterDefs, timezone, ctx = {}, fiscalYearStart) {
|
|
17
17
|
const resolved = {};
|
|
18
18
|
for (const filter of filterDefs) {
|
|
19
19
|
// Hidden filters: resolve from auth context (source: "ctx.<claim_name>")
|
|
@@ -34,7 +34,7 @@ export function resolveFilters(searchParams, filterDefs, timezone, ctx = {}) {
|
|
|
34
34
|
switch (filter.type) {
|
|
35
35
|
case "daterange": {
|
|
36
36
|
const preset = rawValue ?? filter.default ?? "last_30d";
|
|
37
|
-
const range = resolveDateRange(preset, timezone);
|
|
37
|
+
const range = resolveDateRange(preset, timezone, undefined, fiscalYearStart);
|
|
38
38
|
if (filter.outputs) {
|
|
39
39
|
if (filter.outputs.start)
|
|
40
40
|
resolved[filter.outputs.start] = range.start;
|
|
@@ -48,6 +48,21 @@ export function resolveFilters(searchParams, filterDefs, timezone, ctx = {}) {
|
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
50
|
case "select": {
|
|
51
|
+
// Multi-select: parse comma-separated URL value into array
|
|
52
|
+
const isMulti = "multi" in filter && filter.multi;
|
|
53
|
+
if (isMulti) {
|
|
54
|
+
if (rawValue === null || rawValue === "") {
|
|
55
|
+
resolved[filter.id] = [];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
resolved[filter.id] = rawValue
|
|
59
|
+
.split(",")
|
|
60
|
+
.map((v) => v.trim())
|
|
61
|
+
.filter(Boolean);
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
// Single-select: existing logic unchanged
|
|
51
66
|
let value = rawValue ?? filter.default;
|
|
52
67
|
// If static options are defined and the URL value doesn't match any
|
|
53
68
|
// option, fall back to the filter's default.
|
|
@@ -115,6 +130,17 @@ export function resolveFilters(searchParams, filterDefs, timezone, ctx = {}) {
|
|
|
115
130
|
}
|
|
116
131
|
break;
|
|
117
132
|
}
|
|
133
|
+
case "interval": {
|
|
134
|
+
const intervalFilter = filter;
|
|
135
|
+
const value = rawValue ?? intervalFilter.default ?? "auto";
|
|
136
|
+
if (value !== "auto" && !intervalFilter.presets.includes(value)) {
|
|
137
|
+
resolved[filter.id] = intervalFilter.default ?? "auto";
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
resolved[filter.id] = value;
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
118
144
|
}
|
|
119
145
|
}
|
|
120
146
|
return resolved;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/filters/resolver.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,UAAU,cAAc,CAC5B,YAA6B,EAC7B,UAAoB,EACpB,QAAgB,EAChB,MAA+B,EAAE;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/filters/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Tab, Section } from "./schemas/dashboard";
|
|
2
|
+
/**
|
|
3
|
+
* Flatten a tabbed dashboard into a sequential list of sections.
|
|
4
|
+
* Used by FOSS to render tabbed dashboards without tab UI --
|
|
5
|
+
* all sections from all tabs are shown sequentially.
|
|
6
|
+
*/
|
|
7
|
+
export declare function flattenTabs(tabs: Tab[] | undefined): Section[];
|
|
8
|
+
//# sourceMappingURL=flattenTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattenTabs.d.ts","sourceRoot":"","sources":["../src/flattenTabs.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAG9D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright 2026 Mataki Labs LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
/**
|
|
15
|
+
* Flatten a tabbed dashboard into a sequential list of sections.
|
|
16
|
+
* Used by FOSS to render tabbed dashboards without tab UI --
|
|
17
|
+
* all sections from all tabs are shown sequentially.
|
|
18
|
+
*/
|
|
19
|
+
export function flattenTabs(tabs) {
|
|
20
|
+
if (!tabs || tabs.length === 0)
|
|
21
|
+
return [];
|
|
22
|
+
return tabs.flatMap((tab) => tab.sections);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=flattenTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattenTabs.js","sourceRoot":"","sources":["../src/flattenTabs.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAuB;IACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/formats.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** Abbreviated format for axis labels — e.g. $1.2M, 45K, 3.5% */
|
|
2
2
|
export declare function formatValueShort(value: unknown, format: string, _locale?: string): string;
|
|
3
|
-
export declare function formatValue(value: unknown, format: string, locale?: string): string;
|
|
3
|
+
export declare function formatValue(value: unknown, format: string, locale?: string, decimals?: number): string;
|
|
4
4
|
//# sourceMappingURL=formats.d.ts.map
|
package/dist/formats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,SAAU,GAChB,MAAM,CAoCR;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,MAAM,SAAU,
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,SAAU,GAChB,MAAM,CAoCR;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,MAAM,SAAU,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAyDR"}
|
package/dist/formats.js
CHANGED
|
@@ -52,7 +52,7 @@ export function formatValueShort(value, format, _locale = "en-US") {
|
|
|
52
52
|
return abbrev(num);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
export function formatValue(value, format, locale = "en-US") {
|
|
55
|
+
export function formatValue(value, format, locale = "en-US", decimals) {
|
|
56
56
|
if (value === null || value === undefined)
|
|
57
57
|
return "—";
|
|
58
58
|
const num = typeof value === "number" ? value : parseFloat(String(value));
|
|
@@ -60,15 +60,23 @@ export function formatValue(value, format, locale = "en-US") {
|
|
|
60
60
|
return String(value);
|
|
61
61
|
switch (format) {
|
|
62
62
|
case "number":
|
|
63
|
-
return new Intl.NumberFormat(locale, {
|
|
63
|
+
return new Intl.NumberFormat(locale, {
|
|
64
|
+
minimumFractionDigits: decimals ?? 0,
|
|
65
|
+
maximumFractionDigits: decimals ?? 0,
|
|
66
|
+
}).format(num);
|
|
64
67
|
case "decimal":
|
|
65
68
|
return new Intl.NumberFormat(locale, {
|
|
66
|
-
minimumFractionDigits: 2,
|
|
67
|
-
maximumFractionDigits: 2,
|
|
69
|
+
minimumFractionDigits: decimals ?? 2,
|
|
70
|
+
maximumFractionDigits: decimals ?? 2,
|
|
68
71
|
}).format(num);
|
|
69
|
-
case "percent":
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
case "percent": {
|
|
73
|
+
// Note: value is already a percentage (e.g., 42.3), not a fraction (0.423)
|
|
74
|
+
const d = decimals ?? 1;
|
|
75
|
+
return new Intl.NumberFormat(locale, {
|
|
76
|
+
minimumFractionDigits: d,
|
|
77
|
+
maximumFractionDigits: d,
|
|
78
|
+
}).format(num) + "%";
|
|
79
|
+
}
|
|
72
80
|
case "bytes":
|
|
73
81
|
return formatBytes(num);
|
|
74
82
|
case "duration_ms":
|
|
@@ -79,7 +87,8 @@ export function formatValue(value, format, locale = "en-US") {
|
|
|
79
87
|
return new Intl.NumberFormat(locale, {
|
|
80
88
|
style: "currency",
|
|
81
89
|
currency: "USD",
|
|
82
|
-
|
|
90
|
+
minimumFractionDigits: decimals ?? 0,
|
|
91
|
+
maximumFractionDigits: decimals ?? 0,
|
|
83
92
|
}).format(num);
|
|
84
93
|
default:
|
|
85
94
|
// Handle currency_xxx pattern (e.g. currency_eur, currency_gbp)
|
|
@@ -88,7 +97,8 @@ export function formatValue(value, format, locale = "en-US") {
|
|
|
88
97
|
return new Intl.NumberFormat(locale, {
|
|
89
98
|
style: "currency",
|
|
90
99
|
currency: code,
|
|
91
|
-
|
|
100
|
+
minimumFractionDigits: decimals ?? 0,
|
|
101
|
+
maximumFractionDigits: decimals ?? 0,
|
|
92
102
|
}).format(num);
|
|
93
103
|
}
|
|
94
104
|
return String(value);
|
package/dist/formats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,MAAc,EACd,OAAO,GAAG,OAAO;IAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,IAAI,aAAa;YAAE,OAAO,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,IAAI,GAAG,IAAI,SAAS;YAAE,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9D,IAAI,GAAG,IAAI,KAAK;YAAE,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACtD,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,SAAS;YACZ,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9B,KAAK,aAAa;YAChB,IAAI,GAAG,GAAG,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACvC;YACE,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3D,MAAM,MAAM,GACV,IAAI,KAAK,KAAK;oBACZ,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,KAAK,KAAK;wBACd,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,IAAI,KAAK,KAAK;4BACd,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;gBACrB,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,MAAc,EACd,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../src/hooks/useNotifications.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ5D,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAuCzE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Copyright 2026 Mataki Labs LLC
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Business Source License 1.1 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
import { useState, useEffect } from "react";
|
|
16
|
+
import { NotificationContext } from "../contexts/NotificationContext";
|
|
17
|
+
export function NotificationProvider({ children }) {
|
|
18
|
+
const [notifications, setNotifications] = useState([]);
|
|
19
|
+
const [status, setStatus] = useState("healthy");
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
let cancelled = false;
|
|
22
|
+
async function poll() {
|
|
23
|
+
try {
|
|
24
|
+
const res = await fetch("/api/notifications");
|
|
25
|
+
if (!res.ok)
|
|
26
|
+
return;
|
|
27
|
+
const data = await res.json();
|
|
28
|
+
if (cancelled)
|
|
29
|
+
return;
|
|
30
|
+
setNotifications(data.notifications);
|
|
31
|
+
setStatus(data.status);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Network error — don't update state
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Initial fetch
|
|
38
|
+
poll();
|
|
39
|
+
// Poll every 30 seconds
|
|
40
|
+
const id = setInterval(poll, 30_000);
|
|
41
|
+
return () => {
|
|
42
|
+
cancelled = true;
|
|
43
|
+
clearInterval(id);
|
|
44
|
+
};
|
|
45
|
+
}, []);
|
|
46
|
+
return (_jsx(NotificationContext.Provider, { value: { notifications, status, count: notifications.length }, children: children }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=useNotifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotifications.js","sourceRoot":"","sources":["../../src/hooks/useNotifications.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE,MAAM,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAA2B;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAe,SAAS,CAAC,CAAC;IAE9D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,KAAK,UAAU,IAAI;YACjB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAC9C,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,OAAO;gBACpB,MAAM,IAAI,GAAyB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,SAAS;oBAAE,OAAO;gBACtB,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,EAAE,CAAC;QAEP,wBAAwB;QACxB,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAErC,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,mBAAmB,CAAC,QAAQ,IAC3B,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,YAE5D,QAAQ,GACoB,CAChC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,15 @@ export * from "./schemas";
|
|
|
3
3
|
export * from "./interfaces";
|
|
4
4
|
export * from "./connectors";
|
|
5
5
|
export * from "./query";
|
|
6
|
+
export * from "./transforms";
|
|
6
7
|
export * from "./cache";
|
|
7
8
|
export * from "./filters";
|
|
8
9
|
export * from "./components";
|
|
9
10
|
export * from "./theme";
|
|
11
|
+
export type { ConfigError, ConfigErrorYamlContext } from "./types/config-error";
|
|
12
|
+
export type { Notification, NotificationResponse, NotificationType, NotificationSeverity, SystemStatus, } from "./types/notification";
|
|
10
13
|
export * from "./locale";
|
|
11
14
|
export { formatValue, formatValueShort } from "./formats";
|
|
15
|
+
export { flattenTabs } from "./flattenTabs";
|
|
12
16
|
export * from "./startup";
|
|
13
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG1D,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAChF,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,8 @@ export * from "./interfaces";
|
|
|
20
20
|
export * from "./connectors";
|
|
21
21
|
// Query engine
|
|
22
22
|
export * from "./query";
|
|
23
|
+
// Transforms
|
|
24
|
+
export * from "./transforms";
|
|
23
25
|
// Cache
|
|
24
26
|
export * from "./cache";
|
|
25
27
|
// Filters
|
|
@@ -32,6 +34,8 @@ export * from "./theme";
|
|
|
32
34
|
export * from "./locale";
|
|
33
35
|
// Formatting
|
|
34
36
|
export { formatValue, formatValueShort } from "./formats";
|
|
37
|
+
// Tab utilities
|
|
38
|
+
export { flattenTabs } from "./flattenTabs";
|
|
35
39
|
// SQL lint
|
|
36
40
|
export * from "./startup";
|
|
37
41
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,kBAAkB;AAClB,cAAc,WAAW,CAAC;AAE1B,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,UAAU;AACV,cAAc,WAAW,CAAC;AAE1B,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,QAAQ;AACR,cAAc,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,kBAAkB;AAClB,cAAc,WAAW,CAAC;AAE1B,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,UAAU;AACV,cAAc,WAAW,CAAC;AAE1B,aAAa;AACb,cAAc,cAAc,CAAC;AAE7B,QAAQ;AACR,cAAc,SAAS,CAAC;AAYxB,SAAS;AACT,cAAc,UAAU,CAAC;AAEzB,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE1D,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,WAAW;AACX,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interpolate ${variable} and ${variable:format} placeholders in a template string.
|
|
3
|
+
*
|
|
4
|
+
* - `${name}` resolves to `values[name]` using default formatting
|
|
5
|
+
* - `${name:csv}` applies the csv format hint
|
|
6
|
+
* - `$${literal}` escapes to `${literal}` (not resolved)
|
|
7
|
+
* - Unresolved variables resolve to empty string
|
|
8
|
+
*/
|
|
9
|
+
export declare function interpolate(template: string, values: Record<string, unknown>): string;
|
|
10
|
+
//# sourceMappingURL=interpolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../src/interpolation.ts"],"names":[],"mappings":"AA6CA;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAqBR"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright 2026 Mataki Labs LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
// Variable interpolation engine for Panoboard.
|
|
15
|
+
// Resolves ${filter_name} and ${filter_name:format} in template strings.
|
|
16
|
+
/**
|
|
17
|
+
* Format a value using the specified format hint.
|
|
18
|
+
* Supported formats: csv, quoted, pipe, raw.
|
|
19
|
+
* Default (no format): string as-is, array as comma-separated.
|
|
20
|
+
*/
|
|
21
|
+
function formatValue(value, format) {
|
|
22
|
+
if (value === null || value === undefined)
|
|
23
|
+
return "";
|
|
24
|
+
const values = Array.isArray(value) ? value.map(String) : [String(value)];
|
|
25
|
+
switch (format) {
|
|
26
|
+
case "csv":
|
|
27
|
+
return values.join(",");
|
|
28
|
+
case "quoted":
|
|
29
|
+
return values.map((v) => `'${v.replace(/'/g, "''")}'`).join(",");
|
|
30
|
+
case "pipe":
|
|
31
|
+
return values.join("|");
|
|
32
|
+
case "raw":
|
|
33
|
+
return values[0] ?? "";
|
|
34
|
+
default:
|
|
35
|
+
// Default: string value as-is, array as comma-separated
|
|
36
|
+
return Array.isArray(value) ? values.join(",") : String(value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Interpolate ${variable} and ${variable:format} placeholders in a template string.
|
|
41
|
+
*
|
|
42
|
+
* - `${name}` resolves to `values[name]` using default formatting
|
|
43
|
+
* - `${name:csv}` applies the csv format hint
|
|
44
|
+
* - `$${literal}` escapes to `${literal}` (not resolved)
|
|
45
|
+
* - Unresolved variables resolve to empty string
|
|
46
|
+
*/
|
|
47
|
+
export function interpolate(template, values) {
|
|
48
|
+
if (!template)
|
|
49
|
+
return template;
|
|
50
|
+
// First pass: replace escaped $${...} with a placeholder
|
|
51
|
+
const ESCAPE_TOKEN = "\x00ESC\x00";
|
|
52
|
+
let result = template.replace(/\$\$\{/g, ESCAPE_TOKEN);
|
|
53
|
+
// Second pass: resolve ${name} and ${name:format}
|
|
54
|
+
result = result.replace(/\$\{([^}:]+?)(?::([^}]+))?\}/g, (_match, name, format) => {
|
|
55
|
+
const value = values[name];
|
|
56
|
+
if (value === null || value === undefined)
|
|
57
|
+
return "";
|
|
58
|
+
return formatValue(value, format);
|
|
59
|
+
});
|
|
60
|
+
// Third pass: restore escaped sequences
|
|
61
|
+
result = result.replace(new RegExp(ESCAPE_TOKEN, "g"), "${");
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=interpolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolation.js","sourceRoot":"","sources":["../src/interpolation.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,+CAA+C;AAC/C,yEAAyE;AAEzE;;;;GAIG;AACH,SAAS,WAAW,CAClB,KAAc,EACd,MAA0B;IAE1B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAErD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB;YACE,wDAAwD;YACxD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,MAA+B;IAE/B,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE/B,yDAAyD;IACzD,MAAM,YAAY,GAAG,aAAa,CAAC;IACnC,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEvD,kDAAkD;IAClD,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,+BAA+B,EAC/B,CAAC,MAAM,EAAE,IAAY,EAAE,MAA0B,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACrD,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CACF,CAAC;IAEF,wCAAwC;IACxC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ConditionalStyle {
|
|
2
|
+
background?: string;
|
|
3
|
+
color?: string;
|
|
4
|
+
weight?: "bold" | "normal";
|
|
5
|
+
italic?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface ConditionalRule {
|
|
8
|
+
when: string;
|
|
9
|
+
style: ConditionalStyle;
|
|
10
|
+
}
|
|
11
|
+
export declare function evaluateConditional(value: unknown, rules: ConditionalRule[] | undefined): ConditionalStyle | undefined;
|
|
12
|
+
//# sourceMappingURL=conditional.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional.d.ts","sourceRoot":"","sources":["../../src/panels/conditional.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;CACzB;AA0BD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,eAAe,EAAE,GAAG,SAAS,GACnC,gBAAgB,GAAG,SAAS,CAiD9B"}
|