@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.6

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.
Files changed (143) hide show
  1. package/README.md +28 -0
  2. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
  3. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  4. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +15 -7
  5. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  6. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
  7. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +209 -57
  9. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
  11. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
  13. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +28 -16
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
  18. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  19. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +30 -6
  20. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  21. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
  22. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  23. package/dist/AI/components/tags/tags-resource.component.js +15 -7
  24. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  25. package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
  26. package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
  27. package/dist/AI/components/vectors/sensitive-fields.js +39 -14
  28. package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
  29. package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
  30. package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
  31. package/dist/AI/components/vectors/vector-document-rules.js +14 -0
  32. package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
  33. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
  34. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  35. package/dist/AI/components/vectors/vector-management-resource.component.js +127 -50
  36. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  37. package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
  38. package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
  39. package/dist/AI/components/vectors/vector-store-selection.js +57 -0
  40. package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
  41. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +236 -0
  42. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
  43. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +374 -0
  44. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
  45. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +195 -0
  46. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +1 -0
  47. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +2910 -0
  48. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +1 -0
  49. package/dist/ChiefOfStaff/index.d.ts +3 -0
  50. package/dist/ChiefOfStaff/index.d.ts.map +1 -0
  51. package/dist/ChiefOfStaff/index.js +3 -0
  52. package/dist/ChiefOfStaff/index.js.map +1 -0
  53. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  54. package/dist/Communication/communication-logs-resource.component.js +2 -1
  55. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  56. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  57. package/dist/Communication/communication-monitor-resource.component.js +23 -18
  58. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  59. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  60. package/dist/Communication/communication-runs-resource.component.js +11 -10
  61. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  62. package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
  63. package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
  64. package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
  65. package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
  66. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +24 -0
  67. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  68. package/dist/DataExplorer/data-explorer-dashboard.component.js +146 -50
  69. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  70. package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
  71. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  72. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  73. package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
  74. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  75. package/dist/LoginStudio/login-studio-resource.component.js +110 -77
  76. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  77. package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
  78. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  79. package/dist/MCP/mcp-dashboard.component.js +118 -65
  80. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  81. package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
  82. package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
  83. package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
  84. package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
  85. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
  86. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  87. package/dist/PredictiveStudio/components/ps-experiments.component.js +256 -521
  88. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  89. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
  90. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
  91. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +122 -249
  92. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
  93. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
  94. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
  95. package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
  96. package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
  97. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
  98. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  99. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +335 -326
  100. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  101. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
  102. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
  103. package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
  104. package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
  105. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
  106. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  107. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +51 -2
  108. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  109. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
  110. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
  111. package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
  112. package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
  113. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
  114. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
  115. package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
  116. package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
  117. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
  118. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  119. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +185 -103
  120. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  121. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
  122. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
  123. package/dist/ai-dashboards.module.d.ts +22 -21
  124. package/dist/ai-dashboards.module.d.ts.map +1 -1
  125. package/dist/ai-dashboards.module.js +8 -2
  126. package/dist/ai-dashboards.module.js.map +1 -1
  127. package/dist/public-api.d.ts +2 -0
  128. package/dist/public-api.d.ts.map +1 -1
  129. package/dist/public-api.js +3 -0
  130. package/dist/public-api.js.map +1 -1
  131. package/package.json +71 -71
  132. package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
  133. package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
  134. package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
  135. package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
  136. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
  137. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
  138. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
  139. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
  140. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
  141. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
  142. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
  143. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-editor.component.js","sourceRoot":"","sources":["../../src/DashboardEditor/dashboard-editor.component.ts","../../src/DashboardEditor/dashboard-editor.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit, ChangeDetectorRef, Component, ComponentRef, ElementRef, EventEmitter, HostBinding,\n Input, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef, inject\n} from '@angular/core';\nimport { Subject, auditTime, filter, takeUntil } from 'rxjs';\nimport { LogError } from '@memberjunction/core';\nimport type { EngineDataChangeEvent } from '@memberjunction/core';\nimport { DashboardEngine } from '@memberjunction/core-entities';\nimport type { DashboardUserPermissions, MJDashboardEntity, MJDashboardPartTypeEntity } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { DashboardFavoritesService, HomeAppPinService, SafeDetectChanges } from '@memberjunction/ng-shared';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJConfirmService } from '@memberjunction/ng-ui-components';\nimport { ExtractPanelsFromLayout, RemovePartConfirmOptions } from '@memberjunction/ng-dashboard-viewer';\nimport type {\n DashboardNavRequestEvent, DashboardPanel, DashboardPartDialogMode, DashboardPartDialogResult, DashboardViewerComponent, PanelInteractionEvent\n} from '@memberjunction/ng-dashboard-viewer';\nimport { DashboardViewerFactory } from './dashboard-viewer-factory';\nimport { DASHBOARD_SAVE_IN_PROGRESS } from './dashboard-editor.types';\nimport type { DashboardEditorBodyStyle, DashboardEditorLoadError, DashboardEditorTitleContext, DashboardSaveOverrides } from './dashboard-editor.types';\n\n/** The entity of the dashboard records DashboardEngine caches. */\nconst DASHBOARDS_ENTITY_NAME = 'MJ: Dashboards';\n\n/** How long Save waits for the dashboard screenshot. After that it saves without a new one. */\nconst SAVE_SCREENSHOT_TIMEOUT_MS = 1500;\n\n/** Why a Save stopped: asked whether to replace a save made elsewhere, the user chose Keep editing. */\nconst KEPT_EDITING = 'The user kept editing: the dashboard was saved elsewhere.';\n\n/** Why a Save stopped before the viewer saved: the editor shows another dashboard now. */\nconst DASHBOARD_CHANGED_BEFORE_SAVE = 'The editor shows another dashboard now. The dashboard was not saved.';\n\n/** The part types offered while no viewer is open: one empty list, so change detection sees a stable value. */\nconst NO_PART_TYPES: MJDashboardPartTypeEntity[] = [];\n\n/** Permissions before a dashboard loads: nothing is allowed, so no Edit button flashes. */\nconst NO_PERMISSIONS: DashboardUserPermissions = {\n DashboardID: '', CanRead: false, CanEdit: false, CanDelete: false, CanShare: false, IsOwner: false, PermissionSource: 'none',\n};\n\n/** What bringing the shown dashboard in step with DashboardEngine did (see syncWithSavedDashboard). */\ntype SavedDashboardSync = 'reloaded' | 'took-copy' | 'unchanged';\n\n/**\n * A Config dashboard with its header: view mode (title, description, favorite, host actions, Edit) and\n * edit mode (Editing badge, name and description fields, Add part, Save, Cancel), the part dialog and the\n * dashboard viewer. Made for the dashboard tab and Home's dashboard view, so both edit a dashboard the same\n * way; Save asks before it replaces a save made elsewhere during the edit. It never navigates: hosts\n * handle its events.\n *\n * Hosts project their own header buttons: `[headerTools]` shows in both modes, `[viewActions]` in view\n * mode after the star.\n */\n@Component({\n standalone: false,\n selector: 'mj-dashboard-editor',\n templateUrl: './dashboard-editor.component.html',\n styleUrls: ['./dashboard-editor.component.css'],\n})\nexport class DashboardEditorComponent extends BaseAngularComponent implements AfterViewInit, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly favoritesService = inject(DashboardFavoritesService);\n private readonly pinService = inject(HomeAppPinService);\n private readonly confirmService = inject(MJConfirmService);\n private readonly viewerFactory = inject(DashboardViewerFactory);\n\n // ── Inputs ────────────────────────────────────────────────\n private _dashboardId: string | null = null;\n private viewInitialized = false;\n\n /**\n * The Config dashboard to show. The editor reads it from DashboardEngine. The same ID again (in any\n * case) changes nothing; another ID drops an edit in progress and shows that dashboard; null clears.\n */\n @Input()\n set DashboardId(value: string | null) {\n const id = value?.trim() || null;\n if (UUIDsEqual(id, this._dashboardId)) return;\n this._dashboardId = id;\n if (this.viewInitialized) void this.load();\n }\n get DashboardId(): string | null {\n return this._dashboardId;\n }\n\n /** Enter edit mode when the dashboard finishes loading. Read once per load, then reset (StartInEditModeChange). */\n @Input() StartInEditMode = false;\n /** Emits false when the editor has read StartInEditMode, for a two-way binding. */\n @Output() StartInEditModeChange = new EventEmitter<boolean>();\n\n /** Replaces the view-mode title, for example with Home's breadcrumb and dashboard switcher. */\n @Input() TitleTemplate: TemplateRef<DashboardEditorTitleContext> | null = null;\n /** Shows \"Open in Dashboards\" in view mode. */\n @Input() ShowOpenInDashboards = false;\n /** Shows the favorite star in view mode. */\n @Input() ShowFavorite = true;\n /** 'fill': the dashboard fills the editor. 'card': a padded card body. */\n @Input() BodyStyle: DashboardEditorBodyStyle = 'fill';\n\n // ── Outputs ───────────────────────────────────────────────\n /** The dashboard's layout is ready. Once for each DashboardId. */\n @Output() Loaded = new EventEmitter<MJDashboardEntity>();\n /**\n * The dashboard could not be shown: DashboardEngine does not hold it, it is a Code dashboard, or its\n * layout failed. The editor then shows no dashboard.\n */\n @Output() LoadFailed = new EventEmitter<DashboardEditorLoadError>();\n /** The editor entered (true) or left (false) edit mode. Not emitted when the editor is destroyed. */\n @Output() EditingChange = new EventEmitter<boolean>();\n /** The viewer saved the dashboard (before the editor leaves edit mode). */\n @Output() Saved = new EventEmitter<MJDashboardEntity>();\n /** The shown dashboard's saved name changed: this editor's Save, or a save elsewhere. Never empty. */\n @Output() NameChanged = new EventEmitter<string>();\n /** The viewer's configuration changed (parts, layout). */\n @Output() ConfigChanged = new EventEmitter<void>();\n /** The editor rebuilt the saved layout because the dashboard was saved elsewhere. */\n @Output() ReloadedFromSaved = new EventEmitter<void>();\n /** The user starred (true) or unstarred (false) the dashboard. */\n @Output() FavoriteChange = new EventEmitter<boolean>();\n /** A part asked to open something: a record, another dashboard, a query. */\n @Output() NavigationRequested = new EventEmitter<DashboardNavRequestEvent>();\n /** The user clicked \"Open in Dashboards\". */\n @Output() OpenInDashboardsRequested = new EventEmitter<MJDashboardEntity>();\n\n /** In 'fill' style the editor takes its host's full height. */\n @HostBinding('class.dashboard-editor--fill') get IsFill(): boolean { return this.BodyStyle === 'fill'; }\n\n // ── View ──────────────────────────────────────────────────\n @ViewChild('body', { static: true }) private bodyRef!: ElementRef<HTMLDivElement>;\n @ViewChild('viewerHost', { read: ViewContainerRef, static: true }) private viewerHost!: ViewContainerRef;\n\n // ── State ─────────────────────────────────────────────────\n /** True while the editor is in edit mode. */\n public IsEditing = false;\n /**\n * True while a Save of the shown dashboard runs (the question about a save made elsewhere, the\n * screenshot, then the save). Meanwhile Edit, Save, Cancel, Add part and part edits do nothing, and\n * the header shows it.\n */\n public IsSaving = false;\n /** The name field. */\n public EditingName = '';\n /** The description field. */\n public EditingDescription = '';\n /** The user's permissions for the shown dashboard. Nothing is allowed before a dashboard loads. */\n public Permissions: DashboardUserPermissions = NO_PERMISSIONS;\n /** Whether the part dialog is open to add a part or to edit one. Null while it is closed. */\n public PartDialogMode: DashboardPartDialogMode | null = null;\n /** The part the part dialog edits in edit mode. */\n public EditPartPanel: DashboardPanel | null = null;\n\n private _dashboard: MJDashboardEntity | null = null;\n private viewer: DashboardViewerComponent | null = null;\n private viewerRef: ComponentRef<DashboardViewerComponent> | null = null;\n /** Each load gets a number; a load whose number is no longer the latest stops at its next step. */\n private loadGeneration = 0;\n /** Each edit session gets a number; a dialog answer from an ended session does nothing. */\n private editSession = 0;\n /** The saved name and description when the current edit session began. */\n private editBaseline: { Name: string; Description: string } | null = null;\n /** The saved name last reported through NameChanged (or the name at load). */\n private reportedName: string | null = null;\n private readonly destroy$ = new Subject<void>();\n /** Ends the subscriptions to the current viewer's events. */\n private readonly viewerChanged$ = new Subject<void>();\n\n // ── Read-only state for hosts ─────────────────────────────\n /** The shown dashboard: the instance DashboardEngine holds. Null before a load. */\n public get Dashboard(): MJDashboardEntity | null { return this._dashboard; }\n /** The viewer, for hosts that drive it (the dashboard tab's agent tools). Null before a load. */\n public get Viewer(): DashboardViewerComponent | null { return this.viewer; }\n /** The element that holds the dashboard: the Save screenshot, the pin thumbnail and the agent's screenshot capture it. */\n public get BodyElement(): HTMLElement { return this.bodyRef.nativeElement; }\n /** True when the user can edit the shown dashboard. */\n public get CanEdit(): boolean { return this.Permissions.CanEdit; }\n /** The part types the part dialog offers: the viewer's part types. */\n public get PartTypes(): MJDashboardPartTypeEntity[] { return this.viewer?.GetPartTypes() ?? NO_PART_TYPES; }\n /** True when someone else owns the dashboard and shared it with the user. */\n public get IsSharedWithUser(): boolean { return !this.Permissions.IsOwner && this.Permissions.PermissionSource !== 'none'; }\n /** True when the shown dashboard is one of the user's favorites. False when the favorites cannot be read. */\n public get IsFavorite(): boolean {\n const id = this._dashboard?.ID;\n if (!id) return false;\n try {\n return this.favoritesService.IsFavorite(id);\n } catch {\n return false;\n }\n }\n /** True while editing with changes the viewer or the fields have not saved. */\n public get HasUnsavedChanges(): boolean {\n const dashboard = this._dashboard;\n if (!this.IsEditing || !dashboard) return false;\n return (this.viewer?.HasUnsavedChanges ?? false)\n || this.EditingName !== dashboard.Name\n || this.EditingDescription !== (dashboard.Description ?? '');\n }\n\n // ── Lifecycle ─────────────────────────────────────────────\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n this.watchSavedDashboard();\n this.watchFavorites();\n if (this._dashboardId) void this.load();\n }\n\n /** Stops a load in progress at its next step, ends the subscriptions and destroys the viewer. */\n ngOnDestroy(): void {\n this.loadGeneration++;\n this.destroy$.next();\n this.destroy$.complete();\n this.dropViewer();\n }\n\n // ── Load ──────────────────────────────────────────────────\n /**\n * Shows the dashboard DashboardId names. Drops the dashboard shown before. When the dashboard cannot\n * be shown, the editor shows none (an edit begun while the layout built ends) and emits LoadFailed.\n */\n private async load(): Promise<void> {\n const generation = ++this.loadGeneration;\n this.teardownViewer();\n const id = this._dashboardId;\n if (!id) {\n SafeDetectChanges(this.cdr);\n return;\n }\n try {\n const dashboard = await this.findConfigDashboard(id);\n if (generation !== this.loadGeneration) return;\n await this.showDashboard(dashboard, generation);\n } catch (error) {\n if (generation !== this.loadGeneration) return;\n this.teardownViewer();\n SafeDetectChanges(this.cdr);\n LogError(`Dashboard editor: could not load dashboard ${id}: ${errorMessage(error)}`);\n this.LoadFailed.emit({ DashboardId: id, Message: errorMessage(error) });\n }\n }\n\n /** The Config dashboard with this ID in DashboardEngine. Rejects when the engine has none, or it is a Code dashboard. */\n private async findConfigDashboard(id: string): Promise<MJDashboardEntity> {\n const provider = this.ProviderToUse;\n await DashboardEngine.Instance.Config(false, provider.CurrentUser, provider);\n const dashboard = DashboardEngine.Instance.Dashboards.find(d => UUIDsEqual(d.ID, id));\n if (!dashboard) throw new Error(`Dashboard with ID ${id} not found.`);\n if (dashboard.Type === 'Code') throw new Error(`\"${dashboard.Name}\" is a Code dashboard. The editor shows Config dashboards.`);\n return dashboard;\n }\n\n /**\n * Creates the viewer and shows the dashboard in it. The viewer is configured, and its events wired,\n * before it gets the dashboard, because the dashboard starts the layout. Once the layout is ready the\n * editor enters edit mode when StartInEditMode asks for it, then emits Loaded.\n */\n private async showDashboard(dashboard: MJDashboardEntity, generation: number): Promise<void> {\n const viewer = this.createViewer();\n this._dashboard = dashboard;\n this.reportedName = dashboard.Name;\n this.Permissions = this.readPermissions(dashboard);\n this.configureViewer(viewer);\n viewer.Dashboard = dashboard; // starts the layout\n SafeDetectChanges(this.cdr); // the header shows while the layout builds\n await viewer.WaitForLayoutReady();\n if (generation !== this.loadGeneration) return;\n this.applyStartInEditMode();\n SafeDetectChanges(this.cdr);\n this.Loaded.emit(dashboard);\n }\n\n /** Creates the viewer in the body. Its host element fills the body: component CSS cannot reach a created host. */\n private createViewer(): DashboardViewerComponent {\n const ref = this.viewerFactory.Create(this.viewerHost);\n const element = ref.location.nativeElement as HTMLElement;\n element.style.width = '100%';\n element.style.height = '100%';\n this.viewerRef = ref;\n this.viewer = ref.instance;\n return ref.instance;\n }\n\n /** Sets the viewer up for the editor, which shows the header, and passes the viewer's events on. */\n private configureViewer(viewer: DashboardViewerComponent): void {\n viewer.Provider = this.Provider;\n viewer.ShowToolbar = false;\n viewer.ShowBreadcrumb = false;\n viewer.ShowOpenInTabButton = false;\n viewer.ShowEditButton = false;\n viewer.CanEdit = this.Permissions.CanEdit;\n viewer.Categories = DashboardEngine.Instance.DashboardCategories;\n viewer.NavigationRequested.pipe(takeUntil(this.viewerChanged$)).subscribe(event => this.NavigationRequested.emit(event));\n viewer.DashboardSaved.pipe(takeUntil(this.viewerChanged$)).subscribe(saved => this.onViewerSaved(saved));\n viewer.error.pipe(takeUntil(this.viewerChanged$)).subscribe(e => LogError(`Dashboard editor: ${e.message}${e.error ? `: ${e.error.message}` : ''}`));\n viewer.configChanged.pipe(takeUntil(this.viewerChanged$)).subscribe(() => this.ConfigChanged.emit());\n viewer.PanelInteraction.pipe(takeUntil(this.viewerChanged$)).subscribe(event => this.onPanelInteraction(event));\n }\n\n /** Destroys the viewer and forgets the dashboard. An edit in progress is dropped, and EditingChange says so. */\n private teardownViewer(): void {\n if (this.dropViewer()) this.EditingChange.emit(false);\n }\n\n /**\n * Destroys the viewer and forgets the dashboard and its edit. A Save of that dashboard still running\n * stops at its next step, and IsSaving is false for the next dashboard. Returns whether an edit was in\n * progress.\n */\n private dropViewer(): boolean {\n const wasEditing = this.IsEditing;\n this.viewerChanged$.next();\n this.closePartDialogs();\n this.IsEditing = false;\n this.IsSaving = false;\n this.editSession++;\n this.viewerRef?.destroy();\n this.viewerRef = null;\n this.viewer = null;\n this._dashboard = null;\n this.reportedName = null;\n this.Permissions = NO_PERMISSIONS;\n return wasEditing;\n }\n\n /** Enters edit mode once when the host asked for it with StartInEditMode, and resets the input. */\n private applyStartInEditMode(): void {\n if (!this.StartInEditMode) return;\n this.StartInEditMode = false;\n this.StartInEditModeChange.emit(false);\n this.EnterEditMode();\n }\n\n /** Reads the user's permissions for the dashboard again, for example after the host's Share dialog saved. */\n public RefreshPermissions(): void {\n this.Permissions = this.readPermissions(this._dashboard);\n if (this.viewer) this.viewer.CanEdit = this.Permissions.CanEdit;\n SafeDetectChanges(this.cdr);\n }\n\n /** The user's permissions for a dashboard. None without a dashboard. */\n private readPermissions(dashboard: MJDashboardEntity | null): DashboardUserPermissions {\n return dashboard\n ? DashboardEngine.Instance.GetDashboardPermissions(dashboard.ID, this.ProviderToUse.CurrentUser.ID)\n : NO_PERMISSIONS;\n }\n\n // ── Edit mode ─────────────────────────────────────────────\n /**\n * Enters edit mode when the user can edit. Returns true when the editor is editing afterwards, and\n * false, changing nothing, while a Save runs: that Save reads the name and description fields.\n */\n public EnterEditMode(): boolean {\n if (this.IsSaving) return false;\n if (this.IsEditing) return true;\n if (!this.startEditing()) return false;\n SafeDetectChanges(this.cdr);\n this.EditingChange.emit(true);\n return true;\n }\n\n /** Leaves edit mode without saving, or enters it. */\n public ToggleEditMode(): void {\n if (this.IsEditing) this.CancelEdit();\n else this.EnterEditMode();\n }\n\n /**\n * Puts the editor and its viewer in edit mode. Returns false, and changes nothing, without a dashboard\n * or when the user cannot edit it. Takes DashboardEngine's current copy first: when the dashboard was\n * saved elsewhere since the viewer loaded it, the viewer reloads the saved layout, so this edit's save\n * keeps it. Notes the saved name and description, so Save can tell a save made elsewhere during the\n * edit (see savedElsewhereSinceEditStart).\n */\n private startEditing(): boolean {\n if (!this._dashboard || !this.Permissions.CanEdit) return false;\n this.syncWithSavedDashboard();\n const dashboard = this._dashboard; // the sync can take a newer copy\n this.IsEditing = true;\n this.editSession++;\n this.EditingName = dashboard.Name;\n this.EditingDescription = dashboard.Description || '';\n this.editBaseline = { Name: dashboard.Name, Description: dashboard.Description ?? '' };\n if (this.viewer) this.viewer.IsEditing = true;\n return true;\n }\n\n /**\n * Leaves edit mode and drops the changes. The viewer reloads the saved layout before it leaves edit\n * mode: it drops its layout at once, so leaving edit mode applies to the layout it rebuilds. Does\n * nothing while a Save runs.\n */\n public CancelEdit(): void {\n if (this.IsSaving || !this.IsEditing) return;\n this.IsEditing = false;\n this.editSession++;\n this.closePartDialogs();\n this.reloadSavedDashboard();\n if (this.viewer) this.viewer.IsEditing = false;\n SafeDetectChanges(this.cdr);\n this.EditingChange.emit(false);\n }\n\n // ── Save ──────────────────────────────────────────────────\n /**\n * Saves the name, description and layout, then leaves edit mode. An empty name is never saved: the\n * previous name is kept. When the save fails, the editor stays in edit mode (see onSaveFailed). One\n * Save runs at a time (see IsSaving).\n */\n public async SaveDashboard(): Promise<void> {\n await this.saveAndLeaveEditMode();\n }\n\n /**\n * Saves like SaveDashboard. Returns null when saved, also when the editor shows another dashboard by\n * the time the viewer has saved; else why not. Outside edit mode it saves the dashboard's own name and\n * description. `overrides` replace the fields first. While a Save runs it refuses at once and leaves\n * the fields as they are.\n */\n public async Save(overrides: DashboardSaveOverrides = {}): Promise<string | null> {\n if (this.IsSaving) return DASHBOARD_SAVE_IN_PROGRESS;\n const dashboard = this._dashboard;\n if (dashboard && !this.IsEditing) {\n this.EditingName = dashboard.Name;\n this.EditingDescription = dashboard.Description || '';\n }\n if (overrides.Name !== undefined) this.EditingName = overrides.Name;\n if (overrides.Description !== undefined) this.EditingDescription = overrides.Description;\n return this.saveAndLeaveEditMode();\n }\n\n /**\n * The work of SaveDashboard and Save. Returns null when saved, else why not: no dashboard is open, a\n * Save runs, another save of the dashboard object runs (see stopWhileSavedElsewhere), the user kept\n * editing rather than replace a save made elsewhere, the editor showed another dashboard before the\n * viewer saved, or the save failed (the user has seen that reason). A Save belongs to the viewer it\n * started with: once the editor shows another dashboard, the Save changes nothing in the editor and\n * leaves IsSaving to that dashboard. A save the viewer already made still returns null. See\n * prepareSave for the steps before the viewer saves.\n */\n private async saveAndLeaveEditMode(): Promise<string | null> {\n const dashboard = this._dashboard;\n const viewer = this.viewer;\n if (!dashboard || !viewer) return 'No dashboard is open.';\n if (this.IsSaving) return DASHBOARD_SAVE_IN_PROGRESS;\n const savingElsewhere = this.stopWhileSavedElsewhere(dashboard);\n if (savingElsewhere) return savingElsewhere;\n this.IsSaving = true;\n SafeDetectChanges(this.cdr);\n try {\n const stopped = await this.prepareSave(dashboard, viewer);\n if (stopped) return stopped;\n if (!await viewer.save()) return this.onSaveFailed(dashboard);\n if (viewer === this.viewer) this.leaveEditModeAfterSave(viewer);\n return null;\n } catch (error) {\n return this.onSaveFailed(dashboard, error);\n } finally {\n if (viewer === this.viewer) {\n this.IsSaving = false;\n SafeDetectChanges(this.cdr);\n }\n }\n }\n\n /**\n * The steps of a Save before the viewer saves. It asks first when the dashboard was saved elsewhere\n * since this edit began. Then it takes the screenshot and writes it, the name and the description to\n * the dashboard; the fields are read after the screenshot, so a name typed meanwhile is saved. Returns\n * why the Save stops, or null to save. When the editor shows another dashboard after a step, or another\n * save of the dashboard object started meanwhile, it stops and writes nothing.\n */\n private async prepareSave(dashboard: MJDashboardEntity, viewer: DashboardViewerComponent): Promise<string | null> {\n const replace = !this.savedElsewhereSinceEditStart() || await this.confirmOverwrite();\n if (viewer !== this.viewer) return DASHBOARD_CHANGED_BEFORE_SAVE;\n if (!replace) return KEPT_EDITING;\n // The screenshot goes on the dashboard (Thumbnail), so this same Save stores the picture the\n // dashboard cards show. A failed Save reverts it with the other fields.\n const thumbnail = await this.takeDashboardThumbnail(viewer);\n if (viewer !== this.viewer) return DASHBOARD_CHANGED_BEFORE_SAVE;\n const savingElsewhere = this.stopWhileSavedElsewhere(dashboard);\n if (savingElsewhere) return savingElsewhere;\n if (thumbnail !== undefined) dashboard.Thumbnail = thumbnail;\n this.restoreEmptyName();\n dashboard.Name = this.EditingName;\n dashboard.Description = this.EditingDescription;\n return null;\n }\n\n /**\n * When another save of the dashboard object runs (Home's rename, for example), tells the user and returns why this\n * Save stops: BaseEntity's Save would join that save and write none of this Save's changes. The editor stays in edit\n * mode with the user's changes. Null when no other save runs.\n */\n private stopWhileSavedElsewhere(dashboard: MJDashboardEntity): string | null {\n if (!dashboard.IsSaving) return null;\n const message = `\"${dashboard.Name}\" is being saved elsewhere. Save again in a moment.`;\n MJNotificationService.Instance.CreateSimpleNotification(message, 'info', 3000);\n return message;\n }\n\n /** Leaves edit mode after a successful save. A Save outside edit mode (an agent's request) emits no EditingChange. */\n private leaveEditModeAfterSave(viewer: DashboardViewerComponent): void {\n const wasEditing = this.IsEditing;\n this.IsEditing = false;\n this.editSession++;\n this.closePartDialogs();\n viewer.IsEditing = false;\n SafeDetectChanges(this.cdr);\n if (wasEditing) this.EditingChange.emit(false);\n }\n\n /**\n * The dashboard's new Thumbnail: a small screenshot of the dashboard body, or null when the layout has\n * no panels, so the dashboard cards show the icon. Undefined when no screenshot is ready in time (too\n * many elements, no size, or the timeout): the current Thumbnail stays. Never throws.\n */\n private async takeDashboardThumbnail(viewer: DashboardViewerComponent): Promise<string | null | undefined> {\n try {\n if (ExtractPanelsFromLayout(viewer.getConfig()?.layout ?? null).length === 0) return null;\n return (await this.pinService.CaptureThumbnail(this.BodyElement, SAVE_SCREENSHOT_TIMEOUT_MS)) || undefined;\n } catch (error) {\n LogError(`Dashboard editor: could not take a screenshot of the dashboard: ${errorMessage(error)}`);\n return undefined;\n }\n }\n\n /** Keeps the previous name when the user leaves the name field empty or with only spaces. */\n public OnNameBlur(): void {\n this.restoreEmptyName();\n }\n\n /** Puts the saved name back into an empty or spaces-only name field. */\n private restoreEmptyName(): void {\n if (!this.EditingName.trim()) {\n this.EditingName = this._dashboard?.Name || 'Untitled Dashboard';\n }\n }\n\n /**\n * Handles a save that did not complete. The editor stays in edit mode with the user's changes, the\n * cached dashboard (which other pages read) goes back to its saved values, and the user sees why.\n * Returns the message the user sees.\n */\n private onSaveFailed(dashboard: MJDashboardEntity, error?: unknown): string {\n const reason = this.saveFailureReason(dashboard, error);\n dashboard.Revert();\n LogError(`Dashboard editor: could not save the dashboard: ${reason || 'no reason given'}`);\n const message = reason ? `Could not save the dashboard: ${reason}` : 'Could not save the dashboard';\n MJNotificationService.Instance.CreateSimpleNotification(message, 'error', 5000);\n SafeDetectChanges(this.cdr);\n return message;\n }\n\n /** Why a save failed: the thrown error, else the dashboard's failed save result. Empty when neither says. */\n private saveFailureReason(dashboard: MJDashboardEntity, error: unknown): string {\n if (error !== undefined) return errorMessage(error);\n const latest = dashboard.LatestResult;\n return latest && !latest.Success ? latest.CompleteMessage : '';\n }\n\n /** Passes a save of the viewer on to the host, with the new name when it changed. */\n private onViewerSaved(saved: MJDashboardEntity): void {\n this.Saved.emit(saved);\n this.reportNameIfChanged(saved.Name);\n }\n\n /** Emits NameChanged when the saved name differs from the one last reported. An empty name is never reported. */\n private reportNameIfChanged(name: string | null | undefined): void {\n if (!name || name === this.reportedName) return;\n this.reportedName = name;\n this.NameChanged.emit(name);\n }\n\n // ── Saved elsewhere ───────────────────────────────────────\n /**\n * Follows DashboardEngine's changes to the shown dashboard until the editor is destroyed. A burst of\n * changes is handled once, after the current task.\n */\n private watchSavedDashboard(): void {\n DashboardEngine.Instance.DataChange$.pipe(\n filter(event => this.isChangeToShownDashboard(event)),\n auditTime(0),\n takeUntil(this.destroy$)\n ).subscribe(() => this.onSavedDashboardChanged());\n }\n\n /** True for a change to the shown dashboard's record, or for a reload of all dashboards. */\n private isChangeToShownDashboard(event: EngineDataChangeEvent): boolean {\n const shown = this._dashboard;\n if (!shown || event.config.EntityName?.trim().toLowerCase() !== DASHBOARDS_ENTITY_NAME.toLowerCase()) {\n return false;\n }\n const affected = event.affectedEntity;\n return !affected || affected === shown || affected.PrimaryKey.Equals(shown.PrimaryKey);\n }\n\n /**\n * Brings an idle editor in step with the saved dashboard after a change to it, and reports a rename\n * saved elsewhere, also while editing: the host's title follows the saved name, and the name the user\n * typed stays in the field.\n */\n private onSavedDashboardChanged(): void {\n if (!this.IsEditing && this.syncWithSavedDashboard() === 'reloaded') {\n this.ReloadedFromSaved.emit();\n }\n this.reportNameIfChanged((this.savedDashboard() ?? this._dashboard)?.Name);\n SafeDetectChanges(this.cdr);\n }\n\n /**\n * Brings the shown dashboard in step with DashboardEngine's current copy of it. The viewer rebuilds\n * only when the saved layout differs from the one it shows. When only the copy is new (DashboardEngine\n * reloaded its dashboards), the editor and the viewer take it without a rebuild: a save writes every\n * field of the entity, so saving an old copy would write its old values.\n */\n private syncWithSavedDashboard(): SavedDashboardSync {\n const viewer = this.viewer;\n const saved = this.savedDashboard();\n if (!viewer || !saved) return 'unchanged';\n if (viewer.HasNewerSavedLayout(saved)) {\n this.reloadSavedDashboard();\n return 'reloaded';\n }\n if (saved !== this._dashboard && viewer.UseSavedCopy(saved)) {\n this._dashboard = saved;\n return 'took-copy';\n }\n return 'unchanged';\n }\n\n /** Shows the saved dashboard in the viewer: DashboardEngine's copy of it when the engine has one. */\n private reloadSavedDashboard(): void {\n const viewer = this.viewer;\n const saved = this.savedDashboard() ?? this._dashboard;\n if (!viewer || !saved) return;\n\n this._dashboard = saved;\n viewer.ReloadFromSaved(saved).catch((error: unknown) => {\n LogError(`Dashboard editor: could not reload the saved dashboard: ${errorMessage(error)}`);\n });\n }\n\n /** The shown dashboard as DashboardEngine holds it now. Null when the engine does not have it. */\n private savedDashboard(): MJDashboardEntity | null {\n const shown = this._dashboard;\n if (!shown) return null;\n try {\n return DashboardEngine.Instance.Dashboards.find(d => UUIDsEqual(d.ID, shown.ID)) ?? null;\n } catch {\n return null; // the user cannot read the dashboards cache\n }\n }\n\n /**\n * True when the dashboard was saved elsewhere after the current edit session began: another layout,\n * name or description. False outside edit mode, where no edit session runs.\n */\n private savedElsewhereSinceEditStart(): boolean {\n const saved = this.savedDashboard() ?? this._dashboard;\n const baseline = this.editBaseline;\n if (!this.IsEditing || !saved || !baseline || !this.viewer) return false;\n return this.viewer.HasNewerSavedLayout(saved)\n || saved.Name !== baseline.Name\n || (saved.Description ?? '') !== baseline.Description;\n }\n\n /** Asks whether to replace a save made elsewhere. Resolves true for Save anyway, false for Keep editing. */\n private confirmOverwrite(): Promise<boolean> {\n return this.confirmService.Confirm({\n title: 'Replace changes saved elsewhere?',\n message: 'This dashboard was saved in another place after you started editing. Saving now replaces those changes.',\n type: 'warning',\n confirmText: 'Save anyway',\n cancelText: 'Keep editing',\n });\n }\n\n // ── Parts ─────────────────────────────────────────────────\n /** Routes the viewer's part requests. Outside edit mode, only Add part on an empty dashboard counts: it enters edit mode first. */\n private onPanelInteraction(event: PanelInteractionEvent): void {\n if (event.interactionType !== 'custom' || this.IsSaving) return;\n const action = event.payload?.['action'];\n if (!this.IsEditing && (action !== 'add-panel-requested' || !this.EnterEditMode())) return;\n switch (action) {\n case 'add-panel-requested':\n this.OpenAddPartDialog();\n break;\n case 'configure-part-requested':\n this.openEditPartDialog(event.panelId);\n break;\n case 'remove-part-requested':\n void this.confirmRemovePart(event.panelId);\n break;\n }\n }\n\n /** Opens the part dialog to add a part. Only while editing and not saving. */\n public OpenAddPartDialog(): void {\n if (!this.IsEditing || this.IsSaving) return;\n this.EditPartPanel = null;\n this.PartDialogMode = 'add';\n SafeDetectChanges(this.cdr);\n }\n\n /** Opens the part dialog to edit the part with this panel ID. */\n private openEditPartDialog(panelId: string): void {\n const panel = this.viewer?.GetPanel(panelId) ?? null;\n if (!panel) return;\n this.EditPartPanel = panel;\n this.PartDialogMode = 'edit';\n SafeDetectChanges(this.cdr);\n }\n\n /** Adds the part, or applies the edited part, from the part dialog. */\n public async OnPartDialogSaved(result: DashboardPartDialogResult): Promise<void> {\n const mode = this.PartDialogMode;\n const panel = this.EditPartPanel;\n this.closePartDialogs();\n if (mode === 'add') {\n await this.applyPartChange('Could not add the part', async v => { await v.AddPanel(result.PartType.ID, result.Config, result.Title, result.Icon); });\n } else if (mode === 'edit' && panel) {\n await this.applyPartChange('Could not update the part', v => v.UpdatePanelConfig(panel.id, result.Config, result.Title, result.Icon));\n }\n }\n\n /** Closes the part dialog. */\n public ClosePartDialog(): void {\n this.closePartDialogs();\n SafeDetectChanges(this.cdr);\n }\n\n /** Closes every part dialog. A part dialog belongs to one edit session. */\n private closePartDialogs(): void {\n this.PartDialogMode = null;\n this.EditPartPanel = null;\n }\n\n /**\n * Asks the user to confirm removing a part, then removes it. Changes nothing when the user cancels, or when the\n * edit session, the viewer or the part changed while the confirm was open.\n */\n private async confirmRemovePart(panelId: string): Promise<void> {\n const viewer = this.viewer;\n const panel = viewer?.GetPanel(panelId);\n if (!viewer || !panel) return;\n const session = this.editSession;\n const confirmed = await this.confirmService.ConfirmDelete(RemovePartConfirmOptions(panel.title, viewer.GetPartTypeForPanel(panelId)?.Name));\n if (!confirmed || !this.IsEditing || session !== this.editSession || viewer !== this.viewer || !viewer.GetPanel(panelId)) return;\n await this.applyPartChange('Could not remove the part', v => v.ConfirmRemovePanel(panelId));\n }\n\n /**\n * Applies one part change to the viewer, tells the user when it fails, and reports the change through\n * ConfigChanged. The change is saved with the dashboard's Save. Does nothing while a Save runs, for\n * example from a dialog that was open when the Save started.\n */\n private async applyPartChange(failureMessage: string, change: (viewer: DashboardViewerComponent) => void | Promise<void>): Promise<void> {\n const viewer = this.viewer;\n if (!viewer || this.IsSaving) return;\n try {\n await change(viewer);\n } catch (error) {\n LogError(`Dashboard editor: ${failureMessage}: ${errorMessage(error)}`);\n MJNotificationService.Instance.CreateSimpleNotification(failureMessage, 'error', 3000);\n }\n this.ConfigChanged.emit();\n }\n\n // ── Favorite ──────────────────────────────────────────────\n /** Shows the star's new state when any favorite changes, also on another page, until the editor is destroyed. */\n private watchFavorites(): void {\n this.favoritesService.Changed$.pipe(takeUntil(this.destroy$)).subscribe(() => SafeDetectChanges(this.cdr));\n }\n\n /** Stars or unstars the shown dashboard, tells the user the new state, and emits it through FavoriteChange. */\n public async ToggleFavorite(): Promise<void> {\n const dashboard = this._dashboard;\n if (!dashboard) return;\n try {\n const isFavorite = await this.favoritesService.Toggle(dashboard.ID);\n const message = isFavorite ? `Added \"${dashboard.Name}\" to favorites` : `Removed \"${dashboard.Name}\" from favorites`;\n MJNotificationService.Instance.CreateSimpleNotification(message, 'success', 2000);\n } catch (error) {\n LogError(`Dashboard editor: could not change the favorite: ${errorMessage(error)}`);\n MJNotificationService.Instance.CreateSimpleNotification('Could not change the favorite', 'error', 3000);\n }\n this.FavoriteChange.emit(this.IsFavorite);\n SafeDetectChanges(this.cdr);\n }\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n","@if (Dashboard; as dashboard) {\n <header class=\"dashboard-editor-header\" [class.is-editing]=\"IsEditing\">\n @if (IsEditing) {\n <mj-stat-badge class=\"dashboard-editor-badge\" Variant=\"info\" Icon=\"fa-solid fa-pen\" Label=\"Editing\"></mj-stat-badge>\n }\n\n <div class=\"dashboard-editor-namewrap\">\n @if (!IsEditing) {\n @if (TitleTemplate) {\n <ng-container [ngTemplateOutlet]=\"TitleTemplate\" [ngTemplateOutletContext]=\"{ $implicit: dashboard, Dashboard: dashboard }\"></ng-container>\n } @else {\n <h1 class=\"dashboard-editor-title\">\n {{ dashboard.Name }}\n @if (IsSharedWithUser) {\n <i class=\"fa-solid fa-share-nodes dashboard-editor-shared\" role=\"img\" title=\"Shared with you\" aria-label=\"Shared with you\"></i>\n }\n </h1>\n }\n @if (dashboard.Description) {\n <p class=\"dashboard-editor-desc\">{{ dashboard.Description }}</p>\n } @else if (CanEdit) {\n <p class=\"dashboard-editor-desc is-placeholder\">Add a description</p>\n }\n } @else {\n <input type=\"text\" class=\"mj-input dashboard-editor-name\" aria-label=\"Dashboard name\" placeholder=\"Name this dashboard\"\n [(ngModel)]=\"EditingName\" (blur)=\"OnNameBlur()\">\n <input type=\"text\" class=\"dashboard-editor-desc is-editable\" aria-label=\"Dashboard description\" placeholder=\"Add a description\"\n [(ngModel)]=\"EditingDescription\">\n }\n </div>\n\n <div class=\"dashboard-editor-actions\">\n <ng-content select=\"[headerTools]\"></ng-content>\n @if (!IsEditing) {\n @if (ShowFavorite) {\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" class=\"dashboard-editor-favorite\" [class.is-favorite]=\"IsFavorite\"\n [title]=\"IsFavorite ? 'Remove from favorites' : 'Add to favorites'\"\n [attr.aria-label]=\"IsFavorite ? 'Remove from favorites' : 'Add to favorites'\" (click)=\"ToggleFavorite()\">\n <i [class]=\"IsFavorite ? 'fa-solid fa-star' : 'fa-regular fa-star'\" aria-hidden=\"true\"></i>\n </button>\n }\n <ng-content select=\"[viewActions]\"></ng-content>\n @if (ShowOpenInDashboards) {\n <button type=\"button\" mjButton Variant=\"secondary\" Size=\"sm\" class=\"dashboard-editor-open-in\" (click)=\"OpenInDashboardsRequested.emit(dashboard)\">\n <i class=\"fa-solid fa-up-right-from-square\" aria-hidden=\"true\"></i> Open in Dashboards\n </button>\n }\n @if (CanEdit) {\n <span class=\"dashboard-editor-divider\" aria-hidden=\"true\"></span>\n <button type=\"button\" mjButton Variant=\"primary\" Size=\"sm\" class=\"dashboard-editor-edit\" [disabled]=\"IsSaving\" (click)=\"EnterEditMode()\">\n <i class=\"fa-solid fa-pen\" aria-hidden=\"true\"></i> Edit\n </button>\n }\n } @else {\n <button type=\"button\" mjButton Variant=\"secondary\" Size=\"sm\" class=\"dashboard-editor-add-part\" [disabled]=\"IsSaving\" (click)=\"OpenAddPartDialog()\">\n <i class=\"fa-solid fa-plus\" aria-hidden=\"true\"></i> Add part\n </button>\n <span class=\"dashboard-editor-divider\" aria-hidden=\"true\"></span>\n <button type=\"button\" mjButton Variant=\"primary\" Size=\"sm\" class=\"dashboard-editor-save\" [disabled]=\"IsSaving\" (click)=\"SaveDashboard()\">\n <i [class]=\"IsSaving ? 'fa-solid fa-spinner fa-spin' : 'fa-solid fa-check'\" aria-hidden=\"true\"></i>\n {{ IsSaving ? 'Saving...' : 'Save' }}\n </button>\n <button type=\"button\" mjButton Variant=\"flat\" Size=\"sm\" class=\"dashboard-editor-cancel\" [disabled]=\"IsSaving\" (click)=\"CancelEdit()\">Cancel</button>\n }\n </div>\n </header>\n}\n\n<div class=\"dashboard-editor-main\" [class.is-card]=\"BodyStyle === 'card'\">\n <div #body class=\"dashboard-editor-body\">\n <ng-container #viewerHost></ng-container>\n </div>\n</div>\n\n<!-- The part dialog belongs to one edit session -->\n@if (Dashboard && IsEditing && PartDialogMode) {\n <mj-dashboard-part-dialog [Visible]=\"true\" [Mode]=\"PartDialogMode\" [PartTypes]=\"PartTypes\"\n [Panel]=\"EditPartPanel\" [Provider]=\"Provider\"\n (Saved)=\"OnPartDialogSaved($event)\" (Cancelled)=\"ClosePartDialog()\"></mj-dashboard-part-dialog>\n}\n"]}
1
+ {"version":3,"file":"dashboard-editor.component.js","sourceRoot":"","sources":["../../src/DashboardEditor/dashboard-editor.component.ts","../../src/DashboardEditor/dashboard-editor.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit, ChangeDetectorRef, Component, ComponentRef, ElementRef, EventEmitter, HostBinding,\n Input, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef, inject\n} from '@angular/core';\nimport { Subject, auditTime, filter, takeUntil } from 'rxjs';\nimport { LogError } from '@memberjunction/core';\nimport type { EngineDataChangeEvent } from '@memberjunction/core';\nimport { DashboardEngine } from '@memberjunction/core-entities';\nimport type { DashboardUserPermissions, MJDashboardEntity, MJDashboardPartTypeEntity } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { DashboardFavoritesService, HomeAppPinService, SafeDetectChanges } from '@memberjunction/ng-shared';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJConfirmService } from '@memberjunction/ng-ui-components';\nimport { ExtractPanelsFromLayout, RemovePartConfirmOptions } from '@memberjunction/ng-dashboard-viewer';\nimport type {\n DashboardNavRequestEvent, DashboardPanel, DashboardPartDialogMode, DashboardPartDialogResult, DashboardPropertiesDialogResult,\n DashboardProperty, DashboardViewerComponent, DashboardWire, PanelInteractionEvent\n} from '@memberjunction/ng-dashboard-viewer';\nimport { DashboardViewerFactory } from './dashboard-viewer-factory';\nimport { DASHBOARD_SAVE_IN_PROGRESS } from './dashboard-editor.types';\nimport type { DashboardEditorBodyStyle, DashboardEditorLoadError, DashboardEditorTitleContext, DashboardSaveOverrides } from './dashboard-editor.types';\n\n/** The entity of the dashboard records DashboardEngine caches. */\nconst DASHBOARDS_ENTITY_NAME = 'MJ: Dashboards';\n\n/** How long Save waits for the dashboard screenshot. After that it saves without a new one. */\nconst SAVE_SCREENSHOT_TIMEOUT_MS = 1500;\n\n/** Why a Save stopped: asked whether to replace a save made elsewhere, the user chose Keep editing. */\nconst KEPT_EDITING = 'The user kept editing: the dashboard was saved elsewhere.';\n\n/** Why a Save stopped before the viewer saved: the editor shows another dashboard now. */\nconst DASHBOARD_CHANGED_BEFORE_SAVE = 'The editor shows another dashboard now. The dashboard was not saved.';\n\n/** The part types offered while no viewer is open: one empty list, so change detection sees a stable value. */\nconst NO_PART_TYPES: MJDashboardPartTypeEntity[] = [];\n\n/** The properties and wires of a dashboard without any: stable empty lists for change detection. */\nconst NO_PROPERTIES: DashboardProperty[] = [];\nconst NO_WIRES: DashboardWire[] = [];\n\n/** Permissions before a dashboard loads: nothing is allowed, so no Edit button flashes. */\nconst NO_PERMISSIONS: DashboardUserPermissions = {\n DashboardID: '', CanRead: false, CanEdit: false, CanDelete: false, CanShare: false, IsOwner: false, PermissionSource: 'none',\n};\n\n/** What bringing the shown dashboard in step with DashboardEngine did (see syncWithSavedDashboard). */\ntype SavedDashboardSync = 'reloaded' | 'took-copy' | 'unchanged';\n\n/**\n * A Config dashboard with its header: view mode (title, description, favorite, host actions, Edit) and\n * edit mode (Editing badge, name and description fields, Add part, Save, Cancel), the part dialog and the\n * dashboard viewer. Made for the dashboard tab and Home's dashboard view, so both edit a dashboard the same\n * way; Save asks before it replaces a save made elsewhere during the edit. It never navigates: hosts\n * handle its events.\n *\n * Hosts project their own header buttons: `[headerTools]` shows in both modes, `[viewActions]` in view\n * mode after the star.\n */\n@Component({\n standalone: false,\n selector: 'mj-dashboard-editor',\n templateUrl: './dashboard-editor.component.html',\n styleUrls: ['./dashboard-editor.component.css'],\n})\nexport class DashboardEditorComponent extends BaseAngularComponent implements AfterViewInit, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly favoritesService = inject(DashboardFavoritesService);\n private readonly pinService = inject(HomeAppPinService);\n private readonly confirmService = inject(MJConfirmService);\n private readonly viewerFactory = inject(DashboardViewerFactory);\n\n // ── Inputs ────────────────────────────────────────────────\n private _dashboardId: string | null = null;\n private viewInitialized = false;\n\n /**\n * The Config dashboard to show. The editor reads it from DashboardEngine. The same ID again (in any\n * case) changes nothing; another ID drops an edit in progress and shows that dashboard; null clears.\n */\n @Input()\n set DashboardId(value: string | null) {\n const id = value?.trim() || null;\n if (UUIDsEqual(id, this._dashboardId)) return;\n this._dashboardId = id;\n if (this.viewInitialized) void this.load();\n }\n get DashboardId(): string | null {\n return this._dashboardId;\n }\n\n /** Enter edit mode when the dashboard finishes loading. Read once per load, then reset (StartInEditModeChange). */\n @Input() StartInEditMode = false;\n /** Emits false when the editor has read StartInEditMode, for a two-way binding. */\n @Output() StartInEditModeChange = new EventEmitter<boolean>();\n\n /** Replaces the view-mode title, for example with Home's breadcrumb and dashboard switcher. */\n @Input() TitleTemplate: TemplateRef<DashboardEditorTitleContext> | null = null;\n /** Shows \"Open in Dashboards\" in view mode. */\n @Input() ShowOpenInDashboards = false;\n /** Shows the favorite star in view mode. */\n @Input() ShowFavorite = true;\n /** 'fill': the dashboard fills the editor. 'card': a padded card body. */\n @Input() BodyStyle: DashboardEditorBodyStyle = 'fill';\n\n // ── Outputs ───────────────────────────────────────────────\n /** The dashboard's layout is ready. Once for each DashboardId. */\n @Output() Loaded = new EventEmitter<MJDashboardEntity>();\n /**\n * The dashboard could not be shown: DashboardEngine does not hold it, it is a Code dashboard, or its\n * layout failed. The editor then shows no dashboard.\n */\n @Output() LoadFailed = new EventEmitter<DashboardEditorLoadError>();\n /** The editor entered (true) or left (false) edit mode. Not emitted when the editor is destroyed. */\n @Output() EditingChange = new EventEmitter<boolean>();\n /** The viewer saved the dashboard (before the editor leaves edit mode). */\n @Output() Saved = new EventEmitter<MJDashboardEntity>();\n /** The shown dashboard's saved name changed: this editor's Save, or a save elsewhere. Never empty. */\n @Output() NameChanged = new EventEmitter<string>();\n /** The viewer's configuration changed (parts, layout). */\n @Output() ConfigChanged = new EventEmitter<void>();\n /** The editor rebuilt the saved layout because the dashboard was saved elsewhere. */\n @Output() ReloadedFromSaved = new EventEmitter<void>();\n /** The user starred (true) or unstarred (false) the dashboard. */\n @Output() FavoriteChange = new EventEmitter<boolean>();\n /** A part asked to open something: a record, another dashboard, a query. */\n @Output() NavigationRequested = new EventEmitter<DashboardNavRequestEvent>();\n /** The user clicked \"Open in Dashboards\". */\n @Output() OpenInDashboardsRequested = new EventEmitter<MJDashboardEntity>();\n\n /** In 'fill' style the editor takes its host's full height. */\n @HostBinding('class.dashboard-editor--fill') get IsFill(): boolean { return this.BodyStyle === 'fill'; }\n\n // ── View ──────────────────────────────────────────────────\n @ViewChild('body', { static: true }) private bodyRef!: ElementRef<HTMLDivElement>;\n @ViewChild('viewerHost', { read: ViewContainerRef, static: true }) private viewerHost!: ViewContainerRef;\n\n // ── State ─────────────────────────────────────────────────\n /** True while the editor is in edit mode. */\n public IsEditing = false;\n /**\n * True while a Save of the shown dashboard runs (the question about a save made elsewhere, the\n * screenshot, then the save). Meanwhile Edit, Save, Cancel, Add part and part edits do nothing, and\n * the header shows it.\n */\n public IsSaving = false;\n /** The name field. */\n public EditingName = '';\n /** The description field. */\n public EditingDescription = '';\n /** The user's permissions for the shown dashboard. Nothing is allowed before a dashboard loads. */\n public Permissions: DashboardUserPermissions = NO_PERMISSIONS;\n /** Whether the part dialog is open to add a part or to edit one. Null while it is closed. */\n public PartDialogMode: DashboardPartDialogMode | null = null;\n /** The part the part dialog edits in edit mode. */\n public EditPartPanel: DashboardPanel | null = null;\n /** True while the dashboard's Properties and wires dialog is open. */\n public PropertiesDialogOpen = false;\n /** The dashboard's parts when the Properties and wires dialog opened. */\n public PropertiesDialogPanels: DashboardPanel[] = [];\n\n private _dashboard: MJDashboardEntity | null = null;\n private viewer: DashboardViewerComponent | null = null;\n private viewerRef: ComponentRef<DashboardViewerComponent> | null = null;\n /** Each load gets a number; a load whose number is no longer the latest stops at its next step. */\n private loadGeneration = 0;\n /** Each edit session gets a number; a dialog answer from an ended session does nothing. */\n private editSession = 0;\n /** The saved name and description when the current edit session began. */\n private editBaseline: { Name: string; Description: string } | null = null;\n /** The saved name last reported through NameChanged (or the name at load). */\n private reportedName: string | null = null;\n private readonly destroy$ = new Subject<void>();\n /** Ends the subscriptions to the current viewer's events. */\n private readonly viewerChanged$ = new Subject<void>();\n\n // ── Read-only state for hosts ─────────────────────────────\n /** The shown dashboard: the instance DashboardEngine holds. Null before a load. */\n public get Dashboard(): MJDashboardEntity | null { return this._dashboard; }\n /** The viewer, for hosts that drive it (the dashboard tab's agent tools). Null before a load. */\n public get Viewer(): DashboardViewerComponent | null { return this.viewer; }\n /** The element that holds the dashboard: the Save screenshot, the pin thumbnail and the agent's screenshot capture it. */\n public get BodyElement(): HTMLElement { return this.bodyRef.nativeElement; }\n /** True when the user can edit the shown dashboard. */\n public get CanEdit(): boolean { return this.Permissions.CanEdit; }\n /** The part types the part dialog offers: the viewer's part types. */\n public get PartTypes(): MJDashboardPartTypeEntity[] { return this.viewer?.GetPartTypes() ?? NO_PART_TYPES; }\n /** The dashboard's properties, which the part dialog maps onto a part's inputs. */\n public get DashboardProperties(): DashboardProperty[] { return this.viewer?.GetDashboardProperties() ?? NO_PROPERTIES; }\n /** The dashboard's wires. */\n public get DashboardWires(): DashboardWire[] { return this.viewer?.GetWires() ?? NO_WIRES; }\n /** True when someone else owns the dashboard and shared it with the user. */\n public get IsSharedWithUser(): boolean { return !this.Permissions.IsOwner && this.Permissions.PermissionSource !== 'none'; }\n /** True when the shown dashboard is one of the user's favorites. False when the favorites cannot be read. */\n public get IsFavorite(): boolean {\n const id = this._dashboard?.ID;\n if (!id) return false;\n try {\n return this.favoritesService.IsFavorite(id);\n } catch {\n return false;\n }\n }\n /** True while editing with changes the viewer or the fields have not saved. */\n public get HasUnsavedChanges(): boolean {\n const dashboard = this._dashboard;\n if (!this.IsEditing || !dashboard) return false;\n return (this.viewer?.HasUnsavedChanges ?? false)\n || this.EditingName !== dashboard.Name\n || this.EditingDescription !== (dashboard.Description ?? '');\n }\n\n // ── Lifecycle ─────────────────────────────────────────────\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n this.watchSavedDashboard();\n this.watchFavorites();\n if (this._dashboardId) void this.load();\n }\n\n /** Stops a load in progress at its next step, ends the subscriptions and destroys the viewer. */\n ngOnDestroy(): void {\n this.loadGeneration++;\n this.destroy$.next();\n this.destroy$.complete();\n this.dropViewer();\n }\n\n // ── Load ──────────────────────────────────────────────────\n /**\n * Shows the dashboard DashboardId names. Drops the dashboard shown before. When the dashboard cannot\n * be shown, the editor shows none (an edit begun while the layout built ends) and emits LoadFailed.\n */\n private async load(): Promise<void> {\n const generation = ++this.loadGeneration;\n this.teardownViewer();\n const id = this._dashboardId;\n if (!id) {\n SafeDetectChanges(this.cdr);\n return;\n }\n try {\n const dashboard = await this.findConfigDashboard(id);\n if (generation !== this.loadGeneration) return;\n await this.showDashboard(dashboard, generation);\n } catch (error) {\n if (generation !== this.loadGeneration) return;\n this.teardownViewer();\n SafeDetectChanges(this.cdr);\n LogError(`Dashboard editor: could not load dashboard ${id}: ${errorMessage(error)}`);\n this.LoadFailed.emit({ DashboardId: id, Message: errorMessage(error) });\n }\n }\n\n /** The Config dashboard with this ID in DashboardEngine. Rejects when the engine has none, or it is a Code dashboard. */\n private async findConfigDashboard(id: string): Promise<MJDashboardEntity> {\n const provider = this.ProviderToUse;\n await DashboardEngine.Instance.Config(false, provider.CurrentUser, provider);\n const dashboard = DashboardEngine.Instance.Dashboards.find(d => UUIDsEqual(d.ID, id));\n if (!dashboard) throw new Error(`Dashboard with ID ${id} not found.`);\n if (dashboard.Type === 'Code') throw new Error(`\"${dashboard.Name}\" is a Code dashboard. The editor shows Config dashboards.`);\n return dashboard;\n }\n\n /**\n * Creates the viewer and shows the dashboard in it. The viewer is configured, and its events wired,\n * before it gets the dashboard, because the dashboard starts the layout. Once the layout is ready the\n * editor enters edit mode when StartInEditMode asks for it, then emits Loaded.\n */\n private async showDashboard(dashboard: MJDashboardEntity, generation: number): Promise<void> {\n const viewer = this.createViewer();\n this._dashboard = dashboard;\n this.reportedName = dashboard.Name;\n this.Permissions = this.readPermissions(dashboard);\n this.configureViewer(viewer);\n viewer.Dashboard = dashboard; // starts the layout\n SafeDetectChanges(this.cdr); // the header shows while the layout builds\n await viewer.WaitForLayoutReady();\n if (generation !== this.loadGeneration) return;\n this.applyStartInEditMode();\n SafeDetectChanges(this.cdr);\n this.Loaded.emit(dashboard);\n }\n\n /** Creates the viewer in the body. Its host element fills the body: component CSS cannot reach a created host. */\n private createViewer(): DashboardViewerComponent {\n const ref = this.viewerFactory.Create(this.viewerHost);\n const element = ref.location.nativeElement as HTMLElement;\n element.style.width = '100%';\n element.style.height = '100%';\n this.viewerRef = ref;\n this.viewer = ref.instance;\n return ref.instance;\n }\n\n /** Sets the viewer up for the editor, which shows the header, and passes the viewer's events on. */\n private configureViewer(viewer: DashboardViewerComponent): void {\n viewer.Provider = this.Provider;\n viewer.ShowToolbar = false;\n viewer.ShowBreadcrumb = false;\n viewer.ShowOpenInTabButton = false;\n viewer.ShowEditButton = false;\n viewer.CanEdit = this.Permissions.CanEdit;\n viewer.Categories = DashboardEngine.Instance.DashboardCategories;\n viewer.NavigationRequested.pipe(takeUntil(this.viewerChanged$)).subscribe(event => this.NavigationRequested.emit(event));\n viewer.DashboardSaved.pipe(takeUntil(this.viewerChanged$)).subscribe(saved => this.onViewerSaved(saved));\n viewer.error.pipe(takeUntil(this.viewerChanged$)).subscribe(e => LogError(`Dashboard editor: ${e.message}${e.error ? `: ${e.error.message}` : ''}`));\n viewer.configChanged.pipe(takeUntil(this.viewerChanged$)).subscribe(() => this.ConfigChanged.emit());\n viewer.PanelInteraction.pipe(takeUntil(this.viewerChanged$)).subscribe(event => this.onPanelInteraction(event));\n }\n\n /** Destroys the viewer and forgets the dashboard. An edit in progress is dropped, and EditingChange says so. */\n private teardownViewer(): void {\n if (this.dropViewer()) this.EditingChange.emit(false);\n }\n\n /**\n * Destroys the viewer and forgets the dashboard and its edit. A Save of that dashboard still running\n * stops at its next step, and IsSaving is false for the next dashboard. Returns whether an edit was in\n * progress.\n */\n private dropViewer(): boolean {\n const wasEditing = this.IsEditing;\n this.viewerChanged$.next();\n this.closePartDialogs();\n this.IsEditing = false;\n this.IsSaving = false;\n this.editSession++;\n this.viewerRef?.destroy();\n this.viewerRef = null;\n this.viewer = null;\n this._dashboard = null;\n this.reportedName = null;\n this.Permissions = NO_PERMISSIONS;\n return wasEditing;\n }\n\n /** Enters edit mode once when the host asked for it with StartInEditMode, and resets the input. */\n private applyStartInEditMode(): void {\n if (!this.StartInEditMode) return;\n this.StartInEditMode = false;\n this.StartInEditModeChange.emit(false);\n this.EnterEditMode();\n }\n\n /** Reads the user's permissions for the dashboard again, for example after the host's Share dialog saved. */\n public RefreshPermissions(): void {\n this.Permissions = this.readPermissions(this._dashboard);\n if (this.viewer) this.viewer.CanEdit = this.Permissions.CanEdit;\n SafeDetectChanges(this.cdr);\n }\n\n /** The user's permissions for a dashboard. None without a dashboard. */\n private readPermissions(dashboard: MJDashboardEntity | null): DashboardUserPermissions {\n return dashboard\n ? DashboardEngine.Instance.GetDashboardPermissions(dashboard.ID, this.ProviderToUse.CurrentUser.ID)\n : NO_PERMISSIONS;\n }\n\n // ── Edit mode ─────────────────────────────────────────────\n /**\n * Enters edit mode when the user can edit. Returns true when the editor is editing afterwards, and\n * false, changing nothing, while a Save runs: that Save reads the name and description fields.\n */\n public EnterEditMode(): boolean {\n if (this.IsSaving) return false;\n if (this.IsEditing) return true;\n if (!this.startEditing()) return false;\n SafeDetectChanges(this.cdr);\n this.EditingChange.emit(true);\n return true;\n }\n\n /** Leaves edit mode without saving, or enters it. */\n public ToggleEditMode(): void {\n if (this.IsEditing) this.CancelEdit();\n else this.EnterEditMode();\n }\n\n /**\n * Puts the editor and its viewer in edit mode. Returns false, and changes nothing, without a dashboard\n * or when the user cannot edit it. Takes DashboardEngine's current copy first: when the dashboard was\n * saved elsewhere since the viewer loaded it, the viewer reloads the saved layout, so this edit's save\n * keeps it. Notes the saved name and description, so Save can tell a save made elsewhere during the\n * edit (see savedElsewhereSinceEditStart).\n */\n private startEditing(): boolean {\n if (!this._dashboard || !this.Permissions.CanEdit) return false;\n this.syncWithSavedDashboard();\n const dashboard = this._dashboard; // the sync can take a newer copy\n this.IsEditing = true;\n this.editSession++;\n this.EditingName = dashboard.Name;\n this.EditingDescription = dashboard.Description || '';\n this.editBaseline = { Name: dashboard.Name, Description: dashboard.Description ?? '' };\n if (this.viewer) this.viewer.IsEditing = true;\n return true;\n }\n\n /**\n * Leaves edit mode and drops the changes. The viewer reloads the saved layout before it leaves edit\n * mode: it drops its layout at once, so leaving edit mode applies to the layout it rebuilds. Does\n * nothing while a Save runs.\n */\n public CancelEdit(): void {\n if (this.IsSaving || !this.IsEditing) return;\n this.IsEditing = false;\n this.editSession++;\n this.closePartDialogs();\n this.reloadSavedDashboard();\n if (this.viewer) this.viewer.IsEditing = false;\n SafeDetectChanges(this.cdr);\n this.EditingChange.emit(false);\n }\n\n // ── Save ──────────────────────────────────────────────────\n /**\n * Saves the name, description and layout, then leaves edit mode. An empty name is never saved: the\n * previous name is kept. When the save fails, the editor stays in edit mode (see onSaveFailed). One\n * Save runs at a time (see IsSaving).\n */\n public async SaveDashboard(): Promise<void> {\n await this.saveAndLeaveEditMode();\n }\n\n /**\n * Saves like SaveDashboard. Returns null when saved, also when the editor shows another dashboard by\n * the time the viewer has saved; else why not. Outside edit mode it saves the dashboard's own name and\n * description. `overrides` replace the fields first. While a Save runs it refuses at once and leaves\n * the fields as they are.\n */\n public async Save(overrides: DashboardSaveOverrides = {}): Promise<string | null> {\n if (this.IsSaving) return DASHBOARD_SAVE_IN_PROGRESS;\n const dashboard = this._dashboard;\n if (dashboard && !this.IsEditing) {\n this.EditingName = dashboard.Name;\n this.EditingDescription = dashboard.Description || '';\n }\n if (overrides.Name !== undefined) this.EditingName = overrides.Name;\n if (overrides.Description !== undefined) this.EditingDescription = overrides.Description;\n return this.saveAndLeaveEditMode();\n }\n\n /**\n * The work of SaveDashboard and Save. Returns null when saved, else why not: no dashboard is open, a\n * Save runs, another save of the dashboard object runs (see stopWhileSavedElsewhere), the user kept\n * editing rather than replace a save made elsewhere, the editor showed another dashboard before the\n * viewer saved, or the save failed (the user has seen that reason). A Save belongs to the viewer it\n * started with: once the editor shows another dashboard, the Save changes nothing in the editor and\n * leaves IsSaving to that dashboard. A save the viewer already made still returns null. See\n * prepareSave for the steps before the viewer saves.\n */\n private async saveAndLeaveEditMode(): Promise<string | null> {\n const dashboard = this._dashboard;\n const viewer = this.viewer;\n if (!dashboard || !viewer) return 'No dashboard is open.';\n if (this.IsSaving) return DASHBOARD_SAVE_IN_PROGRESS;\n const savingElsewhere = this.stopWhileSavedElsewhere(dashboard);\n if (savingElsewhere) return savingElsewhere;\n this.IsSaving = true;\n SafeDetectChanges(this.cdr);\n try {\n const stopped = await this.prepareSave(dashboard, viewer);\n if (stopped) return stopped;\n if (!await viewer.save()) return this.onSaveFailed(dashboard);\n if (viewer === this.viewer) this.leaveEditModeAfterSave(viewer);\n return null;\n } catch (error) {\n return this.onSaveFailed(dashboard, error);\n } finally {\n if (viewer === this.viewer) {\n this.IsSaving = false;\n SafeDetectChanges(this.cdr);\n }\n }\n }\n\n /**\n * The steps of a Save before the viewer saves. It asks first when the dashboard was saved elsewhere\n * since this edit began. Then it takes the screenshot and writes it, the name and the description to\n * the dashboard; the fields are read after the screenshot, so a name typed meanwhile is saved. Returns\n * why the Save stops, or null to save. When the editor shows another dashboard after a step, or another\n * save of the dashboard object started meanwhile, it stops and writes nothing.\n */\n private async prepareSave(dashboard: MJDashboardEntity, viewer: DashboardViewerComponent): Promise<string | null> {\n const replace = !this.savedElsewhereSinceEditStart() || await this.confirmOverwrite();\n if (viewer !== this.viewer) return DASHBOARD_CHANGED_BEFORE_SAVE;\n if (!replace) return KEPT_EDITING;\n // The screenshot goes on the dashboard (Thumbnail), so this same Save stores the picture the\n // dashboard cards show. A failed Save reverts it with the other fields.\n const thumbnail = await this.takeDashboardThumbnail(viewer);\n if (viewer !== this.viewer) return DASHBOARD_CHANGED_BEFORE_SAVE;\n const savingElsewhere = this.stopWhileSavedElsewhere(dashboard);\n if (savingElsewhere) return savingElsewhere;\n if (thumbnail !== undefined) dashboard.Thumbnail = thumbnail;\n this.restoreEmptyName();\n dashboard.Name = this.EditingName;\n dashboard.Description = this.EditingDescription;\n return null;\n }\n\n /**\n * When another save of the dashboard object runs (Home's rename, for example), tells the user and returns why this\n * Save stops: BaseEntity's Save would join that save and write none of this Save's changes. The editor stays in edit\n * mode with the user's changes. Null when no other save runs.\n */\n private stopWhileSavedElsewhere(dashboard: MJDashboardEntity): string | null {\n if (!dashboard.IsSaving) return null;\n const message = `\"${dashboard.Name}\" is being saved elsewhere. Save again in a moment.`;\n MJNotificationService.Instance.CreateSimpleNotification(message, 'info', 3000);\n return message;\n }\n\n /** Leaves edit mode after a successful save. A Save outside edit mode (an agent's request) emits no EditingChange. */\n private leaveEditModeAfterSave(viewer: DashboardViewerComponent): void {\n const wasEditing = this.IsEditing;\n this.IsEditing = false;\n this.editSession++;\n this.closePartDialogs();\n viewer.IsEditing = false;\n SafeDetectChanges(this.cdr);\n if (wasEditing) this.EditingChange.emit(false);\n }\n\n /**\n * The dashboard's new Thumbnail: a small screenshot of the dashboard body, or null when the layout has\n * no panels, so the dashboard cards show the icon. Undefined when no screenshot is ready in time (too\n * many elements, no size, or the timeout): the current Thumbnail stays. Never throws.\n */\n private async takeDashboardThumbnail(viewer: DashboardViewerComponent): Promise<string | null | undefined> {\n try {\n if (ExtractPanelsFromLayout(viewer.getConfig()?.layout ?? null).length === 0) return null;\n return (await this.pinService.CaptureThumbnail(this.BodyElement, SAVE_SCREENSHOT_TIMEOUT_MS)) || undefined;\n } catch (error) {\n LogError(`Dashboard editor: could not take a screenshot of the dashboard: ${errorMessage(error)}`);\n return undefined;\n }\n }\n\n /** Keeps the previous name when the user leaves the name field empty or with only spaces. */\n public OnNameBlur(): void {\n this.restoreEmptyName();\n }\n\n /** Puts the saved name back into an empty or spaces-only name field. */\n private restoreEmptyName(): void {\n if (!this.EditingName.trim()) {\n this.EditingName = this._dashboard?.Name || 'Untitled Dashboard';\n }\n }\n\n /**\n * Handles a save that did not complete. The editor stays in edit mode with the user's changes, the\n * cached dashboard (which other pages read) goes back to its saved values, and the user sees why.\n * Returns the message the user sees.\n */\n private onSaveFailed(dashboard: MJDashboardEntity, error?: unknown): string {\n const reason = this.saveFailureReason(dashboard, error);\n dashboard.Revert();\n LogError(`Dashboard editor: could not save the dashboard: ${reason || 'no reason given'}`);\n const message = reason ? `Could not save the dashboard: ${reason}` : 'Could not save the dashboard';\n MJNotificationService.Instance.CreateSimpleNotification(message, 'error', 5000);\n SafeDetectChanges(this.cdr);\n return message;\n }\n\n /**\n * Why a save failed: the thrown error, else the viewer's refusal (a broken mapping or wire), else the\n * dashboard's failed save result. Empty when none says.\n */\n private saveFailureReason(dashboard: MJDashboardEntity, error: unknown): string {\n if (error !== undefined) return errorMessage(error);\n if (this.viewer?.LastSaveError) return this.viewer.LastSaveError;\n const latest = dashboard.LatestResult;\n return latest && !latest.Success ? latest.CompleteMessage : '';\n }\n\n /** Passes a save of the viewer on to the host, with the new name when it changed. */\n private onViewerSaved(saved: MJDashboardEntity): void {\n this.Saved.emit(saved);\n this.reportNameIfChanged(saved.Name);\n }\n\n /** Emits NameChanged when the saved name differs from the one last reported. An empty name is never reported. */\n private reportNameIfChanged(name: string | null | undefined): void {\n if (!name || name === this.reportedName) return;\n this.reportedName = name;\n this.NameChanged.emit(name);\n }\n\n // ── Saved elsewhere ───────────────────────────────────────\n /**\n * Follows DashboardEngine's changes to the shown dashboard until the editor is destroyed. A burst of\n * changes is handled once, after the current task.\n */\n private watchSavedDashboard(): void {\n DashboardEngine.Instance.DataChange$.pipe(\n filter(event => this.isChangeToShownDashboard(event)),\n auditTime(0),\n takeUntil(this.destroy$)\n ).subscribe(() => this.onSavedDashboardChanged());\n }\n\n /** True for a change to the shown dashboard's record, or for a reload of all dashboards. */\n private isChangeToShownDashboard(event: EngineDataChangeEvent): boolean {\n const shown = this._dashboard;\n if (!shown || event.config.EntityName?.trim().toLowerCase() !== DASHBOARDS_ENTITY_NAME.toLowerCase()) {\n return false;\n }\n const affected = event.affectedEntity;\n return !affected || affected === shown || affected.PrimaryKey.Equals(shown.PrimaryKey);\n }\n\n /**\n * Brings an idle editor in step with the saved dashboard after a change to it, and reports a rename\n * saved elsewhere, also while editing: the host's title follows the saved name, and the name the user\n * typed stays in the field.\n */\n private onSavedDashboardChanged(): void {\n if (!this.IsEditing && this.syncWithSavedDashboard() === 'reloaded') {\n this.ReloadedFromSaved.emit();\n }\n this.reportNameIfChanged((this.savedDashboard() ?? this._dashboard)?.Name);\n SafeDetectChanges(this.cdr);\n }\n\n /**\n * Brings the shown dashboard in step with DashboardEngine's current copy of it. The viewer rebuilds\n * only when the saved layout differs from the one it shows. When only the copy is new (DashboardEngine\n * reloaded its dashboards), the editor and the viewer take it without a rebuild: a save writes every\n * field of the entity, so saving an old copy would write its old values.\n */\n private syncWithSavedDashboard(): SavedDashboardSync {\n const viewer = this.viewer;\n const saved = this.savedDashboard();\n if (!viewer || !saved) return 'unchanged';\n if (viewer.HasNewerSavedLayout(saved)) {\n this.reloadSavedDashboard();\n return 'reloaded';\n }\n if (saved !== this._dashboard && viewer.UseSavedCopy(saved)) {\n this._dashboard = saved;\n return 'took-copy';\n }\n return 'unchanged';\n }\n\n /** Shows the saved dashboard in the viewer: DashboardEngine's copy of it when the engine has one. */\n private reloadSavedDashboard(): void {\n const viewer = this.viewer;\n const saved = this.savedDashboard() ?? this._dashboard;\n if (!viewer || !saved) return;\n\n this._dashboard = saved;\n viewer.ReloadFromSaved(saved).catch((error: unknown) => {\n LogError(`Dashboard editor: could not reload the saved dashboard: ${errorMessage(error)}`);\n });\n }\n\n /** The shown dashboard as DashboardEngine holds it now. Null when the engine does not have it. */\n private savedDashboard(): MJDashboardEntity | null {\n const shown = this._dashboard;\n if (!shown) return null;\n try {\n return DashboardEngine.Instance.Dashboards.find(d => UUIDsEqual(d.ID, shown.ID)) ?? null;\n } catch {\n return null; // the user cannot read the dashboards cache\n }\n }\n\n /**\n * True when the dashboard was saved elsewhere after the current edit session began: another layout,\n * name or description. False outside edit mode, where no edit session runs.\n */\n private savedElsewhereSinceEditStart(): boolean {\n const saved = this.savedDashboard() ?? this._dashboard;\n const baseline = this.editBaseline;\n if (!this.IsEditing || !saved || !baseline || !this.viewer) return false;\n return this.viewer.HasNewerSavedLayout(saved)\n || saved.Name !== baseline.Name\n || (saved.Description ?? '') !== baseline.Description;\n }\n\n /** Asks whether to replace a save made elsewhere. Resolves true for Save anyway, false for Keep editing. */\n private confirmOverwrite(): Promise<boolean> {\n return this.confirmService.Confirm({\n title: 'Replace changes saved elsewhere?',\n message: 'This dashboard was saved in another place after you started editing. Saving now replaces those changes.',\n type: 'warning',\n confirmText: 'Save anyway',\n cancelText: 'Keep editing',\n });\n }\n\n // ── Parts ─────────────────────────────────────────────────\n /** Routes the viewer's part requests. Outside edit mode, only Add part on an empty dashboard counts: it enters edit mode first. */\n private onPanelInteraction(event: PanelInteractionEvent): void {\n if (event.interactionType !== 'custom' || this.IsSaving) return;\n const action = event.payload?.['action'];\n if (!this.IsEditing && (action !== 'add-panel-requested' || !this.EnterEditMode())) return;\n switch (action) {\n case 'add-panel-requested':\n this.OpenAddPartDialog();\n break;\n case 'configure-part-requested':\n this.openEditPartDialog(event.panelId);\n break;\n case 'remove-part-requested':\n void this.confirmRemovePart(event.panelId);\n break;\n }\n }\n\n /** Opens the part dialog to add a part. Only while editing and not saving. */\n public OpenAddPartDialog(): void {\n if (!this.IsEditing || this.IsSaving) return;\n this.EditPartPanel = null;\n this.PartDialogMode = 'add';\n SafeDetectChanges(this.cdr);\n }\n\n /** Opens the part dialog to edit the part with this panel ID. */\n private openEditPartDialog(panelId: string): void {\n const panel = this.viewer?.GetPanel(panelId) ?? null;\n if (!panel) return;\n this.EditPartPanel = panel;\n this.PartDialogMode = 'edit';\n SafeDetectChanges(this.cdr);\n }\n\n /** Adds the part, or applies the edited part, from the part dialog. */\n public async OnPartDialogSaved(result: DashboardPartDialogResult): Promise<void> {\n const mode = this.PartDialogMode;\n const panel = this.EditPartPanel;\n this.closePartDialogs();\n if (mode === 'add') {\n await this.applyPartChange('Could not add the part', async v => { await v.AddPanel(result.PartType.ID, result.Config, result.Title, result.Icon); });\n } else if (mode === 'edit' && panel) {\n await this.applyPartChange('Could not update the part', v => v.UpdatePanelConfig(panel.id, result.Config, result.Title, result.Icon));\n }\n }\n\n /** Closes the part dialog. */\n public ClosePartDialog(): void {\n this.closePartDialogs();\n SafeDetectChanges(this.cdr);\n }\n\n /** Closes every part dialog. A part dialog belongs to one edit session. */\n private closePartDialogs(): void {\n this.PartDialogMode = null;\n this.EditPartPanel = null;\n this.PropertiesDialogOpen = false;\n this.PropertiesDialogPanels = [];\n }\n\n // ── Properties and wires ──────────────────────────────────\n /** Opens the dashboard's Properties and wires dialog. Only while editing and not saving. */\n public OpenPropertiesDialog(): void {\n if (!this.IsEditing || this.IsSaving || !this.viewer) return;\n this.PropertiesDialogPanels = ExtractPanelsFromLayout(this.viewer.getConfig()?.layout ?? null);\n this.PropertiesDialogOpen = true;\n SafeDetectChanges(this.cdr);\n }\n\n /** Applies the dialog's properties and wires to the viewer. They are saved with the dashboard's Save. */\n public async OnPropertiesDialogSaved(result: DashboardPropertiesDialogResult): Promise<void> {\n this.closePartDialogs();\n await this.applyPartChange('Could not update the properties', v => v.SetPropertiesAndWires(result.Properties, result.Wires));\n }\n\n /**\n * Asks the user to confirm removing a part, then removes it. Changes nothing when the user cancels, or when the\n * edit session, the viewer or the part changed while the confirm was open.\n */\n private async confirmRemovePart(panelId: string): Promise<void> {\n const viewer = this.viewer;\n const panel = viewer?.GetPanel(panelId);\n if (!viewer || !panel) return;\n const session = this.editSession;\n const confirmed = await this.confirmService.ConfirmDelete(RemovePartConfirmOptions(panel.title, viewer.GetPartTypeForPanel(panelId)?.Name));\n if (!confirmed || !this.IsEditing || session !== this.editSession || viewer !== this.viewer || !viewer.GetPanel(panelId)) return;\n await this.applyPartChange('Could not remove the part', v => v.ConfirmRemovePanel(panelId));\n }\n\n /**\n * Applies one part change to the viewer, tells the user when it fails, and reports the change through\n * ConfigChanged. The change is saved with the dashboard's Save. Does nothing while a Save runs, for\n * example from a dialog that was open when the Save started.\n */\n private async applyPartChange(failureMessage: string, change: (viewer: DashboardViewerComponent) => void | Promise<void>): Promise<void> {\n const viewer = this.viewer;\n if (!viewer || this.IsSaving) return;\n try {\n await change(viewer);\n } catch (error) {\n LogError(`Dashboard editor: ${failureMessage}: ${errorMessage(error)}`);\n MJNotificationService.Instance.CreateSimpleNotification(failureMessage, 'error', 3000);\n }\n this.ConfigChanged.emit();\n }\n\n // ── Favorite ──────────────────────────────────────────────\n /** Shows the star's new state when any favorite changes, also on another page, until the editor is destroyed. */\n private watchFavorites(): void {\n this.favoritesService.Changed$.pipe(takeUntil(this.destroy$)).subscribe(() => SafeDetectChanges(this.cdr));\n }\n\n /** Stars or unstars the shown dashboard, tells the user the new state, and emits it through FavoriteChange. */\n public async ToggleFavorite(): Promise<void> {\n const dashboard = this._dashboard;\n if (!dashboard) return;\n try {\n const isFavorite = await this.favoritesService.Toggle(dashboard.ID);\n const message = isFavorite ? `Added \"${dashboard.Name}\" to favorites` : `Removed \"${dashboard.Name}\" from favorites`;\n MJNotificationService.Instance.CreateSimpleNotification(message, 'success', 2000);\n } catch (error) {\n LogError(`Dashboard editor: could not change the favorite: ${errorMessage(error)}`);\n MJNotificationService.Instance.CreateSimpleNotification('Could not change the favorite', 'error', 3000);\n }\n this.FavoriteChange.emit(this.IsFavorite);\n SafeDetectChanges(this.cdr);\n }\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n","@if (Dashboard; as dashboard) {\n <header class=\"dashboard-editor-header\" [class.is-editing]=\"IsEditing\">\n @if (IsEditing) {\n <mj-stat-badge class=\"dashboard-editor-badge\" Variant=\"info\" Icon=\"fa-solid fa-pen\" Label=\"Editing\"></mj-stat-badge>\n }\n\n <div class=\"dashboard-editor-namewrap\">\n @if (!IsEditing) {\n @if (TitleTemplate) {\n <ng-container [ngTemplateOutlet]=\"TitleTemplate\" [ngTemplateOutletContext]=\"{ $implicit: dashboard, Dashboard: dashboard }\"></ng-container>\n } @else {\n <h1 class=\"dashboard-editor-title\">\n {{ dashboard.Name }}\n @if (IsSharedWithUser) {\n <i class=\"fa-solid fa-share-nodes dashboard-editor-shared\" role=\"img\" title=\"Shared with you\" aria-label=\"Shared with you\"></i>\n }\n </h1>\n }\n @if (dashboard.Description) {\n <p class=\"dashboard-editor-desc\">{{ dashboard.Description }}</p>\n } @else if (CanEdit) {\n <p class=\"dashboard-editor-desc is-placeholder\">Add a description</p>\n }\n } @else {\n <input type=\"text\" class=\"mj-input dashboard-editor-name\" aria-label=\"Dashboard name\" placeholder=\"Name this dashboard\"\n [(ngModel)]=\"EditingName\" (blur)=\"OnNameBlur()\">\n <input type=\"text\" class=\"dashboard-editor-desc is-editable\" aria-label=\"Dashboard description\" placeholder=\"Add a description\"\n [(ngModel)]=\"EditingDescription\">\n }\n </div>\n\n <div class=\"dashboard-editor-actions\">\n <ng-content select=\"[headerTools]\"></ng-content>\n @if (!IsEditing) {\n @if (ShowFavorite) {\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" class=\"dashboard-editor-favorite\" [class.is-favorite]=\"IsFavorite\"\n [title]=\"IsFavorite ? 'Remove from favorites' : 'Add to favorites'\"\n [attr.aria-label]=\"IsFavorite ? 'Remove from favorites' : 'Add to favorites'\" (click)=\"ToggleFavorite()\">\n <i [class]=\"IsFavorite ? 'fa-solid fa-star' : 'fa-regular fa-star'\" aria-hidden=\"true\"></i>\n </button>\n }\n <ng-content select=\"[viewActions]\"></ng-content>\n @if (ShowOpenInDashboards) {\n <button type=\"button\" mjButton Variant=\"secondary\" Size=\"sm\" class=\"dashboard-editor-open-in\" (click)=\"OpenInDashboardsRequested.emit(dashboard)\">\n <i class=\"fa-solid fa-up-right-from-square\" aria-hidden=\"true\"></i> Open in Dashboards\n </button>\n }\n @if (CanEdit) {\n <span class=\"dashboard-editor-divider\" aria-hidden=\"true\"></span>\n <button type=\"button\" mjButton Variant=\"primary\" Size=\"sm\" class=\"dashboard-editor-edit\" [disabled]=\"IsSaving\" (click)=\"EnterEditMode()\">\n <i class=\"fa-solid fa-pen\" aria-hidden=\"true\"></i> Edit\n </button>\n }\n } @else {\n <button type=\"button\" mjButton Variant=\"secondary\" Size=\"sm\" class=\"dashboard-editor-add-part\" [disabled]=\"IsSaving\" (click)=\"OpenAddPartDialog()\">\n <i class=\"fa-solid fa-plus\" aria-hidden=\"true\"></i> Add part\n </button>\n <button type=\"button\" mjButton Variant=\"secondary\" Size=\"sm\" class=\"dashboard-editor-properties\" [disabled]=\"IsSaving\" (click)=\"OpenPropertiesDialog()\">\n <i class=\"fa-solid fa-sliders\" aria-hidden=\"true\"></i> Properties\n </button>\n <span class=\"dashboard-editor-divider\" aria-hidden=\"true\"></span>\n <button type=\"button\" mjButton Variant=\"primary\" Size=\"sm\" class=\"dashboard-editor-save\" [disabled]=\"IsSaving\" (click)=\"SaveDashboard()\">\n <i [class]=\"IsSaving ? 'fa-solid fa-spinner fa-spin' : 'fa-solid fa-check'\" aria-hidden=\"true\"></i>\n {{ IsSaving ? 'Saving...' : 'Save' }}\n </button>\n <button type=\"button\" mjButton Variant=\"flat\" Size=\"sm\" class=\"dashboard-editor-cancel\" [disabled]=\"IsSaving\" (click)=\"CancelEdit()\">Cancel</button>\n }\n </div>\n </header>\n}\n\n<div class=\"dashboard-editor-main\" [class.is-card]=\"BodyStyle === 'card'\">\n <div #body class=\"dashboard-editor-body\">\n <ng-container #viewerHost></ng-container>\n </div>\n</div>\n\n<!-- The part dialog belongs to one edit session -->\n@if (Dashboard && IsEditing && PartDialogMode) {\n <mj-dashboard-part-dialog [Visible]=\"true\" [Mode]=\"PartDialogMode\" [PartTypes]=\"PartTypes\"\n [Panel]=\"EditPartPanel\" [Provider]=\"Provider\" [DashboardProperties]=\"DashboardProperties\"\n (Saved)=\"OnPartDialogSaved($event)\" (Cancelled)=\"ClosePartDialog()\"></mj-dashboard-part-dialog>\n}\n\n<!-- The Properties and wires dialog belongs to one edit session -->\n@if (Dashboard && IsEditing && PropertiesDialogOpen) {\n <mj-dashboard-properties-dialog [Visible]=\"true\" [Properties]=\"DashboardProperties\" [Wires]=\"DashboardWires\"\n [Panels]=\"PropertiesDialogPanels\" [Provider]=\"Provider\"\n (Saved)=\"OnPropertiesDialogSaved($event)\" (Cancelled)=\"ClosePartDialog()\"></mj-dashboard-properties-dialog>\n}\n"]}
@@ -135,6 +135,11 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
135
135
  set detailPanelEntity(value: EntityInfo | null);
136
136
  private loadedRecords;
137
137
  SelectedViewEntity: MJUserViewEntityExtended | null;
138
+ /**
139
+ * Optional semantic name of an alternate base view selected via deep link (`?abv=<Name>`)
140
+ * when no saved view is active.
141
+ */
142
+ SelectedAlternateBaseView: string | null;
138
143
  /** @deprecated Use {@link SelectedViewEntity}. */
139
144
  get selectedViewEntity(): MJUserViewEntityExtended | null;
140
145
  /** @deprecated Use {@link SelectedViewEntity}. */
@@ -196,6 +201,8 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
196
201
  */
197
202
  get ShowDashboardsMovedBanner(): boolean;
198
203
  GetResourceDisplayName(data: ResourceData): Promise<string>;
204
+ private _filteredAppEntityGroupsCache;
205
+ private _filteredAppEntityGroupsKey;
199
206
  /**
200
207
  * Get app entity groups filtered by current entityFilterText and homeViewMode.
201
208
  * When searching, auto-expands groups that contain matches.
@@ -208,6 +215,9 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
208
215
  * Returns a new group with filtered entities and auto-expansion when searching.
209
216
  */
210
217
  private filterGroupEntities;
218
+ private _flatFilteredEntitiesCache;
219
+ private _flatFilteredEntitiesSource;
220
+ private _flatFilteredEntitiesKey;
211
221
  /**
212
222
  * Get a flat filtered entity list for single-application mode.
213
223
  * Used when entityFilter.applicationId is set, bypassing app grouping.
@@ -265,6 +275,9 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
265
275
  IsQuickAccessSectionExpanded(sectionId: string): boolean;
266
276
  /** @deprecated Use {@link IsQuickAccessSectionExpanded}. */
267
277
  isQuickAccessSectionExpanded(sectionId: string): boolean;
278
+ private _uniqueRecentRecordEntitiesCache;
279
+ private _uniqueRecentRecordEntitiesSource;
280
+ private _uniqueRecentRecordEntitiesLength;
268
281
  /**
269
282
  * Get unique entities from recent records for the filter strip.
270
283
  * Returns up to 5 entities, sorted by frequency in the recent records.
@@ -289,6 +302,9 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
289
302
  get ShowRecentRecordsEntityFilter(): boolean;
290
303
  /** @deprecated Use {@link ShowRecentRecordsEntityFilter}. */
291
304
  get showRecentRecordsEntityFilter(): boolean;
305
+ private _filteredRecentRecordsCache;
306
+ private _filteredRecentRecordsSource;
307
+ private _filteredRecentRecordsFilter;
292
308
  /**
293
309
  * Get filtered recent records based on entity filter.
294
310
  */
@@ -594,6 +610,10 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
594
610
  OnWorkspaceViewSelected(view: MJUserViewEntityExtended | null): void;
595
611
  /** @deprecated Use {@link OnWorkspaceViewSelected}. */
596
612
  onWorkspaceViewSelected(view: MJUserViewEntityExtended | null): void;
613
+ /**
614
+ * Handle an Alternate Base View selection emitted by the workspace's view selector.
615
+ */
616
+ OnWorkspaceAlternateBaseViewChanged(abv: string | null): void;
597
617
  /**
598
618
  * Handle the workspace's "open view in tab" request — route via NavigationService.
599
619
  */
@@ -803,6 +823,10 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
803
823
  OnBreadcrumbClick(breadcrumb: BreadcrumbItem, index: number): void;
804
824
  /** @deprecated Use {@link OnBreadcrumbClick}. */
805
825
  onBreadcrumbClick(breadcrumb: BreadcrumbItem, index: number): void;
826
+ private _allowedEntityNamesCache;
827
+ private _allowedEntityNamesFilterSource;
828
+ private _allowedEntityNamesEntitiesSource;
829
+ private _allowedEntityNamesEntitiesLen;
806
830
  /**
807
831
  * Get the set of allowed entity names for filtering favorites/recents.
808
832
  * Returns null if no filter is active (all entities allowed).
@@ -1 +1 @@
1
- {"version":3,"file":"data-explorer-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/DataExplorer/data-explorer-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-explorer-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/DataExplorer/data-explorer-dashboard.component.ts"],"names":[],"mappings":"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"}