@burdenoff/microfe-bigconsole 2026.1008.12 → 2026.1008.14
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/README.md +3 -0
- package/dist/bigconsole/AdminRoot.d.ts +0 -1
- package/dist/bigconsole/AdminRoot.js +0 -2
- package/dist/bigconsole/AdminRoutes.d.ts +0 -1
- package/dist/bigconsole/AdminRoutes.js +0 -2
- package/dist/bigconsole/BigConsoleRoot.d.ts +0 -1
- package/dist/bigconsole/BigConsoleRoot.js +0 -2
- package/dist/bigconsole/BigConsoleRoutes.d.ts +0 -1
- package/dist/bigconsole/BigConsoleRoutes.js +0 -2
- package/dist/bigconsole/assistant/assistantApi.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantApi.js +0 -2
- package/dist/bigconsole/assistant/assistantProduct.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantProduct.js +0 -2
- package/dist/bigconsole/assistant/assistantPrompt.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantPrompt.js +0 -2
- package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantRunPersistence.js +0 -2
- package/dist/bigconsole/assistant/assistantRunStore.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantRunStore.js +0 -2
- package/dist/bigconsole/assistant/assistantRuntime.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantRuntime.js +0 -2
- package/dist/bigconsole/assistant/attachmentExtract.d.ts +0 -1
- package/dist/bigconsole/assistant/attachmentExtract.js +0 -2
- package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +0 -1
- package/dist/bigconsole/assistant/conversationHistoryApi.js +0 -2
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +0 -1
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +0 -2
- package/dist/bigconsole/assistant/displayCopy.d.ts +0 -1
- package/dist/bigconsole/assistant/index.d.ts +0 -1
- package/dist/bigconsole/assistant/modes.d.ts +0 -1
- package/dist/bigconsole/assistant/modes.js +0 -2
- package/dist/bigconsole/assistant/pageContext.d.ts +0 -1
- package/dist/bigconsole/assistant/pageContext.js +0 -2
- package/dist/bigconsole/assistant/previewController.d.ts +0 -1
- package/dist/bigconsole/assistant/previewController.js +0 -2
- package/dist/bigconsole/assistant/previewMutationResult.d.ts +0 -1
- package/dist/bigconsole/assistant/previewMutationResult.js +0 -2
- package/dist/bigconsole/assistant/previewRunAction.d.ts +0 -1
- package/dist/bigconsole/assistant/previewRunAction.js +0 -2
- package/dist/bigconsole/assistant/product.d.ts +0 -1
- package/dist/bigconsole/assistant/product.js +0 -2
- package/dist/bigconsole/assistant/recordAdapters.d.ts +0 -1
- package/dist/bigconsole/assistant/recordAdapters.js +0 -2
- package/dist/bigconsole/assistant/types.d.ts +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +0 -2
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +0 -1
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +0 -2
- package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +0 -1
- package/dist/bigconsole/components/DrilldownDashboardRenderer.js +0 -2
- package/dist/bigconsole/components/DrilldownModal.d.ts +0 -1
- package/dist/bigconsole/components/DrilldownModal.js +0 -2
- package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +0 -1
- package/dist/bigconsole/components/builder/BuilderCanvas.js +0 -2
- package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +0 -1
- package/dist/bigconsole/components/builder/BuilderTopbar.js +0 -2
- package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +0 -1
- package/dist/bigconsole/components/builder/DashboardEditorShell.js +0 -2
- package/dist/bigconsole/components/builder/WidgetInspector.d.ts +0 -1
- package/dist/bigconsole/components/builder/WidgetInspector.js +0 -2
- package/dist/bigconsole/components/builder/index.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/GeneralSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/LayoutSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/index.d.ts +0 -1
- package/dist/bigconsole/components/common/Section.d.ts +0 -1
- package/dist/bigconsole/components/common/Section.js +0 -2
- package/dist/bigconsole/components/common/index.d.ts +0 -1
- package/dist/bigconsole/components/common/sectionStyles.d.ts +0 -1
- package/dist/bigconsole/components/common/sectionStyles.js +0 -2
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardGrid.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +0 -2
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +0 -2
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +0 -2
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +0 -2
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +0 -2
- package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +0 -2
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +0 -2
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +0 -2
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +0 -2
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +0 -2
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +0 -2
- package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +0 -2
- package/dist/bigconsole/components/dashboard/index.d.ts +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +0 -2
- package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +0 -1
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js +0 -2
- package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +0 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +0 -2
- package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +0 -2
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +0 -2
- package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +0 -2
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +0 -2
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +0 -2
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +0 -2
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +0 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +0 -2
- package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +0 -1
- package/dist/bigconsole/components/datasink/SetupStateBadge.js +0 -2
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +0 -2
- package/dist/bigconsole/components/datasink/index.d.ts +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +0 -2
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +0 -1
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +0 -2
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +0 -1
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +0 -2
- package/dist/bigconsole/components/embed/drilldown.d.ts +0 -1
- package/dist/bigconsole/components/embed/drilldown.js +0 -2
- package/dist/bigconsole/components/embed/index.d.ts +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.d.ts +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.js +0 -2
- package/dist/bigconsole/components/embed/types.d.ts +0 -1
- package/dist/bigconsole/components/embed/types.js +0 -2
- package/dist/bigconsole/components/embed/validate.d.ts +0 -1
- package/dist/bigconsole/components/embed/validate.js +0 -2
- package/dist/bigconsole/components/embed/widgetShim.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgetShim.js +0 -2
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +0 -2
- package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/FormEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/ListEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/TableEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/TextEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/shared.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/shared.js +0 -2
- package/dist/bigconsole/components/overview/DashboardGuide.d.ts +0 -1
- package/dist/bigconsole/components/overview/DashboardGuide.js +0 -2
- package/dist/bigconsole/components/overview/DataHealthCard.d.ts +0 -1
- package/dist/bigconsole/components/overview/DataHealthCard.js +0 -2
- package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +0 -1
- package/dist/bigconsole/components/overview/OverviewQuickActions.js +0 -2
- package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +0 -1
- package/dist/bigconsole/components/overview/OverviewStatCard.js +0 -2
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +0 -1
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +0 -2
- package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +0 -1
- package/dist/bigconsole/components/overview/dashboardGuideSteps.js +0 -2
- package/dist/bigconsole/components/overview/index.d.ts +0 -1
- package/dist/bigconsole/components/overview/overviewModel.d.ts +0 -1
- package/dist/bigconsole/components/overview/overviewModel.js +0 -2
- package/dist/bigconsole/components/overview/useOverviewData.d.ts +0 -1
- package/dist/bigconsole/components/overview/useOverviewData.js +0 -2
- package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +0 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.js +0 -2
- package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +0 -1
- package/dist/bigconsole/components/parser/ExportParserDialog.js +0 -2
- package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +0 -1
- package/dist/bigconsole/components/parser/ExpressionEditor.js +0 -2
- package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +0 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.js +0 -2
- package/dist/bigconsole/components/parser/ParserBuilder.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserCard.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserCard.js +0 -2
- package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.js +0 -2
- package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserStatusBadge.js +0 -2
- package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserTypeBadge.js +0 -2
- package/dist/bigconsole/components/parser/TestPanel.d.ts +0 -1
- package/dist/bigconsole/components/parser/index.d.ts +0 -1
- package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.js +0 -2
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +0 -2
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +0 -2
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +0 -2
- package/dist/bigconsole/components/pipeline/index.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -2
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +0 -2
- package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +0 -2
- package/dist/bigconsole/components/preview/parserPreview.d.ts +0 -1
- package/dist/bigconsole/components/preview/parserPreview.js +0 -2
- package/dist/bigconsole/components/preview/previewShared.d.ts +0 -1
- package/dist/bigconsole/components/preview/previewShared.js +0 -2
- package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +0 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +0 -2
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +0 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +0 -2
- package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +0 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +505 -506
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetHeader.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.js +0 -2
- package/dist/bigconsole/components/widgets/actionConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/actionConfig.js +0 -2
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +0 -2
- package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.js +0 -2
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +0 -2
- package/dist/bigconsole/components/widgets/calendar/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +0 -2
- package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartLegend.js +0 -2
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +0 -2
- package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartWidget.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +0 -2
- package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/CustomWidget.js +0 -2
- package/dist/bigconsole/components/widgets/custom/config.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/config.js +0 -2
- package/dist/bigconsole/components/widgets/custom/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.js +0 -2
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +0 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +0 -2
- package/dist/bigconsole/components/widgets/event-logs/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.js +0 -2
- package/dist/bigconsole/components/widgets/form/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +0 -2
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +0 -2
- package/dist/bigconsole/components/widgets/heatmap/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +0 -2
- package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.js +0 -2
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +0 -2
- package/dist/bigconsole/components/widgets/kanban/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.js +0 -2
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +0 -2
- package/dist/bigconsole/components/widgets/kpi/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +0 -2
- package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.js +0 -2
- package/dist/bigconsole/components/widgets/list/ListItem.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListItem.js +0 -2
- package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListWidget.js +0 -2
- package/dist/bigconsole/components/widgets/list/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +0 -2
- package/dist/bigconsole/components/widgets/map-widget/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +0 -2
- package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.js +0 -2
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +0 -2
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +0 -2
- package/dist/bigconsole/components/widgets/progress/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +0 -2
- package/dist/bigconsole/components/widgets/retention/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.js +0 -2
- package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/ErrorState.js +0 -2
- package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/LoadingState.js +0 -2
- package/dist/bigconsole/components/widgets/states/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.js +0 -2
- package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.js +0 -2
- package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableHeader.js +0 -2
- package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TablePagination.js +0 -2
- package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableWidget.js +0 -2
- package/dist/bigconsole/components/widgets/table/cellLink.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/cellLink.js +0 -2
- package/dist/bigconsole/components/widgets/table/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +0 -2
- package/dist/bigconsole/components/widgets/text-widget/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.js +0 -2
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +0 -2
- package/dist/bigconsole/components/widgets/timeline/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +0 -2
- package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/inferFields.js +0 -2
- package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/targetProgress.js +0 -2
- package/dist/bigconsole/components/widgets/utils/translate.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/translate.js +0 -2
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +0 -2
- package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +0 -2
- package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +0 -1
- package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +0 -2
- package/dist/bigconsole/components/workflow/index.d.ts +0 -1
- package/dist/bigconsole/constants/backendErrors.d.ts +0 -1
- package/dist/bigconsole/constants/backendErrors.js +0 -2
- package/dist/bigconsole/constants.d.ts +0 -1
- package/dist/bigconsole/constants.js +0 -2
- package/dist/bigconsole/context/BigConsoleContext.d.ts +0 -1
- package/dist/bigconsole/context/BigConsoleContext.js +0 -2
- package/dist/bigconsole/context/index.d.ts +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.d.ts +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.js +0 -2
- package/dist/bigconsole/contexts/NavigationContext.d.ts +0 -1
- package/dist/bigconsole/contexts/NavigationContext.js +0 -2
- package/dist/bigconsole/contexts/index.d.ts +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +0 -2
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +0 -2
- package/dist/bigconsole/customWidget/index.d.ts +0 -1
- package/dist/bigconsole/customWidget/proposalContract.d.ts +0 -1
- package/dist/bigconsole/customWidget/proposalContract.js +0 -2
- package/dist/bigconsole/customWidget/proposalSource.d.ts +0 -1
- package/dist/bigconsole/customWidget/proposalSource.js +0 -2
- package/dist/bigconsole/graphql/apollo-compat.d.ts +0 -1
- package/dist/bigconsole/graphql/storeTemplates.d.ts +0 -1
- package/dist/bigconsole/graphql/storeTemplates.js +0 -2
- package/dist/bigconsole/hooks/index.d.ts +0 -1
- package/dist/bigconsole/hooks/useActivePage.d.ts +0 -1
- package/dist/bigconsole/hooks/useActivePage.js +0 -2
- package/dist/bigconsole/hooks/useAutoRefresh.d.ts +0 -1
- package/dist/bigconsole/hooks/useAutoRefresh.js +0 -2
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +0 -1
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +0 -2
- package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +0 -1
- package/dist/bigconsole/hooks/useBigConsoleSettings.js +0 -2
- package/dist/bigconsole/hooks/useCrossFilter.d.ts +0 -1
- package/dist/bigconsole/hooks/useCrossFilter.js +0 -2
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +0 -2
- package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardImageExport.js +0 -2
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -2
- package/dist/bigconsole/hooks/useDashboardOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardOperations.js +0 -2
- package/dist/bigconsole/hooks/useDashboardSharing.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardSharing.js +0 -2
- package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.js +0 -2
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.js +0 -2
- package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useDataSinkOperations.js +0 -2
- package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +0 -1
- package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -2
- package/dist/bigconsole/hooks/useDrilldown.d.ts +0 -1
- package/dist/bigconsole/hooks/useDrilldown.js +0 -2
- package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useDrilldownOperations.js +0 -2
- package/dist/bigconsole/hooks/useEventLogs.d.ts +0 -1
- package/dist/bigconsole/hooks/useEventLogs.js +0 -2
- package/dist/bigconsole/hooks/useEventWebhooks.d.ts +0 -1
- package/dist/bigconsole/hooks/useEventWebhooks.js +0 -2
- package/dist/bigconsole/hooks/useExportDashboard.d.ts +0 -1
- package/dist/bigconsole/hooks/useExportDashboard.js +0 -2
- package/dist/bigconsole/hooks/useExportDataSink.d.ts +0 -1
- package/dist/bigconsole/hooks/useExportDataSink.js +0 -2
- package/dist/bigconsole/hooks/useExportParser.d.ts +0 -1
- package/dist/bigconsole/hooks/useExportParser.js +0 -2
- package/dist/bigconsole/hooks/useFilterPresets.d.ts +0 -1
- package/dist/bigconsole/hooks/useFilterPresets.js +0 -2
- package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +0 -1
- package/dist/bigconsole/hooks/useFilterUrlSync.js +0 -2
- package/dist/bigconsole/hooks/useGlobalFilters.d.ts +0 -1
- package/dist/bigconsole/hooks/useGlobalFilters.js +0 -2
- package/dist/bigconsole/hooks/useImportDashboard.d.ts +0 -1
- package/dist/bigconsole/hooks/useImportDashboard.js +0 -2
- package/dist/bigconsole/hooks/useImportDataSink.d.ts +0 -1
- package/dist/bigconsole/hooks/useImportDataSink.js +0 -2
- package/dist/bigconsole/hooks/useImportParser.d.ts +0 -1
- package/dist/bigconsole/hooks/useImportParser.js +0 -2
- package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +0 -1
- package/dist/bigconsole/hooks/useInstalledWidgets.js +0 -2
- package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +0 -1
- package/dist/bigconsole/hooks/useModalFocusTrap.js +0 -2
- package/dist/bigconsole/hooks/usePageOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/usePageOperations.js +0 -2
- package/dist/bigconsole/hooks/useParserOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useParserOperations.js +0 -2
- package/dist/bigconsole/hooks/usePipelineOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/usePipelineOperations.js +0 -2
- package/dist/bigconsole/hooks/useShareRecipients.d.ts +0 -1
- package/dist/bigconsole/hooks/useShareRecipients.js +0 -2
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +0 -1
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +0 -2
- package/dist/bigconsole/hooks/useWidgetActions.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetActions.js +0 -2
- package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetCatalog.js +0 -2
- package/dist/bigconsole/hooks/useWidgetComments.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetComments.js +0 -2
- package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetConfigPersist.js +0 -2
- package/dist/bigconsole/hooks/useWidgetData.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetData.js +0 -2
- package/dist/bigconsole/hooks/useWidgetEvents.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetEvents.js +0 -2
- package/dist/bigconsole/hooks/useWidgetExport.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetExport.js +0 -2
- package/dist/bigconsole/hooks/useWidgetOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetOperations.js +0 -2
- package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useWorkflowOperations.js +0 -2
- package/dist/bigconsole/index.d.ts +0 -1
- package/dist/bigconsole/modules/dashboard/index.d.ts +0 -1
- package/dist/bigconsole/modules/index.d.ts +0 -1
- package/dist/bigconsole/modules/renderer/index.d.ts +0 -1
- package/dist/bigconsole/modules/widget/index.d.ts +0 -1
- package/dist/bigconsole/pages/AdminPage.d.ts +0 -1
- package/dist/bigconsole/pages/AdminPage.js +0 -2
- package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js +0 -2
- package/dist/bigconsole/pages/DashboardViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/DashboardViewPage.js +0 -2
- package/dist/bigconsole/pages/DashboardsPage.d.ts +0 -1
- package/dist/bigconsole/pages/DashboardsPage.js +0 -2
- package/dist/bigconsole/pages/DataParsersPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataParsersPage.js +0 -2
- package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.js +0 -2
- package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +8 -10
- package/dist/bigconsole/pages/DataSinkViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js +0 -2
- package/dist/bigconsole/pages/DataSinksPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinksPage.js +0 -2
- package/dist/bigconsole/pages/DataSourcesPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSourcesPage.js +0 -2
- package/dist/bigconsole/pages/InsightsPage.d.ts +0 -1
- package/dist/bigconsole/pages/InsightsPage.js +373 -361
- package/dist/bigconsole/pages/OverviewPage.d.ts +0 -1
- package/dist/bigconsole/pages/OverviewPage.js +0 -2
- package/dist/bigconsole/pages/ParserBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js +5 -7
- package/dist/bigconsole/pages/ParserViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/ParserViewPage.js +0 -2
- package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js +0 -2
- package/dist/bigconsole/pages/PipelineViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/PipelineViewPage.js +0 -2
- package/dist/bigconsole/pages/PipelinesPage.d.ts +0 -1
- package/dist/bigconsole/pages/PipelinesPage.js +0 -2
- package/dist/bigconsole/pages/SettingsPage.d.ts +0 -1
- package/dist/bigconsole/pages/SettingsPage.js +0 -2
- package/dist/bigconsole/pages/WidgetDemoPage.d.ts +0 -1
- package/dist/bigconsole/pages/WidgetDemoPage.js +0 -2
- package/dist/bigconsole/pages/WorkflowViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js +0 -2
- package/dist/bigconsole/pages/WorkflowsPage.d.ts +0 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +0 -2
- package/dist/bigconsole/pages/index.d.ts +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +0 -2
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/index.d.ts +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +0 -2
- package/dist/bigconsole/renderers/index.d.ts +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.js +0 -2
- package/dist/bigconsole/renderers/types/index.d.ts +0 -1
- package/dist/bigconsole/renderers/types/renderer.d.ts +0 -1
- package/dist/bigconsole/store/dashboardStore.d.ts +0 -1
- package/dist/bigconsole/store/dashboardStore.js +0 -2
- package/dist/bigconsole/store/dataSinkStore.d.ts +0 -1
- package/dist/bigconsole/store/dataSinkStore.js +0 -2
- package/dist/bigconsole/store/drilldownStore.d.ts +0 -1
- package/dist/bigconsole/store/drilldownStore.js +0 -2
- package/dist/bigconsole/store/index.d.ts +0 -1
- package/dist/bigconsole/store/parserStore.d.ts +0 -1
- package/dist/bigconsole/store/parserStore.js +0 -2
- package/dist/bigconsole/store/pipelineStore.d.ts +0 -1
- package/dist/bigconsole/store/pipelineStore.js +0 -2
- package/dist/bigconsole/store/widgetStore.d.ts +0 -1
- package/dist/bigconsole/store/widgetStore.js +0 -2
- package/dist/bigconsole/store/workflowStore.d.ts +0 -1
- package/dist/bigconsole/store/workflowStore.js +0 -2
- package/dist/bigconsole/types/index.d.ts +0 -1
- package/dist/bigconsole/utils/alertRules.d.ts +0 -1
- package/dist/bigconsole/utils/alertRules.js +0 -2
- package/dist/bigconsole/utils/backendError.d.ts +0 -1
- package/dist/bigconsole/utils/backendError.js +0 -2
- package/dist/bigconsole/utils/createDialogParam.d.ts +0 -1
- package/dist/bigconsole/utils/createDialogParam.js +0 -2
- package/dist/bigconsole/utils/csv.d.ts +0 -1
- package/dist/bigconsole/utils/csv.js +0 -2
- package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +0 -1
- package/dist/bigconsole/utils/dashboardTemplateContent.js +0 -2
- package/dist/bigconsole/utils/drilldownParams.d.ts +0 -1
- package/dist/bigconsole/utils/drilldownParams.js +0 -2
- package/dist/bigconsole/utils/formDirty.d.ts +0 -1
- package/dist/bigconsole/utils/formDirty.js +0 -2
- package/dist/bigconsole/utils/format.d.ts +0 -1
- package/dist/bigconsole/utils/format.js +0 -2
- package/dist/bigconsole/utils/index.d.ts +0 -1
- package/dist/bigconsole/utils/insightsDraft.d.ts +29 -0
- package/dist/bigconsole/utils/insightsDraft.js +8 -0
- package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -1
- package/dist/bigconsole/utils/layoutBaseline.js +0 -2
- package/dist/bigconsole/utils/quota.d.ts +0 -1
- package/dist/bigconsole/utils/quota.js +0 -2
- package/dist/bigconsole/utils/semanticTokens.d.ts +0 -1
- package/dist/bigconsole/utils/semanticTokens.js +0 -2
- package/dist/bigconsole/utils/templateInstallInputs.d.ts +0 -1
- package/dist/bigconsole/utils/templateInstallInputs.js +0 -2
- package/dist/bigconsole/utils/widgetBinding.d.ts +0 -1
- package/dist/bigconsole/utils/widgetBinding.js +0 -2
- package/dist/bigconsole/utils/widgetFormDirty.d.ts +16 -0
- package/dist/bigconsole/utils/widgetFormDirty.js +13 -0
- package/dist/bigconsole/utils/widgetPositioning.d.ts +0 -1
- package/dist/bigconsole/utils/widgetPositioning.js +0 -2
- package/dist/bigconsole/utils/widgetTypeMapping.d.ts +0 -1
- package/dist/bigconsole/utils/widgetTypeMapping.js +0 -2
- package/dist/bigconsole/workflowOpen.d.ts +0 -1
- package/dist/bigconsole/workflowOpen.js +0 -2
- package/dist/constants/permissions.d.ts +0 -1
- package/dist/constants/permissions.js +0 -2
- package/dist/generated/global-operations.d.ts +0 -1
- package/dist/generated/global-operations.js +0 -2
- package/dist/generated/global-types.d.ts +0 -1
- package/dist/generated/wspace-operations.d.ts +0 -1
- package/dist/generated/wspace-operations.js +0 -2
- package/dist/generated/wspace-types.d.ts +0 -1
- package/dist/generated/wspace-types.js +0 -2
- package/dist/index.d.ts +0 -1
- package/dist/node_modules/@e965/xlsx/xlsx.js +0 -2
- package/dist/node_modules/pdfjs-dist/build/pdf.js +0 -2
- package/dist/shared/hooks/useTr.d.ts +0 -1
- package/dist/shared/hooks/useTr.js +0 -2
- package/dist/translations/en.d.ts +0 -1
- package/dist/utils/nativeBridge.d.ts +0 -1
- package/package.json +5 -4
- package/dist/bigconsole/AdminRoot.d.ts.map +0 -1
- package/dist/bigconsole/AdminRoot.js.map +0 -1
- package/dist/bigconsole/AdminRoutes.d.ts.map +0 -1
- package/dist/bigconsole/AdminRoutes.js.map +0 -1
- package/dist/bigconsole/BigConsoleRoot.d.ts.map +0 -1
- package/dist/bigconsole/BigConsoleRoot.js.map +0 -1
- package/dist/bigconsole/BigConsoleRoutes.d.ts.map +0 -1
- package/dist/bigconsole/BigConsoleRoutes.js.map +0 -1
- package/dist/bigconsole/assistant/assistantApi.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantApi.js.map +0 -1
- package/dist/bigconsole/assistant/assistantProduct.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantProduct.js.map +0 -1
- package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantPrompt.js.map +0 -1
- package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantRunPersistence.js.map +0 -1
- package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantRunStore.js.map +0 -1
- package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantRuntime.js.map +0 -1
- package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +0 -1
- package/dist/bigconsole/assistant/attachmentExtract.js.map +0 -1
- package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +0 -1
- package/dist/bigconsole/assistant/conversationHistoryApi.js.map +0 -1
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +0 -1
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +0 -1
- package/dist/bigconsole/assistant/displayCopy.d.ts.map +0 -1
- package/dist/bigconsole/assistant/index.d.ts.map +0 -1
- package/dist/bigconsole/assistant/modes.d.ts.map +0 -1
- package/dist/bigconsole/assistant/modes.js.map +0 -1
- package/dist/bigconsole/assistant/pageContext.d.ts.map +0 -1
- package/dist/bigconsole/assistant/pageContext.js.map +0 -1
- package/dist/bigconsole/assistant/previewController.d.ts.map +0 -1
- package/dist/bigconsole/assistant/previewController.js.map +0 -1
- package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +0 -1
- package/dist/bigconsole/assistant/previewMutationResult.js.map +0 -1
- package/dist/bigconsole/assistant/previewRunAction.d.ts.map +0 -1
- package/dist/bigconsole/assistant/previewRunAction.js.map +0 -1
- package/dist/bigconsole/assistant/product.d.ts.map +0 -1
- package/dist/bigconsole/assistant/product.js.map +0 -1
- package/dist/bigconsole/assistant/recordAdapters.d.ts.map +0 -1
- package/dist/bigconsole/assistant/recordAdapters.js.map +0 -1
- package/dist/bigconsole/assistant/types.d.ts.map +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +0 -1
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +0 -1
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +0 -1
- package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +0 -1
- package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +0 -1
- package/dist/bigconsole/components/DrilldownModal.d.ts.map +0 -1
- package/dist/bigconsole/components/DrilldownModal.js.map +0 -1
- package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/BuilderCanvas.js.map +0 -1
- package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/BuilderTopbar.js.map +0 -1
- package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +0 -1
- package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/WidgetInspector.js.map +0 -1
- package/dist/bigconsole/components/builder/index.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/index.d.ts.map +0 -1
- package/dist/bigconsole/components/common/Section.d.ts.map +0 -1
- package/dist/bigconsole/components/common/Section.js.map +0 -1
- package/dist/bigconsole/components/common/index.d.ts.map +0 -1
- package/dist/bigconsole/components/common/sectionStyles.d.ts.map +0 -1
- package/dist/bigconsole/components/common/sectionStyles.js.map +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +0 -1
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +0 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +0 -1
- package/dist/bigconsole/components/dashboard/index.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +0 -1
- package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +0 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +0 -1
- package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +0 -1
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +0 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +0 -1
- package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +0 -1
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +0 -1
- package/dist/bigconsole/components/datasink/index.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +0 -1
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +0 -1
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +0 -1
- package/dist/bigconsole/components/embed/drilldown.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/drilldown.js.map +0 -1
- package/dist/bigconsole/components/embed/index.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.js.map +0 -1
- package/dist/bigconsole/components/embed/types.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/types.js.map +0 -1
- package/dist/bigconsole/components/embed/validate.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/validate.js.map +0 -1
- package/dist/bigconsole/components/embed/widgetShim.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgetShim.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/shared.js.map +0 -1
- package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/DashboardGuide.js.map +0 -1
- package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/DataHealthCard.js.map +0 -1
- package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +0 -1
- package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/OverviewStatCard.js.map +0 -1
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +0 -1
- package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +0 -1
- package/dist/bigconsole/components/overview/index.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/overviewModel.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/overviewModel.js.map +0 -1
- package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/useOverviewData.js.map +0 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.js.map +0 -1
- package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ExportParserDialog.js.map +0 -1
- package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ExpressionEditor.js.map +0 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserCard.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserCard.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +0 -1
- package/dist/bigconsole/components/parser/TestPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/index.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.js.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/pipeline/index.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.js.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +0 -1
- package/dist/bigconsole/components/preview/parserPreview.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/parserPreview.js.map +0 -1
- package/dist/bigconsole/components/preview/previewShared.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/previewShared.js.map +0 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +0 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +0 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetHeader.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +0 -1
- package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/actionConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +0 -1
- package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/custom/config.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/config.js.map +0 -1
- package/dist/bigconsole/components/widgets/custom/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.js.map +0 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +0 -1
- package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/form/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.js.map +0 -1
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListItem.js.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/list/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/progress/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/retention/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.js.map +0 -1
- package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/ErrorState.js.map +0 -1
- package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/LoadingState.js.map +0 -1
- package/dist/bigconsole/components/widgets/states/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableHeader.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TablePagination.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/cellLink.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.js.map +0 -1
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +0 -1
- package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/inferFields.js.map +0 -1
- package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +0 -1
- package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/translate.js.map +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/workflow/index.d.ts.map +0 -1
- package/dist/bigconsole/constants/backendErrors.d.ts.map +0 -1
- package/dist/bigconsole/constants/backendErrors.js.map +0 -1
- package/dist/bigconsole/constants.d.ts.map +0 -1
- package/dist/bigconsole/constants.js.map +0 -1
- package/dist/bigconsole/context/BigConsoleContext.d.ts.map +0 -1
- package/dist/bigconsole/context/BigConsoleContext.js.map +0 -1
- package/dist/bigconsole/context/index.d.ts.map +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.js.map +0 -1
- package/dist/bigconsole/contexts/NavigationContext.d.ts.map +0 -1
- package/dist/bigconsole/contexts/NavigationContext.js.map +0 -1
- package/dist/bigconsole/contexts/index.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +0 -1
- package/dist/bigconsole/customWidget/index.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/proposalContract.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/proposalContract.js.map +0 -1
- package/dist/bigconsole/customWidget/proposalSource.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/proposalSource.js.map +0 -1
- package/dist/bigconsole/graphql/apollo-compat.d.ts.map +0 -1
- package/dist/bigconsole/graphql/storeTemplates.d.ts.map +0 -1
- package/dist/bigconsole/graphql/storeTemplates.js.map +0 -1
- package/dist/bigconsole/hooks/index.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useActivePage.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useActivePage.js.map +0 -1
- package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useAutoRefresh.js.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +0 -1
- package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useCrossFilter.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardImageExport.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardSharing.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.js.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +0 -1
- package/dist/bigconsole/hooks/useDrilldown.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDrilldown.js.map +0 -1
- package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDrilldownOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useEventLogs.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useEventLogs.js.map +0 -1
- package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useEventWebhooks.js.map +0 -1
- package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useExportDashboard.js.map +0 -1
- package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useExportDataSink.js.map +0 -1
- package/dist/bigconsole/hooks/useExportParser.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useExportParser.js.map +0 -1
- package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useFilterPresets.js.map +0 -1
- package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useFilterUrlSync.js.map +0 -1
- package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useGlobalFilters.js.map +0 -1
- package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useImportDashboard.js.map +0 -1
- package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useImportDataSink.js.map +0 -1
- package/dist/bigconsole/hooks/useImportParser.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useImportParser.js.map +0 -1
- package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useInstalledWidgets.js.map +0 -1
- package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useModalFocusTrap.js.map +0 -1
- package/dist/bigconsole/hooks/usePageOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/usePageOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useParserOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useParserOperations.js.map +0 -1
- package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/usePipelineOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useShareRecipients.js.map +0 -1
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetActions.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetCatalog.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetComments.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetData.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetData.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetEvents.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetExport.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWorkflowOperations.js.map +0 -1
- package/dist/bigconsole/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/dashboard/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/renderer/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/widget/index.d.ts.map +0 -1
- package/dist/bigconsole/pages/AdminPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/AdminPage.js.map +0 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DashboardViewPage.js.map +0 -1
- package/dist/bigconsole/pages/DashboardsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DashboardsPage.js.map +0 -1
- package/dist/bigconsole/pages/DataParsersPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataParsersPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinksPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinksPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSourcesPage.js.map +0 -1
- package/dist/bigconsole/pages/InsightsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/InsightsPage.js.map +0 -1
- package/dist/bigconsole/pages/OverviewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/OverviewPage.js.map +0 -1
- package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/ParserViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/ParserViewPage.js.map +0 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/PipelineViewPage.js.map +0 -1
- package/dist/bigconsole/pages/PipelinesPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/PipelinesPage.js.map +0 -1
- package/dist/bigconsole/pages/SettingsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/SettingsPage.js.map +0 -1
- package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/WidgetDemoPage.js.map +0 -1
- package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js.map +0 -1
- package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/WorkflowsPage.js.map +0 -1
- package/dist/bigconsole/pages/index.d.ts.map +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/index.d.ts.map +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +0 -1
- package/dist/bigconsole/renderers/index.d.ts.map +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +0 -1
- package/dist/bigconsole/renderers/types/index.d.ts.map +0 -1
- package/dist/bigconsole/renderers/types/renderer.d.ts.map +0 -1
- package/dist/bigconsole/store/dashboardStore.d.ts.map +0 -1
- package/dist/bigconsole/store/dashboardStore.js.map +0 -1
- package/dist/bigconsole/store/dataSinkStore.d.ts.map +0 -1
- package/dist/bigconsole/store/dataSinkStore.js.map +0 -1
- package/dist/bigconsole/store/drilldownStore.d.ts.map +0 -1
- package/dist/bigconsole/store/drilldownStore.js.map +0 -1
- package/dist/bigconsole/store/index.d.ts.map +0 -1
- package/dist/bigconsole/store/parserStore.d.ts.map +0 -1
- package/dist/bigconsole/store/parserStore.js.map +0 -1
- package/dist/bigconsole/store/pipelineStore.d.ts.map +0 -1
- package/dist/bigconsole/store/pipelineStore.js.map +0 -1
- package/dist/bigconsole/store/widgetStore.d.ts.map +0 -1
- package/dist/bigconsole/store/widgetStore.js.map +0 -1
- package/dist/bigconsole/store/workflowStore.d.ts.map +0 -1
- package/dist/bigconsole/store/workflowStore.js.map +0 -1
- package/dist/bigconsole/types/index.d.ts.map +0 -1
- package/dist/bigconsole/utils/alertRules.d.ts.map +0 -1
- package/dist/bigconsole/utils/alertRules.js.map +0 -1
- package/dist/bigconsole/utils/backendError.d.ts.map +0 -1
- package/dist/bigconsole/utils/backendError.js.map +0 -1
- package/dist/bigconsole/utils/createDialogParam.d.ts.map +0 -1
- package/dist/bigconsole/utils/createDialogParam.js.map +0 -1
- package/dist/bigconsole/utils/csv.d.ts.map +0 -1
- package/dist/bigconsole/utils/csv.js.map +0 -1
- package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +0 -1
- package/dist/bigconsole/utils/dashboardTemplateContent.js.map +0 -1
- package/dist/bigconsole/utils/drilldownParams.d.ts.map +0 -1
- package/dist/bigconsole/utils/drilldownParams.js.map +0 -1
- package/dist/bigconsole/utils/formDirty.d.ts.map +0 -1
- package/dist/bigconsole/utils/formDirty.js.map +0 -1
- package/dist/bigconsole/utils/format.d.ts.map +0 -1
- package/dist/bigconsole/utils/format.js.map +0 -1
- package/dist/bigconsole/utils/index.d.ts.map +0 -1
- package/dist/bigconsole/utils/layoutBaseline.d.ts.map +0 -1
- package/dist/bigconsole/utils/layoutBaseline.js.map +0 -1
- package/dist/bigconsole/utils/quota.d.ts.map +0 -1
- package/dist/bigconsole/utils/quota.js.map +0 -1
- package/dist/bigconsole/utils/semanticTokens.d.ts.map +0 -1
- package/dist/bigconsole/utils/semanticTokens.js.map +0 -1
- package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +0 -1
- package/dist/bigconsole/utils/templateInstallInputs.js.map +0 -1
- package/dist/bigconsole/utils/widgetBinding.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetBinding.js.map +0 -1
- package/dist/bigconsole/utils/widgetPositioning.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetPositioning.js.map +0 -1
- package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetTypeMapping.js.map +0 -1
- package/dist/bigconsole/workflowOpen.d.ts.map +0 -1
- package/dist/bigconsole/workflowOpen.js.map +0 -1
- package/dist/constants/permissions.d.ts.map +0 -1
- package/dist/constants/permissions.js.map +0 -1
- package/dist/generated/global-operations.d.ts.map +0 -1
- package/dist/generated/global-operations.js.map +0 -1
- package/dist/generated/global-types.d.ts.map +0 -1
- package/dist/generated/wspace-operations.d.ts.map +0 -1
- package/dist/generated/wspace-operations.js.map +0 -1
- package/dist/generated/wspace-types.d.ts.map +0 -1
- package/dist/generated/wspace-types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/node_modules/@e965/xlsx/xlsx.js.map +0 -1
- package/dist/node_modules/pdfjs-dist/build/pdf.js.map +0 -1
- package/dist/shared/hooks/useTr.d.ts.map +0 -1
- package/dist/shared/hooks/useTr.js.map +0 -1
- package/dist/stories/DashboardGuide.stories.d.ts +0 -15
- package/dist/stories/DashboardGuide.stories.d.ts.map +0 -1
- package/dist/stories/DataSinkStatusBadge.stories.d.ts +0 -12
- package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +0 -1
- package/dist/stories/GaugeWidget.stories.d.ts +0 -58
- package/dist/stories/GaugeWidget.stories.d.ts.map +0 -1
- package/dist/stories/KPIComparisonWidget.stories.d.ts +0 -76
- package/dist/stories/KPIComparisonWidget.stories.d.ts.map +0 -1
- package/dist/stories/LiveCanvasToggle.stories.d.ts +0 -9
- package/dist/stories/LiveCanvasToggle.stories.d.ts.map +0 -1
- package/dist/stories/MetricCardWidget.stories.d.ts +0 -88
- package/dist/stories/MetricCardWidget.stories.d.ts.map +0 -1
- package/dist/stories/ProgressWidget.stories.d.ts +0 -48
- package/dist/stories/ProgressWidget.stories.d.ts.map +0 -1
- package/dist/stories/SetupStateBadge.stories.d.ts +0 -12
- package/dist/stories/SetupStateBadge.stories.d.ts.map +0 -1
- package/dist/translations/en.d.ts.map +0 -1
- package/dist/utils/nativeBridge.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardToolbar.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DashboardToolbar.tsx"],"sourcesContent":["/**\n * DashboardToolbar Component\n *\n * Toolbar for dashboard actions and controls.\n * Uses fe-libs shared components for consistent styling.\n * Phase 2: Added SavedViewsDropdown and Share button.\n */\n\nimport { type FC, memo, useCallback } from 'react';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport {\n Clipboard,\n Download,\n Eye,\n FileText,\n Image as ImageIcon,\n Minus,\n PanelLeft,\n PanelLeftClose,\n Pencil,\n Plus,\n RotateCcw,\n Save,\n Share2,\n Store,\n} from 'lucide-react';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { PermissionButton } from '@burdenoff/fe-libs/shared/components';\nimport { useDashboardStore, useWidgetStore } from '../../store';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../constants/permissions';\nimport { Section } from '../common';\nimport { SavedViewsDropdown } from './SavedViewsDropdown';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DashboardToolbarProps {\n /** Dashboard ID for saved views */\n dashboardId?: string;\n /** Dashboard title */\n title?: string;\n /** Callback to add widget */\n onAddWidget: () => void;\n /** Callback to toggle widget palette */\n onTogglePalette?: () => void;\n /** Whether palette is open */\n isPaletteOpen?: boolean;\n /** Callback to paste widget */\n onPaste?: () => void;\n /** Callback to save dashboard */\n onSave?: () => void;\n /** Whether save is in progress */\n isSaving?: boolean;\n /** Callback to export dashboard (JSON console definition) */\n onExport?: () => void;\n /** Publish this dashboard as a reusable template. */\n onPublishTemplate?: () => void;\n /** Callback to export the board as a PNG image */\n onExportImage?: () => void;\n /** Callback to export the board as a PDF */\n onExportPdf?: () => void;\n /** Whether an image/PDF export is in progress */\n isExportingImage?: boolean;\n /** Callback to open share dialog */\n onShare?: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DashboardToolbar: FC<DashboardToolbarProps> = memo(function DashboardToolbar({\n dashboardId,\n title,\n onAddWidget,\n onTogglePalette,\n isPaletteOpen = false,\n onPaste,\n onSave,\n isSaving = false,\n onExport,\n onPublishTemplate,\n onExportImage,\n onExportPdf,\n isExportingImage = false,\n onShare,\n}) {\n const { hasPermission } = usePermissions();\n const { t } = useI18n();\n const isEditMode = useDashboardStore((state) => state.viewMode === 'edit');\n const toggleViewMode = useDashboardStore((state) => state.toggleViewMode);\n const zoomLevel = useDashboardStore((state) => state.zoomLevel);\n const setZoomLevel = useDashboardStore((state) => state.setZoomLevel);\n\n const clipboardWidgetId = useWidgetStore((state) => state.clipboardWidgetId);\n const hasClipboard = !!clipboardWidgetId;\n\n // Handle paste - use provided callback or fallback\n const handlePaste = useCallback(() => {\n if (hasClipboard && onPaste) {\n onPaste();\n }\n }, [hasClipboard, onPaste]);\n\n return (\n <TooltipProvider>\n {/*\n Structural band only — no surface of its own and, deliberately, no title:\n the board is named once, by the route header above this toolbar. Three\n labelled clusters (views · zoom · actions) replace what used to read as\n one continuous run of same-weight buttons.\n */}\n <Section\n emphasis=\"bare\"\n padding=\"none\"\n aria-label={title ? `Board toolbar — ${title}` : 'Board toolbar'}\n data-testid=\"dashboard-toolbar\"\n className=\"flex-shrink-0 border-b border-[var(--color-border-subtle)] bg-bg-surface px-4 py-2\"\n bodyClassName=\"flex flex-wrap items-center justify-between gap-x-4 gap-y-2\"\n >\n {/* Left section — saved views */}\n <div className=\"flex min-w-0 items-center gap-4\">\n {/* Saved Views Dropdown */}\n {dashboardId && <SavedViewsDropdown dashboardId={dashboardId} />}\n </div>\n\n {/* Center section - Zoom controls */}\n <div\n role=\"group\"\n aria-label=\"Zoom\"\n className=\"flex min-w-0 items-center gap-1 border-l border-[var(--color-border-subtle)] pl-4\"\n >\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => setZoomLevel(Math.max(50, zoomLevel - 10))}\n disabled={zoomLevel <= 50}\n >\n <Minus className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>{t('bigconsole.dashboards.toolbar.zoomOut', 'Zoom out')}</TooltipContent>\n </Tooltip>\n\n <span className=\"text-sm text-text-secondary w-12 text-center\">{zoomLevel}%</span>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => setZoomLevel(Math.min(200, zoomLevel + 10))}\n disabled={zoomLevel >= 200}\n >\n <Plus className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>{t('bigconsole.dashboards.toolbar.zoomIn', 'Zoom in')}</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => setZoomLevel(100)}>\n <RotateCcw className=\"size-3.5 mr-1\" />\n {t('bigconsole.dashboards.toolbar.reset', 'Reset')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>{t('bigconsole.dashboards.toolbar.resetZoomTooltip', 'Reset zoom to 100%')}</TooltipContent>\n </Tooltip>\n </div>\n\n {/* Right section - Actions */}\n <div\n role=\"group\"\n aria-label=\"Board actions\"\n className=\"flex min-w-0 flex-wrap items-center justify-end gap-2 border-l border-[var(--color-border-subtle)] pl-4\"\n >\n {isEditMode && (\n <>\n {/* Widget Palette Toggle */}\n {onTogglePalette && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant={isPaletteOpen ? 'secondary' : 'outline'} size=\"sm\" onClick={onTogglePalette}>\n {isPaletteOpen ? <PanelLeftClose className=\"size-4\" /> : <PanelLeft className=\"size-4\" />}\n {t('bigconsole.dashboards.toolbar.widgets', 'Widgets')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {isPaletteOpen\n ? t('bigconsole.dashboards.toolbar.hidePalette', 'Hide widget palette')\n : t('bigconsole.dashboards.toolbar.showPalette', 'Show widget palette for drag & drop')}\n </TooltipContent>\n </Tooltip>\n )}\n\n {/* Paste */}\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\" onClick={handlePaste} disabled={!hasClipboard}>\n <Clipboard className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.paste', 'Paste')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.pasteTooltip', 'Paste widget from clipboard')}\n </TooltipContent>\n </Tooltip>\n\n {/* Add Widget (Dialog) */}\n <PermissionButton permission={BIGCONSOLE_PERMISSIONS.WIDGET_CREATE} deniedBehavior=\"hide\">\n <Button size=\"sm\" onClick={onAddWidget}>\n <Plus className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.addWidget', 'Add Widget')}\n </Button>\n </PermissionButton>\n </>\n )}\n\n {/* Edit/View Mode Toggle */}\n <Button variant={isEditMode ? 'secondary' : 'outline'} size=\"sm\" onClick={toggleViewMode}>\n {isEditMode ? (\n <>\n <Eye className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.preview', 'Preview')}\n </>\n ) : (\n <>\n <Pencil className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.edit', 'Edit')}\n </>\n )}\n </Button>\n\n {/* Save */}\n {onSave && (\n <Button variant=\"outline\" size=\"sm\" onClick={onSave} disabled={isSaving}>\n {isSaving ? (\n <>\n <Spinner className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.saving', 'Saving...')}\n </>\n ) : (\n <>\n <Save className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.save', 'Save')}\n </>\n )}\n </Button>\n )}\n\n {/* Share */}\n {onShare && (\n <PermissionButton permission={BIGCONSOLE_PERMISSIONS.DASHBOARD_SHARE} deniedBehavior=\"hide\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" onClick={onShare}>\n <Share2 className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.share', 'Share')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.shareTooltip', 'Share dashboard with others')}\n </TooltipContent>\n </Tooltip>\n </PermissionButton>\n )}\n\n {/* Publish as a store template */}\n {onPublishTemplate && (\n <PermissionButton permission={BIGCONSOLE_PERMISSIONS.DASHBOARD_PUBLISH} deniedBehavior=\"hide\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" onClick={onPublishTemplate}>\n <Store className=\"size-4\" />\n <span className=\"hidden sm:inline\">{t('bigconsole.dashboards.toolbar.publish', 'Publish')}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.publishTooltip', 'Publish this dashboard as a reusable template')}\n </TooltipContent>\n </Tooltip>\n </PermissionButton>\n )}\n\n {/* Export — JSON definition */}\n {onExport && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" onClick={onExport}>\n <Download className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.export', 'Export')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.exportTooltip', 'Export dashboard to JSON')}\n </TooltipContent>\n </Tooltip>\n )}\n\n {/* Export — board PNG */}\n {onExportImage && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"icon-sm\" onClick={onExportImage} disabled={isExportingImage}>\n {isExportingImage ? <Spinner className=\"size-4\" /> : <ImageIcon className=\"size-4\" />}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.exportPngTooltip', 'Export board as PNG image')}\n </TooltipContent>\n </Tooltip>\n )}\n\n {/* Export — board PDF */}\n {onExportPdf && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"icon-sm\" onClick={onExportPdf} disabled={isExportingImage}>\n <FileText className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.exportPdfTooltip', 'Export board as PDF')}\n </TooltipContent>\n </Tooltip>\n )}\n </div>\n </Section>\n </TooltipProvider>\n );\n});\n\nexport default DashboardToolbar;\n"],"mappings":";;;;;;;;;;;;;;;;AA2EA,IAAa,IAA8C,EAAK,SAA0B,EACxF,gBACA,UACA,gBACA,oBACA,mBAAgB,IAChB,YACA,WACA,cAAW,IACX,aACA,sBACA,kBACA,gBACA,sBAAmB,IACnB,cACC;CACD,IAAM,EAAE,qBAAkB,GAAgB,EACpC,EAAE,SAAM,GAAS,EACjB,IAAa,GAAmB,MAAU,EAAM,aAAa,OAAO,EACpE,IAAiB,GAAmB,MAAU,EAAM,eAAe,EACnE,IAAY,GAAmB,MAAU,EAAM,UAAU,EACzD,IAAe,GAAmB,MAAU,EAAM,aAAa,EAG/D,IAAe,CAAC,CADI,GAAgB,MAAU,EAAM,kBAAkB,EAItE,IAAc,QAAkB;AACpC,EAAI,KAAgB,KAClB,GAAS;IAEV,CAAC,GAAc,EAAQ,CAAC;AAE3B,QACE,kBAAC,GAAD,EAAA,UAOE,kBAAC,GAAD;EACE,UAAS;EACT,SAAQ;EACR,cAAY,IAAQ,mBAAmB,MAAU;EACjD,eAAY;EACZ,WAAU;EACV,eAAc;YANhB;GASE,kBAAC,OAAD;IAAK,WAAU;cAEZ,KAAe,kBAAC,GAAD,EAAiC,gBAAe,CAAA;IAC5D,CAAA;GAGN,kBAAC,OAAD;IACE,MAAK;IACL,cAAW;IACX,WAAU;cAHZ;KAKE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAgB,SAAA;gBACd,kBAAC,GAAD;OACE,SAAQ;OACR,MAAK;OACL,eAAe,EAAa,KAAK,IAAI,IAAI,IAAY,GAAG,CAAC;OACzD,UAAU,KAAa;iBAEvB,kBAAC,GAAD,EAAO,WAAU,UAAW,CAAA;OACrB,CAAA;MACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UAAiB,EAAE,yCAAyC,WAAW,EAAkB,CAAA,CACjF,EAAA,CAAA;KAEV,kBAAC,QAAD;MAAM,WAAU;gBAAhB,CAAgE,GAAU,IAAQ;;KAElF,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAgB,SAAA;gBACd,kBAAC,GAAD;OACE,SAAQ;OACR,MAAK;OACL,eAAe,EAAa,KAAK,IAAI,KAAK,IAAY,GAAG,CAAC;OAC1D,UAAU,KAAa;iBAEvB,kBAAC,GAAD,EAAM,WAAU,UAAW,CAAA;OACpB,CAAA;MACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UAAiB,EAAE,wCAAwC,UAAU,EAAkB,CAAA,CAC/E,EAAA,CAAA;KAEV,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAgB,SAAA;gBACd,kBAAC,GAAD;OAAQ,SAAQ;OAAQ,MAAK;OAAK,eAAe,EAAa,IAAI;iBAAlE,CACE,kBAAC,GAAD,EAAW,WAAU,iBAAkB,CAAA,EACtC,EAAE,uCAAuC,QAAQ,CAC3C;;MACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UAAiB,EAAE,kDAAkD,qBAAqB,EAAkB,CAAA,CACpG,EAAA,CAAA;KACN;;GAGN,kBAAC,OAAD;IACE,MAAK;IACL,cAAW;IACX,WAAU;cAHZ;KAKG,KACC,kBAAA,GAAA,EAAA,UAAA;MAEG,KACC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAgB,SAAA;iBACd,kBAAC,GAAD;QAAQ,SAAS,IAAgB,cAAc;QAAW,MAAK;QAAK,SAAS;kBAA7E,CACmB,EAAhB,IAAiB,IAAwC,GAAzC,EAAgB,WAAU,UAAW,CAAmC,EACxF,EAAE,yCAAyC,UAAU,CAC/C;;OACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,IACG,EAAE,6CAA6C,sBAAsB,GACrE,EAAE,6CAA6C,sCAAsC,EAC1E,CAAA,CACT,EAAA,CAAA;MAIZ,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAgB,SAAA;iBACd,kBAAC,GAAD;QAAQ,SAAQ;QAAQ,MAAK;QAAK,SAAS;QAAa,UAAU,CAAC;kBAAnE,CACE,kBAAC,GAAD,EAAW,WAAU,UAAW,CAAA,EAC/B,EAAE,uCAAuC,QAAQ,CAC3C;;OACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,EAAE,8CAA8C,8BAA8B,EAChE,CAAA,CACT,EAAA,CAAA;MAGV,kBAAC,GAAD;OAAkB,YAAY,EAAuB;OAAe,gBAAe;iBACjF,kBAAC,GAAD;QAAQ,MAAK;QAAK,SAAS;kBAA3B,CACE,kBAAC,GAAD,EAAM,WAAU,UAAW,CAAA,EAC1B,EAAE,2CAA2C,aAAa,CACpD;;OACQ,CAAA;MAClB,EAAA,CAAA;KAIL,kBAAC,GAAD;MAAQ,SAAS,IAAa,cAAc;MAAW,MAAK;MAAK,SAAS;gBACvE,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAK,WAAU,UAAW,CAAA,EACzB,EAAE,yCAAyC,UAAU,CACrD,EAAA,CAAA,GAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAQ,WAAU,UAAW,CAAA,EAC5B,EAAE,sCAAsC,OAAO,CAC/C,EAAA,CAAA;MAEE,CAAA;KAGR,KACC,kBAAC,GAAD;MAAQ,SAAQ;MAAU,MAAK;MAAK,SAAS;MAAQ,UAAU;gBAC5D,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAS,WAAU,UAAW,CAAA,EAC7B,EAAE,wCAAwC,YAAY,CACtD,EAAA,CAAA,GAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAM,WAAU,UAAW,CAAA,EAC1B,EAAE,sCAAsC,OAAO,CAC/C,EAAA,CAAA;MAEE,CAAA;KAIV,KACC,kBAAC,GAAD;MAAkB,YAAY,EAAuB;MAAiB,gBAAe;gBACnF,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAgB,SAAA;iBACd,kBAAC,GAAD;QAAQ,SAAQ;QAAU,MAAK;QAAK,SAAS;kBAA7C,CACE,kBAAC,GAAD,EAAQ,WAAU,UAAW,CAAA,EAC5B,EAAE,uCAAuC,QAAQ,CAC3C;;OACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,EAAE,8CAA8C,8BAA8B,EAChE,CAAA,CACT,EAAA,CAAA;MACO,CAAA;KAIpB,KACC,kBAAC,GAAD;MAAkB,YAAY,EAAuB;MAAmB,gBAAe;gBACrF,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAgB,SAAA;iBACd,kBAAC,GAAD;QAAQ,SAAQ;QAAU,MAAK;QAAK,SAAS;kBAA7C,CACE,kBAAC,GAAD,EAAO,WAAU,UAAW,CAAA,EAC5B,kBAAC,QAAD;SAAM,WAAU;mBAAoB,EAAE,yCAAyC,UAAU;SAAQ,CAAA,CAC1F;;OACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,EAAE,gDAAgD,gDAAgD,EACpF,CAAA,CACT,EAAA,CAAA;MACO,CAAA;KAIpB,KACC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAgB,SAAA;gBACd,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;OAAK,SAAS;iBAA7C,CACE,kBAAC,GAAD,EAAU,WAAU,UAAW,CAAA,EAC9B,EAAE,wCAAwC,SAAS,CAC7C;;MACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,EAAE,+CAA+C,2BAA2B,EAC9D,CAAA,CACT,EAAA,CAAA;KAIX,KACC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAgB,SAAA;gBACd,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;OAAU,SAAS;OAAe,UAAU;iBACrD,EAAnB,IAAoB,IAAiC,GAAlC,EAAS,WAAU,UAAW,CAAmC;OAC9E,CAAA;MACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,EAAE,kDAAkD,4BAA4B,EAClE,CAAA,CACT,EAAA,CAAA;KAIX,KACC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAgB,SAAA;gBACd,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;OAAU,SAAS;OAAa,UAAU;iBACvE,kBAAC,GAAD,EAAU,WAAU,UAAW,CAAA;OACxB,CAAA;MACM,CAAA,EACjB,kBAAC,GAAD,EAAA,UACG,EAAE,kDAAkD,sBAAsB,EAC5D,CAAA,CACT,EAAA,CAAA;KAER;;GACE;KACM,CAAA;EAEpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DrilldownBreadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/DrilldownBreadcrumb.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,UAAU,wBAAwB;IAChC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,eAAO,MAAM,mBAAmB,gEAqM9B,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DrilldownBreadcrumb.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DrilldownBreadcrumb.tsx"],"sourcesContent":["/**\n * DrilldownBreadcrumb Component\n *\n * Displays a breadcrumb trail showing the drilldown navigation path.\n * Allows users to navigate back up the drilldown hierarchy.\n *\n * URL Parameters Used:\n * - drilldown_depth: Current depth in drilldown hierarchy\n * - drilldown_parent: Parent dashboard ID\n * - drilldown_path: JSON array of dashboard IDs in the path\n */\n\nimport { memo, useCallback, useEffect, useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useBigConsoleNavigate } from '../../context';\nimport { useFilterUrlSync } from '../../hooks/useFilterUrlSync';\nimport { useDashboardStore } from '../../store';\nimport { ChevronRight, Home, ArrowLeft } from 'lucide-react';\nimport { SECTION_FOCUS_RING } from '../common';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ninterface DrilldownBreadcrumbProps {\n /** Additional CSS classes */\n className?: string;\n /** Current dashboard ID */\n currentDashboardId?: string;\n /** Current dashboard name */\n currentDashboardName?: string;\n /** Whether to show the home/root link */\n showHome?: boolean;\n /** Base path for dashboard URLs */\n basePath?: string;\n}\n\ninterface BreadcrumbItem {\n id: string;\n name: string;\n href: string;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DrilldownBreadcrumb = memo(function DrilldownBreadcrumb({\n className = '',\n currentDashboardId,\n currentDashboardName,\n showHome = true,\n basePath = '/bigconsole/dashboards',\n}: DrilldownBreadcrumbProps) {\n const { t } = useI18n();\n const navigate = useBigConsoleNavigate();\n const { getDrilldownMetadata, isInDrilldown, drilldownDepth } = useFilterUrlSync();\n\n // Get dashboards from store for name lookup\n const dashboards = useDashboardStore((state) => state.dashboards);\n\n const [breadcrumbs, setBreadcrumbs] = useState<BreadcrumbItem[]>([]);\n\n // Build breadcrumb items from path\n useEffect(() => {\n if (!isInDrilldown) {\n setBreadcrumbs([]);\n return;\n }\n\n const metadata = getDrilldownMetadata();\n const { path } = metadata;\n\n if (path.length === 0) {\n setBreadcrumbs([]);\n return;\n }\n\n // Map path IDs to breadcrumb items\n const items: BreadcrumbItem[] = path.map((dashboardId) => {\n // Try to find dashboard name in store\n const dashboard = dashboards.get(dashboardId);\n const name =\n dashboard?.name ||\n t('bigconsole.dashboards.drilldownBreadcrumb.fallbackName', 'Dashboard {{id}}...', {\n id: dashboardId.slice(0, 8),\n });\n\n return {\n id: dashboardId,\n name,\n href: `${basePath}/${dashboardId}`,\n };\n });\n\n setBreadcrumbs(items);\n }, [isInDrilldown, getDrilldownMetadata, dashboards, basePath, t]);\n\n // Handle navigation to a breadcrumb item\n const handleNavigate = useCallback(\n (item: BreadcrumbItem, index: number) => {\n // Build URL preserving context up to this point\n const metadata = getDrilldownMetadata();\n const newPath = metadata.path.slice(0, index);\n const newDepth = index;\n\n // Build URL with updated drilldown params\n const url = new URL(item.href, window.location.origin);\n url.searchParams.set('drilldown_depth', String(newDepth));\n if (newPath.length > 0) {\n url.searchParams.set('drilldown_path', encodeURIComponent(JSON.stringify(newPath)));\n }\n if (index > 0 && newPath.length > 0) {\n url.searchParams.set('drilldown_parent', newPath[newPath.length - 1]);\n }\n\n navigate(url.pathname + url.search);\n },\n [getDrilldownMetadata, navigate]\n );\n\n // Handle back button click. When the drilldown was reached inside this app\n // session, step back through browser history: that restores the exact\n // origin (its page, filters and scroll) rather than rebuilding a URL that\n // would land on the parent's first page (BOFF-7625). React Router records\n // the history index in `history.state.idx`.\n const handleBack = useCallback(() => {\n const historyIndex = (window.history.state as { idx?: unknown } | null)?.idx;\n if (typeof historyIndex === 'number' && historyIndex > 0) {\n window.history.back();\n return;\n }\n\n const metadata = getDrilldownMetadata();\n\n if (metadata.parent) {\n // Navigate to parent dashboard\n const newPath = metadata.path.slice(0, -1);\n const newDepth = metadata.depth - 1;\n\n const url = new URL(`${basePath}/${metadata.parent}`, window.location.origin);\n url.searchParams.set('drilldown_depth', String(newDepth));\n if (newPath.length > 0) {\n url.searchParams.set('drilldown_path', encodeURIComponent(JSON.stringify(newPath)));\n url.searchParams.set('drilldown_parent', newPath[newPath.length - 1]);\n }\n\n navigate(url.pathname + url.search);\n } else if (breadcrumbs.length > 0) {\n // Navigate to last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n handleNavigate(lastBreadcrumb, breadcrumbs.length - 1);\n }\n }, [getDrilldownMetadata, basePath, navigate, breadcrumbs, handleNavigate]);\n\n // Handle home click\n const handleHomeClick = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n navigate(basePath);\n },\n [navigate, basePath]\n );\n\n // Don't render if not in drilldown mode\n if (!isInDrilldown) {\n return null;\n }\n\n return (\n <nav\n // Recessed on purpose: this is navigational CONTEXT, not chrome you act\n // on, so it reads a step below the route header and the toolbar it sits\n // between instead of being a third identical bar. Wraps rather than\n // overflowing once the trail gets deep on a narrow viewport.\n className={`flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 border-b border-[var(--color-border-subtle)] bg-bg-sunken px-4 py-1.5 ${className}`}\n aria-label={t('bigconsole.dashboards.drilldownBreadcrumb.ariaLabel', 'Drilldown breadcrumb')}\n data-testid=\"drilldown-breadcrumb\"\n >\n {/* Back button */}\n <button\n type=\"button\"\n onClick={handleBack}\n className={`flex min-h-control-sm items-center gap-1 rounded-button px-2 py-1 text-sm font-medium text-text-link motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`}\n aria-label={t('bigconsole.dashboards.drilldownBreadcrumb.back', 'Go back')}\n >\n <ArrowLeft className=\"w-4 h-4\" />\n <span className=\"hidden sm:inline\">{t('bigconsole.dashboards.drilldownBreadcrumb.backLabel', 'Back')}</span>\n </button>\n\n <span className=\"text-text-muted\" aria-hidden=\"true\">\n |\n </span>\n\n {/* Home link */}\n {showHome && (\n <>\n <a\n href={basePath}\n onClick={handleHomeClick}\n className={`flex min-h-control-sm items-center gap-1 rounded-button px-1 text-sm text-text-secondary motion-safe:transition-colors hover:text-text-primary ${SECTION_FOCUS_RING}`}\n aria-label={t('bigconsole.dashboards.drilldownBreadcrumb.home', 'Home')}\n >\n <Home className=\"w-4 h-4\" />\n <span className=\"hidden sm:inline\">\n {t('bigconsole.dashboards.drilldownBreadcrumb.dashboards', 'Dashboards')}\n </span>\n </a>\n <ChevronRight className=\"w-4 h-4 shrink-0 text-text-muted\" aria-hidden=\"true\" />\n </>\n )}\n\n {/* Breadcrumb items */}\n {breadcrumbs.map((item, index) => (\n <div key={item.id} className=\"flex min-w-0 items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => handleNavigate(item, index)}\n className={`min-h-control-sm max-w-[150px] truncate rounded-button px-1 text-sm text-text-secondary motion-safe:transition-colors hover:text-text-primary hover:underline ${SECTION_FOCUS_RING}`}\n title={item.name}\n >\n {item.name}\n </button>\n <ChevronRight className=\"w-4 h-4 shrink-0 text-text-muted\" aria-hidden=\"true\" />\n </div>\n ))}\n\n {/* Current dashboard (non-clickable) */}\n {currentDashboardName && (\n <span\n aria-current=\"page\"\n className=\"max-w-[200px] truncate text-sm font-medium text-text-primary\"\n title={currentDashboardName}\n >\n {currentDashboardName}\n </span>\n )}\n\n {/* Depth indicator */}\n <span className=\"ml-auto shrink-0 rounded-pill bg-bg-surface px-2 py-0.5 text-xs text-text-muted\">\n {t('bigconsole.dashboards.drilldownBreadcrumb.level', 'Level {{depth}}', { depth: drilldownDepth ?? '' })}\n </span>\n </nav>\n );\n});\n\nexport default DrilldownBreadcrumb;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExportDashboardDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/ExportDashboardDialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA0C,MAAM,OAAO,CAAC;AAiBxE,MAAM,WAAW,0BAA0B;IACzC,6BAA6B;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAkOD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAsR/D,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExportDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/ExportDashboardDialog.tsx"],"sourcesContent":["/**\n * ExportDashboardDialog Component\n *\n * Modal dialog for exporting a dashboard to JSON.\n * Uses inline styles for consistent styling across environments.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect } from 'react';\nimport {\n ResponsiveDialog as Dialog,\n ResponsiveDialogContent as DialogContent,\n ResponsiveDialogTitle as DialogTitle,\n ResponsiveDialogDescription as DialogDescription,\n} from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Download, FileJson, Check, Copy } from 'lucide-react';\nimport { Section, SectionStack } from '../common';\nimport { useExportDashboard, type ExportDashboardOptions } from '../../hooks';\nimport { nativeCopyText } from '../../../utils/nativeBridge';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ExportDashboardDialogProps {\n /** Whether dialog is open */\n isOpen: boolean;\n /** Dashboard ID to export */\n dashboardId: string | null;\n /** Dashboard name for filename */\n dashboardName?: string;\n /** Callback when dialog is closed */\n onClose: () => void;\n /** Callback when export succeeds */\n onSuccess?: () => void;\n}\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst styles = {\n dialogContent: {\n // Wider than the old 450px so the JSON preview has a usable line length;\n // still capped to the viewport on a phone.\n maxWidth: '640px',\n width: '95vw',\n maxHeight: '90dvh',\n padding: 0,\n borderRadius: '12px',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n } as React.CSSProperties,\n header: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '20px 24px',\n borderBottom: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n iconWrapper: {\n width: '44px',\n height: '44px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '10px',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n flexShrink: 0,\n } as React.CSSProperties,\n headerText: {\n flex: 1,\n } as React.CSSProperties,\n title: {\n fontSize: '16px',\n fontWeight: 600,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n description: {\n fontSize: '13px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n content: {\n padding: '20px 24px',\n flex: '1 1 auto',\n minHeight: 0,\n overflowY: 'auto',\n } as React.CSSProperties,\n previewBlock: {\n margin: 0,\n maxHeight: '260px',\n overflow: 'auto',\n padding: '12px',\n borderRadius: '8px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n color: 'var(--color-text-primary)',\n fontFamily: 'var(--font-family-mono, monospace)',\n fontSize: '12px',\n lineHeight: 1.5,\n whiteSpace: 'pre',\n tabSize: 2,\n } as React.CSSProperties,\n previewAction: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n minHeight: 'var(--size-controlHeight-sm)',\n padding: '4px 10px',\n fontSize: '12px',\n fontWeight: 500,\n borderRadius: '6px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n color: 'var(--color-text-secondary)',\n cursor: 'pointer',\n } as React.CSSProperties,\n optionItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n padding: '12px',\n borderRadius: '8px',\n marginBottom: '8px',\n backgroundColor: 'var(--color-bg-sunken)',\n border: '1px solid var(--color-border-subtle)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n optionItemActive: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n checkbox: {\n width: '20px',\n height: '20px',\n borderRadius: '4px',\n border: '2px solid var(--color-border-subtle)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginTop: '2px',\n transition: 'all 0.15s ease',\n cursor: 'pointer',\n } as React.CSSProperties,\n checkboxChecked: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n optionText: {\n flex: 1,\n } as React.CSSProperties,\n optionLabel: {\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n optionDescription: {\n fontSize: '12px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n footer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n padding: '16px 24px',\n borderTop: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n cancelButton: {\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n color: 'var(--color-text-secondary)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: 'none',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButtonDisabled: {\n backgroundColor: 'var(--color-action-primary-bg)',\n opacity: 0.5,\n cursor: 'not-allowed',\n } as React.CSSProperties,\n};\n\n// ============================================================================\n// Custom Checkbox Component\n// ============================================================================\n\ninterface CustomCheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n label: string;\n description: string;\n}\n\nconst CustomCheckbox: FC<CustomCheckboxProps> = memo(function CustomCheckbox({\n checked,\n onChange,\n disabled,\n label,\n description,\n}) {\n return (\n <label\n style={{\n ...styles.optionItem,\n ...(checked ? styles.optionItemActive : {}),\n opacity: disabled ? 0.6 : 1,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={(event) => onChange(event.target.checked)}\n disabled={disabled}\n aria-label={label}\n style={{ width: '18px', height: '18px', flexShrink: 0, accentColor: 'var(--color-action-primary-bg)' }}\n />\n <span style={styles.optionText}>\n <span className=\"block\" style={styles.optionLabel}>\n {label}\n </span>\n <span className=\"block\" style={styles.optionDescription}>\n {description}\n </span>\n </span>\n </label>\n );\n});\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ExportDashboardDialog: FC<ExportDashboardDialogProps> = memo(function ExportDashboardDialog({\n isOpen,\n dashboardId,\n dashboardName,\n onClose,\n onSuccess,\n}) {\n const [includeDataSources, setIncludeDataSources] = useState(false);\n const [includeWebhooks, setIncludeWebhooks] = useState(false);\n const [prettyPrint, setPrettyPrint] = useState(true);\n /**\n * The preview and the \"Copied\" flag are keyed by the option set that produced\n * them and DERIVED, not reset in an effect: toggling an option must invalidate\n * both instantly, and clearing them from the effect body would cascade an\n * extra render on every open (`react-hooks/set-state-in-effect`).\n */\n const [previewResult, setPreviewResult] = useState<{ key: string; json: string | null } | null>(null);\n const [copiedKey, setCopiedKey] = useState<string | null>(null);\n\n const { loading, error, downloadDashboard, clearError } = useExportDashboard();\n\n /**\n * The preview runs on its OWN hook instance. `useExportDashboard` keeps a\n * single `loading`/`error` pair per instance, so sharing one would make the\n * footer button read \"Exporting…\" while only the preview was refreshing, and\n * a preview failure would look like a failed download.\n */\n const { loading: previewLoading, error: previewError, exportDashboard: fetchPreview } = useExportDashboard();\n\n /** Identity of the current option set — one export document per combination. */\n const previewKey = `${dashboardId}|${includeDataSources}|${includeWebhooks}|${prettyPrint}`;\n const previewJson = previewResult?.key === previewKey ? previewResult.json : null;\n const copied = copiedKey === previewKey;\n\n // Reset state when dialog opens\n useEffect(() => {\n if (isOpen) {\n setIncludeDataSources(false);\n setIncludeWebhooks(false);\n setPrettyPrint(true);\n clearError();\n }\n }, [isOpen, clearError]);\n\n /**\n * Load the exact document the Download button will write, so what is reviewed\n * IS what is exported — same query, same options. Re-runs when an option\n * changes because each option changes the document.\n */\n useEffect(() => {\n if (!isOpen || !dashboardId) return;\n\n let cancelled = false;\n\n void fetchPreview(dashboardId, {\n includeDataSourceRefs: includeDataSources,\n includeWebhookMappings: includeWebhooks,\n prettyPrint,\n }).then((content) => {\n // Guard the stale response: options can change while a fetch is in flight.\n if (!cancelled) setPreviewResult({ key: previewKey, json: content });\n });\n\n return () => {\n cancelled = true;\n };\n }, [isOpen, dashboardId, includeDataSources, includeWebhooks, prettyPrint, previewKey, fetchPreview]);\n\n const handleCopyPreview = useCallback(async () => {\n if (!previewJson) return;\n const ok = await nativeCopyText(previewJson);\n if (ok) {\n setCopiedKey(previewKey);\n window.setTimeout(() => setCopiedKey(null), 2000);\n }\n }, [previewJson, previewKey]);\n\n // Handle export\n const handleExport = useCallback(async () => {\n if (!dashboardId || !previewJson || previewLoading) return;\n\n const options: ExportDashboardOptions = {\n includeDataSourceRefs: includeDataSources,\n includeWebhookMappings: includeWebhooks,\n prettyPrint,\n };\n\n const success = await downloadDashboard(dashboardId, dashboardName, { ...options, preparedContent: previewJson });\n\n if (success) {\n onSuccess?.();\n onClose();\n }\n }, [\n dashboardId,\n dashboardName,\n includeDataSources,\n includeWebhooks,\n prettyPrint,\n downloadDashboard,\n previewJson,\n previewLoading,\n onSuccess,\n onClose,\n ]);\n\n // Don't render if no dashboard\n if (!dashboardId) return null;\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !loading && onClose()}>\n <DialogContent style={styles.dialogContent}>\n {/* Header */}\n <div style={styles.header}>\n <div style={styles.iconWrapper}>\n <FileJson style={{ width: '22px', height: '22px' }} />\n </div>\n <div style={styles.headerText}>\n <DialogTitle asChild>\n <h2 style={styles.title}>Export Dashboard</h2>\n </DialogTitle>\n <DialogDescription asChild>\n <p style={styles.description}>Export your dashboard configuration to a JSON file.</p>\n </DialogDescription>\n </div>\n </div>\n\n {/* Content */}\n <div style={styles.content}>\n <SectionStack>\n {/* What is being exported — supporting context, recessed. */}\n {dashboardName && (\n <Section\n headingLevel={3}\n emphasis=\"muted\"\n padding=\"compact\"\n title=\"Exporting\"\n description={dashboardName}\n data-testid=\"export-target\"\n />\n )}\n\n {/* The choices you actually make here — one bounded group instead of\n a floating label above three unbounded rows. */}\n <Section\n headingLevel={3}\n title=\"Export options\"\n description=\"What to include in the JSON file.\"\n data-testid=\"export-options\"\n bodyClassName=\"flex flex-col gap-form-gap\"\n >\n <CustomCheckbox\n checked={includeDataSources}\n onChange={setIncludeDataSources}\n disabled\n label=\"Include Data Source References\"\n description=\"Not available for exports from this session.\"\n />\n\n <CustomCheckbox\n checked={includeWebhooks}\n onChange={setIncludeWebhooks}\n disabled\n label=\"Include Webhook Mappings\"\n description=\"Not available for exports from this session.\"\n />\n\n <CustomCheckbox\n checked={prettyPrint}\n onChange={setPrettyPrint}\n disabled={loading}\n label=\"Format JSON (Pretty Print)\"\n description=\"Makes the export file human-readable (larger file size)\"\n />\n </Section>\n\n {/* The document itself. Reviewing before download is the point of\n the dialog — the options above only make sense once you can see\n what they change. */}\n <Section\n headingLevel={3}\n title=\"Preview\"\n description=\"The exact JSON the download writes. Credentials are never serialized — only data source references.\"\n data-testid=\"export-preview\"\n actions={\n previewJson ? (\n <button type=\"button\" style={styles.previewAction} onClick={handleCopyPreview}>\n {copied ? (\n <Check style={{ width: '14px', height: '14px' }} aria-hidden=\"true\" />\n ) : (\n <Copy style={{ width: '14px', height: '14px' }} aria-hidden=\"true\" />\n )}\n {copied ? 'Copied' : 'Copy'}\n </button>\n ) : undefined\n }\n >\n {previewLoading && !previewJson && (\n <div\n style={{ display: 'flex', alignItems: 'center', gap: '8px', color: 'var(--color-text-secondary)' }}\n >\n <Spinner style={{ width: '16px', height: '16px' }} />\n <span style={{ fontSize: '13px' }}>Building the export…</span>\n </div>\n )}\n\n {!previewLoading && previewError && (\n <p style={{ margin: 0, fontSize: '13px', color: 'var(--color-status-error-text)' }}>\n Preview unavailable: {previewError.message}\n </p>\n )}\n\n {previewJson && (\n <pre style={styles.previewBlock} data-testid=\"export-preview-json\">\n {previewJson}\n </pre>\n )}\n </Section>\n\n {/* Error */}\n {error && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Export failed\"\n description={error.message}\n data-testid=\"export-error\"\n />\n )}\n </SectionStack>\n </div>\n\n {/* Footer */}\n <div style={styles.footer}>\n <button\n style={styles.cancelButton}\n onClick={onClose}\n disabled={loading}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-muted)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-surface)';\n }}\n >\n Cancel\n </button>\n <button\n style={{\n ...styles.exportButton,\n ...(loading || previewLoading || !previewJson ? styles.exportButtonDisabled : {}),\n }}\n onClick={handleExport}\n disabled={loading || previewLoading || !previewJson}\n onMouseEnter={(e) => {\n if (!loading) e.currentTarget.style.opacity = '0.9';\n }}\n onMouseLeave={(e) => {\n if (!loading) e.currentTarget.style.opacity = '1';\n }}\n >\n {loading ? (\n <>\n <Spinner style={{ width: '16px', height: '16px' }} />\n Exporting...\n </>\n ) : (\n <>\n <Download style={{ width: '16px', height: '16px' }} />\n Download Export\n </>\n )}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ExportDashboardDialog;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChip.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAgD/D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAkFD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe,qBAyOxF;AAyOD,eAAe,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChip.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.tsx"],"sourcesContent":["/**\n * FilterChip Component\n *\n * Individual filter chip with value display and controls.\n */\n\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { GlobalFilter, FilterType } from '../../../hooks';\n\ntype TranslateFn = (\n key: string,\n fallbackOrParams?: string | Record<string, string | number>,\n params?: Record<string, string | number>\n) => string;\n\n// Dynamic colors that respect dark mode\nconst getColors = (isDark: boolean) => ({\n bgPrimary: isDark ? '#1f2937' : '#ffffff',\n bgSecondary: isDark ? '#374151' : '#f9fafb',\n textPrimary: isDark ? '#f9fafb' : '#111827',\n textSecondary: isDark ? '#9ca3af' : '#6b7280',\n borderDefault: isDark ? '#4b5563' : '#e5e7eb',\n actionPrimaryBg: '#6366f1',\n actionPrimaryBgSubtle: isDark ? '#312e81' : '#eef2ff',\n actionPrimaryFg: '#ffffff',\n bgTertiary: isDark ? '#4b5563' : '#f3f4f6',\n textTertiary: isDark ? '#6b7280' : '#9ca3af',\n statusErrorText: '#ef4444',\n statusErrorBg: isDark ? '#991b1b' : '#fee2e2',\n actionPrimaryText: isDark ? '#c7d2fe' : '#4338ca',\n backdropBg: 'rgba(0, 0, 0, 0.5)',\n});\n\n// Hook to detect dark mode\nfunction useDarkMode() {\n const [isDark, setIsDark] = useState(false);\n\n useEffect(() => {\n const checkDarkMode = () => {\n setIsDark(document.documentElement.classList.contains('dark'));\n };\n checkDarkMode();\n\n const observer = new MutationObserver(checkDarkMode);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n return isDark;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterChipProps {\n filter: GlobalFilter;\n value: unknown;\n onChange: (value: unknown) => void;\n onEdit: () => void;\n onDelete: () => void;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Format filter value for display\n * Filter types per spec: DATE_RANGE, CATEGORY, CUSTOM, NUMERIC_RANGE, TEXT_SEARCH\n */\nfunction formatFilterValue(value: unknown, type: FilterType, t: TranslateFn): string {\n if (value === undefined || value === null) {\n return t('bigconsole.filters.chip.value.all', 'All');\n }\n\n switch (type) {\n case 'DATE_RANGE': {\n const dateRange = value as Record<string, unknown>;\n if (dateRange.start && dateRange.end) {\n return `${formatDate(dateRange.start as string)} - ${formatDate(dateRange.end as string)}`;\n }\n return t('bigconsole.filters.chip.value.allDates', 'All dates');\n }\n\n case 'CATEGORY':\n // Category can be single or multiple selection\n if (Array.isArray(value) && value.length > 0) {\n if (value.length === 1) {\n const first = value[0] as Record<string, unknown> | string;\n return (\n (typeof first === 'object' && first !== null\n ? ((first as Record<string, unknown>).label as string)\n : first) || String(value[0])\n );\n }\n return t('bigconsole.filters.chip.value.countSelected', '{{count}} selected', {\n count: value.length,\n });\n }\n if (typeof value === 'object' && value !== null) {\n return ((value as Record<string, unknown>).label as string) || t('bigconsole.filters.chip.value.all', 'All');\n }\n return String(value) || t('bigconsole.filters.chip.value.all', 'All');\n\n case 'TEXT_SEARCH':\n return (value as string) || t('bigconsole.filters.chip.value.any', 'Any');\n\n case 'NUMERIC_RANGE': {\n const numRange = value as Record<string, unknown>;\n if (numRange.min !== undefined && numRange.max !== undefined) {\n return `${numRange.min} - ${numRange.max}`;\n }\n if (numRange.min !== undefined) {\n return `>= ${numRange.min}`;\n }\n if (numRange.max !== undefined) {\n return `<= ${numRange.max}`;\n }\n return t('bigconsole.filters.chip.value.any', 'Any');\n }\n\n case 'CUSTOM':\n // Custom filters may have various value formats\n if (typeof value === 'object') {\n return JSON.stringify(value).substring(0, 30) + '...';\n }\n return String(value);\n\n default:\n return String(value);\n }\n}\n\nfunction formatDate(date: string | Date): string {\n const d = new Date(date);\n return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterChip({ filter, value, onChange, onEdit, onDelete }: FilterChipProps) {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n const [showMenu, setShowMenu] = useState(false);\n const chipRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const isDarkMode = useDarkMode();\n const SEMANTIC_COLORS = getColors(isDarkMode);\n\n const hasValue = value !== undefined && value !== null && value !== '';\n const displayValue = formatFilterValue(value, filter.type, t);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (chipRef.current && !chipRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setShowMenu(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n onChange(undefined);\n };\n\n return (\n <div\n ref={chipRef}\n style={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-iconGap)',\n padding: '0 var(--space-controlGap)',\n backgroundColor: hasValue ? 'var(--color-bg-accentSubtle)' : 'var(--color-bg-surface)',\n border: `1px solid ${hasValue ? 'var(--color-action-primary-border)' : 'var(--color-border-subtle)'}`,\n borderRadius: 'var(--radius-pill)',\n fontSize: 'var(--font-size-body-sm)',\n cursor: 'pointer',\n userSelect: 'none',\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\n minHeight: 'var(--size-controlHeight-md)',\n maxWidth: '100%',\n }}\n >\n {/* Filter Name */}\n <span\n style={{\n fontWeight: 'var(--font-weight-semibold)',\n color: 'var(--color-text-primary)',\n fontSize: 'var(--font-size-body-sm)',\n }}\n onClick={() => setIsOpen(!isOpen)}\n >\n {filter.name}:\n </span>\n\n {/* Filter Value */}\n <span\n style={{\n color: hasValue ? 'var(--color-text-primary)' : 'var(--color-text-secondary)',\n maxWidth: 'min(200px, 45vw)',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontWeight: 'var(--font-weight-medium)',\n fontSize: 'var(--font-size-body-sm)',\n }}\n onClick={() => setIsOpen(!isOpen)}\n >\n {displayValue}\n </span>\n\n {/* Clear button */}\n {hasValue && (\n <button\n onClick={handleClear}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '22px',\n height: '22px',\n padding: 0,\n backgroundColor: SEMANTIC_COLORS.statusErrorBg,\n border: 'none',\n borderRadius: '50%',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.actionPrimaryFg,\n fontSize: '14px',\n fontWeight: 'bold',\n marginLeft: '4px',\n boxShadow: 'var(--shadow-elevation-1)',\n }}\n title={t('bigconsole.filters.chip.action.clear', 'Clear filter')}\n >\n ×\n </button>\n )}\n\n {/* Menu button */}\n <button\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(!showMenu);\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '22px',\n height: '22px',\n padding: 0,\n backgroundColor: SEMANTIC_COLORS.textTertiary,\n border: 'none',\n borderRadius: '50%',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.actionPrimaryFg,\n fontSize: '16px',\n fontWeight: 'bold',\n marginLeft: '4px',\n boxShadow: 'var(--shadow-elevation-1)',\n }}\n title={t('bigconsole.filters.chip.action.options', 'Filter options')}\n >\n ⋮\n </button>\n\n {/* Value Editor Dropdown */}\n {isOpen && (\n <FilterValueEditor\n filter={filter}\n value={value}\n onChange={(newValue) => {\n onChange(newValue);\n setIsOpen(false);\n }}\n onClose={() => setIsOpen(false)}\n />\n )}\n\n {/* Context Menu */}\n {showMenu && (\n <>\n {/* Backdrop */}\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 99998,\n }}\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(false);\n }}\n />\n <div\n ref={menuRef}\n style={{\n position: 'absolute',\n top: '100%',\n right: 0,\n marginTop: '8px',\n minWidth: 'min(150px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 99999,\n overflow: 'hidden',\n }}\n >\n <button\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(false);\n onEdit();\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n width: '100%',\n padding: '12px 16px',\n textAlign: 'left',\n backgroundColor: 'transparent',\n border: 'none',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n cursor: 'pointer',\n fontSize: '14px',\n color: SEMANTIC_COLORS.textPrimary,\n fontWeight: 500,\n }}\n >\n ✏️ {t('bigconsole.filters.chip.menu.edit', 'Edit Filter')}\n </button>\n <button\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(false);\n onDelete();\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n width: '100%',\n padding: '12px 16px',\n textAlign: 'left',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n color: SEMANTIC_COLORS.statusErrorText,\n fontWeight: 500,\n }}\n >\n 🗑️ {t('bigconsole.filters.chip.menu.delete', 'Delete Filter')}\n </button>\n </div>\n </>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// FilterValueEditor Sub-component\n// ============================================================================\n\ninterface FilterValueEditorProps {\n filter: GlobalFilter;\n value: unknown;\n onChange: (value: unknown) => void;\n onClose: () => void;\n}\n\nfunction FilterValueEditor({ filter, value, onChange, onClose }: FilterValueEditorProps) {\n const { t } = useI18n();\n const [localValue, setLocalValue] = useState(value);\n const isDarkMode = useDarkMode();\n const SEMANTIC_COLORS = getColors(isDarkMode);\n\n const handleApply = () => {\n onChange(localValue);\n };\n\n return (\n <>\n {/* Backdrop to capture clicks outside */}\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 99998,\n }}\n onClick={onClose}\n />\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: '8px',\n minWidth: 'min(280px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n padding: '16px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '12px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 99999,\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Render appropriate input based on filter type (per spec) */}\n {filter.type === 'TEXT_SEARCH' && (\n <input\n type=\"text\"\n value={(localValue as string) || ''}\n onChange={(e) => setLocalValue(e.target.value)}\n placeholder={t('bigconsole.filters.chip.editor.searchPlaceholder', 'Search...')}\n style={{\n width: '100%',\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n )}\n\n {filter.type === 'CATEGORY' && (\n <select\n value={(localValue as string) || ''}\n onChange={(e) => setLocalValue(e.target.value)}\n style={{\n width: '100%',\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n <option value=\"\">{t('bigconsole.filters.chip.editor.allOption', 'All')}</option>\n {(filter.config.options as Array<Record<string, unknown>> | undefined)?.map((opt) => (\n <option key={String(opt.value)} value={String(opt.value)}>\n {String(opt.label)}\n </option>\n ))}\n </select>\n )}\n\n {filter.type === 'DATE_RANGE' &&\n (() => {\n const dateVal = (localValue || {}) as Record<string, string>;\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n <input\n type=\"date\"\n value={dateVal.start || ''}\n onChange={(e) => setLocalValue({ ...dateVal, start: e.target.value })}\n style={{\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <input\n type=\"date\"\n value={dateVal.end || ''}\n onChange={(e) => setLocalValue({ ...dateVal, end: e.target.value })}\n style={{\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n </div>\n );\n })()}\n\n {filter.type === 'NUMERIC_RANGE' &&\n (() => {\n const numVal = (localValue || {}) as Record<string, number | undefined>;\n return (\n <div style={{ display: 'flex', gap: '8px' }}>\n <input\n type=\"number\"\n value={numVal.min ?? ''}\n onChange={(e) =>\n setLocalValue({ ...numVal, min: e.target.value ? Number(e.target.value) : undefined })\n }\n placeholder={t('bigconsole.filters.chip.editor.minPlaceholder', 'Min')}\n style={{\n flex: 1,\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <input\n type=\"number\"\n value={numVal.max ?? ''}\n onChange={(e) =>\n setLocalValue({ ...numVal, max: e.target.value ? Number(e.target.value) : undefined })\n }\n placeholder={t('bigconsole.filters.chip.editor.maxPlaceholder', 'Max')}\n style={{\n flex: 1,\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n </div>\n );\n })()}\n\n {filter.type === 'CUSTOM' && (\n <input\n type=\"text\"\n value={typeof localValue === 'string' ? localValue : JSON.stringify(localValue || '')}\n onChange={(e) => setLocalValue(e.target.value)}\n placeholder={t('bigconsole.filters.chip.editor.customPlaceholder', 'Custom filter value...')}\n style={{\n width: '100%',\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n )}\n\n {/* Apply Button */}\n <div style={{ marginTop: '16px', display: 'flex', justifyContent: 'flex-end', gap: '10px' }}>\n <button\n onClick={onClose}\n style={{\n padding: '8px 16px',\n fontSize: '14px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textSecondary,\n fontWeight: 500,\n }}\n >\n {t('bigconsole.filters.chip.editor.cancel', 'Cancel')}\n </button>\n <button\n onClick={handleApply}\n style={{\n padding: '8px 16px',\n fontSize: '14px',\n backgroundColor: SEMANTIC_COLORS.actionPrimaryBg,\n color: SEMANTIC_COLORS.actionPrimaryFg,\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n fontWeight: 500,\n boxShadow: 'var(--shadow-elevation-1)',\n }}\n >\n {t('bigconsole.filters.chip.editor.apply', 'Apply')}\n </button>\n </div>\n </div>\n </>\n );\n}\n\nexport default FilterChip;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterEditor.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAsB/D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAMD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,iBAAiB,qBA0d1E;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterEditor.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.tsx"],"sourcesContent":["/**\n * FilterEditor Component\n *\n * Modal for creating/editing global filters.\n */\n\nimport React, { useState, useEffect, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { GlobalFilter, FilterType } from '../../../hooks';\n\n// Dynamic colors that respect dark mode\nconst getColors = (isDark: boolean) => ({\n bgPrimary: isDark ? '#1f2937' : '#ffffff',\n bgSecondary: isDark ? '#374151' : '#f9fafb',\n textPrimary: isDark ? '#f9fafb' : '#111827',\n textSecondary: isDark ? '#9ca3af' : '#6b7280',\n borderDefault: isDark ? '#4b5563' : '#e5e7eb',\n actionPrimaryBg: '#6366f1',\n actionPrimaryBgSubtle: isDark ? '#312e81' : '#eef2ff',\n actionPrimaryFg: '#ffffff',\n bgTertiary: isDark ? '#4b5563' : '#f3f4f6',\n textTertiary: isDark ? '#6b7280' : '#9ca3af',\n statusErrorText: '#dc2626',\n backdropBg: 'rgba(0, 0, 0, 0.5)',\n});\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterEditorProps {\n filter: GlobalFilter | null;\n onSave: (data: {\n name: string;\n type: FilterType;\n config: Record<string, unknown>;\n defaultValue?: unknown;\n isRequired?: boolean;\n }) => void | Promise<void>;\n onClose: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterEditor({ filter, onSave, onClose }: FilterEditorProps) {\n const { t } = useI18n();\n const [isSaving, setIsSaving] = useState(false);\n const [saveError, setSaveError] = useState(false);\n const [name, setName] = useState(filter?.name || '');\n const [type, setType] = useState<FilterType>(filter?.type || 'CATEGORY');\n const [isRequired, setIsRequired] = useState(filter?.isRequired || false);\n const [options, setOptions] = useState<{ value: string; label: string }[]>(\n (filter?.config?.options as { value: string; label: string }[] | undefined) || [{ value: '', label: '' }]\n );\n const [dataField, setDataField] = useState(typeof filter?.config?.field === 'string' ? filter.config.field : '');\n const [placeholder, setPlaceholder] = useState((filter?.config?.placeholder as string) || '');\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n // Detect dark mode\n useEffect(() => {\n const checkDarkMode = () => {\n setIsDarkMode(document.documentElement.classList.contains('dark'));\n };\n checkDarkMode();\n\n // Watch for theme changes\n const observer = new MutationObserver(checkDarkMode);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n const COLORS = getColors(isDarkMode);\n const isEditing = !!filter;\n\n /**\n * Filter types as per spec (03-graphql-contract.md)\n * Spec values: date_range, category, custom, numeric_range, text_search\n */\n const FILTER_TYPES = useMemo<{ value: FilterType; label: string; description: string }[]>(\n () => [\n {\n value: 'CATEGORY',\n label: t('bigconsole.filters.editor.type.category.label', 'Category'),\n description: t('bigconsole.filters.editor.type.category.description', 'Selection from predefined categories'),\n },\n {\n value: 'DATE_RANGE',\n label: t('bigconsole.filters.editor.type.dateRange.label', 'Date Range'),\n description: t('bigconsole.filters.editor.type.dateRange.description', 'Start and end date selection'),\n },\n {\n value: 'NUMERIC_RANGE',\n label: t('bigconsole.filters.editor.type.numericRange.label', 'Numeric Range'),\n description: t('bigconsole.filters.editor.type.numericRange.description', 'Min and max number values'),\n },\n {\n value: 'TEXT_SEARCH',\n label: t('bigconsole.filters.editor.type.textSearch.label', 'Text Search'),\n description: t('bigconsole.filters.editor.type.textSearch.description', 'Free text search input'),\n },\n {\n value: 'CUSTOM',\n label: t('bigconsole.filters.editor.type.custom.label', 'Custom'),\n description: t('bigconsole.filters.editor.type.custom.description', 'Custom filter configuration'),\n },\n ],\n [t]\n );\n\n const handleAddOption = () => {\n setOptions([...options, { value: '', label: '' }]);\n };\n\n const handleRemoveOption = (index: number) => {\n setOptions(options.filter((_, i) => i !== index));\n };\n\n const handleOptionChange = (index: number, field: 'value' | 'label', value: string) => {\n setOptions(options.map((opt, i) => (i === index ? { ...opt, [field]: value } : opt)));\n };\n\n const handleSave = async () => {\n if (isSaving) return;\n setIsSaving(true);\n setSaveError(false);\n const config: Record<string, unknown> = { ...filter?.config };\n\n // CATEGORY type uses options for selection\n if (type === 'CATEGORY') {\n config.options = options.filter((opt) => opt.value && opt.label);\n }\n\n if (placeholder) config.placeholder = placeholder;\n else delete config.placeholder;\n if (dataField.trim()) config.field = dataField.trim();\n else delete config.field;\n\n try {\n await onSave({ name, type, config, isRequired });\n } catch {\n setSaveError(true);\n } finally {\n setIsSaving(false);\n }\n };\n\n const isValid = name.trim() !== '' && (type !== 'CATEGORY' || options.some((opt) => opt.value && opt.label));\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100vw',\n height: '100vh',\n backgroundColor: COLORS.backdropBg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 10000,\n isolation: 'isolate',\n }}\n onClick={onClose}\n >\n <div\n style={{\n width: '100%',\n maxWidth: 'min(480px, calc(100vw - 2rem))',\n maxHeight: '80vh',\n backgroundColor: COLORS.bgPrimary,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n overflow: 'hidden',\n position: 'relative',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px 20px',\n borderBottom: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <h3 style={{ margin: 0, fontSize: '16px', fontWeight: 600, color: COLORS.textPrimary }}>\n {isEditing\n ? t('bigconsole.filters.editor.title.edit', 'Edit Filter')\n : t('bigconsole.filters.editor.title.add', 'Add Filter')}\n </h3>\n <button\n onClick={onClose}\n style={{\n background: 'none',\n border: 'none',\n fontSize: '20px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n lineHeight: 1,\n }}\n >\n ×\n </button>\n </div>\n\n {/* Content */}\n <div\n style={{\n padding: '20px',\n overflowY: 'auto',\n maxHeight: 'calc(80vh - 130px)',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n {/* Filter Name */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.name.label', 'Filter Name *')}\n </label>\n <input\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.name.placeholder', 'e.g., Status, Date Range, Category')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n\n <div style={{ marginBottom: '16px' }}>\n <label htmlFor=\"global-filter-data-field\" className=\"mb-2 block text-sm font-medium text-text-primary\">\n {t('bigconsole.filters.editor.dataField', 'Data field (optional)')}\n </label>\n <input\n id=\"global-filter-data-field\"\n value={dataField}\n onChange={(event) => setDataField(event.target.value)}\n className=\"w-full rounded-button border border-border-subtle bg-bg-surface px-3 py-2 text-text-primary\"\n placeholder={t('bigconsole.filters.editor.dataFieldPlaceholder', 'e.g., region, country, cohort')}\n />\n <p className=\"mt-1 text-xs text-text-secondary\">\n {t(\n 'bigconsole.filters.editor.dataFieldHelp',\n 'Match a field in the parser output. Leave blank to use automatic matching.'\n )}\n </p>\n </div>\n\n {saveError && (\n <p role=\"alert\" className=\"mb-3 text-sm text-status-error-text\">\n {t(\n 'bigconsole.filters.editor.saveError',\n 'The filter could not be saved. Your changes are still here; try again.'\n )}\n </p>\n )}\n {/* Filter Type */}\n {!isEditing && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.type.label', 'Filter Type *')}\n </label>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '10px' }}>\n {FILTER_TYPES.map((ft) => (\n <button\n key={ft.value}\n onClick={() => setType(ft.value)}\n type=\"button\"\n style={{\n padding: '12px',\n textAlign: 'left',\n backgroundColor: type === ft.value ? COLORS.actionPrimaryBgSubtle : COLORS.bgSecondary,\n border: `2px solid ${type === ft.value ? COLORS.actionPrimaryBg : COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n minHeight: '60px',\n }}\n >\n <div style={{ fontWeight: 500, fontSize: '13px', color: COLORS.textPrimary }}>{ft.label}</div>\n <div\n style={{\n fontSize: '11px',\n color: COLORS.textSecondary,\n marginTop: '4px',\n lineHeight: '1.3',\n }}\n >\n {ft.description}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Options (for CATEGORY type) */}\n {type === 'CATEGORY' && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.options.label', 'Options')}\n </label>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n {options.map((opt, index) => (\n <div key={index} style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\n <input\n type=\"text\"\n value={opt.value}\n onChange={(e) => handleOptionChange(index, 'value', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.valuePlaceholder', 'Value')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n <input\n type=\"text\"\n value={opt.label}\n onChange={(e) => handleOptionChange(index, 'label', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.labelPlaceholder', 'Label')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n {options.length > 1 && (\n <button\n type=\"button\"\n onClick={() => handleRemoveOption(index)}\n style={{\n padding: '6px 10px',\n backgroundColor: 'transparent',\n border: `1px solid ${COLORS.statusErrorText}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.statusErrorText,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.remove', 'Remove')}\n </button>\n )}\n </div>\n ))}\n <button\n type=\"button\"\n onClick={handleAddOption}\n style={{\n padding: '8px',\n backgroundColor: 'transparent',\n border: `1px dashed ${COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.add', '+ Add Option')}\n </button>\n </div>\n </div>\n )}\n\n {/* Placeholder */}\n {(type === 'TEXT_SEARCH' || type === 'CATEGORY') && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.placeholder.label', 'Placeholder Text')}\n </label>\n <input\n type=\"text\"\n value={placeholder}\n onChange={(e) => setPlaceholder(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.placeholder.placeholder', 'e.g., Select an option...')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n )}\n\n {/* Required Toggle */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n cursor: 'pointer',\n }}\n >\n <input\n type=\"checkbox\"\n checked={isRequired}\n onChange={(e) => setIsRequired(e.target.checked)}\n style={{ width: '16px', height: '16px' }}\n />\n <span style={{ fontSize: '13px', color: COLORS.textPrimary }}>\n {t('bigconsole.filters.editor.field.required.label', 'Required filter (must have a value)')}\n </span>\n </label>\n </div>\n </div>\n\n {/* Footer */}\n <div\n style={{\n padding: '16px 20px',\n borderTop: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <button\n type=\"button\"\n onClick={onClose}\n style={{\n padding: '10px 20px',\n backgroundColor: COLORS.bgPrimary,\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '14px',\n color: COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.editor.action.cancel', 'Cancel')}\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={!isValid || isSaving}\n style={{\n padding: '10px 20px',\n backgroundColor: isValid ? COLORS.actionPrimaryBg : COLORS.bgTertiary,\n color: isValid ? COLORS.actionPrimaryFg : COLORS.textTertiary,\n border: 'none',\n borderRadius: '6px',\n cursor: isValid ? 'pointer' : 'not-allowed',\n fontSize: '14px',\n fontWeight: 500,\n }}\n >\n {isEditing\n ? t('bigconsole.filters.editor.action.saveChanges', 'Save Changes')\n : t('bigconsole.filters.editor.action.add', 'Add Filter')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nexport default FilterEditor;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPresetSelector.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAgB,GACjB,EAAE,yBAAyB,qBAkW3B;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPresetSelector.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.tsx"],"sourcesContent":["/**\n * FilterPresetSelector Component\n *\n * Dropdown to select, save, and manage filter presets.\n */\n\nimport React, { useState, useRef, useEffect } from 'react';\nimport type { FilterPreset } from '../../../hooks/useFilterPresets';\nimport { SEMANTIC_COLORS } from '../../../utils/semanticTokens';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterPresetSelectorProps {\n presets: FilterPreset[];\n activePresetId: string | null;\n onApplyPreset: (presetId: string) => void;\n onSavePreset: (name: string, description?: string) => void;\n onDeletePreset: (presetId: string) => void;\n disabled?: boolean;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterPresetSelector({\n presets,\n activePresetId,\n onApplyPreset,\n onSavePreset,\n onDeletePreset,\n disabled = false,\n}: FilterPresetSelectorProps) {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n const [showSaveDialog, setShowSaveDialog] = useState(false);\n const [newPresetName, setNewPresetName] = useState('');\n const [newPresetDescription, setNewPresetDescription] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const activePreset = presets.find((p) => p.id === activePresetId);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setShowSaveDialog(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const handleSavePreset = () => {\n if (newPresetName.trim()) {\n onSavePreset(newPresetName.trim(), newPresetDescription.trim() || undefined);\n setNewPresetName('');\n setNewPresetDescription('');\n setShowSaveDialog(false);\n setIsOpen(false);\n }\n };\n\n const handleDeletePreset = (e: React.MouseEvent, presetId: string) => {\n e.stopPropagation();\n if (window.confirm(t('bigconsole.filters.presets.deleteConfirm', 'Are you sure you want to delete this preset?'))) {\n onDeletePreset(presetId);\n }\n };\n\n return (\n <div ref={dropdownRef} style={{ position: 'relative', display: 'inline-block' }}>\n {/* Preset Button */}\n <button\n onClick={() => !disabled && setIsOpen(!isOpen)}\n disabled={disabled}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '8px 14px',\n backgroundColor: activePreset ? SEMANTIC_COLORS.statusSuccessBgSubtle : SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${activePreset ? SEMANTIC_COLORS.statusSuccessBg : SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n fontSize: '13px',\n color: activePreset ? SEMANTIC_COLORS.statusSuccessText : SEMANTIC_COLORS.textSecondary,\n fontWeight: 500,\n opacity: disabled ? 0.6 : 1,\n minWidth: 'min(140px, 100%)',\n maxWidth: '100%',\n justifyContent: 'space-between',\n }}\n >\n <span style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z\" />\n <polyline points=\"17,21 17,13 7,13 7,21\" />\n <polyline points=\"7,3 7,8 15,8\" />\n </svg>\n {activePreset ? activePreset.name : t('bigconsole.filters.presets.buttonLabel', 'Presets')}\n </span>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n style={{\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease',\n }}\n >\n <polyline points=\"6,9 12,15 18,9\" />\n </svg>\n </button>\n\n {/* Dropdown Menu */}\n {isOpen && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: '4px',\n minWidth: 'min(280px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-2)',\n zIndex: 100000,\n overflow: 'hidden',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '12px 16px',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n backgroundColor: SEMANTIC_COLORS.bgSecondary,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '13px', color: SEMANTIC_COLORS.textPrimary }}>\n {t('bigconsole.filters.presets.header', 'Filter Presets')}\n </span>\n <button\n onClick={() => setShowSaveDialog(true)}\n style={{\n padding: '4px 10px',\n fontSize: '12px',\n backgroundColor: SEMANTIC_COLORS.actionPrimaryBg,\n color: SEMANTIC_COLORS.actionPrimaryFg,\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n fontWeight: 500,\n }}\n >\n {t('bigconsole.filters.presets.saveCurrent', '+ Save Current')}\n </button>\n </div>\n\n {/* Save Dialog */}\n {showSaveDialog && (\n <div\n style={{\n padding: '12px 16px',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n backgroundColor: SEMANTIC_COLORS.bgSecondary,\n }}\n >\n <input\n type=\"text\"\n value={newPresetName}\n onChange={(e) => setNewPresetName(e.target.value)}\n placeholder={t('bigconsole.filters.presets.namePlaceholder', 'Preset name...')}\n autoFocus\n style={{\n width: '100%',\n padding: '8px 10px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n marginBottom: '8px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <input\n type=\"text\"\n value={newPresetDescription}\n onChange={(e) => setNewPresetDescription(e.target.value)}\n placeholder={t('bigconsole.filters.presets.descriptionPlaceholder', 'Description (optional)...')}\n style={{\n width: '100%',\n padding: '8px 10px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n marginBottom: '8px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <div style={{ display: 'flex', gap: '8px', justifyContent: 'flex-end' }}>\n <button\n onClick={() => {\n setShowSaveDialog(false);\n setNewPresetName('');\n setNewPresetDescription('');\n }}\n style={{\n padding: '6px 12px',\n fontSize: '12px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.presets.cancel', 'Cancel')}\n </button>\n <button\n onClick={handleSavePreset}\n disabled={!newPresetName.trim()}\n style={{\n padding: '6px 12px',\n fontSize: '12px',\n backgroundColor: newPresetName.trim()\n ? SEMANTIC_COLORS.statusSuccessBg\n : SEMANTIC_COLORS.bgTertiary,\n color: newPresetName.trim() ? SEMANTIC_COLORS.actionPrimaryFg : SEMANTIC_COLORS.textTertiary,\n border: 'none',\n borderRadius: '4px',\n cursor: newPresetName.trim() ? 'pointer' : 'not-allowed',\n fontWeight: 500,\n }}\n >\n {t('bigconsole.filters.presets.save', 'Save')}\n </button>\n </div>\n </div>\n )}\n\n {/* Preset List */}\n <div style={{ maxHeight: '300px', overflowY: 'auto' }}>\n {presets.map((preset) => (\n <div\n key={preset.id}\n onClick={() => {\n onApplyPreset(preset.id);\n setIsOpen(false);\n }}\n style={{\n padding: '10px 16px',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: activePresetId === preset.id ? SEMANTIC_COLORS.actionPrimaryBgSubtle : 'transparent',\n borderLeft:\n activePresetId === preset.id\n ? `3px solid ${SEMANTIC_COLORS.actionPrimaryBg}`\n : '3px solid transparent',\n transition: 'background-color 0.15s ease',\n }}\n onMouseEnter={(e) => {\n if (activePresetId !== preset.id) {\n e.currentTarget.style.backgroundColor = SEMANTIC_COLORS.bgSecondary;\n }\n }}\n onMouseLeave={(e) => {\n if (activePresetId !== preset.id) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n <div style={{ flex: 1 }}>\n <div\n style={{\n fontSize: '13px',\n fontWeight: 500,\n color: SEMANTIC_COLORS.textPrimary,\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n {preset.name}\n {preset.isDefault && (\n <span\n style={{\n fontSize: '10px',\n padding: '2px 6px',\n backgroundColor: SEMANTIC_COLORS.bgTertiary,\n borderRadius: '4px',\n color: SEMANTIC_COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.presets.defaultBadge', 'Default')}\n </span>\n )}\n </div>\n {preset.description && (\n <div style={{ fontSize: '11px', color: SEMANTIC_COLORS.textTertiary, marginTop: '2px' }}>\n {preset.description}\n </div>\n )}\n </div>\n\n {/* Delete button (not for default or system presets) */}\n {!preset.isDefault && !preset.id.startsWith('preset-last') && !preset.id.startsWith('preset-this') && (\n <button\n onClick={(e) => handleDeletePreset(e, preset.id)}\n style={{\n padding: '4px',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textTertiary,\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = SEMANTIC_COLORS.statusErrorBgSubtle;\n e.currentTarget.style.color = SEMANTIC_COLORS.statusErrorText;\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n e.currentTarget.style.color = SEMANTIC_COLORS.textTertiary;\n }}\n title={t('bigconsole.filters.presets.deletePresetTitle', 'Delete preset')}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"3,6 5,6 21,6\" />\n <path d=\"M19,6v14a2,2,0,01-2,2H7a2,2,0,01-2-2V6m3,0V4a2,2,0,012-2h4a2,2,0,012,2v2\" />\n </svg>\n </button>\n )}\n\n {/* Checkmark for active preset */}\n {activePresetId === preset.id && (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={SEMANTIC_COLORS.actionPrimaryBg}\n strokeWidth=\"3\"\n style={{ marginLeft: '8px' }}\n >\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n )}\n </div>\n ))}\n\n {presets.length === 0 && (\n <div\n style={{\n padding: '20px 16px',\n textAlign: 'center',\n color: SEMANTIC_COLORS.textTertiary,\n fontSize: '13px',\n }}\n >\n {t('bigconsole.filters.presets.emptyState', 'No presets saved yet')}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport default FilterPresetSelector;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFiltersBar.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAmChE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,cAAc,EACd,WAAkB,EAClB,SAAc,EACd,aAAoB,EACpB,aAAoB,GACrB,EAAE,qBAAqB,qBAmZvB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFiltersBar.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.tsx"],"sourcesContent":["/**\n * GlobalFiltersBar Component\n *\n * Displays and manages global dashboard filters.\n * v2.0: Added URL persistence and filter presets support.\n */\n\nimport React, { useState, useEffect, useCallback } from 'react';\nimport {\n useGlobalFilters,\n useFilterUrlSync,\n useFilterPresets,\n type GlobalFilter,\n type FilterType,\n} from '../../../hooks';\nimport { FilterChip } from './FilterChip';\nimport { useDashboardStore, useGlobalFilterValues } from '../../../store';\nimport { FilterEditor } from './FilterEditor';\nimport { FilterPresetSelector } from './FilterPresetSelector';\nimport { SEMANTIC_COLORS } from '../../../utils/semanticTokens';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { SECTION_FOCUS_RING } from '../../common';\n\n// ============================================================================\n// Local class vocabulary\n// ============================================================================\n\n/**\n * The filters bar configures the board below it. Before this it shipped a\n * saturated primary \"+ Add Filter\" with an indigo glow and a drop-shadowed\n * container, which made the configuration louder than the data it filtered.\n * Everything here is deliberately secondary weight.\n */\nconst SECONDARY_BUTTON_CLASSES = `inline-flex min-h-control-sm items-center gap-icon-gap rounded-button border border-[var(--color-border-subtle)] bg-bg-surface px-3 py-1 text-sm font-medium text-text-primary motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`;\n\n/** Text-only affordances (reset, collapse) sit a step below that again. */\nconst QUIET_BUTTON_CLASSES = `inline-flex min-h-control-sm items-center gap-icon-gap rounded-button px-2 py-1 text-sm font-medium text-text-secondary motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`;\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface GlobalFiltersBarProps {\n dashboardId: string;\n onFilterChange?: (values: Record<string, unknown>) => void;\n collapsible?: boolean;\n className?: string;\n /** Enable URL sync for shareable filtered views */\n enableUrlSync?: boolean;\n /** Enable filter presets */\n enablePresets?: boolean;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function GlobalFiltersBar({\n dashboardId,\n onFilterChange,\n collapsible = true,\n className = '',\n enableUrlSync = true,\n enablePresets = true,\n}: GlobalFiltersBarProps) {\n const { t } = useI18n();\n const { filters, loading, error, fetchFilters, createFilter, updateFilter, deleteFilter } = useGlobalFilters();\n\n // Widgets, presets, URL hydration and the controls share one value store.\n // The definition hook's private defaults must never replace hydrated values.\n const activeValues = useGlobalFilterValues();\n const setFilterValue = useDashboardStore((state) => state.setGlobalFilterValue);\n const setFilterValues = useDashboardStore((state) => state.setGlobalFilterValues);\n const clearFilterValue = useDashboardStore((state) => state.clearGlobalFilterValue);\n\n useEffect(() => {\n const current = useDashboardStore.getState().globalFilterValues;\n const defaults = Object.fromEntries(\n filters\n .filter((filter) => filter.defaultValue !== undefined && !(filter.id in current))\n .map((filter) => [filter.id, filter.defaultValue])\n );\n if (Object.keys(defaults).length) setFilterValues({ ...defaults, ...current });\n }, [filters, activeValues, setFilterValues]);\n\n // URL Sync hook\n const { getShareableUrl, clearUrlParams } = useFilterUrlSync({\n enabled: enableUrlSync,\n paramPrefix: 'filter_',\n debounceMs: 300,\n });\n\n // Filter Presets hook\n const {\n presets,\n activePresetId,\n loadPresets,\n applyPreset,\n saveCurrentAsPreset,\n deletePreset: removePreset,\n clearActivePreset,\n } = useFilterPresets(dashboardId);\n\n const [isCollapsed, setIsCollapsed] = useState(false);\n const [isEditorOpen, setIsEditorOpen] = useState(false);\n const [editingFilter, setEditingFilter] = useState<GlobalFilter | null>(null);\n const [showShareTooltip, setShowShareTooltip] = useState(false);\n\n // Fetch filters on mount\n useEffect(() => {\n if (dashboardId) {\n fetchFilters(dashboardId);\n if (enablePresets) {\n loadPresets(dashboardId);\n }\n }\n }, [dashboardId, fetchFilters, loadPresets, enablePresets]);\n\n // Notify parent of filter changes\n useEffect(() => {\n if (onFilterChange) {\n // URL hydration/default initialization can update the store after this\n // render. Notify with its current values, never an old empty snapshot.\n onFilterChange(useDashboardStore.getState().globalFilterValues);\n }\n }, [activeValues, onFilterChange]);\n\n // Clear active preset when filter values change manually\n useEffect(() => {\n if (activePresetId && Object.keys(activeValues).length > 0) {\n // Check if current values differ from active preset\n const preset = presets.find((p) => p.id === activePresetId);\n if (preset) {\n const presetStr = JSON.stringify(preset.values);\n const currentStr = JSON.stringify(activeValues);\n if (presetStr !== currentStr) {\n clearActivePreset();\n }\n }\n }\n }, [activeValues, activePresetId, presets, clearActivePreset]);\n\n // Handle filter value change\n const handleFilterChange = useCallback(\n (filterId: string, value: unknown) => {\n setFilterValue(filterId, value);\n },\n [setFilterValue]\n );\n\n // Handle add new filter\n const handleAddFilter = useCallback(() => {\n setEditingFilter(null);\n setIsEditorOpen(true);\n }, []);\n\n // Handle edit filter\n const handleEditFilter = useCallback((filter: GlobalFilter) => {\n setEditingFilter(filter);\n setIsEditorOpen(true);\n }, []);\n\n // Handle save filter\n const handleSaveFilter = useCallback(\n async (data: {\n name: string;\n type: FilterType;\n config: Record<string, unknown>;\n defaultValue?: unknown;\n isRequired?: boolean;\n }) => {\n if (editingFilter) {\n const saved = await updateFilter({\n id: editingFilter.id,\n name: data.name,\n config: data.config,\n defaultValue: data.defaultValue,\n isRequired: data.isRequired,\n });\n if (!saved) throw new Error('Filter save failed');\n } else {\n const saved = await createFilter({\n dashboardId,\n name: data.name,\n type: data.type,\n config: data.config,\n defaultValue: data.defaultValue,\n isRequired: data.isRequired,\n });\n if (!saved) throw new Error('Filter save failed');\n }\n setIsEditorOpen(false);\n setEditingFilter(null);\n },\n [dashboardId, editingFilter, createFilter, updateFilter]\n );\n\n // Handle delete filter\n const handleDeleteFilter = useCallback(\n async (filterId: string) => {\n if (await deleteFilter(filterId)) clearFilterValue(filterId);\n },\n [deleteFilter, clearFilterValue]\n );\n\n // Handle reset all filters\n const handleResetAll = useCallback(() => {\n setFilterValues(\n Object.fromEntries(\n filters.filter((filter) => filter.defaultValue !== undefined).map((filter) => [filter.id, filter.defaultValue])\n )\n );\n clearUrlParams();\n clearActivePreset();\n }, [filters, setFilterValues, clearUrlParams, clearActivePreset]);\n\n // Handle copy shareable URL\n const handleCopyShareableUrl = useCallback(async () => {\n const url = getShareableUrl();\n try {\n await navigator.clipboard.writeText(url);\n setShowShareTooltip(true);\n setTimeout(() => setShowShareTooltip(false), 2000);\n } catch {\n // Failed to copy URL to clipboard\n }\n }, [getShareableUrl]);\n\n // Handle apply preset\n const handleApplyPreset = useCallback(\n (presetId: string) => {\n applyPreset(presetId);\n },\n [applyPreset]\n );\n\n // Handle save current as preset\n const handleSavePreset = useCallback(\n (name: string, description?: string) => {\n saveCurrentAsPreset(name, description);\n },\n [saveCurrentAsPreset]\n );\n\n // Handle delete preset\n const handleDeletePreset = useCallback(\n (presetId: string) => {\n removePreset(presetId);\n },\n [removePreset]\n );\n\n // Toggle collapse\n const toggleCollapse = useCallback(() => {\n setIsCollapsed((prev) => !prev);\n }, []);\n\n // Count active filters\n const activeFilterCount = filters.filter(\n (filter) =>\n activeValues[filter.id] !== undefined && activeValues[filter.id] !== null && activeValues[filter.id] !== ''\n ).length;\n\n if (loading && filters.length === 0 && !isEditorOpen) {\n return (\n <div\n className={`flex flex-wrap items-center gap-control-gap border-b border-[var(--color-border-subtle)] bg-bg-sunken px-card-padding py-control-gap ${className}`}\n role=\"status\"\n aria-live=\"polite\"\n data-testid=\"global-filters-loading\"\n >\n <span className=\"h-icon-sm w-icon-sm animate-spin rounded-full border-2 border-action-primary-bg border-t-transparent\" />\n <span className=\"text-sm text-text-secondary\">{t('bigconsole.filters.bar.loading', 'Loading filters...')}</span>\n </div>\n );\n }\n\n const errorFeedback = error && (\n <div role=\"alert\" className=\"flex flex-wrap items-center gap-2 px-3 py-2 text-sm text-status-error-text\">\n <span>{t('bigconsole.filters.bar.requestFailed', 'Filters could not be loaded or saved. Try again.')}</span>\n <button type=\"button\" onClick={() => void fetchFilters(dashboardId)} className={QUIET_BUTTON_CLASSES}>\n {t('bigconsole.filters.bar.retry', 'Retry')}\n </button>\n </div>\n );\n\n // Show empty state with \"Add Filter\" button when no filters exist\n if (filters.length === 0) {\n return (\n <div\n className={`flex flex-wrap items-center justify-between gap-control-gap border-b border-[var(--color-border-subtle)] bg-bg-sunken px-card-padding py-control-gap ${className}`}\n data-testid=\"global-filters-empty\"\n >\n <div className=\"flex min-w-0 flex-wrap items-center gap-icon-gap\">\n <h2 className=\"text-sm font-semibold text-text-primary\">{t('bigconsole.filters.bar.title', 'Filters')}</h2>\n <span className=\"text-sm text-text-muted\">\n {t('bigconsole.filters.bar.noFiltersConfigured', 'No filters configured')}\n </span>\n </div>\n <button type=\"button\" onClick={handleAddFilter} className={SECONDARY_BUTTON_CLASSES}>\n {t('bigconsole.filters.bar.addFilter', '+ Add Filter')}\n </button>\n\n {errorFeedback}\n {/* Filter Editor Modal */}\n {isEditorOpen && (\n <FilterEditor\n filter={editingFilter}\n onSave={handleSaveFilter}\n onClose={() => {\n setIsEditorOpen(false);\n setEditingFilter(null);\n }}\n />\n )}\n </div>\n );\n }\n\n return (\n <section\n // A configuration band, not a result: recessed surface, no drop shadow,\n // secondary-weight controls. It sits directly above the board and must\n // stay quieter than it.\n className={`flex min-w-0 flex-col border-b border-[var(--color-border-subtle)] bg-bg-sunken ${className}`}\n aria-labelledby=\"global-filters-heading\"\n data-testid=\"global-filters-bar\"\n >\n {errorFeedback}\n {/* Header */}\n <div\n className={`flex flex-wrap items-center justify-between gap-control-gap px-card-padding py-control-gap ${\n isCollapsed ? '' : 'border-b border-[var(--color-border-subtle)]'\n }`}\n >\n <div className=\"flex min-w-0 flex-wrap items-center gap-icon-gap\">\n <h2 id=\"global-filters-heading\" className=\"text-sm font-semibold text-text-primary\">\n {t('bigconsole.filters.bar.title', 'Filters')}\n </h2>\n <span className=\"rounded-pill bg-bg-surface px-2 py-0.5 text-xs font-medium text-text-secondary\">\n {filters.length}\n </span>\n {activeFilterCount > 0 && (\n <span className=\"rounded-pill bg-[var(--color-status-success-bgSubtle)] px-2 py-0.5 text-xs font-medium text-status-success-text\">\n {t('bigconsole.filters.bar.activeCount', '{{count}} active', {\n count: activeFilterCount ?? '',\n })}\n </span>\n )}\n </div>\n\n <div className=\"flex min-w-0 flex-wrap items-center justify-end gap-control-gap\">\n {/* Filter Presets Selector */}\n {enablePresets && (\n <FilterPresetSelector\n presets={presets}\n activePresetId={activePresetId}\n onApplyPreset={handleApplyPreset}\n onSavePreset={handleSavePreset}\n onDeletePreset={handleDeletePreset}\n />\n )}\n\n {/* Share URL Button */}\n {enableUrlSync && activeFilterCount > 0 && (\n <div style={{ position: 'relative' }}>\n <button\n type=\"button\"\n onClick={handleCopyShareableUrl}\n title={t('bigconsole.filters.bar.shareUrlTitle', 'Copy shareable URL with filters')}\n className={SECONDARY_BUTTON_CLASSES}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8\" />\n <polyline points=\"16,6 12,2 8,6\" />\n <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\" />\n </svg>\n {t('bigconsole.filters.bar.share', 'Share')}\n </button>\n {showShareTooltip && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginTop: '4px',\n padding: '6px 12px',\n backgroundColor: SEMANTIC_COLORS.textPrimary,\n color: SEMANTIC_COLORS.bgPrimary,\n fontSize: '12px',\n borderRadius: '4px',\n whiteSpace: 'nowrap',\n zIndex: 100001,\n }}\n >\n {t('bigconsole.filters.bar.urlCopied', 'URL copied!')}\n </div>\n )}\n </div>\n )}\n\n {/* Reset Button */}\n {activeFilterCount > 0 && (\n <button type=\"button\" onClick={handleResetAll} className={`${QUIET_BUTTON_CLASSES} text-status-error-text`}>\n {t('bigconsole.filters.bar.resetAll', 'Reset all')}\n </button>\n )}\n\n {/* Add Filter Button */}\n <button type=\"button\" onClick={handleAddFilter} className={SECONDARY_BUTTON_CLASSES}>\n {t('bigconsole.filters.bar.addFilter', '+ Add Filter')}\n </button>\n\n {/* Collapse Button */}\n {collapsible && (\n <button\n type=\"button\"\n onClick={toggleCollapse}\n aria-expanded={!isCollapsed}\n // The chips container is unmounted while collapsed; pointing\n // aria-controls at a missing id is an invalid reference, so only\n // advertise it when the target actually exists.\n aria-controls={isCollapsed ? undefined : 'global-filters-chips'}\n className={QUIET_BUTTON_CLASSES}\n >\n {isCollapsed\n ? t('bigconsole.filters.bar.expand', '▼ Expand')\n : t('bigconsole.filters.bar.collapse', '▲ Collapse')}\n </button>\n )}\n </div>\n </div>\n\n {/* Filters List */}\n {!isCollapsed && (\n <div\n id=\"global-filters-chips\"\n className=\"relative flex flex-wrap gap-control-gap px-card-padding py-control-gap\"\n style={{ overflow: 'visible' }}\n >\n {filters.map((filter) => (\n <FilterChip\n key={filter.id}\n filter={filter}\n value={activeValues[filter.id]}\n onChange={(value) => handleFilterChange(filter.id, value)}\n onEdit={() => handleEditFilter(filter)}\n onDelete={() => handleDeleteFilter(filter.id)}\n />\n ))}\n </div>\n )}\n\n {/* Filter Editor Modal */}\n {isEditorOpen && (\n <FilterEditor\n filter={editingFilter}\n onSave={handleSaveFilter}\n onClose={() => {\n setIsEditorOpen(false);\n setEditingFilter(null);\n }}\n />\n )}\n </section>\n );\n}\n\nexport default GlobalFiltersBar;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImportDashboardDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/ImportDashboardDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkD,MAAM,OAAO,CAAC;AA2BhF,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5F;AAsBD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA0iB/D,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImportDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/ImportDashboardDialog.tsx"],"sourcesContent":["/**\n * ImportDashboardDialog Component\n *\n * Modal dialog for importing a dashboard from JSON file.\n * Supports both creating new dashboards and updating existing ones.\n * Uses fe-libs shared UI components for consistent styling.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect, useRef } from 'react';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Label } from '@burdenoff/fe-libs/ui';\nimport { Checkbox } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { Badge } from '@burdenoff/fe-libs/ui';\nimport { Upload, FileJson, Check, AlertTriangle, XCircle, ArrowLeft, RefreshCw, Info } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Section } from '../common';\nimport { useImportDashboard, type ImportDashboardOptions } from '../../hooks';\nimport { useBigConsoleAnalytics } from '../../hooks/useBigConsoleAnalytics';\nimport { reportBigConsoleQuotaError } from '../../utils/quota';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ImportDashboardDialogProps {\n isOpen: boolean;\n onClose: () => void;\n onSuccess?: (dashboardId: string, dashboardName: string, originalUpdated: boolean) => void;\n}\n\ntype ImportStep = 'select' | 'preview' | 'importing' | 'complete';\n\n// ============================================================================\n// Helper: Extract dashboard ID from content\n// ============================================================================\n\nfunction extractDashboardId(content: string | null): string | null {\n if (!content) return null;\n try {\n const parsed = JSON.parse(content);\n return parsed.exportedFrom?.dashboardId || parsed.dashboard?.id || null;\n } catch {\n return null;\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ImportDashboardDialog: FC<ImportDashboardDialogProps> = memo(function ImportDashboardDialog({\n isOpen,\n onClose,\n onSuccess,\n}) {\n const { t } = useI18n();\n const [step, setStep] = useState<ImportStep>('select');\n const [, setSelectedFile] = useState<File | null>(null);\n const [fileContent, setFileContent] = useState<string | null>(null);\n const [nameOverride, setNameOverride] = useState('');\n const [visibility, setVisibility] = useState<'PRIVATE' | 'TEAM' | 'PUBLIC'>('PRIVATE');\n const [skipWarnings, setSkipWarnings] = useState(false);\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const { loading, error, validationResult, importResult, validateImport, importDashboard, clearState } =\n useImportDashboard();\n const emitBigConsoleEvent = useBigConsoleAnalytics();\n\n // Reset state when dialog opens\n useEffect(() => {\n if (isOpen) {\n setStep('select');\n setSelectedFile(null);\n setFileContent(null);\n setNameOverride('');\n setVisibility('PRIVATE');\n setSkipWarnings(false);\n clearState();\n }\n }, [isOpen, clearState]);\n\n // Handle file selection\n const handleFileSelect = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n if (!file.name.endsWith('.json')) {\n alert(t('bigconsole.dashboards.import.selectJsonFile', 'Please select a JSON file'));\n return;\n }\n\n setSelectedFile(file);\n\n const reader = new FileReader();\n reader.onload = async (event) => {\n const content = event.target?.result as string;\n setFileContent(content);\n\n const result = await validateImport(content);\n if (result) {\n setStep('preview');\n if (result.dashboardInfo?.name) {\n setNameOverride(result.dashboardInfo.name);\n }\n }\n };\n reader.onerror = () => {\n alert(t('bigconsole.dashboards.import.failedToReadFile', 'Failed to read file'));\n };\n reader.readAsText(file);\n },\n [validateImport, t]\n );\n\n // Handle file drop\n const handleDrop = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n const file = e.dataTransfer.files?.[0];\n if (file) {\n const dt = new DataTransfer();\n dt.items.add(file);\n if (fileInputRef.current) {\n fileInputRef.current.files = dt.files;\n fileInputRef.current.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n }, []);\n\n // Handle import\n const handleImport = useCallback(async () => {\n if (!fileContent) return;\n\n setStep('importing');\n\n const options: ImportDashboardOptions = {\n name: nameOverride.trim() || undefined,\n visibility,\n skipWarnings,\n };\n\n emitBigConsoleEvent('bigconsole.dashboard.import_clicked', { source: 'import' });\n\n try {\n const result = await importDashboard(fileContent, options);\n\n if (result?.success && result.dashboard) {\n setStep('complete');\n emitBigConsoleEvent('bigconsole.dashboard.imported', {\n dashboardId: result.dashboard.id,\n source: 'import',\n originalUpdated: result.originalUpdated ?? false,\n });\n onSuccess?.(result.dashboard.id, result.dashboard.name, result.originalUpdated ?? false);\n } else {\n setStep('preview');\n }\n } catch (err) {\n if (reportBigConsoleQuotaError(err, 'project')) {\n onClose();\n return;\n }\n setStep('preview');\n }\n }, [emitBigConsoleEvent, fileContent, importDashboard, nameOverride, onClose, onSuccess, skipWarnings, visibility]);\n\n const canClose = !loading && step !== 'importing';\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && canClose && onClose()}>\n <DialogContent className=\"sm:max-w-lg max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <div className=\"flex items-center gap-3\">\n <div className=\"flex size-10 items-center justify-center rounded-lg bg-action-primary-bg/10\">\n <Upload className=\"size-5 text-primary\" />\n </div>\n <DialogTitle>{t('bigconsole.dashboards.import.title', 'Import Dashboard')}</DialogTitle>\n </div>\n <DialogDescription>\n {t(\n 'bigconsole.dashboards.import.description',\n 'Upload a Dashboard export file to restore it into this workspace.'\n )}\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex-1 overflow-y-auto py-4 space-y-4\">\n {/* Step 1: File Selection */}\n {step === 'select' && (\n <div\n onDragOver={(e) => e.preventDefault()}\n onDrop={handleDrop}\n className=\"border-2 border-dashed rounded-lg p-8 text-center hover:border-primary transition-colors\"\n >\n <FileJson className=\"size-12 mx-auto text-text-secondary mb-4\" />\n <p className=\"text-sm mb-2\">\n {t('bigconsole.dashboards.import.dropzoneTitle', 'Drag and drop a dashboard export file here')}\n </p>\n <p className=\"text-xs text-text-secondary mb-4\">{t('bigconsole.dashboards.import.or', 'or')}</p>\n <input ref={fileInputRef} type=\"file\" accept=\".json\" onChange={handleFileSelect} className=\"hidden\" />\n <Button onClick={() => fileInputRef.current?.click()} disabled={loading}>\n {t('bigconsole.dashboards.import.browseFiles', 'Browse Files')}\n </Button>\n <p className=\"text-xs text-text-secondary mt-4\">\n {t(\n 'bigconsole.dashboards.import.supportedFilesHint',\n 'Only .json files exported from BigConsole are supported'\n )}\n </p>\n </div>\n )}\n\n {/* Step 2: Preview & Options */}\n {(step === 'preview' || step === 'importing') && validationResult && (\n <>\n {/* Dashboard Info */}\n <Section\n headingLevel={3}\n emphasis=\"muted\"\n padding=\"compact\"\n title=\"What's in this file\"\n data-testid=\"import-summary\"\n bodyClassName=\"space-y-2\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldDashboard', 'Dashboard')}\n </span>\n <span className=\"text-sm font-medium\">{validationResult.dashboardInfo.name}</span>\n </div>\n {validationResult.dashboardInfo.description && (\n <div className=\"flex items-start justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldDescription', 'Description')}\n </span>\n <span className=\"text-sm text-right max-w-[60%] truncate\">\n {validationResult.dashboardInfo.description}\n </span>\n </div>\n )}\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldPages', 'Pages')}\n </span>\n <Badge variant=\"secondary\">{validationResult.dashboardInfo.pageCount}</Badge>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldWidgets', 'Widgets')}\n </span>\n <Badge variant=\"secondary\">{validationResult.dashboardInfo.widgetCount}</Badge>\n </div>\n {validationResult.dashboardInfo.exportedFrom && (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldSourceId', 'Source ID')}\n </span>\n <span className=\"text-xs text-text-secondary font-mono truncate max-w-[180px]\">\n {validationResult.dashboardInfo.exportedFrom}\n </span>\n </div>\n )}\n <div className=\"flex flex-wrap items-center justify-between gap-x-4\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldSchemaVersion', 'Schema Version')}\n </span>\n <span className=\"text-xs text-text-secondary\">{validationResult.dashboardInfo.schemaVersion}</span>\n </div>\n </Section>\n\n {/* Validation Errors */}\n {validationResult.errors.length > 0 && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n icon={<XCircle className=\"size-4\" />}\n title={t('bigconsole.dashboards.import.errorsCount', 'Errors ({{count}})', {\n count: validationResult.errors.length,\n })}\n description=\"These must be fixed in the export file before it can be imported.\"\n data-testid=\"import-errors\"\n >\n <ul className=\"space-y-1 text-xs text-status-error-text\">\n {validationResult.errors.map((err) => (\n <li key={`${err.code}-${err.message}`}>\n <span className=\"font-mono\">[{err.code}]</span> {err.message}\n </li>\n ))}\n </ul>\n </Section>\n )}\n\n {/* Validation Warnings */}\n {validationResult.warnings.length > 0 && (\n <Section\n headingLevel={3}\n tone=\"warning\"\n padding=\"compact\"\n icon={<AlertTriangle className=\"size-4\" />}\n title={t('bigconsole.dashboards.import.warningsCount', 'Warnings ({{count}})', {\n count: validationResult.warnings.length,\n })}\n description=\"Advisory only — acknowledge them below to continue.\"\n data-testid=\"import-warnings\"\n >\n <ul className=\"space-y-1 text-xs text-[var(--color-status-warning-text)]\">\n {validationResult.warnings.map((warn) => (\n <li key={`${warn.code}-${warn.message}`}>\n <span className=\"font-mono\">[{warn.code}]</span> {warn.message}\n </li>\n ))}\n </ul>\n </Section>\n )}\n\n {/* Import Options */}\n {validationResult.isValid && (\n <Section\n headingLevel={3}\n title={t('bigconsole.dashboards.import.optionsTitle', 'Import Options')}\n description=\"How this file lands in the workspace.\"\n data-testid=\"import-options\"\n bodyClassName=\"space-y-4\"\n >\n {/* Import Info */}\n <Section\n headingLevel={4}\n tone=\"info\"\n aria-label={t('bigconsole.dashboards.import.infoRegionLabel', 'What this import will do')}\n padding=\"compact\"\n data-testid=\"import-info\"\n >\n <div className=\"flex items-start gap-2\">\n <Info className=\"size-4 mt-0.5 shrink-0 text-[var(--color-status-info-text)]\" />\n <div className=\"text-xs text-[var(--color-status-info-text)]\">\n {extractDashboardId(fileContent) ? (\n <>\n <p className=\"font-medium mb-1\">\n {t(\n 'bigconsole.dashboards.import.checkExistingTitle',\n 'Import will check for existing dashboard'\n )}\n </p>\n <p>\n {t(\n 'bigconsole.dashboards.import.checkExistingIdPrefix',\n 'If the original dashboard (ID:'\n )}{' '}\n <code className=\"rounded bg-bg-surface px-1 font-mono\">\n {extractDashboardId(fileContent)?.slice(0, 8)}...\n </code>\n {t('bigconsole.dashboards.import.checkExistingIdSuffix', ') exists:')}\n </p>\n <ul className=\"list-disc list-inside mt-1 space-y-0.5\">\n <li>\n {t(\n 'bigconsole.dashboards.import.checkExistingWithChanges',\n 'With changes → Update the existing dashboard'\n )}\n </li>\n <li>\n {t(\n 'bigconsole.dashboards.import.checkExistingNoChanges',\n 'No changes → Show \"already exists\" message'\n )}\n </li>\n </ul>\n <p className=\"mt-1\">\n {t(\n 'bigconsole.dashboards.import.checkExistingNotFound',\n \"If original doesn't exist → Create a new dashboard\"\n )}\n </p>\n </>\n ) : (\n <>\n <p className=\"font-medium mb-1\">\n {t('bigconsole.dashboards.import.newDashboardTitle', 'A new dashboard will be created')}\n </p>\n <p>\n {t(\n 'bigconsole.dashboards.import.newDashboardBody',\n 'Import as a new dashboard with the specified configuration.'\n )}\n </p>\n </>\n )}\n </div>\n </div>\n </Section>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"import-name\">\n {t('bigconsole.dashboards.import.dashboardNameLabel', 'Dashboard Name')}\n </Label>\n <Input\n id=\"import-name\"\n type=\"text\"\n value={nameOverride}\n onChange={(e) => setNameOverride(e.target.value)}\n placeholder={validationResult.dashboardInfo.name}\n disabled={step === 'importing'}\n />\n </div>\n\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.dashboards.import.visibilityLabel', 'Visibility')}</Label>\n <div className=\"flex gap-2\">\n {(['PRIVATE', 'TEAM', 'PUBLIC'] as const).map((v) => (\n <Button\n key={v}\n type=\"button\"\n variant={visibility === v ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setVisibility(v)}\n disabled={step === 'importing'}\n >\n {v === 'PRIVATE'\n ? t('bigconsole.dashboards.import.visibilityPrivate', 'Private')\n : v === 'TEAM'\n ? t('bigconsole.dashboards.import.visibilityTeam', 'Team')\n : t('bigconsole.dashboards.import.visibilityPublic', 'Public')}\n </Button>\n ))}\n </div>\n </div>\n\n {validationResult.warnings.length > 0 && (\n <div className=\"flex items-start space-x-3\">\n <Checkbox\n id=\"skipWarnings\"\n checked={skipWarnings}\n onCheckedChange={(checked) => setSkipWarnings(checked === true)}\n disabled={step === 'importing'}\n />\n <div className=\"grid gap-1.5 leading-none\">\n <Label htmlFor=\"skipWarnings\" className=\"cursor-pointer\">\n {t('bigconsole.dashboards.import.acknowledgeWarnings', 'Acknowledge warnings and proceed')}\n </Label>\n </div>\n </div>\n )}\n </Section>\n )}\n </>\n )}\n\n {/* Step 3: Complete */}\n {step === 'complete' && importResult?.success && (\n <div className=\"text-center py-6\">\n {/* Already Exists - No Changes */}\n {importResult.alreadyExists && (\n <>\n <div className=\"mx-auto mb-4 flex size-16 items-center justify-center rounded-full bg-[var(--color-status-info-bgSubtle)]\">\n <Info className=\"size-8 text-[var(--color-status-info-text)]\" />\n </div>\n <h3 className=\"text-lg font-medium mb-2\">\n {t('bigconsole.dashboards.import.alreadyExistsTitle', 'Dashboard Already Exists')}\n </h3>\n <p className=\"text-sm text-text-secondary mb-4\">\n {t(\n 'bigconsole.dashboards.import.alreadyExistsBody',\n 'Dashboard \"{{name}}\" already exists with the same data. No changes were made.',\n { name: importResult.dashboard?.name ?? '' }\n )}\n </p>\n </>\n )}\n\n {/* Updated Existing */}\n {importResult.originalUpdated && !importResult.alreadyExists && (\n <>\n <div className=\"mx-auto mb-4 flex size-16 items-center justify-center rounded-full bg-[var(--color-status-success-bgSubtle)]\">\n <RefreshCw className=\"size-8 text-status-success-text\" />\n </div>\n <h3 className=\"text-lg font-medium mb-2\">\n {t('bigconsole.dashboards.import.updatedTitle', 'Dashboard Updated!')}\n </h3>\n <p className=\"text-sm text-text-secondary mb-4\">\n {t(\n 'bigconsole.dashboards.import.updatedBody',\n 'Dashboard \"{{name}}\" has been updated with the imported data.',\n { name: importResult.dashboard?.name ?? '' }\n )}\n </p>\n </>\n )}\n\n {/* Created New */}\n {!importResult.originalUpdated && !importResult.alreadyExists && (\n <>\n <div className=\"mx-auto mb-4 flex size-16 items-center justify-center rounded-full bg-[var(--color-status-success-bgSubtle)]\">\n <Check className=\"size-8 text-status-success-text\" />\n </div>\n <h3 className=\"text-lg font-medium mb-2\">\n {t('bigconsole.dashboards.import.successTitle', 'Import Successful!')}\n </h3>\n <p className=\"text-sm text-text-secondary mb-4\">\n {t('bigconsole.dashboards.import.successBody', 'Dashboard \"{{name}}\" has been created.', {\n name: importResult.dashboard?.name ?? '',\n })}\n </p>\n\n {importResult.stats && (\n <Card className=\"inline-block text-left\">\n <CardContent className=\"p-4\">\n <p className=\"text-xs font-medium text-text-secondary mb-2\">\n {t('bigconsole.dashboards.import.summaryTitle', 'Import Summary')}\n </p>\n <div className=\"grid grid-cols-2 gap-x-6 gap-y-1 text-xs\">\n <span className=\"text-text-secondary\">\n {t('bigconsole.dashboards.import.summaryPages', 'Pages:')}\n </span>\n <span>{importResult.stats.pagesCreated}</span>\n <span className=\"text-text-secondary\">\n {t('bigconsole.dashboards.import.summaryWidgets', 'Widgets:')}\n </span>\n <span>{importResult.stats.widgetsCreated}</span>\n <span className=\"text-text-secondary\">\n {t('bigconsole.dashboards.import.summaryActions', 'Actions:')}\n </span>\n <span>{importResult.stats.actionsCreated}</span>\n </div>\n </CardContent>\n </Card>\n )}\n </>\n )}\n </div>\n )}\n\n {/* Error */}\n {error && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Import failed\"\n description={error.message}\n />\n )}\n\n {importResult && !importResult.success && importResult.errorMessage && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Import failed\"\n description={importResult.errorMessage}\n />\n )}\n </div>\n\n <DialogFooter className=\"flex-row justify-between sm:justify-between\">\n <div>\n {step === 'preview' && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n setStep('select');\n setSelectedFile(null);\n setFileContent(null);\n clearState();\n }}\n disabled={loading}\n >\n <ArrowLeft className=\"size-4\" />\n {t('bigconsole.dashboards.import.back', 'Back')}\n </Button>\n )}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {step !== 'complete' && (\n <Button variant=\"outline\" onClick={onClose} disabled={!canClose}>\n {t('bigconsole.dashboards.import.cancel', 'Cancel')}\n </Button>\n )}\n\n {step === 'preview' && validationResult?.isValid && (\n <Button\n onClick={handleImport}\n disabled={loading || (validationResult.warnings.length > 0 && !skipWarnings)}\n >\n <Upload className=\"size-4\" />\n {t('bigconsole.dashboards.import.importButton', 'Import Dashboard')}\n </Button>\n )}\n\n {step === 'importing' && (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Spinner className=\"size-4\" />\n {t('bigconsole.dashboards.import.importing', 'Importing...')}\n </div>\n )}\n\n {step === 'complete' && <Button onClick={onClose}>{t('bigconsole.dashboards.import.done', 'Done')}</Button>}\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ImportDashboardDialog;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBoardBanner.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/LiveBoardBanner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAsC,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkCD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqEnD,CAAC;AAEH,eAAe,eAAe,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBoardBanner.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/LiveBoardBanner.tsx"],"sourcesContent":["/**\n * LiveBoardBanner\n *\n * Wall-display \"live\" freshness indicator for auto-refreshing boards\n * (BC-PFC-07 — Live Bed Board). It surfaces, to the operator standing in front\n * of a wall display, that the board is updating itself on a fixed cadence and\n * how stale the data on screen is right now.\n *\n * WHY THIS EXISTS (and why it is polling, not a WebSocket subscription):\n * The Live Bed Board spec wants push-based GraphQL subscriptions\n * (`dataSinkDataUpdated` / `dataSinkUpdated`) with a MANDATORY 30s poll\n * fallback for transports that lack a WebSocket upgrade. In this deployment\n * the subscription transport is genuinely absent — the backend GraphQL server\n * (`@burdenoff/be-sdk` createServer) is HTTP-only with no graphql-ws transport\n * or PubSub, and the two sink subscriptions are declared in the SDL but have\n * no resolvers. So the board runs on the spec's own fallback path: each data\n * widget carries `refreshInterval` (30s on the Live Bed Board), which\n * `useWidgetData` turns into an Apollo `pollInterval`. This banner makes that\n * cadence visible and ticks an \"updated …s ago\" clock between polls.\n *\n * It is intentionally generic: it lights up for ANY board whose visible widgets\n * declare a refresh interval (not just the bed board), and stays hidden in edit\n * mode and on static boards. Semantic status tokens only — no raw colors — so\n * it themes correctly on light / dark / high-contrast wall displays.\n */\n\nimport { type FC, memo, useEffect, useMemo, useState } from 'react';\nimport { Section } from '../common';\nimport type { Widget } from '../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface LiveBoardBannerProps {\n /** Widgets currently rendered on the active page */\n widgets: Widget[];\n /** Hide the banner while the dashboard is being edited */\n isEditMode?: boolean;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * The board's live cadence is the SHORTEST positive refreshInterval among the\n * visible widgets (in seconds). A board with no refreshing widget is static and\n * the banner does not render.\n */\nfunction deriveRefreshSeconds(widgets: Widget[]): number | null {\n let min: number | null = null;\n for (const w of widgets) {\n const interval = (w as { refreshInterval?: number | null }).refreshInterval;\n if (typeof interval === 'number' && interval > 0) {\n min = min === null ? interval : Math.min(min, interval);\n }\n }\n return min;\n}\n\nfunction formatAgo(seconds: number): string {\n if (seconds <= 0) return 'just now';\n if (seconds < 60) return `${seconds}s ago`;\n const mins = Math.floor(seconds / 60);\n const rem = seconds % 60;\n return rem === 0 ? `${mins}m ago` : `${mins}m ${rem}s ago`;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const LiveBoardBanner: FC<LiveBoardBannerProps> = memo(function LiveBoardBanner({\n widgets,\n isEditMode = false,\n}) {\n const refreshSeconds = useMemo(() => deriveRefreshSeconds(widgets), [widgets]);\n\n // Anchor each refresh cycle. We cannot observe each widget's individual poll\n // completion from here, but every widget on the board shares the same cadence,\n // so we model the board's \"as of\" clock as a cycle anchored to mount and\n // advanced every `refreshSeconds`. This keeps the displayed freshness honest\n // (it never claims to be fresher than the poll cadence allows).\n const [lastRefreshAt, setLastRefreshAt] = useState<number>(() => Date.now());\n const [agoSeconds, setAgoSeconds] = useState(0);\n\n useEffect(() => {\n if (isEditMode || !refreshSeconds) return;\n // Reset the cycle whenever the cadence or the widget set changes.\n setLastRefreshAt(Date.now());\n setAgoSeconds(0);\n\n const tick = setInterval(() => {\n setAgoSeconds((prev) => {\n const next = prev + 1;\n if (next >= refreshSeconds) {\n // A poll cycle completed — the widgets have just re-fetched.\n setLastRefreshAt(Date.now());\n return 0;\n }\n return next;\n });\n }, 1000);\n\n return () => clearInterval(tick);\n }, [isEditMode, refreshSeconds, widgets.length]);\n\n if (isEditMode || !refreshSeconds) return null;\n\n const asOf = new Date(lastRefreshAt).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n\n return (\n <div role=\"status\" aria-live=\"polite\" className=\"mx-card-padding mt-control-gap flex-shrink-0\">\n <Section\n tone=\"success\"\n padding=\"compact\"\n headingLevel={3}\n data-testid=\"live-board-banner\"\n icon={\n <span className=\"relative flex h-2.5 w-2.5 flex-shrink-0\" aria-hidden=\"true\">\n <span className=\"absolute inline-flex h-full w-full rounded-full bg-status-success-text opacity-60 motion-safe:animate-ping\" />\n <span className=\"relative inline-flex rounded-full h-2.5 w-2.5 bg-status-success-text\" />\n </span>\n }\n title=\"Live\"\n description={`Auto-refreshing every ${refreshSeconds}s — no reload needed`}\n meta={\n <span className=\"flex flex-wrap items-center gap-icon-gap text-xs text-text-muted\">\n <span data-testid=\"live-board-asof\">As of {asOf}</span>\n <span className=\"tabular-nums\" data-testid=\"live-board-ago\">\n (updated {formatAgo(agoSeconds)})\n </span>\n </span>\n }\n />\n </div>\n );\n});\n\nexport default LiveBoardBanner;\n"],"mappings":";;;;;AAkDA,SAAS,EAAqB,GAAkC;CAC9D,IAAI,IAAqB;AACzB,MAAK,IAAM,KAAK,GAAS;EACvB,IAAM,IAAY,EAA0C;AAC5D,EAAI,OAAO,KAAa,YAAY,IAAW,MAC7C,IAAM,MAAQ,OAAO,IAAW,KAAK,IAAI,GAAK,EAAS;;AAG3D,QAAO;;AAGT,SAAS,EAAU,GAAyB;AAC1C,KAAI,KAAW,EAAG,QAAO;AACzB,KAAI,IAAU,GAAI,QAAO,GAAG,EAAQ;CACpC,IAAM,IAAO,KAAK,MAAM,IAAU,GAAG,EAC/B,IAAM,IAAU;AACtB,QAAO,MAAQ,IAAI,GAAG,EAAK,SAAS,GAAG,EAAK,IAAI,EAAI;;AAOtD,IAAa,IAA4C,EAAK,SAAyB,EACrF,YACA,gBAAa,MACZ;CACD,IAAM,IAAiB,QAAc,EAAqB,EAAQ,EAAE,CAAC,EAAQ,CAAC,EAOxE,CAAC,GAAe,KAAoB,QAAuB,KAAK,KAAK,CAAC,EACtE,CAAC,GAAY,KAAiB,EAAS,EAAE;AAuB/C,KArBA,QAAgB;AACd,MAAI,KAAc,CAAC,EAAgB;AAGnC,EADA,EAAiB,KAAK,KAAK,CAAC,EAC5B,EAAc,EAAE;EAEhB,IAAM,IAAO,kBAAkB;AAC7B,MAAe,MAAS;IACtB,IAAM,IAAO,IAAO;AAMpB,WALI,KAAQ,KAEV,EAAiB,KAAK,KAAK,CAAC,EACrB,KAEF;KACP;KACD,IAAK;AAER,eAAa,cAAc,EAAK;IAC/B;EAAC;EAAY;EAAgB,EAAQ;EAAO,CAAC,EAE5C,KAAc,CAAC,EAAgB,QAAO;CAE1C,IAAM,IAAO,IAAI,KAAK,EAAc,CAAC,mBAAmB,EAAE,EAAE;EAC1D,MAAM;EACN,QAAQ;EACR,QAAQ;EACT,CAAC;AAEF,QACE,kBAAC,OAAD;EAAK,MAAK;EAAS,aAAU;EAAS,WAAU;YAC9C,kBAAC,GAAD;GACE,MAAK;GACL,SAAQ;GACR,cAAc;GACd,eAAY;GACZ,MACE,kBAAC,QAAD;IAAM,WAAU;IAA0C,eAAY;cAAtE,CACE,kBAAC,QAAD,EAAM,WAAU,8GAA+G,CAAA,EAC/H,kBAAC,QAAD,EAAM,WAAU,wEAAyE,CAAA,CACpF;;GAET,OAAM;GACN,aAAa,yBAAyB,EAAe;GACrD,MACE,kBAAC,QAAD;IAAM,WAAU;cAAhB,CACE,kBAAC,QAAD;KAAM,eAAY;eAAlB,CAAoC,UAAO,EAAY;QACvD,kBAAC,QAAD;KAAM,WAAU;KAAe,eAAY;eAA3C;MAA4D;MAChD,EAAU,EAAW;MAAC;MAC3B;OACF;;GAET,CAAA;EACE,CAAA;EAER"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveCanvasToggle.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/LiveCanvasToggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAOtC,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA+BrD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|