@panoboard/core 1.1.5
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/cache/cache.d.ts +11 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +42 -0
- package/dist/cache/cache.js.map +1 -0
- package/dist/cache/client.d.ts +9 -0
- package/dist/cache/client.d.ts.map +1 -0
- package/dist/cache/client.js +63 -0
- package/dist/cache/client.js.map +1 -0
- package/dist/cache/index.d.ts +4 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +17 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/keys.d.ts +2 -0
- package/dist/cache/keys.d.ts.map +1 -0
- package/dist/cache/keys.js +26 -0
- package/dist/cache/keys.js.map +1 -0
- package/dist/components/DashboardCard.d.ts +15 -0
- package/dist/components/DashboardCard.d.ts.map +1 -0
- package/dist/components/DashboardCard.js +80 -0
- package/dist/components/DashboardCard.js.map +1 -0
- package/dist/components/DashboardShell.d.ts +11 -0
- package/dist/components/DashboardShell.d.ts.map +1 -0
- package/dist/components/DashboardShell.js +115 -0
- package/dist/components/DashboardShell.js.map +1 -0
- package/dist/components/EmptyState.d.ts +6 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +29 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/ErrorPage.d.ts +14 -0
- package/dist/components/ErrorPage.d.ts.map +1 -0
- package/dist/components/ErrorPage.js +132 -0
- package/dist/components/ErrorPage.js.map +1 -0
- package/dist/components/FilterBar.d.ts +8 -0
- package/dist/components/FilterBar.d.ts.map +1 -0
- package/dist/components/FilterBar.js +70 -0
- package/dist/components/FilterBar.js.map +1 -0
- package/dist/components/PanelGrid.d.ts +9 -0
- package/dist/components/PanelGrid.d.ts.map +1 -0
- package/dist/components/PanelGrid.js +26 -0
- package/dist/components/PanelGrid.js.map +1 -0
- package/dist/components/PanelWrapper.d.ts +8 -0
- package/dist/components/PanelWrapper.d.ts.map +1 -0
- package/dist/components/PanelWrapper.js +154 -0
- package/dist/components/PanelWrapper.js.map +1 -0
- package/dist/components/filters/BooleanFilter.d.ts +8 -0
- package/dist/components/filters/BooleanFilter.d.ts.map +1 -0
- package/dist/components/filters/BooleanFilter.js +36 -0
- package/dist/components/filters/BooleanFilter.js.map +1 -0
- package/dist/components/filters/CalendarGrid.d.ts +8 -0
- package/dist/components/filters/CalendarGrid.d.ts.map +1 -0
- package/dist/components/filters/CalendarGrid.js +159 -0
- package/dist/components/filters/CalendarGrid.js.map +1 -0
- package/dist/components/filters/DateRangeFilter.d.ts +10 -0
- package/dist/components/filters/DateRangeFilter.d.ts.map +1 -0
- package/dist/components/filters/DateRangeFilter.js +80 -0
- package/dist/components/filters/DateRangeFilter.js.map +1 -0
- package/dist/components/filters/FilterChips.d.ts +8 -0
- package/dist/components/filters/FilterChips.d.ts.map +1 -0
- package/dist/components/filters/FilterChips.js +94 -0
- package/dist/components/filters/FilterChips.js.map +1 -0
- package/dist/components/filters/MultiSelectFilter.d.ts +17 -0
- package/dist/components/filters/MultiSelectFilter.d.ts.map +1 -0
- package/dist/components/filters/MultiSelectFilter.js +80 -0
- package/dist/components/filters/MultiSelectFilter.js.map +1 -0
- package/dist/components/filters/NumberFilter.d.ts +10 -0
- package/dist/components/filters/NumberFilter.d.ts.map +1 -0
- package/dist/components/filters/NumberFilter.js +47 -0
- package/dist/components/filters/NumberFilter.js.map +1 -0
- package/dist/components/filters/SelectFilter.d.ts +16 -0
- package/dist/components/filters/SelectFilter.d.ts.map +1 -0
- package/dist/components/filters/SelectFilter.js +71 -0
- package/dist/components/filters/SelectFilter.js.map +1 -0
- package/dist/components/filters/TextFilter.d.ts +8 -0
- package/dist/components/filters/TextFilter.d.ts.map +1 -0
- package/dist/components/filters/TextFilter.js +57 -0
- package/dist/components/filters/TextFilter.js.map +1 -0
- package/dist/components/filters/useDropdown.d.ts +7 -0
- package/dist/components/filters/useDropdown.d.ts.map +1 -0
- package/dist/components/filters/useDropdown.js +41 -0
- package/dist/components/filters/useDropdown.js.map +1 -0
- package/dist/components/filters/useFilterUpdate.d.ts +2 -0
- package/dist/components/filters/useFilterUpdate.d.ts.map +1 -0
- package/dist/components/filters/useFilterUpdate.js +30 -0
- package/dist/components/filters/useFilterUpdate.js.map +1 -0
- package/dist/components/index.d.ts +59 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +75 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/panels/AreaChart.d.ts +7 -0
- package/dist/components/panels/AreaChart.d.ts.map +1 -0
- package/dist/components/panels/AreaChart.js +88 -0
- package/dist/components/panels/AreaChart.js.map +1 -0
- package/dist/components/panels/BarChart.d.ts +7 -0
- package/dist/components/panels/BarChart.d.ts.map +1 -0
- package/dist/components/panels/BarChart.js +99 -0
- package/dist/components/panels/BarChart.js.map +1 -0
- package/dist/components/panels/BoxPlotChart.d.ts +7 -0
- package/dist/components/panels/BoxPlotChart.d.ts.map +1 -0
- package/dist/components/panels/BoxPlotChart.js +41 -0
- package/dist/components/panels/BoxPlotChart.js.map +1 -0
- package/dist/components/panels/BulletChart.d.ts +7 -0
- package/dist/components/panels/BulletChart.d.ts.map +1 -0
- package/dist/components/panels/BulletChart.js +46 -0
- package/dist/components/panels/BulletChart.js.map +1 -0
- package/dist/components/panels/BumpChart.d.ts +7 -0
- package/dist/components/panels/BumpChart.d.ts.map +1 -0
- package/dist/components/panels/BumpChart.js +38 -0
- package/dist/components/panels/BumpChart.js.map +1 -0
- package/dist/components/panels/CalendarHeatmap.d.ts +7 -0
- package/dist/components/panels/CalendarHeatmap.d.ts.map +1 -0
- package/dist/components/panels/CalendarHeatmap.js +41 -0
- package/dist/components/panels/CalendarHeatmap.js.map +1 -0
- package/dist/components/panels/ChartTooltip.d.ts +48 -0
- package/dist/components/panels/ChartTooltip.d.ts.map +1 -0
- package/dist/components/panels/ChartTooltip.js +129 -0
- package/dist/components/panels/ChartTooltip.js.map +1 -0
- package/dist/components/panels/DonutChart.d.ts +7 -0
- package/dist/components/panels/DonutChart.d.ts.map +1 -0
- package/dist/components/panels/DonutChart.js +40 -0
- package/dist/components/panels/DonutChart.js.map +1 -0
- package/dist/components/panels/FunnelChart.d.ts +7 -0
- package/dist/components/panels/FunnelChart.d.ts.map +1 -0
- package/dist/components/panels/FunnelChart.js +32 -0
- package/dist/components/panels/FunnelChart.js.map +1 -0
- package/dist/components/panels/HeatmapChart.d.ts +7 -0
- package/dist/components/panels/HeatmapChart.d.ts.map +1 -0
- package/dist/components/panels/HeatmapChart.js +41 -0
- package/dist/components/panels/HeatmapChart.js.map +1 -0
- package/dist/components/panels/IframePanel.d.ts +6 -0
- package/dist/components/panels/IframePanel.d.ts.map +1 -0
- package/dist/components/panels/IframePanel.js +5 -0
- package/dist/components/panels/IframePanel.js.map +1 -0
- package/dist/components/panels/ImagePanel.d.ts +7 -0
- package/dist/components/panels/ImagePanel.d.ts.map +1 -0
- package/dist/components/panels/ImagePanel.js +9 -0
- package/dist/components/panels/ImagePanel.js.map +1 -0
- package/dist/components/panels/LineChart.d.ts +7 -0
- package/dist/components/panels/LineChart.d.ts.map +1 -0
- package/dist/components/panels/LineChart.js +87 -0
- package/dist/components/panels/LineChart.js.map +1 -0
- package/dist/components/panels/ListPanel.d.ts +7 -0
- package/dist/components/panels/ListPanel.d.ts.map +1 -0
- package/dist/components/panels/ListPanel.js +24 -0
- package/dist/components/panels/ListPanel.js.map +1 -0
- package/dist/components/panels/MarkdownPanel.d.ts +7 -0
- package/dist/components/panels/MarkdownPanel.d.ts.map +1 -0
- package/dist/components/panels/MarkdownPanel.js +39 -0
- package/dist/components/panels/MarkdownPanel.js.map +1 -0
- package/dist/components/panels/MetricPanel.d.ts +7 -0
- package/dist/components/panels/MetricPanel.d.ts.map +1 -0
- package/dist/components/panels/MetricPanel.js +23 -0
- package/dist/components/panels/MetricPanel.js.map +1 -0
- package/dist/components/panels/PanelEmpty.d.ts +2 -0
- package/dist/components/panels/PanelEmpty.d.ts.map +1 -0
- package/dist/components/panels/PanelEmpty.js +27 -0
- package/dist/components/panels/PanelEmpty.js.map +1 -0
- package/dist/components/panels/PanelError.d.ts +7 -0
- package/dist/components/panels/PanelError.d.ts.map +1 -0
- package/dist/components/panels/PanelError.js +21 -0
- package/dist/components/panels/PanelError.js.map +1 -0
- package/dist/components/panels/PanelSkeleton.d.ts +6 -0
- package/dist/components/panels/PanelSkeleton.d.ts.map +1 -0
- package/dist/components/panels/PanelSkeleton.js +24 -0
- package/dist/components/panels/PanelSkeleton.js.map +1 -0
- package/dist/components/panels/PieChart.d.ts +7 -0
- package/dist/components/panels/PieChart.d.ts.map +1 -0
- package/dist/components/panels/PieChart.js +40 -0
- package/dist/components/panels/PieChart.js.map +1 -0
- package/dist/components/panels/RadarChart.d.ts +7 -0
- package/dist/components/panels/RadarChart.d.ts.map +1 -0
- package/dist/components/panels/RadarChart.js +50 -0
- package/dist/components/panels/RadarChart.js.map +1 -0
- package/dist/components/panels/RadialBarChart.d.ts +7 -0
- package/dist/components/panels/RadialBarChart.d.ts.map +1 -0
- package/dist/components/panels/RadialBarChart.js +49 -0
- package/dist/components/panels/RadialBarChart.js.map +1 -0
- package/dist/components/panels/SankeyChart.d.ts +7 -0
- package/dist/components/panels/SankeyChart.d.ts.map +1 -0
- package/dist/components/panels/SankeyChart.js +39 -0
- package/dist/components/panels/SankeyChart.js.map +1 -0
- package/dist/components/panels/ScatterChart.d.ts +7 -0
- package/dist/components/panels/ScatterChart.d.ts.map +1 -0
- package/dist/components/panels/ScatterChart.js +54 -0
- package/dist/components/panels/ScatterChart.js.map +1 -0
- package/dist/components/panels/StatPanel.d.ts +8 -0
- package/dist/components/panels/StatPanel.d.ts.map +1 -0
- package/dist/components/panels/StatPanel.js +40 -0
- package/dist/components/panels/StatPanel.js.map +1 -0
- package/dist/components/panels/StreamChart.d.ts +7 -0
- package/dist/components/panels/StreamChart.d.ts.map +1 -0
- package/dist/components/panels/StreamChart.js +54 -0
- package/dist/components/panels/StreamChart.js.map +1 -0
- package/dist/components/panels/SunburstChart.d.ts +7 -0
- package/dist/components/panels/SunburstChart.d.ts.map +1 -0
- package/dist/components/panels/SunburstChart.js +60 -0
- package/dist/components/panels/SunburstChart.js.map +1 -0
- package/dist/components/panels/TablePanel.d.ts +7 -0
- package/dist/components/panels/TablePanel.d.ts.map +1 -0
- package/dist/components/panels/TablePanel.js +79 -0
- package/dist/components/panels/TablePanel.js.map +1 -0
- package/dist/components/panels/TreemapChart.d.ts +7 -0
- package/dist/components/panels/TreemapChart.d.ts.map +1 -0
- package/dist/components/panels/TreemapChart.js +59 -0
- package/dist/components/panels/TreemapChart.js.map +1 -0
- package/dist/components/panels/VideoPanel.d.ts +15 -0
- package/dist/components/panels/VideoPanel.d.ts.map +1 -0
- package/dist/components/panels/VideoPanel.js +25 -0
- package/dist/components/panels/VideoPanel.js.map +1 -0
- package/dist/components/panels/WaffleChart.d.ts +7 -0
- package/dist/components/panels/WaffleChart.d.ts.map +1 -0
- package/dist/components/panels/WaffleChart.js +46 -0
- package/dist/components/panels/WaffleChart.js.map +1 -0
- package/dist/components/panels/index.d.ts +3 -0
- package/dist/components/panels/index.d.ts.map +1 -0
- package/dist/components/panels/index.js +60 -0
- package/dist/components/panels/index.js.map +1 -0
- package/dist/components/panels/nivo-theme.d.ts +95 -0
- package/dist/components/panels/nivo-theme.d.ts.map +1 -0
- package/dist/components/panels/nivo-theme.js +140 -0
- package/dist/components/panels/nivo-theme.js.map +1 -0
- package/dist/components/panels/semantic-colors.d.ts +7 -0
- package/dist/components/panels/semantic-colors.d.ts.map +1 -0
- package/dist/components/panels/semantic-colors.js +100 -0
- package/dist/components/panels/semantic-colors.js.map +1 -0
- package/dist/components/ui/Button.d.ts +9 -0
- package/dist/components/ui/Button.d.ts.map +1 -0
- package/dist/components/ui/Button.js +40 -0
- package/dist/components/ui/Button.js.map +1 -0
- package/dist/components/ui/Tabs.d.ts +11 -0
- package/dist/components/ui/Tabs.d.ts.map +1 -0
- package/dist/components/ui/Tabs.js +28 -0
- package/dist/components/ui/Tabs.js.map +1 -0
- package/dist/connectors/bigquery.d.ts +26 -0
- package/dist/connectors/bigquery.d.ts.map +1 -0
- package/dist/connectors/bigquery.js +113 -0
- package/dist/connectors/bigquery.js.map +1 -0
- package/dist/connectors/index.d.ts +17 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +23 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/params.d.ts +15 -0
- package/dist/connectors/params.d.ts.map +1 -0
- package/dist/connectors/params.js +46 -0
- package/dist/connectors/params.js.map +1 -0
- package/dist/connectors/postgres.d.ts +29 -0
- package/dist/connectors/postgres.d.ts.map +1 -0
- package/dist/connectors/postgres.js +130 -0
- package/dist/connectors/postgres.js.map +1 -0
- package/dist/connectors/redshift-data.d.ts +25 -0
- package/dist/connectors/redshift-data.d.ts.map +1 -0
- package/dist/connectors/redshift-data.js +237 -0
- package/dist/connectors/redshift-data.js.map +1 -0
- package/dist/connectors/redshift.d.ts +29 -0
- package/dist/connectors/redshift.d.ts.map +1 -0
- package/dist/connectors/redshift.js +138 -0
- package/dist/connectors/redshift.js.map +1 -0
- package/dist/connectors/registry.d.ts +7 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +30 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/connectors/snowflake.d.ts +37 -0
- package/dist/connectors/snowflake.d.ts.map +1 -0
- package/dist/connectors/snowflake.js +181 -0
- package/dist/connectors/snowflake.js.map +1 -0
- package/dist/connectors/types.d.ts +41 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +15 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/connectors/url-parsers.d.ts +13 -0
- package/dist/connectors/url-parsers.d.ts.map +1 -0
- package/dist/connectors/url-parsers.js +95 -0
- package/dist/connectors/url-parsers.js.map +1 -0
- package/dist/connectors/url.d.ts +36 -0
- package/dist/connectors/url.d.ts.map +1 -0
- package/dist/connectors/url.js +139 -0
- package/dist/connectors/url.js.map +1 -0
- package/dist/filters/cascade.d.ts +13 -0
- package/dist/filters/cascade.d.ts.map +1 -0
- package/dist/filters/cascade.js +32 -0
- package/dist/filters/cascade.js.map +1 -0
- package/dist/filters/daterange.d.ts +8 -0
- package/dist/filters/daterange.d.ts.map +1 -0
- package/dist/filters/daterange.js +119 -0
- package/dist/filters/daterange.js.map +1 -0
- package/dist/filters/index.d.ts +7 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/index.js +18 -0
- package/dist/filters/index.js.map +1 -0
- package/dist/filters/resolver.d.ts +3 -0
- package/dist/filters/resolver.d.ts.map +1 -0
- package/dist/filters/resolver.js +122 -0
- package/dist/filters/resolver.js.map +1 -0
- package/dist/filters/validation.d.ts +17 -0
- package/dist/filters/validation.d.ts.map +1 -0
- package/dist/filters/validation.js +84 -0
- package/dist/filters/validation.js.map +1 -0
- package/dist/formats.d.ts +4 -0
- package/dist/formats.d.ts.map +1 -0
- package/dist/formats.js +127 -0
- package/dist/formats.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/auth-provider.d.ts +22 -0
- package/dist/interfaces/auth-provider.d.ts.map +1 -0
- package/dist/interfaces/auth-provider.js +15 -0
- package/dist/interfaces/auth-provider.js.map +1 -0
- package/dist/interfaces/dashboard-store.d.ts +17 -0
- package/dist/interfaces/dashboard-store.d.ts.map +1 -0
- package/dist/interfaces/dashboard-store.js +15 -0
- package/dist/interfaces/dashboard-store.js.map +1 -0
- package/dist/interfaces/datasource-store.d.ts +6 -0
- package/dist/interfaces/datasource-store.d.ts.map +1 -0
- package/dist/interfaces/datasource-store.js +15 -0
- package/dist/interfaces/datasource-store.js.map +1 -0
- package/dist/interfaces/index.d.ts +4 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +15 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/locale/context.d.ts +6 -0
- package/dist/locale/context.d.ts.map +1 -0
- package/dist/locale/context.js +23 -0
- package/dist/locale/context.js.map +1 -0
- package/dist/locale/index.d.ts +2 -0
- package/dist/locale/index.d.ts.map +1 -0
- package/dist/locale/index.js +15 -0
- package/dist/locale/index.js.map +1 -0
- package/dist/query/array-expansion.d.ts +5 -0
- package/dist/query/array-expansion.d.ts.map +1 -0
- package/dist/query/array-expansion.js +39 -0
- package/dist/query/array-expansion.js.map +1 -0
- package/dist/query/index.d.ts +8 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +20 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/pipeline.d.ts +27 -0
- package/dist/query/pipeline.d.ts.map +1 -0
- package/dist/query/pipeline.js +49 -0
- package/dist/query/pipeline.js.map +1 -0
- package/dist/query/strategy/http.d.ts +7 -0
- package/dist/query/strategy/http.d.ts.map +1 -0
- package/dist/query/strategy/http.js +26 -0
- package/dist/query/strategy/http.js.map +1 -0
- package/dist/query/strategy/index.d.ts +4 -0
- package/dist/query/strategy/index.d.ts.map +1 -0
- package/dist/query/strategy/index.js +32 -0
- package/dist/query/strategy/index.js.map +1 -0
- package/dist/query/strategy/sql.d.ts +7 -0
- package/dist/query/strategy/sql.d.ts.map +1 -0
- package/dist/query/strategy/sql.js +40 -0
- package/dist/query/strategy/sql.js.map +1 -0
- package/dist/query/strategy/types.d.ts +6 -0
- package/dist/query/strategy/types.d.ts.map +1 -0
- package/dist/query/strategy/types.js +15 -0
- package/dist/query/strategy/types.js.map +1 -0
- package/dist/query/template.d.ts +7 -0
- package/dist/query/template.d.ts.map +1 -0
- package/dist/query/template.js +36 -0
- package/dist/query/template.js.map +1 -0
- package/dist/schemas/config.d.ts +74 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +129 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/dashboard.d.ts +716 -0
- package/dist/schemas/dashboard.d.ts.map +1 -0
- package/dist/schemas/dashboard.js +314 -0
- package/dist/schemas/dashboard.js.map +1 -0
- package/dist/schemas/datasource.d.ts +252 -0
- package/dist/schemas/datasource.d.ts.map +1 -0
- package/dist/schemas/datasource.js +186 -0
- package/dist/schemas/datasource.js.map +1 -0
- package/dist/schemas/index.d.ts +5 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/theme.d.ts +36 -0
- package/dist/schemas/theme.d.ts.map +1 -0
- package/dist/schemas/theme.js +48 -0
- package/dist/schemas/theme.js.map +1 -0
- package/dist/startup/index.d.ts +3 -0
- package/dist/startup/index.d.ts.map +1 -0
- package/dist/startup/index.js +15 -0
- package/dist/startup/index.js.map +1 -0
- package/dist/startup/sql-lint.d.ts +13 -0
- package/dist/startup/sql-lint.d.ts.map +1 -0
- package/dist/startup/sql-lint.js +86 -0
- package/dist/startup/sql-lint.js.map +1 -0
- package/dist/theme/builtin.d.ts +5 -0
- package/dist/theme/builtin.d.ts.map +1 -0
- package/dist/theme/builtin.js +102 -0
- package/dist/theme/builtin.js.map +1 -0
- package/dist/theme/context.d.ts +7 -0
- package/dist/theme/context.d.ts.map +1 -0
- package/dist/theme/context.js +26 -0
- package/dist/theme/context.js.map +1 -0
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +16 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/loader-export.d.ts +2 -0
- package/dist/theme/loader-export.d.ts.map +1 -0
- package/dist/theme/loader-export.js +15 -0
- package/dist/theme/loader-export.js.map +1 -0
- package/dist/theme/loader.d.ts +11 -0
- package/dist/theme/loader.d.ts.map +1 -0
- package/dist/theme/loader.js +60 -0
- package/dist/theme/loader.js.map +1 -0
- package/package.json +148 -0
|
@@ -0,0 +1,50 @@
|
|
|
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 { ResponsiveRadar } from "@nivo/radar";
|
|
16
|
+
import { buildNivoTheme, getChartPalette } from "./nivo-theme";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
export function RadarChart({ data, config }) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const nivoTheme = buildNivoTheme(theme);
|
|
21
|
+
const palette = getChartPalette(theme);
|
|
22
|
+
const indexKey = config.index ?? config.x ?? "index";
|
|
23
|
+
const seriesKey = config.series;
|
|
24
|
+
// If series is specified, pivot data: each unique series value becomes a key
|
|
25
|
+
// otherwise use all numeric columns except indexKey as keys
|
|
26
|
+
let keys;
|
|
27
|
+
let chartData;
|
|
28
|
+
if (seriesKey) {
|
|
29
|
+
const seriesValues = Array.from(new Set(data.map((r) => String(r[seriesKey]))));
|
|
30
|
+
keys = seriesValues;
|
|
31
|
+
const valueKey = config.value ?? config.y ?? "value";
|
|
32
|
+
const grouped = {};
|
|
33
|
+
for (const row of data) {
|
|
34
|
+
const idx = String(row[indexKey]);
|
|
35
|
+
if (!grouped[idx])
|
|
36
|
+
grouped[idx] = { [indexKey]: idx };
|
|
37
|
+
grouped[idx][String(row[seriesKey])] = Number(row[valueKey]) || 0;
|
|
38
|
+
}
|
|
39
|
+
chartData = Object.values(grouped);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// All columns except indexKey are keys
|
|
43
|
+
if (data.length === 0)
|
|
44
|
+
return null;
|
|
45
|
+
keys = Object.keys(data[0]).filter((k) => k !== indexKey);
|
|
46
|
+
chartData = data.map((row) => ({ ...row }));
|
|
47
|
+
}
|
|
48
|
+
return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveRadar, { data: chartData, keys: keys, indexBy: indexKey, colors: palette, theme: nivoTheme, margin: { top: 40, right: 80, bottom: 40, left: 80 }, borderColor: { from: "color" }, gridLabelOffset: 24, dotSize: 8, dotColor: { theme: "background" }, dotBorderWidth: 2, fillOpacity: 0.25, blendMode: "multiply" }) }));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=RadarChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadarChart.js","sourceRoot":"","sources":["../../../src/components/panels/RadarChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadialBarChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/RadialBarChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA+C/D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 { ResponsiveRadialBar } from "@nivo/radial-bar";
|
|
16
|
+
import { buildNivoTheme, getChartPalette } from "./nivo-theme";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
export function RadialBarChart({ data, config }) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const nivoTheme = buildNivoTheme(theme);
|
|
21
|
+
const palette = getChartPalette(theme);
|
|
22
|
+
const idKey = config.id ?? config.x ?? "id";
|
|
23
|
+
const valueKey = config.value ?? config.y ?? "value";
|
|
24
|
+
const categoryKey = config.category ?? config.series;
|
|
25
|
+
let chartData;
|
|
26
|
+
if (categoryKey) {
|
|
27
|
+
const seriesMap = new Map();
|
|
28
|
+
for (const row of data) {
|
|
29
|
+
const id = String(row[idKey]);
|
|
30
|
+
if (!seriesMap.has(id))
|
|
31
|
+
seriesMap.set(id, []);
|
|
32
|
+
seriesMap
|
|
33
|
+
.get(id)
|
|
34
|
+
.push({ x: String(row[categoryKey]), y: Number(row[valueKey]) || 0 });
|
|
35
|
+
}
|
|
36
|
+
chartData = Array.from(seriesMap.entries()).map(([id, points]) => ({
|
|
37
|
+
id,
|
|
38
|
+
data: points,
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
chartData = data.map((row) => ({
|
|
43
|
+
id: String(row[idKey]),
|
|
44
|
+
data: [{ x: String(row[idKey]), y: Number(row[valueKey]) || 0 }],
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveRadialBar, { data: chartData, colors: palette, theme: nivoTheme, margin: { top: 16, right: 80, bottom: 16, left: 80 }, innerRadius: 0.3, padding: 0.4, cornerRadius: 2, enableCircularGrid: true, enableTracks: true, tracksColor: "#1e293b" }) }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=RadialBarChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadialBarChart.js","sourceRoot":"","sources":["../../../src/components/panels/RadialBarChart.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,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC9D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAW,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;IACpD,MAAM,QAAQ,GAAW,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IAC7D,MAAM,WAAW,GAAuB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC;IAEzE,IAAI,SAA6D,CAAC;IAElE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsC,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,SAAS;iBACN,GAAG,CAAC,EAAE,CAAE;iBACR,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,EAAE;YACF,IAAI,EAAE,MAAM;SACb,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAC5B,KAAC,mBAAmB,IAClB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EACpD,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,GAAG,EACZ,YAAY,EAAE,CAAC,EACf,kBAAkB,QAClB,YAAY,QACZ,WAAW,EAAC,SAAS,GACrB,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SankeyChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/SankeyChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CAuC5D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { ResponsiveSankey } from "@nivo/sankey";
|
|
16
|
+
import { buildNivoTheme, getChartPalette } from "./nivo-theme";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
export function SankeyChart({ data, config }) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const nivoTheme = buildNivoTheme(theme);
|
|
21
|
+
const palette = getChartPalette(theme);
|
|
22
|
+
const sourceKey = config.source ?? "source";
|
|
23
|
+
const targetKey = config.target ?? "target";
|
|
24
|
+
const valueKey = config.value ?? "value";
|
|
25
|
+
// Build nodes (unique node ids) and links
|
|
26
|
+
const nodeSet = new Set();
|
|
27
|
+
for (const row of data) {
|
|
28
|
+
nodeSet.add(String(row[sourceKey]));
|
|
29
|
+
nodeSet.add(String(row[targetKey]));
|
|
30
|
+
}
|
|
31
|
+
const nodes = Array.from(nodeSet).map((id) => ({ id }));
|
|
32
|
+
const links = data.map((row) => ({
|
|
33
|
+
source: String(row[sourceKey]),
|
|
34
|
+
target: String(row[targetKey]),
|
|
35
|
+
value: Number(row[valueKey]) || 0,
|
|
36
|
+
}));
|
|
37
|
+
return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveSankey, { data: { nodes, links }, colors: palette, theme: nivoTheme, margin: { top: 16, right: 80, bottom: 16, left: 80 }, nodeOpacity: 1, nodeThickness: 18, nodeSpacing: 24, nodeBorderRadius: 3, linkOpacity: 0.5, enableLinkGradient: true, label: "id" }) }));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=SankeyChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SankeyChart.js","sourceRoot":"","sources":["../../../src/components/panels/SankeyChart.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,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC3D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAW,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACpD,MAAM,SAAS,GAAW,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACpD,MAAM,QAAQ,GAAW,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC;IAEjD,0CAA0C;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;KAClC,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAC5B,KAAC,gBAAgB,IACf,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EACpD,WAAW,EAAE,CAAC,EACd,aAAa,EAAE,EAAE,EACjB,WAAW,EAAE,EAAE,EACf,gBAAgB,EAAE,CAAC,EACnB,WAAW,EAAE,GAAG,EAChB,kBAAkB,QAClB,KAAK,EAAC,IAAI,GACV,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScatterChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/ScatterChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CAkD7D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { ResponsiveScatterPlot } from "@nivo/scatterplot";
|
|
16
|
+
import { buildNivoTheme, getChartPalette } from "./nivo-theme";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
export function ScatterChart({ data, config }) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const nivoTheme = buildNivoTheme(theme);
|
|
21
|
+
const palette = getChartPalette(theme);
|
|
22
|
+
const xKey = config.x ?? "x";
|
|
23
|
+
const yKey = config.y ?? "y";
|
|
24
|
+
const seriesKey = config.series;
|
|
25
|
+
let chartData;
|
|
26
|
+
if (seriesKey) {
|
|
27
|
+
const seriesMap = new Map();
|
|
28
|
+
for (const row of data) {
|
|
29
|
+
const id = String(row[seriesKey]);
|
|
30
|
+
if (!seriesMap.has(id))
|
|
31
|
+
seriesMap.set(id, []);
|
|
32
|
+
seriesMap
|
|
33
|
+
.get(id)
|
|
34
|
+
.push({ x: Number(row[xKey]) || 0, y: Number(row[yKey]) || 0 });
|
|
35
|
+
}
|
|
36
|
+
chartData = Array.from(seriesMap.entries()).map(([id, points]) => ({
|
|
37
|
+
id,
|
|
38
|
+
data: points,
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
chartData = [
|
|
43
|
+
{
|
|
44
|
+
id: yKey,
|
|
45
|
+
data: data.map((row) => ({
|
|
46
|
+
x: Number(row[xKey]) || 0,
|
|
47
|
+
y: Number(row[yKey]) || 0,
|
|
48
|
+
})),
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveScatterPlot, { data: chartData, colors: palette, theme: nivoTheme, margin: { top: 16, right: 16, bottom: 48, left: 56 }, axisBottom: { tickSize: 4, tickPadding: 4 }, axisLeft: { tickSize: 4, tickPadding: 4 }, nodeSize: 8, useMesh: false }) }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ScatterChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScatterChart.js","sourceRoot":"","sources":["../../../src/components/panels/ScatterChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface StatPanelProps {
|
|
2
|
+
panel: Record<string, unknown>;
|
|
3
|
+
data: Record<string, unknown>;
|
|
4
|
+
comparisonData: Record<string, unknown> | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function StatPanel({ panel, data, comparisonData }: StatPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=StatPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatPanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/StatPanel.tsx"],"names":[],"mappings":"AAmBA,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAChD;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,2CAoDxE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } 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 { TrendingUp, TrendingDown } from "lucide-react";
|
|
16
|
+
import { formatValue } from "../../formats";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
import { useLocale } from "../../locale/context";
|
|
19
|
+
export function StatPanel({ panel, data, comparisonData }) {
|
|
20
|
+
const theme = useTheme();
|
|
21
|
+
const locale = useLocale();
|
|
22
|
+
const stat = panel.stat;
|
|
23
|
+
const valueKey = stat?.value ?? "value";
|
|
24
|
+
const format = stat?.format ?? "number";
|
|
25
|
+
const rows = data.rows;
|
|
26
|
+
const currentValue = rows[0]?.[valueKey];
|
|
27
|
+
const formattedValue = formatValue(currentValue, format, locale);
|
|
28
|
+
let delta = null;
|
|
29
|
+
const compRows = comparisonData?.rows;
|
|
30
|
+
if (compRows?.[0]) {
|
|
31
|
+
const prevValue = compRows[0][valueKey];
|
|
32
|
+
if (prevValue && prevValue !== 0) {
|
|
33
|
+
delta =
|
|
34
|
+
((Number(currentValue) - Number(prevValue)) / Number(prevValue)) * 100;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return (_jsxs("div", { className: "h-full flex flex-col justify-center", children: [delta !== null && (_jsxs("div", { className: "absolute top-4 right-5 flex items-center gap-1", children: [delta >= 0 ? (_jsx(TrendingUp, { className: `w-3.5 h-3.5 ${theme.status.positive}` })) : (_jsx(TrendingDown, { className: `w-3.5 h-3.5 ${theme.status.negative}` })), _jsxs("span", { className: `text-xs font-semibold ${delta >= 0 ? theme.status.positive : theme.status.negative}`, children: [delta >= 0 ? "+" : "", delta.toFixed(1), "%"] }), stat?.comparison?.label !=
|
|
38
|
+
null ? (_jsx("span", { className: `${theme.typography.muted} text-xs`, children: String(stat.comparison.label) })) : null] })), _jsx("span", { className: `${theme.typography.value} text-3xl! font-bold! tabular-nums`, children: formattedValue })] }));
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=StatPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatPanel.js","sourceRoot":"","sources":["../../../src/components/panels/StatPanel.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,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQjD,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAkB;IACvE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;IAC/D,MAAM,QAAQ,GAAI,IAAI,EAAE,KAAgB,IAAI,OAAO,CAAC;IACpD,MAAM,MAAM,GAAI,IAAI,EAAE,MAAiB,IAAI,QAAQ,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAiC,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,cAAc,EAAE,IAEpB,CAAC;IACd,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACjC,KAAK;gBACH,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aACjD,KAAK,KAAK,IAAI,IAAI,CACjB,eAAK,SAAS,EAAC,gDAAgD,aAC5D,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CACZ,KAAC,UAAU,IAAC,SAAS,EAAE,eAAe,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAI,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,SAAS,EAAE,eAAe,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAI,CACpE,EACD,gBACE,SAAS,EAAE,yBAAyB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,aAE/F,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACrB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SACZ,EACL,IAAI,EAAE,UAAkD,EAAE,KAAK;wBACjE,IAAI,CAAC,CAAC,CAAC,CACL,eAAM,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,YACjD,MAAM,CAAE,IAAK,CAAC,UAAsC,CAAC,KAAK,CAAC,GACvD,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,EACD,eACE,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,oCAAoC,YAEvE,cAAc,GACV,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/StreamChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,kDAoD5D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { ResponsiveStream } from "@nivo/stream";
|
|
16
|
+
import { buildNivoTheme, getChartPalette } from "./nivo-theme";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
export function StreamChart({ data, config }) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const nivoTheme = buildNivoTheme(theme);
|
|
21
|
+
const palette = getChartPalette(theme);
|
|
22
|
+
const xKey = config.x ?? "x";
|
|
23
|
+
const seriesKey = config.series;
|
|
24
|
+
const valueKey = config.value ?? config.y ?? "value";
|
|
25
|
+
// Stream needs: array of objects where each key is a stream id
|
|
26
|
+
// Each element is one time slice
|
|
27
|
+
let keys;
|
|
28
|
+
let chartData;
|
|
29
|
+
if (seriesKey) {
|
|
30
|
+
keys = Array.from(new Set(data.map((r) => String(r[seriesKey]))));
|
|
31
|
+
const grouped = new Map();
|
|
32
|
+
for (const row of data) {
|
|
33
|
+
const x = String(row[xKey]);
|
|
34
|
+
if (!grouped.has(x))
|
|
35
|
+
grouped.set(x, {});
|
|
36
|
+
grouped.get(x)[String(row[seriesKey])] = Number(row[valueKey]) || 0;
|
|
37
|
+
}
|
|
38
|
+
chartData = Array.from(grouped.values());
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// All numeric columns except xKey are streams
|
|
42
|
+
if (data.length === 0)
|
|
43
|
+
return null;
|
|
44
|
+
keys = Object.keys(data[0]).filter((k) => k !== xKey && typeof data[0][k] === "number");
|
|
45
|
+
chartData = data.map((row) => {
|
|
46
|
+
const entry = {};
|
|
47
|
+
for (const k of keys)
|
|
48
|
+
entry[k] = Number(row[k]) || 0;
|
|
49
|
+
return entry;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveStream, { data: chartData, keys: keys, colors: palette, theme: nivoTheme, margin: { top: 16, right: 16, bottom: 48, left: 56 }, axisBottom: { tickSize: 4, tickPadding: 4, tickRotation: -30 }, axisLeft: { tickSize: 4, tickPadding: 4 }, offsetType: "wiggle", fillOpacity: 0.85, borderColor: { theme: "background" } }) }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=StreamChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamChart.js","sourceRoot":"","sources":["../../../src/components/panels/StreamChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SunburstChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/SunburstChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA6D9D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 { ResponsiveSunburst } from "@nivo/sunburst";
|
|
16
|
+
import { buildNivoTheme, getChartPalette } from "./nivo-theme";
|
|
17
|
+
import { useTheme } from "../../theme/context";
|
|
18
|
+
export function SunburstChart({ data, config }) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const nivoTheme = buildNivoTheme(theme);
|
|
21
|
+
const palette = getChartPalette(theme);
|
|
22
|
+
const idKey = config.id ?? config.x ?? "id";
|
|
23
|
+
const valueKey = config.value ?? config.y ?? "value";
|
|
24
|
+
const parentKey = config.parent;
|
|
25
|
+
let root;
|
|
26
|
+
if (parentKey) {
|
|
27
|
+
const nodeMap = new Map();
|
|
28
|
+
for (const row of data) {
|
|
29
|
+
const id = String(row[idKey]);
|
|
30
|
+
nodeMap.set(id, {
|
|
31
|
+
name: id,
|
|
32
|
+
value: Number(row[valueKey]) || 0,
|
|
33
|
+
children: [],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const roots = [];
|
|
37
|
+
for (const row of data) {
|
|
38
|
+
const id = String(row[idKey]);
|
|
39
|
+
const parent = row[parentKey] ? String(row[parentKey]) : null;
|
|
40
|
+
if (parent && nodeMap.has(parent)) {
|
|
41
|
+
nodeMap.get(parent).children.push(nodeMap.get(id));
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
roots.push(nodeMap.get(id));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
root = { name: "root", children: roots };
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
root = {
|
|
51
|
+
name: "root",
|
|
52
|
+
children: data.map((row) => ({
|
|
53
|
+
name: String(row[idKey]),
|
|
54
|
+
value: Number(row[valueKey]) || 0,
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveSunburst, { data: root, id: "name", value: "value", colors: palette, theme: nivoTheme, margin: { top: 8, right: 8, bottom: 8, left: 8 }, cornerRadius: 2, borderWidth: 1, borderColor: { theme: "background" }, childColor: { from: "color", modifiers: [["brighter", 0.1]] }, enableArcLabels: true, arcLabelsSkipAngle: 10, arcLabelsTextColor: { from: "color", modifiers: [["darker", 1.4]] } }) }));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=SunburstChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SunburstChart.js","sourceRoot":"","sources":["../../../src/components/panels/SunburstChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TablePanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/TablePanel.tsx"],"names":[],"mappings":"AAiDA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,eAAe,2CAoH1D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } 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 } from "react";
|
|
16
|
+
import { ChevronUp, ChevronDown } from "lucide-react";
|
|
17
|
+
import { formatValue } from "../../formats";
|
|
18
|
+
import { useTheme } from "../../theme/context";
|
|
19
|
+
import { useLocale } from "../../locale/context";
|
|
20
|
+
function formatCell(value, format, locale = "en-US") {
|
|
21
|
+
if (value === null || value === undefined)
|
|
22
|
+
return "—";
|
|
23
|
+
if (format)
|
|
24
|
+
return formatValue(value, format, locale);
|
|
25
|
+
const str = String(value);
|
|
26
|
+
// Auto-detect ISO date strings and format them
|
|
27
|
+
if (/^\d{4}-\d{2}-\d{2}T/.test(str)) {
|
|
28
|
+
const d = new Date(str);
|
|
29
|
+
if (!isNaN(d.getTime())) {
|
|
30
|
+
return (d.toLocaleDateString("en-US", {
|
|
31
|
+
year: "numeric",
|
|
32
|
+
month: "short",
|
|
33
|
+
day: "numeric",
|
|
34
|
+
}) +
|
|
35
|
+
" " +
|
|
36
|
+
d.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit" }));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return str;
|
|
40
|
+
}
|
|
41
|
+
export function TablePanel({ panel, data }) {
|
|
42
|
+
const theme = useTheme();
|
|
43
|
+
const locale = useLocale();
|
|
44
|
+
const table = panel.table;
|
|
45
|
+
const dataColumns = data.columns;
|
|
46
|
+
const columns = table?.columns ??
|
|
47
|
+
dataColumns.map((c) => ({ key: c.name, label: c.name }));
|
|
48
|
+
const pageSize = table?.page_size ?? 25;
|
|
49
|
+
const [sortKey, setSortKey] = useState(table?.sort_by ?? columns[0]?.key);
|
|
50
|
+
const [sortDir, setSortDir] = useState(table?.sort_dir ?? "DESC");
|
|
51
|
+
const [page, setPage] = useState(0);
|
|
52
|
+
function toggleSort(key) {
|
|
53
|
+
if (sortKey === key) {
|
|
54
|
+
setSortDir((d) => (d === "ASC" ? "DESC" : "ASC"));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
setSortKey(key);
|
|
58
|
+
setSortDir("DESC");
|
|
59
|
+
}
|
|
60
|
+
setPage(0);
|
|
61
|
+
}
|
|
62
|
+
const rows = data.rows;
|
|
63
|
+
const sorted = [...rows].sort((a, b) => {
|
|
64
|
+
const aVal = a[sortKey];
|
|
65
|
+
const bVal = b[sortKey];
|
|
66
|
+
// pg returns bigint/numeric columns as strings; coerce to number when possible
|
|
67
|
+
const aNum = Number(aVal);
|
|
68
|
+
const bNum = Number(bVal);
|
|
69
|
+
const cmp = !isNaN(aNum) && !isNaN(bNum)
|
|
70
|
+
? aNum < bNum ? -1 : aNum > bNum ? 1 : 0
|
|
71
|
+
: aVal < bVal ? -1 : aVal > bVal ? 1 : 0;
|
|
72
|
+
return sortDir === "ASC" ? cmp : -cmp;
|
|
73
|
+
});
|
|
74
|
+
const paged = sorted.slice(page * pageSize, (page + 1) * pageSize);
|
|
75
|
+
const totalPages = Math.ceil(sorted.length / pageSize);
|
|
76
|
+
return (_jsxs("div", { className: "overflow-x-auto", children: [_jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsx("tr", { className: `border-b ${theme.surfaces.panelBorder}`, children: columns.map((col) => (_jsx("th", { className: `py-2 px-3 ${theme.typography.label} uppercase tracking-wide font-medium cursor-pointer select-none hover:opacity-80 transition ${col.align === "right" ? "text-right" : "text-left"}`, onClick: () => toggleSort(col.key), children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [col.label, sortKey === col.key &&
|
|
77
|
+
(sortDir === "ASC" ? (_jsx(ChevronUp, { className: "w-3 h-3" })) : (_jsx(ChevronDown, { className: "w-3 h-3" })))] }) }, col.key))) }) }), _jsx("tbody", { children: paged.map((row, i) => (_jsx("tr", { className: `border-b ${theme.surfaces.panelBorder} opacity-90 hover:opacity-100`, children: columns.map((col) => (_jsx("td", { className: `py-2.5 px-3 ${theme.filters.text} ${col.align === "right" ? "text-right tabular-nums" : ""}`, children: formatCell(row[col.key], col.format, locale) }, col.key))) }, i))) })] }), sorted.length > pageSize && (_jsxs("div", { className: `mt-3 flex justify-between items-center ${theme.typography.label} uppercase tracking-wide`, children: [_jsxs("span", { children: ["Showing ", page * pageSize + 1, "-", Math.min((page + 1) * pageSize, sorted.length), " of ", sorted.length, " ", "results"] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { disabled: page === 0, onClick: () => setPage((p) => p - 1), className: "disabled:opacity-30 hover:opacity-80 transition", children: "\u2190 Prev" }), _jsx("button", { disabled: page >= totalPages - 1, onClick: () => setPage((p) => p + 1), className: "disabled:opacity-30 hover:opacity-80 transition", children: "Next \u2192" })] })] }))] }));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=TablePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TablePanel.js","sourceRoot":"","sources":["../../../src/components/panels/TablePanel.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,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,SAAS,UAAU,CAAC,KAAc,EAAE,MAAe,EAAE,MAAM,GAAG,OAAO;IACnE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,MAAM;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,+CAA+C;IAC/C,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,CACL,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBAC5B,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO;gBACd,GAAG,EAAE,SAAS;aACf,CAAC;gBACF,GAAG;gBACH,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAcD,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAmB;IACzD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAA4C,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,OAA6B,CAAC;IACvD,MAAM,OAAO,GACV,KAAK,EAAE,OAAoB;QAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAI,KAAK,EAAE,SAAoB,IAAI,EAAE,CAAC;IAEpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACnC,KAAK,EAAE,OAAkB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAC9C,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACnC,KAAK,EAAE,QAA2B,IAAI,MAAM,CAC9C,CAAC;IACF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpC,SAAS,UAAU,CAAC,GAAW;QAC7B,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,CAAC;YAChB,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAiC,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAoB,CAAC;QAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAoB,CAAC;QAC3C,+EAA+E;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,GAAG,GACP,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAEvD,OAAO,CACL,eAAK,SAAS,EAAC,iBAAiB,aAC9B,iBAAO,SAAS,EAAC,gBAAgB,aAC/B,0BACE,aAAI,SAAS,EAAE,YAAY,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,YACpD,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,aAEE,SAAS,EAAE,aAAa,KAAK,CAAC,UAAU,CAAC,KAAK,+FAA+F,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,EACjM,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,YAElC,gBAAM,SAAS,EAAC,gCAAgC,aAC7C,GAAG,CAAC,KAAK,EACT,OAAO,KAAK,GAAG,CAAC,GAAG;4CAClB,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CACnB,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,GAAG,CAClC,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,CACpC,CAAC,IACC,IAZF,GAAG,CAAC,GAAG,CAaT,CACN,CAAC,GACC,GACC,EACR,0BACG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,aAEE,SAAS,EAAE,YAAY,KAAK,CAAC,QAAQ,CAAC,WAAW,+BAA+B,YAE/E,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,aAEE,SAAS,EAAE,eAAe,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,YAEvG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAHxC,GAAG,CAAC,GAAG,CAIT,CACN,CAAC,IAVG,CAAC,CAWH,CACN,CAAC,GACI,IACF,EACP,MAAM,CAAC,MAAM,GAAG,QAAQ,IAAI,CAC3B,eACE,SAAS,EAAE,0CAA0C,KAAK,CAAC,UAAU,CAAC,KAAK,0BAA0B,aAErG,uCACW,IAAI,GAAG,QAAQ,GAAG,CAAC,OAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,UAAM,MAAM,CAAC,MAAM,EAAE,GAAG,eAElE,EACP,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,QAAQ,EAAE,IAAI,KAAK,CAAC,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EACpC,SAAS,EAAC,iDAAiD,4BAGpD,EACT,iBACE,QAAQ,EAAE,IAAI,IAAI,UAAU,GAAG,CAAC,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EACpC,SAAS,EAAC,iDAAiD,4BAGpD,IACL,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreemapChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/TreemapChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA0D7D"}
|