@acorex-platform/module-dashboard-management-client 0.0.32 → 0.0.37

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 (24) hide show
  1. package/fesm2022/{acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-Cl4LZc2m.mjs → acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-BUmHWNqL.mjs} +919 -83
  2. package/fesm2022/acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-BUmHWNqL.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entities-dashboard.mjs +280 -0
  4. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entities-dashboard.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog-acorex-platform-module-dashboard-management-client-contracts-entity-catalog-CPDwiLWC.mjs +90 -0
  6. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog-acorex-platform-module-dashboard-management-client-contracts-entity-catalog-CPDwiLWC.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog-dashboard.entity-C1ju-BQM.mjs +209 -0
  8. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog-dashboard.entity-C1ju-BQM.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog.mjs +2 -0
  10. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts.mjs +11 -1
  12. package/fesm2022/acorex-platform-module-dashboard-management-client-contracts.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-module-dashboard-management-client-index-2e_oRKpO.mjs → acorex-platform-module-dashboard-management-client-index-C1Te5cDf.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-dashboard-management-client-index-2e_oRKpO.mjs.map → acorex-platform-module-dashboard-management-client-index-C1Te5cDf.mjs.map} +1 -1
  15. package/fesm2022/acorex-platform-module-dashboard-management-client-local-entities.mjs +29 -0
  16. package/fesm2022/acorex-platform-module-dashboard-management-client-local-entities.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-dashboard-management-client.mjs +1 -1
  18. package/package.json +13 -1
  19. package/types/acorex-platform-module-dashboard-management-client-contracts-entities-dashboard.d.ts +5 -0
  20. package/types/acorex-platform-module-dashboard-management-client-contracts-entity-catalog.d.ts +10 -0
  21. package/types/acorex-platform-module-dashboard-management-client-contracts.d.ts +19 -2
  22. package/types/acorex-platform-module-dashboard-management-client-local-entities.d.ts +12 -0
  23. package/types/acorex-platform-module-dashboard-management-client.d.ts +82 -4
  24. package/fesm2022/acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-Cl4LZc2m.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-dashboard-management-client-contracts-entity-catalog-dashboard.entity-C1ju-BQM.mjs","sources":["../../../../libs/modules/dashboard-management/contracts/src/DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/dashboard-management/contracts/src/entities/dashboard/dashboard.entity.ts"],"sourcesContent":["/** Component key for the dashboard Layout page tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY = 'dashboard-layout-page';\n","import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\nimport { DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY } from '../../DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY';\n\nexport async function dashboardFactory(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.dashboard.name,\n title: RootConfig.entities.dashboard.title,\n icon: RootConfig.entities.dashboard.icon,\n plugins: [{ name: 'category' }, { name: 'archive' }],\n pages: [\n {\n componentKey: DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY,\n title: '@dashboard-management:dashboards.entities.dashboard.pages.layout.title',\n description: '@dashboard-management:dashboards.entities.dashboard.pages.layout.description',\n icon: 'fa-light fa-table-layout',\n layout: { order: 1, position: 'after' },\n },\n ],\n formats: {\n individual: RootConfig.entities.dashboard.title,\n plural: RootConfig.entities.dashboard.titlePlural,\n displayName: '@general:terms.interface.configuration',\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.dashboard.title,\n },\n {\n id: 'access',\n title: '@dashboard-management:dashboards.entities.dashboard.groups.access.title',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'section',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n inline: {\n enabled: true,\n },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n multiLanguage: true,\n placeholder: '@general:terms.common.title',\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n\n {\n name: 'description',\n title: '@dashboard-management:dashboards.entities.dashboard.fields.description.title',\n groupId: 'section',\n options: {\n sort: {\n enabled: false,\n },\n filter: {\n advance: {\n enabled: false,\n },\n inline: {\n enabled: false,\n },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 3,\n multiLanguage: true,\n placeholder: '@general:terms.common.description',\n },\n },\n },\n },\n {\n name: 'scope',\n title: '@dashboard-management:dashboards.entities.dashboard.fields.scope.title',\n groupId: 'access',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n visible: false,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'id',\n dataSource: [\n {\n id: 'T',\n title: '@dashboard-management:dashboards.entities.dashboard.fields.scope.options.tenant',\n },\n {\n id: 'U',\n title: '@dashboard-management:dashboards.entities.dashboard.fields.scope.options.personal',\n },\n {\n id: 'E',\n title: '@dashboard-management:dashboards.entities.dashboard.fields.scope.options.entity',\n },\n ],\n },\n },\n },\n },\n {\n name: 'scopeRef.roleIds',\n title: '@dashboard:roles',\n groupId: 'access',\n schema: {\n dataType: 'object',\n visible: `{{ !context.eval(\"scope\") || context.eval(\"scope\") === \"T\" }}`,\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: 'SecurityManagement.Role',\n multiple: true,\n look: 'select',\n },\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'description' }],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'section' }, { id: 'access' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'scopeRef.roleIds', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n ],\n },\n update: {\n sections: [{ id: 'section' }, { id: 'access' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'scopeRef.roleIds', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [{ id: 'section', layout: { positions: { lg: { colSpan: 12 } } } }, { id: 'access' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'scopeRef.roleIds', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n createQueryView('tenant', '@dashboard-management:dashboards.entities.dashboard.views.tenant', true, {\n sorts: [{ name: 'title', dir: 'asc' }],\n conditions: [{ name: 'scope', operator: { type: 'equal' }, value: 'T' }],\n }),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { d as dashboardManagementLocalEntityCatalog } from './acorex-platform-module-dashboard-management-client-contracts-entity-catalog-acorex-platform-module-dashboard-management-client-contracts-entity-catalog-CPDwiLWC.mjs';
2
+ //# sourceMappingURL=acorex-platform-module-dashboard-management-client-contracts-entity-catalog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-dashboard-management-client-contracts-entity-catalog.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -87,6 +87,7 @@ const RootConfig = {
87
87
  gaugeChart: dashboardWidgetId('GaugeChart'),
88
88
  funnelChart: dashboardWidgetId('FunnelChart'),
89
89
  heatmapChart: dashboardWidgetId('HeatmapChart'),
90
+ chartCard: dashboardWidgetId('ChartCard'),
90
91
  stickyNote: dashboardWidgetId('StickyNote'),
91
92
  clockCalendar: dashboardWidgetId('ClockCalendar'),
92
93
  weather: dashboardWidgetId('Weather'),
@@ -149,6 +150,15 @@ const AXP_CHART_QUERY_RESULT_TYPE = {
149
150
  };
150
151
  //#endregion
151
152
 
153
+ /**
154
+ * Chart card options: one dashboard tile hosting mixed-type chart tabs.
155
+ * Each tab is an {@link AXPWidgetNode} of a typed chart widget (donut, bar, line, gauge).
156
+ */
157
+ //#region ----- Types -----
158
+ /** Editor widget name used as the repeater row in chart-card properties. */
159
+ const AXP_CHART_CONFIGURATOR_WIDGET_NAME = 'chart-configurator';
160
+ //#endregion
161
+
152
162
  //#region ---- Imports ----
153
163
  //#endregion
154
164
  //#region ---- Builders ----
@@ -212,5 +222,5 @@ function normalizeDashboardScopeRef(scope, scopeRef, fallback) {
212
222
  * Generated bundle index. Do not edit.
213
223
  */
214
224
 
215
- export { AXMPermissionsKeys, AXPAdministrationPermissionKeys, AXPDashboardManagementFeatureKeys, AXPDashboardManagementMenuKeys, AXPHomeDashboardSetting, AXP_CHART_QUERY_RESULT_TYPE, DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY, RootConfig, buildEntityScopeRef, buildTenantScopeRef, buildUserScopeRef, normalizeDashboardScopeRef, readScopeEntityType, readScopeRoleIds, readScopeTenantId, readScopeUserId };
225
+ export { AXMPermissionsKeys, AXPAdministrationPermissionKeys, AXPDashboardManagementFeatureKeys, AXPDashboardManagementMenuKeys, AXPHomeDashboardSetting, AXP_CHART_CONFIGURATOR_WIDGET_NAME, AXP_CHART_QUERY_RESULT_TYPE, DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY, RootConfig, buildEntityScopeRef, buildTenantScopeRef, buildUserScopeRef, normalizeDashboardScopeRef, readScopeEntityType, readScopeRoleIds, readScopeTenantId, readScopeUserId };
216
226
  //# sourceMappingURL=acorex-platform-module-dashboard-management-client-contracts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-dashboard-management-client-contracts.mjs","sources":["../../../../libs/modules/dashboard-management/contracts/src/features.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/menu.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/permission.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/settings.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/dashboard-management/contracts/src/root-config.ts","../../../../libs/modules/dashboard-management/contracts/src/dashboard-scope.types.ts","../../../../libs/modules/dashboard-management/contracts/src/dashboard.types.ts","../../../../libs/modules/dashboard-management/contracts/src/chart-query.types.ts","../../../../libs/modules/dashboard-management/contracts/src/entities/dashboard/dashboard-scope.util.ts","../../../../libs/modules/dashboard-management/contracts/src/index.ts","../../../../libs/modules/dashboard-management/contracts/src/acorex-platform-module-dashboard-management-client-contracts.ts"],"sourcesContent":["// Management feature removed - module name is used directly as feature key\nexport const AXPDashboardManagementFeatureKeys = {} as const;\n\n","export const AXPDashboardManagementMenuKeys = {\n Root: 'DashboardManagement:Menu',\n Dashboards: 'DashboardManagement:Menu:Dashboards',\n} as const;\n\n","/**\n * Administration capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAdministrationPermissionKeys = {\n Access: 'Administration:Permission:Access',\n MaintainUsersAndRoles: 'Administration:Permission:MaintainUsersAndRoles',\n ManageSessions: 'Administration:Permission:ManageSessions',\n MaintainPolicies: 'Administration:Permission:MaintainPolicies',\n ViewIntegrations: 'Administration:Permission:ViewIntegrations',\n MaintainConnections: 'Administration:Permission:MaintainConnections',\n MaintainWorkflows: 'Administration:Permission:MaintainWorkflows',\n ManageWorkflowActions: 'Administration:Permission:ManageWorkflowActions',\n ViewRules: 'Administration:Permission:ViewRules',\n MaintainRules: 'Administration:Permission:MaintainRules',\n ManageRuleActions: 'Administration:Permission:ManageRuleActions',\n MaintainAi: 'Administration:Permission:MaintainAi',\n UseAiAssist: 'Administration:Permission:UseAiAssist',\n MaintainDashboards: 'Administration:Permission:MaintainDashboards',\n ViewJobs: 'Administration:Permission:ViewJobs',\n ManageJobActions: 'Administration:Permission:ManageJobActions',\n ViewObservability: 'Administration:Permission:ViewObservability',\n MaintainObservability: 'Administration:Permission:MaintainObservability',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n DashboardManagement: {\n Management: AXPAdministrationPermissionKeys.MaintainDashboards,\n Dashboard: {\n Management: AXPAdministrationPermissionKeys.MaintainDashboards,\n View: AXPAdministrationPermissionKeys.MaintainDashboards,\n Edit: AXPAdministrationPermissionKeys.MaintainDashboards,\n Delete: AXPAdministrationPermissionKeys.MaintainDashboards,\n Create: AXPAdministrationPermissionKeys.MaintainDashboards,\n },\n },\n} as const;\n","export enum AXPHomeDashboardSetting {\n CurrentDashboard = 'DashboardManagement:Setting:Home.CurrentDashboard',\n}\n","/** Component key for the dashboard Layout page tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY = 'dashboard-layout-page';\n","const config = {\n i18n: 'dashboard-management',\n module: 'DashboardManagement',\n} as const;\n\n/** Builds shared dashboard widget type ids: `{module}:Widget:Dashboard:{Segment}`. */\nconst dashboardWidgetId = (segment: string): string =>\n `${config.module}:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n module: config.module,\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-regular fa-tachometer-alt',\n },\n entities: {\n dashboard: {\n name: 'Dashboard',\n title: '@dashboard-management:dashboards.terms.dashboard',\n titlePlural: '@dashboard-management:dashboards.terms.dashboards',\n icon: 'fa-regular fa-tachometer-alt',\n },\n },\n /** Dashboard widget type ids owned by dashboard-management. */\n widgets: {\n barChart: dashboardWidgetId('BarChart'),\n donutChart: dashboardWidgetId('DonutChart'),\n lineChart: dashboardWidgetId('LineChart'),\n gaugeChart: dashboardWidgetId('GaugeChart'),\n funnelChart: dashboardWidgetId('FunnelChart'),\n heatmapChart: dashboardWidgetId('HeatmapChart'),\n stickyNote: dashboardWidgetId('StickyNote'),\n clockCalendar: dashboardWidgetId('ClockCalendar'),\n weather: dashboardWidgetId('Weather'),\n shortcut: dashboardWidgetId('Shortcut'),\n kpiProgress: dashboardWidgetId('KpiProgress'),\n kpiSegmented: dashboardWidgetId('KpiSegmented'),\n kpiDetails: dashboardWidgetId('KpiDetails'),\n kpiStatCard: dashboardWidgetId('KpiStatCard'),\n },\n /**\n * @deprecated Dashboard queries moved to owning modules (`{Module}:Dashboard:*`).\n * Update seeds/widgets to module keys; these aliases remain for transitional references only.\n */\n queries: {\n tenantAdmin: {\n activeUsersKpi: `${config.module}:Dashboard:TenantAdmin:ActiveUsersKpi`,\n employeesKpi: `${config.module}:Dashboard:TenantAdmin:EmployeesKpi`,\n openTasksKpi: `${config.module}:Dashboard:TenantAdmin:OpenTasksKpi`,\n activeProjectsKpi: `${config.module}:Dashboard:TenantAdmin:ActiveProjectsKpi`,\n openHazardsKpi: `${config.module}:Dashboard:TenantAdmin:OpenHazardsKpi`,\n documentsKpi: `${config.module}:Dashboard:TenantAdmin:DocumentsKpi`,\n workflowDefinitionsKpi: `${config.module}:Dashboard:TenantAdmin:WorkflowDefinitionsKpi`,\n subscriptionKpi: `${config.module}:Dashboard:TenantAdmin:SubscriptionKpi`,\n usersByRoleDonut: `${config.module}:Dashboard:TenantAdmin:UsersByRoleDonut`,\n taskStatusDonut: `${config.module}:Dashboard:TenantAdmin:TaskStatusDonut`,\n deliveryStatusDonut: `${config.module}:Dashboard:TenantAdmin:DeliveryStatusDonut`,\n integrationsDonut: `${config.module}:Dashboard:TenantAdmin:IntegrationsDonut`,\n jobsByStatusBar: `${config.module}:Dashboard:TenantAdmin:JobsByStatusBar`,\n jobSchedulesByStatusBar: `${config.module}:Dashboard:TenantAdmin:JobSchedulesByStatusBar`,\n workflowsByStatusBar: `${config.module}:Dashboard:TenantAdmin:WorkflowsByStatusBar`,\n teamsBar: `${config.module}:Dashboard:TenantAdmin:TeamsBar`,\n projectsByStatusBar: `${config.module}:Dashboard:TenantAdmin:ProjectsByStatusBar`,\n trainingComplianceGauge: `${config.module}:Dashboard:TenantAdmin:TrainingComplianceGauge`,\n },\n },\n};\n","//#region ---- Dashboard Scope Types ----\n\n/**\n * Dashboard visibility scope.\n * - `T`: Tenant shared dashboard\n * - `U`: User personal dashboard\n * - `E`: Entity-scoped dashboard\n */\nexport type AXMDashboardScope = 'U' | 'T' | 'E';\n\n/** Scope reference for personal dashboards. */\nexport interface AXMDashboardUserScopeRef {\n userId: string;\n}\n\n/** Scope reference for tenant dashboards. */\nexport interface AXMDashboardTenantScopeRef {\n tenantId: string;\n roleIds: string[];\n}\n\n/** Scope reference for entity-type dashboards (one layout shared by all records of the type). */\nexport interface AXMDashboardEntityScopeRef {\n entityType: string;\n}\n\n/**\n * Scope-specific reference payload.\n * Shape depends on {@link AXMDashboardScope}.\n */\nexport type AXMDashboardScopeRef =\n | AXMDashboardUserScopeRef\n | AXMDashboardTenantScopeRef\n | AXMDashboardEntityScopeRef;\n\n//#endregion\n","import type { AXMDashboardScope, AXMDashboardScopeRef } from './dashboard-scope.types';\n\nexport type { AXMDashboardScope, AXMDashboardScopeRef } from './dashboard-scope.types';\n\n//#region ---- Widget Layout Contract Types ----\n\n/** Grid size preset as `[width, height]` in column/row units. */\nexport type AXGridLayoutSize = readonly [width: number, height: number];\n\nexport interface AXGridLayoutNode {\n id?: string;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n minWidth?: number;\n minHeight?: number;\n maxWidth?: number;\n maxHeight?: number;\n /** When set, resize snaps to one of these `[width, height]` presets. */\n allowedSizes?: readonly AXGridLayoutSize[];\n}\n\nexport type AXMDashboardBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';\n\nexport interface AXMDashboardWidgetLayoutMap {\n id: string;\n title?: string;\n lg: AXGridLayoutNode;\n md: AXGridLayoutNode;\n sm: AXGridLayoutNode;\n xl?: AXGridLayoutNode;\n '2xl'?: AXGridLayoutNode;\n '3xl'?: AXGridLayoutNode;\n '4xl'?: AXGridLayoutNode;\n}\n\nexport interface AXMDashboardWidgetData {\n config: AXMDashboardWidgetLayoutMap;\n node?: unknown;\n}\n\n//#endregion\n\n//#region ---- Dashboard Entity Contract Types ----\n\nexport type AXPMultiLanguageString = string | Record<string, string>;\n\nexport interface AXPEntityModel<Id> {\n id: Id;\n auditInfo?: {\n created?: { at?: string | Date; by?: { id: string; type?: string } };\n updated?: { at?: string | Date; by?: { id: string; type?: string } };\n };\n stateInfo?: Record<string, unknown>;\n scopeInfo?: { tenantId?: string; userId?: string; applicationId?: string };\n}\n\nexport interface AXMCommonDashboardEntityModel extends AXPEntityModel<string> {\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n widgets: AXMDashboardWidgetData[];\n isArchived?: boolean;\n archivedAt?: string | Date;\n locked?: boolean;\n scope: AXMDashboardScope;\n scopeRef: AXMDashboardScopeRef;\n categoryIds?: string[];\n}\n\n//#endregion\n","/**\n * Strict DTOs for dashboard chart / KPI queries.\n * Chart widgets fetch an AXPQuery whose result matches one of these shapes.\n */\n\n//#region ---- Result type keys (query metadata `resultType`) ----\n\n/** Stable result-type ids stored on query definitions for designer filtering. */\nexport const AXP_CHART_QUERY_RESULT_TYPE = {\n barSeries: 'AXPBarChartQueryResult',\n lineSeries: 'AXPLineChartQueryResult',\n donutSeries: 'AXPDonutChartQueryResult',\n gaugeValue: 'AXPGaugeChartQueryResult',\n funnelSeries: 'AXPFunnelChartQueryResult',\n heatmapSeries: 'AXPHeatmapChartQueryResult',\n kpiStatCard: 'AXPKpiStatCardQueryResult',\n kpiSegmented: 'AXPKpiSegmentedQueryResult',\n kpiProgress: 'AXPKpiProgressQueryResult',\n kpiDetails: 'AXPKpiDetailsQueryResult',\n} as const;\n\nexport type AXPChartQueryResultType =\n (typeof AXP_CHART_QUERY_RESULT_TYPE)[keyof typeof AXP_CHART_QUERY_RESULT_TYPE];\n\n//#endregion\n\n//#region ---- Series item shapes ----\n\nexport interface AXPBarChartQueryItem {\n id: string;\n label: string;\n value: number;\n color?: string;\n tooltipLabel?: string;\n}\n\nexport interface AXPLineChartQueryPoint {\n x: number | string;\n y: number;\n tooltipLabel?: string;\n}\n\nexport interface AXPLineChartQuerySeries {\n id?: string;\n label?: string;\n lineColor?: string;\n fillColor?: string;\n data: AXPLineChartQueryPoint[];\n}\n\nexport interface AXPDonutChartQueryItem {\n id: string;\n label: string;\n value: number;\n color?: string;\n tooltipLabel?: string;\n}\n\nexport interface AXPFunnelChartQueryItem {\n id?: string;\n name: string;\n value: number;\n color?: string;\n}\n\nexport interface AXPHeatmapChartQueryItem {\n x: number | string;\n y: number | string;\n value: number;\n label?: string;\n}\n\n//#endregion\n\n//#region ---- Query result envelopes ----\n\nexport interface AXPBarChartQueryResult {\n items: AXPBarChartQueryItem[];\n}\n\nexport interface AXPLineChartQueryResult {\n series: AXPLineChartQuerySeries[];\n}\n\nexport interface AXPDonutChartQueryResult {\n items: AXPDonutChartQueryItem[];\n}\n\nexport interface AXPGaugeChartQueryResult {\n value: number;\n}\n\nexport interface AXPFunnelChartQueryResult {\n items: AXPFunnelChartQueryItem[];\n}\n\nexport interface AXPHeatmapChartQueryResult {\n items: AXPHeatmapChartQueryItem[];\n}\n\nexport interface AXPKpiStatCardQueryResult {\n title?: string;\n titleBadgeText?: string;\n titleBadgeTone?: string;\n value?: number | string;\n valuePrefix?: string;\n valueSuffix?: string;\n format?: {\n style?: 'decimal' | 'currency' | 'percent';\n currency?: string;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n };\n icon?: string;\n iconTone?: string;\n trendValue?: string;\n trendLabel?: string;\n trendStatus?: 'success' | 'danger' | 'neutral';\n}\n\nexport interface AXPKpiSegmentedQueryResult {\n title?: string;\n icon?: string;\n segments: Array<{ label: string; value: number; color?: string }>;\n}\n\nexport interface AXPKpiProgressQueryResult {\n title?: string;\n icon?: string;\n value?: number | string;\n valuePrefix?: string;\n valueSuffix?: string;\n subtitle?: string;\n targetValue?: number | string;\n progressValue?: number;\n progressPercent?: number;\n}\n\nexport interface AXPKpiDetailsQueryResult {\n title?: string;\n value?: number | string;\n valuePrefix?: string;\n valueSuffix?: string;\n subtitle?: string;\n details: Array<{ label: string; value: string | number; color?: string }>;\n}\n\n//#endregion\n\n//#region ---- Widget options ----\n\n/** Chart/KPI widget options for data binding (dashboard query and/or AI inline data). */\nexport interface AXPChartQueryWidgetOptions {\n /** Runtime AXPQuery key (e.g. `PlatformManagement:Dashboard:TenantsByStatusBar`). */\n query?: string;\n /** Optional input payload passed to `queryExecutor.fetch(query, queryInput)`. */\n queryInput?: Record<string, unknown>;\n /** Inline chart rows/series for AI chat (see chart-widget-data.util.ts). */\n dataSource?: unknown;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { castArray, get, isArray, isString } from 'lodash';\n\nimport type {\n AXMDashboardEntityScopeRef,\n AXMDashboardScope,\n AXMDashboardScopeRef,\n AXMDashboardTenantScopeRef,\n AXMDashboardUserScopeRef,\n} from '../../dashboard-scope.types';\n\n//#endregion\n\n//#region ---- Builders ----\n\nexport function buildUserScopeRef(userId: string): AXMDashboardUserScopeRef {\n return { userId: userId.trim() };\n}\n\nexport function buildTenantScopeRef(tenantId: string, roleIds: readonly string[]): AXMDashboardTenantScopeRef {\n return {\n tenantId: tenantId.trim(),\n roleIds: [...new Set(roleIds.map((id) => id.trim()).filter(Boolean))],\n };\n}\n\nexport function buildEntityScopeRef(entityType: string): AXMDashboardEntityScopeRef {\n return { entityType: entityType.trim() };\n}\n\n//#endregion\n\n//#region ---- Readers ----\n\nexport function readScopeUserId(scopeRef: AXMDashboardScopeRef | undefined): string | undefined {\n const userId = get(scopeRef, 'userId');\n return isString(userId) && userId.trim() ? userId.trim() : undefined;\n}\n\nexport function readScopeTenantId(scopeRef: AXMDashboardScopeRef | undefined): string | undefined {\n const tenantId = get(scopeRef, 'tenantId');\n return isString(tenantId) && tenantId.trim() ? tenantId.trim() : undefined;\n}\n\nexport function readScopeRoleIds(scopeRef: AXMDashboardScopeRef | undefined): string[] {\n const roleIds = get(scopeRef, 'roleIds');\n if (!isArray(roleIds)) {\n return [];\n }\n return roleIds.filter((id): id is string => isString(id) && id.trim().length > 0);\n}\n\nexport function readScopeEntityType(scopeRef: AXMDashboardScopeRef | undefined): string | undefined {\n const entityType = get(scopeRef, 'entityType');\n return isString(entityType) && entityType.trim() ? entityType.trim() : undefined;\n}\n\n//#endregion\n\n//#region ---- Normalization ----\n\n/**\n * Ensures {@link scopeRef} matches {@link scope} and strips incompatible keys.\n */\nexport function normalizeDashboardScopeRef(\n scope: AXMDashboardScope,\n scopeRef: unknown,\n fallback?: Partial<{\n userId: string;\n tenantId: string;\n roleIds: readonly string[];\n entityType: string;\n }>,\n): AXMDashboardScopeRef {\n switch (scope) {\n case 'U':\n return buildUserScopeRef(readScopeUserId(scopeRef as AXMDashboardScopeRef) ?? fallback?.userId ?? '');\n case 'T':\n return buildTenantScopeRef(\n readScopeTenantId(scopeRef as AXMDashboardScopeRef) ?? fallback?.tenantId ?? '',\n readScopeRoleIds(scopeRef as AXMDashboardScopeRef).length > 0\n ? readScopeRoleIds(scopeRef as AXMDashboardScopeRef)\n : castArray(fallback?.roleIds ?? []),\n );\n case 'E':\n return buildEntityScopeRef(\n readScopeEntityType(scopeRef as AXMDashboardScopeRef) ?? fallback?.entityType ?? '',\n );\n default:\n return buildUserScopeRef(fallback?.userId ?? '');\n }\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\nexport * from './settings.keys';\n\nexport * from './DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY';\n\nexport * from './root-config';\n\nexport * from './dashboard-scope.types';\nexport * from './dashboard.types';\nexport * from './chart-query.types';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;AACO,MAAM,iCAAiC,GAAG;;ACD1C,MAAM,8BAA8B,GAAG;AAC1C,IAAA,IAAI,EAAE,0BAA0B;AAChC,IAAA,UAAU,EAAE,qCAAqC;;;ACFrD;;;AAGG;AACI,MAAM,+BAA+B,GAAG;AAC7C,IAAA,MAAM,EAAE,kCAAkC;AAC1C,IAAA,qBAAqB,EAAE,iDAAiD;AACxE,IAAA,cAAc,EAAE,0CAA0C;AAC1D,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,mBAAmB,EAAE,+CAA+C;AACpE,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,qBAAqB,EAAE,iDAAiD;AACxE,IAAA,SAAS,EAAE,qCAAqC;AAChD,IAAA,aAAa,EAAE,yCAAyC;AACxD,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,UAAU,EAAE,sCAAsC;AAClD,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,kBAAkB,EAAE,8CAA8C;AAClE,IAAA,QAAQ,EAAE,oCAAoC;AAC9C,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,qBAAqB,EAAE,iDAAiD;;AAG1E;;;AAGG;AACI,MAAM,kBAAkB,GAAG;AAChC,IAAA,mBAAmB,EAAE;QACnB,UAAU,EAAE,+BAA+B,CAAC,kBAAkB;AAC9D,QAAA,SAAS,EAAE;YACT,UAAU,EAAE,+BAA+B,CAAC,kBAAkB;YAC9D,IAAI,EAAE,+BAA+B,CAAC,kBAAkB;YACxD,IAAI,EAAE,+BAA+B,CAAC,kBAAkB;YACxD,MAAM,EAAE,+BAA+B,CAAC,kBAAkB;YAC1D,MAAM,EAAE,+BAA+B,CAAC,kBAAkB;AAC3D,SAAA;AACF,KAAA;;;ICvCS;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,mDAAsE;AACxE,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,GAAA,EAAA,CAAA,CAAA;;ACAnC;AACO,MAAM,mCAAmC,GAAG;;ACDnD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,MAAM,EAAE,qBAAqB;CACrB;AAEV;AACA,MAAM,iBAAiB,GAAG,CAAC,OAAe,KACxC,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,kBAAA,EAAqB,OAAO,EAAE;AAEzC,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,MAAM;AACnB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,aAAA,CAAe;AACrC,QAAA,IAAI,EAAE,8BAA8B;AACrC,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,kDAAkD;AACzD,YAAA,WAAW,EAAE,mDAAmD;AAChE,YAAA,IAAI,EAAE,8BAA8B;AACrC,SAAA;AACF,KAAA;;AAED,IAAA,OAAO,EAAE;AACP,QAAA,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC;AACvC,QAAA,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC;AAC3C,QAAA,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC;AACzC,QAAA,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC;AAC3C,QAAA,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC;AAC7C,QAAA,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC;AAC/C,QAAA,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC;AAC3C,QAAA,aAAa,EAAE,iBAAiB,CAAC,eAAe,CAAC;AACjD,QAAA,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC;AACrC,QAAA,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC;AACvC,QAAA,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC;AAC7C,QAAA,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC;AAC/C,QAAA,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC;AAC3C,QAAA,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC;AAC9C,KAAA;AACD;;;AAGG;AACH,IAAA,OAAO,EAAE;AACP,QAAA,WAAW,EAAE;AACX,YAAA,cAAc,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,qCAAA,CAAuC;AACvE,YAAA,YAAY,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,mCAAA,CAAqC;AACnE,YAAA,YAAY,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,mCAAA,CAAqC;AACnE,YAAA,iBAAiB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,wCAAA,CAA0C;AAC7E,YAAA,cAAc,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,qCAAA,CAAuC;AACvE,YAAA,YAAY,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,mCAAA,CAAqC;AACnE,YAAA,sBAAsB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,6CAAA,CAA+C;AACvF,YAAA,eAAe,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,sCAAA,CAAwC;AACzE,YAAA,gBAAgB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,uCAAA,CAAyC;AAC3E,YAAA,eAAe,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,sCAAA,CAAwC;AACzE,YAAA,mBAAmB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,0CAAA,CAA4C;AACjF,YAAA,iBAAiB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,wCAAA,CAA0C;AAC7E,YAAA,eAAe,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,sCAAA,CAAwC;AACzE,YAAA,uBAAuB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,8CAAA,CAAgD;AACzF,YAAA,oBAAoB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,2CAAA,CAA6C;AACnF,YAAA,QAAQ,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,+BAAA,CAAiC;AAC3D,YAAA,mBAAmB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,0CAAA,CAA4C;AACjF,YAAA,uBAAuB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,8CAAA,CAAgD;AAC1F,SAAA;AACF,KAAA;;;ACnEH;AAmCA;;ACmCA;;ACtEA;;;AAGG;AAEH;AAEA;AACO,MAAM,2BAA2B,GAAG;AACzC,IAAA,SAAS,EAAE,wBAAwB;AACnC,IAAA,UAAU,EAAE,yBAAyB;AACrC,IAAA,WAAW,EAAE,0BAA0B;AACvC,IAAA,UAAU,EAAE,0BAA0B;AACtC,IAAA,YAAY,EAAE,2BAA2B;AACzC,IAAA,aAAa,EAAE,4BAA4B;AAC3C,IAAA,WAAW,EAAE,2BAA2B;AACxC,IAAA,YAAY,EAAE,4BAA4B;AAC1C,IAAA,WAAW,EAAE,2BAA2B;AACxC,IAAA,UAAU,EAAE,0BAA0B;;AA+IxC;;ACjKA;AAYA;AAEA;AAEM,SAAU,iBAAiB,CAAC,MAAc,EAAA;IAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE;AAClC;AAEM,SAAU,mBAAmB,CAAC,QAAgB,EAAE,OAA0B,EAAA;IAC9E,OAAO;AACL,QAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;QACzB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACtE;AACH;AAEM,SAAU,mBAAmB,CAAC,UAAkB,EAAA;IACpD,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE;AAC1C;AAEA;AAEA;AAEM,SAAU,eAAe,CAAC,QAA0C,EAAA;IACxE,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS;AACtE;AAEM,SAAU,iBAAiB,CAAC,QAA0C,EAAA;IAC1E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC1C,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS;AAC5E;AAEM,SAAU,gBAAgB,CAAC,QAA0C,EAAA;IACzE,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;AACxC,IAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE;IACX;IACA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAmB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACnF;AAEM,SAAU,mBAAmB,CAAC,QAA0C,EAAA;IAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,SAAS;AAClF;AAEA;AAEA;AAEA;;AAEG;SACa,0BAA0B,CACxC,KAAwB,EACxB,QAAiB,EACjB,QAKE,EAAA;IAEF,QAAQ,KAAK;AACX,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,iBAAiB,CAAC,eAAe,CAAC,QAAgC,CAAC,IAAI,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AACvG,QAAA,KAAK,GAAG;YACN,OAAO,mBAAmB,CACxB,iBAAiB,CAAC,QAAgC,CAAC,IAAI,QAAQ,EAAE,QAAQ,IAAI,EAAE,EAC/E,gBAAgB,CAAC,QAAgC,CAAC,CAAC,MAAM,GAAG;AAC1D,kBAAE,gBAAgB,CAAC,QAAgC;kBACjD,SAAS,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CACvC;AACH,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,mBAAmB,CACxB,mBAAmB,CAAC,QAAgC,CAAC,IAAI,QAAQ,EAAE,UAAU,IAAI,EAAE,CACpF;AACH,QAAA;YACE,OAAO,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;;AAEtD;AAEA;;AC9FA;;ACAA;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-platform-module-dashboard-management-client-contracts.mjs","sources":["../../../../libs/modules/dashboard-management/contracts/src/features.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/menu.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/permission.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/settings.keys.ts","../../../../libs/modules/dashboard-management/contracts/src/DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/dashboard-management/contracts/src/root-config.ts","../../../../libs/modules/dashboard-management/contracts/src/dashboard-scope.types.ts","../../../../libs/modules/dashboard-management/contracts/src/dashboard.types.ts","../../../../libs/modules/dashboard-management/contracts/src/chart-query.types.ts","../../../../libs/modules/dashboard-management/contracts/src/chart-card.types.ts","../../../../libs/modules/dashboard-management/contracts/src/entities/dashboard/dashboard-scope.util.ts","../../../../libs/modules/dashboard-management/contracts/src/index.ts","../../../../libs/modules/dashboard-management/contracts/src/acorex-platform-module-dashboard-management-client-contracts.ts"],"sourcesContent":["// Management feature removed - module name is used directly as feature key\nexport const AXPDashboardManagementFeatureKeys = {} as const;\n\n","export const AXPDashboardManagementMenuKeys = {\n Root: 'DashboardManagement:Menu',\n Dashboards: 'DashboardManagement:Menu:Dashboards',\n} as const;\n\n","/**\n * Administration capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAdministrationPermissionKeys = {\n Access: 'Administration:Permission:Access',\n MaintainUsersAndRoles: 'Administration:Permission:MaintainUsersAndRoles',\n ManageSessions: 'Administration:Permission:ManageSessions',\n MaintainPolicies: 'Administration:Permission:MaintainPolicies',\n ViewIntegrations: 'Administration:Permission:ViewIntegrations',\n MaintainConnections: 'Administration:Permission:MaintainConnections',\n MaintainWorkflows: 'Administration:Permission:MaintainWorkflows',\n ManageWorkflowActions: 'Administration:Permission:ManageWorkflowActions',\n ViewRules: 'Administration:Permission:ViewRules',\n MaintainRules: 'Administration:Permission:MaintainRules',\n ManageRuleActions: 'Administration:Permission:ManageRuleActions',\n MaintainAi: 'Administration:Permission:MaintainAi',\n UseAiAssist: 'Administration:Permission:UseAiAssist',\n MaintainDashboards: 'Administration:Permission:MaintainDashboards',\n ViewJobs: 'Administration:Permission:ViewJobs',\n ManageJobActions: 'Administration:Permission:ManageJobActions',\n ViewObservability: 'Administration:Permission:ViewObservability',\n MaintainObservability: 'Administration:Permission:MaintainObservability',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n DashboardManagement: {\n Management: AXPAdministrationPermissionKeys.MaintainDashboards,\n Dashboard: {\n Management: AXPAdministrationPermissionKeys.MaintainDashboards,\n View: AXPAdministrationPermissionKeys.MaintainDashboards,\n Edit: AXPAdministrationPermissionKeys.MaintainDashboards,\n Delete: AXPAdministrationPermissionKeys.MaintainDashboards,\n Create: AXPAdministrationPermissionKeys.MaintainDashboards,\n },\n },\n} as const;\n","export enum AXPHomeDashboardSetting {\n CurrentDashboard = 'DashboardManagement:Setting:Home.CurrentDashboard',\n}\n","/** Component key for the dashboard Layout page tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY = 'dashboard-layout-page';\n","const config = {\n i18n: 'dashboard-management',\n module: 'DashboardManagement',\n} as const;\n\n/** Builds shared dashboard widget type ids: `{module}:Widget:Dashboard:{Segment}`. */\nconst dashboardWidgetId = (segment: string): string =>\n `${config.module}:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n module: config.module,\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-regular fa-tachometer-alt',\n },\n entities: {\n dashboard: {\n name: 'Dashboard',\n title: '@dashboard-management:dashboards.terms.dashboard',\n titlePlural: '@dashboard-management:dashboards.terms.dashboards',\n icon: 'fa-regular fa-tachometer-alt',\n },\n },\n /** Dashboard widget type ids owned by dashboard-management. */\n widgets: {\n barChart: dashboardWidgetId('BarChart'),\n donutChart: dashboardWidgetId('DonutChart'),\n lineChart: dashboardWidgetId('LineChart'),\n gaugeChart: dashboardWidgetId('GaugeChart'),\n funnelChart: dashboardWidgetId('FunnelChart'),\n heatmapChart: dashboardWidgetId('HeatmapChart'),\n chartCard: dashboardWidgetId('ChartCard'),\n stickyNote: dashboardWidgetId('StickyNote'),\n clockCalendar: dashboardWidgetId('ClockCalendar'),\n weather: dashboardWidgetId('Weather'),\n shortcut: dashboardWidgetId('Shortcut'),\n kpiProgress: dashboardWidgetId('KpiProgress'),\n kpiSegmented: dashboardWidgetId('KpiSegmented'),\n kpiDetails: dashboardWidgetId('KpiDetails'),\n kpiStatCard: dashboardWidgetId('KpiStatCard'),\n },\n /**\n * @deprecated Dashboard queries moved to owning modules (`{Module}:Dashboard:*`).\n * Update seeds/widgets to module keys; these aliases remain for transitional references only.\n */\n queries: {\n tenantAdmin: {\n activeUsersKpi: `${config.module}:Dashboard:TenantAdmin:ActiveUsersKpi`,\n employeesKpi: `${config.module}:Dashboard:TenantAdmin:EmployeesKpi`,\n openTasksKpi: `${config.module}:Dashboard:TenantAdmin:OpenTasksKpi`,\n activeProjectsKpi: `${config.module}:Dashboard:TenantAdmin:ActiveProjectsKpi`,\n openHazardsKpi: `${config.module}:Dashboard:TenantAdmin:OpenHazardsKpi`,\n documentsKpi: `${config.module}:Dashboard:TenantAdmin:DocumentsKpi`,\n workflowDefinitionsKpi: `${config.module}:Dashboard:TenantAdmin:WorkflowDefinitionsKpi`,\n subscriptionKpi: `${config.module}:Dashboard:TenantAdmin:SubscriptionKpi`,\n usersByRoleDonut: `${config.module}:Dashboard:TenantAdmin:UsersByRoleDonut`,\n taskStatusDonut: `${config.module}:Dashboard:TenantAdmin:TaskStatusDonut`,\n deliveryStatusDonut: `${config.module}:Dashboard:TenantAdmin:DeliveryStatusDonut`,\n integrationsDonut: `${config.module}:Dashboard:TenantAdmin:IntegrationsDonut`,\n jobsByStatusBar: `${config.module}:Dashboard:TenantAdmin:JobsByStatusBar`,\n jobSchedulesByStatusBar: `${config.module}:Dashboard:TenantAdmin:JobSchedulesByStatusBar`,\n workflowsByStatusBar: `${config.module}:Dashboard:TenantAdmin:WorkflowsByStatusBar`,\n teamsBar: `${config.module}:Dashboard:TenantAdmin:TeamsBar`,\n projectsByStatusBar: `${config.module}:Dashboard:TenantAdmin:ProjectsByStatusBar`,\n trainingComplianceGauge: `${config.module}:Dashboard:TenantAdmin:TrainingComplianceGauge`,\n },\n },\n};\n","//#region ---- Dashboard Scope Types ----\n\n/**\n * Dashboard visibility scope.\n * - `T`: Tenant shared dashboard\n * - `U`: User personal dashboard\n * - `E`: Entity-scoped dashboard\n */\nexport type AXMDashboardScope = 'U' | 'T' | 'E';\n\n/** Scope reference for personal dashboards. */\nexport interface AXMDashboardUserScopeRef {\n userId: string;\n}\n\n/** Scope reference for tenant dashboards. */\nexport interface AXMDashboardTenantScopeRef {\n tenantId: string;\n roleIds: string[];\n}\n\n/** Scope reference for entity-type dashboards (one layout shared by all records of the type). */\nexport interface AXMDashboardEntityScopeRef {\n entityType: string;\n}\n\n/**\n * Scope-specific reference payload.\n * Shape depends on {@link AXMDashboardScope}.\n */\nexport type AXMDashboardScopeRef =\n | AXMDashboardUserScopeRef\n | AXMDashboardTenantScopeRef\n | AXMDashboardEntityScopeRef;\n\n//#endregion\n","import type { AXMDashboardScope, AXMDashboardScopeRef } from './dashboard-scope.types';\n\nexport type { AXMDashboardScope, AXMDashboardScopeRef } from './dashboard-scope.types';\n\n//#region ---- Widget Layout Contract Types ----\n\n/** Grid size preset as `[width, height]` in column/row units. */\nexport type AXGridLayoutSize = readonly [width: number, height: number];\n\nexport interface AXGridLayoutNode {\n id?: string;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n minWidth?: number;\n minHeight?: number;\n maxWidth?: number;\n maxHeight?: number;\n /** When set, resize snaps to one of these `[width, height]` presets. */\n allowedSizes?: readonly AXGridLayoutSize[];\n}\n\nexport type AXMDashboardBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';\n\nexport interface AXMDashboardWidgetLayoutMap {\n id: string;\n title?: string;\n lg: AXGridLayoutNode;\n md: AXGridLayoutNode;\n sm: AXGridLayoutNode;\n xl?: AXGridLayoutNode;\n '2xl'?: AXGridLayoutNode;\n '3xl'?: AXGridLayoutNode;\n '4xl'?: AXGridLayoutNode;\n}\n\nexport interface AXMDashboardWidgetData {\n config: AXMDashboardWidgetLayoutMap;\n node?: unknown;\n}\n\n//#endregion\n\n//#region ---- Dashboard Entity Contract Types ----\n\nexport type AXPMultiLanguageString = string | Record<string, string>;\n\nexport interface AXPEntityModel<Id> {\n id: Id;\n auditInfo?: {\n created?: { at?: string | Date; by?: { id: string; type?: string } };\n updated?: { at?: string | Date; by?: { id: string; type?: string } };\n };\n stateInfo?: Record<string, unknown>;\n scopeInfo?: { tenantId?: string; userId?: string; applicationId?: string };\n}\n\nexport interface AXMCommonDashboardEntityModel extends AXPEntityModel<string> {\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n widgets: AXMDashboardWidgetData[];\n isArchived?: boolean;\n archivedAt?: string | Date;\n locked?: boolean;\n scope: AXMDashboardScope;\n scopeRef: AXMDashboardScopeRef;\n categoryIds?: string[];\n}\n\n//#endregion\n","/**\n * Strict DTOs for dashboard chart / KPI queries.\n * Chart widgets fetch an AXPQuery whose result matches one of these shapes.\n */\n\n//#region ---- Result type keys (query metadata `resultType`) ----\n\n/** Stable result-type ids stored on query definitions for designer filtering. */\nexport const AXP_CHART_QUERY_RESULT_TYPE = {\n barSeries: 'AXPBarChartQueryResult',\n lineSeries: 'AXPLineChartQueryResult',\n donutSeries: 'AXPDonutChartQueryResult',\n gaugeValue: 'AXPGaugeChartQueryResult',\n funnelSeries: 'AXPFunnelChartQueryResult',\n heatmapSeries: 'AXPHeatmapChartQueryResult',\n kpiStatCard: 'AXPKpiStatCardQueryResult',\n kpiSegmented: 'AXPKpiSegmentedQueryResult',\n kpiProgress: 'AXPKpiProgressQueryResult',\n kpiDetails: 'AXPKpiDetailsQueryResult',\n} as const;\n\nexport type AXPChartQueryResultType =\n (typeof AXP_CHART_QUERY_RESULT_TYPE)[keyof typeof AXP_CHART_QUERY_RESULT_TYPE];\n\n//#endregion\n\n//#region ---- Series item shapes ----\n\nexport interface AXPBarChartQueryItem {\n id: string;\n label: string;\n value: number;\n color?: string;\n tooltipLabel?: string;\n}\n\nexport interface AXPLineChartQueryPoint {\n x: number | string;\n y: number;\n tooltipLabel?: string;\n}\n\nexport interface AXPLineChartQuerySeries {\n id?: string;\n label?: string;\n lineColor?: string;\n fillColor?: string;\n data: AXPLineChartQueryPoint[];\n}\n\nexport interface AXPDonutChartQueryItem {\n id: string;\n label: string;\n value: number;\n color?: string;\n tooltipLabel?: string;\n}\n\nexport interface AXPFunnelChartQueryItem {\n id?: string;\n name: string;\n value: number;\n color?: string;\n}\n\nexport interface AXPHeatmapChartQueryItem {\n x: number | string;\n y: number | string;\n value: number;\n label?: string;\n}\n\n//#endregion\n\n//#region ---- Query result envelopes ----\n\nexport interface AXPBarChartQueryResult {\n items: AXPBarChartQueryItem[];\n}\n\nexport interface AXPLineChartQueryResult {\n series: AXPLineChartQuerySeries[];\n}\n\nexport interface AXPDonutChartQueryResult {\n items: AXPDonutChartQueryItem[];\n}\n\nexport interface AXPGaugeChartQueryResult {\n value: number;\n}\n\nexport interface AXPFunnelChartQueryResult {\n items: AXPFunnelChartQueryItem[];\n}\n\nexport interface AXPHeatmapChartQueryResult {\n items: AXPHeatmapChartQueryItem[];\n}\n\nexport interface AXPKpiStatCardQueryResult {\n title?: string;\n titleBadgeText?: string;\n titleBadgeTone?: string;\n value?: number | string;\n valuePrefix?: string;\n valueSuffix?: string;\n format?: {\n style?: 'decimal' | 'currency' | 'percent';\n currency?: string;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n };\n icon?: string;\n iconTone?: string;\n trendValue?: string;\n trendLabel?: string;\n trendStatus?: 'success' | 'danger' | 'neutral';\n}\n\nexport interface AXPKpiSegmentedQueryResult {\n title?: string;\n icon?: string;\n segments: Array<{ label: string; value: number; color?: string }>;\n}\n\nexport interface AXPKpiProgressQueryResult {\n title?: string;\n icon?: string;\n value?: number | string;\n valuePrefix?: string;\n valueSuffix?: string;\n subtitle?: string;\n targetValue?: number | string;\n progressValue?: number;\n progressPercent?: number;\n}\n\nexport interface AXPKpiDetailsQueryResult {\n title?: string;\n value?: number | string;\n valuePrefix?: string;\n valueSuffix?: string;\n subtitle?: string;\n details: Array<{ label: string; value: string | number; color?: string }>;\n}\n\n//#endregion\n\n//#region ---- Widget options ----\n\n/** Chart/KPI widget options for data binding (dashboard query and/or AI inline data). */\nexport interface AXPChartQueryWidgetOptions {\n /** Runtime AXPQuery key (e.g. `PlatformManagement:Dashboard:TenantsByStatusBar`). */\n query?: string;\n /** Optional input payload passed to `queryExecutor.fetch(query, queryInput)`. */\n queryInput?: Record<string, unknown>;\n /** Inline chart rows/series for AI chat (see chart-widget-data.util.ts). */\n dataSource?: unknown;\n}\n\n//#endregion\n","/**\n * Chart card options: one dashboard tile hosting mixed-type chart tabs.\n * Each tab is an {@link AXPWidgetNode} of a typed chart widget (donut, bar, line, gauge).\n */\n\nimport type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\n\n//#region ----- Types -----\n\n/** Editor widget name used as the repeater row in chart-card properties. */\nexport const AXP_CHART_CONFIGURATOR_WIDGET_NAME = 'chart-configurator';\n\nexport interface AXPChartCardWidgetOptions {\n /** Card heading (domain name). */\n title?: string;\n /** One typed chart widget node per tab. */\n tabs?: AXPWidgetNode[];\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { castArray, get, isArray, isString } from 'lodash';\n\nimport type {\n AXMDashboardEntityScopeRef,\n AXMDashboardScope,\n AXMDashboardScopeRef,\n AXMDashboardTenantScopeRef,\n AXMDashboardUserScopeRef,\n} from '../../dashboard-scope.types';\n\n//#endregion\n\n//#region ---- Builders ----\n\nexport function buildUserScopeRef(userId: string): AXMDashboardUserScopeRef {\n return { userId: userId.trim() };\n}\n\nexport function buildTenantScopeRef(tenantId: string, roleIds: readonly string[]): AXMDashboardTenantScopeRef {\n return {\n tenantId: tenantId.trim(),\n roleIds: [...new Set(roleIds.map((id) => id.trim()).filter(Boolean))],\n };\n}\n\nexport function buildEntityScopeRef(entityType: string): AXMDashboardEntityScopeRef {\n return { entityType: entityType.trim() };\n}\n\n//#endregion\n\n//#region ---- Readers ----\n\nexport function readScopeUserId(scopeRef: AXMDashboardScopeRef | undefined): string | undefined {\n const userId = get(scopeRef, 'userId');\n return isString(userId) && userId.trim() ? userId.trim() : undefined;\n}\n\nexport function readScopeTenantId(scopeRef: AXMDashboardScopeRef | undefined): string | undefined {\n const tenantId = get(scopeRef, 'tenantId');\n return isString(tenantId) && tenantId.trim() ? tenantId.trim() : undefined;\n}\n\nexport function readScopeRoleIds(scopeRef: AXMDashboardScopeRef | undefined): string[] {\n const roleIds = get(scopeRef, 'roleIds');\n if (!isArray(roleIds)) {\n return [];\n }\n return roleIds.filter((id): id is string => isString(id) && id.trim().length > 0);\n}\n\nexport function readScopeEntityType(scopeRef: AXMDashboardScopeRef | undefined): string | undefined {\n const entityType = get(scopeRef, 'entityType');\n return isString(entityType) && entityType.trim() ? entityType.trim() : undefined;\n}\n\n//#endregion\n\n//#region ---- Normalization ----\n\n/**\n * Ensures {@link scopeRef} matches {@link scope} and strips incompatible keys.\n */\nexport function normalizeDashboardScopeRef(\n scope: AXMDashboardScope,\n scopeRef: unknown,\n fallback?: Partial<{\n userId: string;\n tenantId: string;\n roleIds: readonly string[];\n entityType: string;\n }>,\n): AXMDashboardScopeRef {\n switch (scope) {\n case 'U':\n return buildUserScopeRef(readScopeUserId(scopeRef as AXMDashboardScopeRef) ?? fallback?.userId ?? '');\n case 'T':\n return buildTenantScopeRef(\n readScopeTenantId(scopeRef as AXMDashboardScopeRef) ?? fallback?.tenantId ?? '',\n readScopeRoleIds(scopeRef as AXMDashboardScopeRef).length > 0\n ? readScopeRoleIds(scopeRef as AXMDashboardScopeRef)\n : castArray(fallback?.roleIds ?? []),\n );\n case 'E':\n return buildEntityScopeRef(\n readScopeEntityType(scopeRef as AXMDashboardScopeRef) ?? fallback?.entityType ?? '',\n );\n default:\n return buildUserScopeRef(fallback?.userId ?? '');\n }\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\nexport * from './settings.keys';\n\nexport * from './DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY';\n\nexport * from './root-config';\n\nexport * from './dashboard-scope.types';\nexport * from './dashboard.types';\nexport * from './chart-query.types';\nexport * from './chart-card.types';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as contracts from '@acorex-platform/module-dashboard-management-client/contracts';
2
2
  import { DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY } from '@acorex-platform/module-dashboard-management-client/contracts';
3
3
  export * from '@acorex-platform/module-dashboard-management-client/contracts';
4
- import { A as AXMDashboardStore, a as AXMDashboardGridLayoutSectionComponent, D as DASHBOARD_LAYOUT_ENTITY_MODE } from './acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-Cl4LZc2m.mjs';
4
+ import { A as AXMDashboardStore, a as AXMDashboardGridLayoutSectionComponent, D as DASHBOARD_LAYOUT_ENTITY_MODE } from './acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-BUmHWNqL.mjs';
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, inject, input, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
7
7
  import { resolveMultiLanguageString } from '@acorex/core/translation';
@@ -130,4 +130,4 @@ var dashboardLayoutPage_component = /*#__PURE__*/Object.freeze({
130
130
  });
131
131
 
132
132
  export { AXMDashboardLayoutPageComponent, AXMDashboardLayoutPageComponentProvider, DASHBOARD_LAYOUT_ENTITY_MODE };
133
- //# sourceMappingURL=acorex-platform-module-dashboard-management-client-index-2e_oRKpO.mjs.map
133
+ //# sourceMappingURL=acorex-platform-module-dashboard-management-client-index-C1Te5cDf.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-dashboard-management-client-index-2e_oRKpO.mjs","sources":["../../../../libs/modules/dashboard-management/client/src/lib/features/dashboard-layout-page/dashboard-layout-page-component.provider.ts","../../../../libs/modules/dashboard-management/client/src/lib/features/dashboard-layout-page/dashboard-layout-page.component.ts","../../../../libs/modules/dashboard-management/client/src/lib/features/dashboard-layout-page/dashboard-layout-page.component.html"],"sourcesContent":["import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\nimport { DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY } from '@acorex-platform/module-dashboard-management-client/contracts';\n\n//#region ---- Dashboard layout page provider ----\n\n@Injectable()\nexport class AXMDashboardLayoutPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./dashboard-layout-page.component').then((m) => m.AXMDashboardLayoutPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPActionMenuItem, AXPExecuteCommand } from '@acorex-platform/framework-shared/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { resolveMultiLanguageString } from '@acorex/core/translation';\n\nimport { AXPDesignerService } from '@acorex-platform/framework-client/layout/designer';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';\n\nimport { AXMCommonDashboardEntityModel } from '@acorex-platform/module-dashboard-management-client/contracts';\nimport { AXMDashboardStore } from '../dashboard-services/home-dashboard.store';\nimport { AXMDashboardGridLayoutSectionComponent } from '../shared/dashboard-grid-layout-section';\nimport { DASHBOARD_LAYOUT_ENTITY_MODE } from './dashboard-layout-entity-mode.token';\n\n//#endregion\n\n@Component({\n selector: 'axm-dashboard-layout-page',\n templateUrl: './dashboard-layout-page.component.html',\n imports: [AXMDashboardGridLayoutSectionComponent],\n providers: [\n AXPDesignerService,\n { provide: DASHBOARD_LAYOUT_ENTITY_MODE, useValue: true },\n AXMDashboardStore,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMDashboardLayoutPageComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMDashboardLayoutPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Services & Dependencies ----\n\n protected readonly store = inject(AXMDashboardStore);\n\n //#endregion\n\n //#region ---- Inputs (entity page renderer) ----\n\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Local state ----\n\n protected readonly context = signal<Record<string, unknown>>({});\n\n //#endregion\n\n //#region ---- Effects ----\n\n #syncFromRootContext = effect(() => {\n const ctx = this.rootContext();\n if (!ctx || typeof ctx['id'] !== 'string') {\n return;\n }\n this.store.hydrateFromEntityDetailModel(ctx as unknown as AXMCommonDashboardEntityModel);\n this.context.set({ ...ctx });\n });\n\n //#endregion\n\n //#region ---- Page chrome (AXPPageLayoutBase) ----\n\n override getPageTitle(): string {\n const title = this.store.selectedDashboard()?.title;\n if (title == null || title === '') {\n return '';\n }\n return resolveMultiLanguageString(title, 'en-US');\n }\n\n override async getPageDescription(): Promise<string> {\n const raw = this.store.selectedDashboard()?.description;\n if (raw == null || raw === '') {\n return '';\n }\n if (typeof raw === 'object' && !Array.isArray(raw) && this.translateService.isValidMultiLanguageObject(raw)) {\n return this.translateService.resolve(raw);\n }\n return String(raw);\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return [\n {\n title: await this.translateService.translateAsync('@general:actions.add-item.title'),\n icon: 'fa-light fa-square-plus',\n color: 'primary',\n items: [\n {\n title: await this.translateService.translateAsync('@dashboard:widget'),\n icon: 'fa-light fa-window-restore',\n command: { name: 'new-widget' },\n disabled: this.store.isDashboardLocked(),\n },\n ],\n },\n ];\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'new-widget':\n await this.store.addWidget();\n this.recompute();\n break;\n }\n }\n\n //#endregion\n}\n","<axm-dashboard-grid-layout-section\n [widgetsContext]=\"context()\"\n (addWidget)=\"execute({ name: 'new-widget' })\"\n></axm-dashboard-grid-layout-section>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-dashboard-management-client-index-C1Te5cDf.mjs","sources":["../../../../libs/modules/dashboard-management/client/src/lib/features/dashboard-layout-page/dashboard-layout-page-component.provider.ts","../../../../libs/modules/dashboard-management/client/src/lib/features/dashboard-layout-page/dashboard-layout-page.component.ts","../../../../libs/modules/dashboard-management/client/src/lib/features/dashboard-layout-page/dashboard-layout-page.component.html"],"sourcesContent":["import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\nimport { DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY } from '@acorex-platform/module-dashboard-management-client/contracts';\n\n//#region ---- Dashboard layout page provider ----\n\n@Injectable()\nexport class AXMDashboardLayoutPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./dashboard-layout-page.component').then((m) => m.AXMDashboardLayoutPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPActionMenuItem, AXPExecuteCommand } from '@acorex-platform/framework-shared/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { resolveMultiLanguageString } from '@acorex/core/translation';\n\nimport { AXPDesignerService } from '@acorex-platform/framework-client/layout/designer';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';\n\nimport { AXMCommonDashboardEntityModel } from '@acorex-platform/module-dashboard-management-client/contracts';\nimport { AXMDashboardStore } from '../dashboard-services/home-dashboard.store';\nimport { AXMDashboardGridLayoutSectionComponent } from '../shared/dashboard-grid-layout-section';\nimport { DASHBOARD_LAYOUT_ENTITY_MODE } from './dashboard-layout-entity-mode.token';\n\n//#endregion\n\n@Component({\n selector: 'axm-dashboard-layout-page',\n templateUrl: './dashboard-layout-page.component.html',\n imports: [AXMDashboardGridLayoutSectionComponent],\n providers: [\n AXPDesignerService,\n { provide: DASHBOARD_LAYOUT_ENTITY_MODE, useValue: true },\n AXMDashboardStore,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMDashboardLayoutPageComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMDashboardLayoutPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Services & Dependencies ----\n\n protected readonly store = inject(AXMDashboardStore);\n\n //#endregion\n\n //#region ---- Inputs (entity page renderer) ----\n\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Local state ----\n\n protected readonly context = signal<Record<string, unknown>>({});\n\n //#endregion\n\n //#region ---- Effects ----\n\n #syncFromRootContext = effect(() => {\n const ctx = this.rootContext();\n if (!ctx || typeof ctx['id'] !== 'string') {\n return;\n }\n this.store.hydrateFromEntityDetailModel(ctx as unknown as AXMCommonDashboardEntityModel);\n this.context.set({ ...ctx });\n });\n\n //#endregion\n\n //#region ---- Page chrome (AXPPageLayoutBase) ----\n\n override getPageTitle(): string {\n const title = this.store.selectedDashboard()?.title;\n if (title == null || title === '') {\n return '';\n }\n return resolveMultiLanguageString(title, 'en-US');\n }\n\n override async getPageDescription(): Promise<string> {\n const raw = this.store.selectedDashboard()?.description;\n if (raw == null || raw === '') {\n return '';\n }\n if (typeof raw === 'object' && !Array.isArray(raw) && this.translateService.isValidMultiLanguageObject(raw)) {\n return this.translateService.resolve(raw);\n }\n return String(raw);\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return [\n {\n title: await this.translateService.translateAsync('@general:actions.add-item.title'),\n icon: 'fa-light fa-square-plus',\n color: 'primary',\n items: [\n {\n title: await this.translateService.translateAsync('@dashboard:widget'),\n icon: 'fa-light fa-window-restore',\n command: { name: 'new-widget' },\n disabled: this.store.isDashboardLocked(),\n },\n ],\n },\n ];\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'new-widget':\n await this.store.addWidget();\n this.recompute();\n break;\n }\n }\n\n //#endregion\n}\n","<axm-dashboard-grid-layout-section\n [widgetsContext]=\"context()\"\n (addWidget)=\"execute({ name: 'new-widget' })\"\n></axm-dashboard-grid-layout-section>\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';
2
+ import { RootConfig } from '@acorex-platform/module-dashboard-management-client/contracts';
3
+ export { dashboardManagementLocalEntityCatalog } from '@acorex-platform/module-dashboard-management-client/contracts/entity-catalog';
4
+
5
+ //#region ----- Imports -----
6
+ //#endregion
7
+ //#region ----- Provide local entities -----
8
+ /**
9
+ * Registers dashboard-management layouts on the client from packaged factories.
10
+ * Each `import()` targets a secondary entry so unused entities stay out of the
11
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
12
+ * `Domain:GetEntityLayout`.
13
+ */
14
+ function provideDashboardManagementLocalEntities() {
15
+ return provideLocalEntityCatalog({
16
+ moduleName: RootConfig.module.name,
17
+ loaders: {
18
+ [RootConfig.entities.dashboard.name]: () => import('@acorex-platform/module-dashboard-management-client/contracts/entities/dashboard').then((m) => m.dashboardFactory()),
19
+ },
20
+ });
21
+ }
22
+ //#endregion
23
+
24
+ /**
25
+ * Generated bundle index. Do not edit.
26
+ */
27
+
28
+ export { provideDashboardManagementLocalEntities };
29
+ //# sourceMappingURL=acorex-platform-module-dashboard-management-client-local-entities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-dashboard-management-client-local-entities.mjs","sources":["../../../../libs/modules/dashboard-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/dashboard-management/client/src/lib/acorex-platform-module-dashboard-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-dashboard-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers dashboard-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideDashboardManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.dashboard.name]: () =>\n import('@acorex-platform/module-dashboard-management-client/contracts/entities/dashboard').then((m) => m.dashboardFactory()),\n },\n });\n}\n\nexport { dashboardManagementLocalEntityCatalog } from '@acorex-platform/module-dashboard-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,uCAAuC,GAAA;AACrD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,MACpC,OAAO,kFAAkF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC/H,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;AC3BA;;AAEG;;"}
@@ -1,2 +1,2 @@
1
- export { b as AXMAddDashboardPopup, c as AXMConfigurationPopup, d as AXMDashboardHomeComponent, e as AXMDashboardManagementModule, f as AXMDashboardPopupService, A as AXMDashboardStore, g as AXMDashboardWidgetWrapperComponent, h as AXPBarChartWidget, i as AXPBarChartWidgetViewComponent, j as AXPClockCalendarWidget, k as AXPClockCalendarWidgetViewComponent, l as AXPDASHBOARD_ENTITY_CONTEXT_KEY, m as AXPDashboardWidgetComponent, n as AXPDonutChartWidget, o as AXPDonutChartWidgetViewComponent, p as AXPFunnelChartWidget, q as AXPFunnelChartWidgetViewComponent, r as AXPGaugeChartWidget, s as AXPGaugeChartWidgetViewComponent, t as AXPHeatmapChartWidget, u as AXPHeatmapChartWidgetViewComponent, v as AXPKpiDetailsWidget, w as AXPKpiDetailsWidgetViewComponent, x as AXPKpiProgressWidget, y as AXPKpiProgressWidgetViewComponent, z as AXPKpiSegmentedWidget, B as AXPKpiSegmentedWidgetViewComponent, C as AXPKpiStatCardWidget, E as AXPKpiStatCardWidgetViewComponent, F as AXPLineChartWidget, G as AXPLineChartWidgetViewComponent, H as AXPShortcutWidget, I as AXPShortcutWidgetViewComponent, J as AXPStickyNoteWidget, K as AXPStickyNoteWidgetViewComponent, L as AXP_CHART_FUNNEL_DIMENSIONS, M as AXP_CHART_GAUGE_DIMENSIONS, N as AXP_CHART_SQUARE_DIMENSIONS, O as AXP_CHART_WIDE_DIMENSIONS, P as AXP_DASHBOARD_SHARED_SUB_CHART_CARTESIAN, Q as AXP_DASHBOARD_SHARED_SUB_CHART_KPI, R as AXP_DASHBOARD_SHARED_SUB_CHART_RADIAL, S as AXP_DASHBOARD_SHARED_SUB_CHART_SPECIALIZED, T as AXP_DASHBOARD_SHARED_SUB_UTILITY_NOTES, U as AXP_DASHBOARD_SHARED_SUB_UTILITY_SHORTCUT, V as AXP_DASHBOARD_SHARED_SUB_UTILITY_TIME, W as AXP_DASHBOARD_SHARED_SUB_UTILITY_WEATHER, X as AXP_KPI_DETAILS_DIMENSIONS, Y as AXP_KPI_GRID_HEIGHT_OPTION, Z as AXP_KPI_GRID_WIDTH_OPTION, _ as AXP_KPI_PROGRESS_SEGMENTED_DIMENSIONS, $ as AXP_KPI_STANDARD_DIMENSIONS, a0 as AXP_KPI_STAT_CARD_DIMENSIONS, a1 as AXP_UTILITY_CLOCK_CALENDAR_DIMENSIONS, a2 as AXP_UTILITY_COMPACT_SQUARE_DIMENSIONS, a3 as AXP_UTILITY_SHORTCUT_DIMENSIONS, a4 as AXP_UTILITY_WEATHER_DIMENSIONS, a5 as AXP_WIDGETS_CHART_CATEGORY, a6 as AXP_WIDGETS_UTILITY_CATEGORY, Y as DASHBOARD_WIDGET_GRID_HEIGHT_OPTION, Z as DASHBOARD_WIDGET_GRID_WIDTH_OPTION, a7 as STICKY_NOTE_COLOR_PRESETS, a8 as STICKY_NOTE_DEFAULT_BACKGROUND, a9 as buildDashboardChartWidget, aa as buildDashboardChartWidgetWithQuery, ab as buildDashboardClockCalendar, ac as buildDashboardKpiStatCard, ad as buildDashboardKpiTile, ae as buildDashboardShortcut, af as buildDashboardStickyNote, ag as buildDashboardWeatherWidget, ah as buildDashboardWidgetsContext, ai as defineDashboardWidgetDimensions, aj as enrichDashboardLayoutNode, ak as formatDashboardGridSizeToken, ak as formatKpiGridSizeToken, al as formatKpiValue, am as formatUtcOffsetLabel, an as getIanaTimeZoneOffsetMinutes, ao as hasKpiQueryConfigured, ap as isStickyNoteEmpty, aq as layoutFromDimensions, ar as loadKpiQueryResult, as as normalizeKpiPercent, at as readDashboardEntityContext, au as readDashboardGridSizeToken, au as readKpiGridSizeToken, av as resolveDashboardLayoutNode, aw as resolveDashboardMetaDimensionsForBreakpoint, ax as resolveDashboardMetaLayoutNode, ay as resolveKpiIconToneTheme, az as resolveKpiIconToneValueColor, aA as resolveKpiProgressBarTone, aB as resolveKpiSegmentPaletteColor, aC as resolveKpiText, aD as resolveStickyNoteBackgroundColor, aE as resolveStickyNoteLayoutVariant, aF as resolveStickyNoteMutedTextColor, aG as resolveStickyNoteText, aH as resolveStickyNoteTextColor, aI as resolveTimeZoneCode, aJ as shouldShowStickyNoteEmptyHint, aK as stripHtmlToPlainText, aL as withDashboardGridSizeOptions } from './acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-Cl4LZc2m.mjs';
1
+ export { b as AXMAddDashboardPopup, c as AXMChartConfiguratorComponent, d as AXMChartConfiguratorWidget, e as AXMChartConfiguratorWidgetColumnComponent, f as AXMChartConfiguratorWidgetEditComponent, g as AXMConfigurationPopup, h as AXMDashboardHomeComponent, i as AXMDashboardManagementModule, j as AXMDashboardPopupService, A as AXMDashboardStore, k as AXMDashboardWidgetWrapperComponent, l as AXPBarChartWidget, m as AXPBarChartWidgetViewComponent, n as AXPChartCardWidget, o as AXPChartCardWidgetViewComponent, p as AXPClockCalendarWidget, q as AXPClockCalendarWidgetViewComponent, r as AXPDASHBOARD_ENTITY_CONTEXT_KEY, s as AXPDashboardWidgetComponent, t as AXPDonutChartWidget, u as AXPDonutChartWidgetViewComponent, v as AXPFunnelChartWidget, w as AXPFunnelChartWidgetViewComponent, x as AXPGaugeChartWidget, y as AXPGaugeChartWidgetViewComponent, z as AXPHeatmapChartWidget, B as AXPHeatmapChartWidgetViewComponent, C as AXPKpiDetailsWidget, E as AXPKpiDetailsWidgetViewComponent, F as AXPKpiProgressWidget, G as AXPKpiProgressWidgetViewComponent, H as AXPKpiSegmentedWidget, I as AXPKpiSegmentedWidgetViewComponent, J as AXPKpiStatCardWidget, K as AXPKpiStatCardWidgetViewComponent, L as AXPLineChartWidget, M as AXPLineChartWidgetViewComponent, N as AXPShortcutWidget, O as AXPShortcutWidgetViewComponent, P as AXPStickyNoteWidget, Q as AXPStickyNoteWidgetViewComponent, R as AXP_CHART_CONFIGURATOR_DEFAULT_TYPE, S as AXP_CHART_FUNNEL_DIMENSIONS, T as AXP_CHART_GAUGE_DIMENSIONS, U as AXP_CHART_SQUARE_DIMENSIONS, V as AXP_CHART_WIDE_DIMENSIONS, W as AXP_DASHBOARD_SHARED_SUB_CHART_CARTESIAN, X as AXP_DASHBOARD_SHARED_SUB_CHART_KPI, Y as AXP_DASHBOARD_SHARED_SUB_CHART_RADIAL, Z as AXP_DASHBOARD_SHARED_SUB_CHART_SPECIALIZED, _ as AXP_DASHBOARD_SHARED_SUB_UTILITY_NOTES, $ as AXP_DASHBOARD_SHARED_SUB_UTILITY_SHORTCUT, a0 as AXP_DASHBOARD_SHARED_SUB_UTILITY_TIME, a1 as AXP_DASHBOARD_SHARED_SUB_UTILITY_WEATHER, a2 as AXP_KPI_DETAILS_DIMENSIONS, a3 as AXP_KPI_GRID_HEIGHT_OPTION, a4 as AXP_KPI_GRID_WIDTH_OPTION, a5 as AXP_KPI_PROGRESS_SEGMENTED_DIMENSIONS, a6 as AXP_KPI_STANDARD_DIMENSIONS, a7 as AXP_KPI_STAT_CARD_DIMENSIONS, a8 as AXP_UTILITY_CLOCK_CALENDAR_DIMENSIONS, a9 as AXP_UTILITY_COMPACT_SQUARE_DIMENSIONS, aa as AXP_UTILITY_SHORTCUT_DIMENSIONS, ab as AXP_UTILITY_WEATHER_DIMENSIONS, ac as AXP_WIDGETS_CHART_CATEGORY, ad as AXP_WIDGETS_UTILITY_CATEGORY, a3 as DASHBOARD_WIDGET_GRID_HEIGHT_OPTION, a4 as DASHBOARD_WIDGET_GRID_WIDTH_OPTION, ae as STICKY_NOTE_COLOR_PRESETS, af as STICKY_NOTE_DEFAULT_BACKGROUND, ag as areChartCardTabsConfigured, ah as asChartTabWidgetNode, ai as buildDashboardChartCardWidget, aj as buildDashboardChartWidget, ak as buildDashboardChartWidgetWithQuery, al as buildDashboardClockCalendar, am as buildDashboardKpiStatCard, an as buildDashboardKpiTile, ao as buildDashboardShortcut, ap as buildDashboardStickyNote, aq as buildDashboardWeatherWidget, ar as buildDashboardWidgetsContext, as as chartResultTypeForWidget, at as chartTypeUsesAxisLabels, au as defineDashboardWidgetDimensions, av as enrichDashboardLayoutNode, aw as formatDashboardGridSizeToken, aw as formatKpiGridSizeToken, ax as formatKpiValue, ay as formatUtcOffsetLabel, az as getIanaTimeZoneOffsetMinutes, aA as hasKpiQueryConfigured, aB as isChartTabConfigured, aC as isStickyNoteEmpty, aD as layoutFromDimensions, aE as loadKpiQueryResult, aF as normalizeKpiPercent, aG as optionsAfterChartTypeSwitch, aH as readChartTabQuery, aI as readChartTabTitle, aJ as readDashboardEntityContext, aK as readDashboardGridSizeToken, aK as readKpiGridSizeToken, aL as readStashedChartAppearance, aM as resolveDashboardLayoutNode, aN as resolveDashboardMetaDimensionsForBreakpoint, aO as resolveDashboardMetaLayoutNode, aP as resolveKpiIconToneTheme, aQ as resolveKpiIconToneValueColor, aR as resolveKpiProgressBarTone, aS as resolveKpiSegmentPaletteColor, aT as resolveKpiText, aU as resolveStickyNoteBackgroundColor, aV as resolveStickyNoteLayoutVariant, aW as resolveStickyNoteMutedTextColor, aX as resolveStickyNoteText, aY as resolveStickyNoteTextColor, aZ as resolveTimeZoneCode, a_ as shouldShowStickyNoteEmptyHint, a$ as stripHtmlToPlainText, b0 as withDashboardGridSizeOptions } from './acorex-platform-module-dashboard-management-client-acorex-platform-module-dashboard-management-client-BUmHWNqL.mjs';
2
2
  //# sourceMappingURL=acorex-platform-module-dashboard-management-client.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-dashboard-management-client",
3
- "version": "0.0.32",
3
+ "version": "0.0.37",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
@@ -22,6 +22,18 @@
22
22
  "./contracts": {
23
23
  "types": "./types/acorex-platform-module-dashboard-management-client-contracts.d.ts",
24
24
  "default": "./fesm2022/acorex-platform-module-dashboard-management-client-contracts.mjs"
25
+ },
26
+ "./contracts/entities/dashboard": {
27
+ "types": "./types/acorex-platform-module-dashboard-management-client-contracts-entities-dashboard.d.ts",
28
+ "default": "./fesm2022/acorex-platform-module-dashboard-management-client-contracts-entities-dashboard.mjs"
29
+ },
30
+ "./contracts/entity-catalog": {
31
+ "types": "./types/acorex-platform-module-dashboard-management-client-contracts-entity-catalog.d.ts",
32
+ "default": "./fesm2022/acorex-platform-module-dashboard-management-client-contracts-entity-catalog.mjs"
33
+ },
34
+ "./local-entities": {
35
+ "types": "./types/acorex-platform-module-dashboard-management-client-local-entities.d.ts",
36
+ "default": "./fesm2022/acorex-platform-module-dashboard-management-client-local-entities.mjs"
25
37
  }
26
38
  },
27
39
  "type": "module"
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function dashboardFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { dashboardFactory };
@@ -0,0 +1,10 @@
1
+ import { AXPLocalEntityCatalog } from '@acorex-platform/framework-shared/entity';
2
+
3
+ /**
4
+ * Lazy per-entity layout factories. Do not re-export from the contracts barrel
5
+ * so RootConfig imports stay light. Server seed and client `local-entities`
6
+ * consume this catalog explicitly.
7
+ */
8
+ declare const dashboardManagementLocalEntityCatalog: AXPLocalEntityCatalog;
9
+
10
+ export { dashboardManagementLocalEntityCatalog };
@@ -1,3 +1,5 @@
1
+ import { AXPWidgetNode } from '@acorex-platform/framework-shared/core';
2
+
1
3
  declare const AXPDashboardManagementFeatureKeys: {};
2
4
 
3
5
  declare const AXPDashboardManagementMenuKeys: {
@@ -80,6 +82,7 @@ declare const RootConfig: {
80
82
  gaugeChart: string;
81
83
  funnelChart: string;
82
84
  heatmapChart: string;
85
+ chartCard: string;
83
86
  stickyNote: string;
84
87
  clockCalendar: string;
85
88
  weather: string;
@@ -347,6 +350,20 @@ interface AXPChartQueryWidgetOptions {
347
350
  dataSource?: unknown;
348
351
  }
349
352
 
353
+ /**
354
+ * Chart card options: one dashboard tile hosting mixed-type chart tabs.
355
+ * Each tab is an {@link AXPWidgetNode} of a typed chart widget (donut, bar, line, gauge).
356
+ */
357
+
358
+ /** Editor widget name used as the repeater row in chart-card properties. */
359
+ declare const AXP_CHART_CONFIGURATOR_WIDGET_NAME = "chart-configurator";
360
+ interface AXPChartCardWidgetOptions {
361
+ /** Card heading (domain name). */
362
+ title?: string;
363
+ /** One typed chart widget node per tab. */
364
+ tabs?: AXPWidgetNode[];
365
+ }
366
+
350
367
  declare function buildUserScopeRef(userId: string): AXMDashboardUserScopeRef;
351
368
  declare function buildTenantScopeRef(tenantId: string, roleIds: readonly string[]): AXMDashboardTenantScopeRef;
352
369
  declare function buildEntityScopeRef(entityType: string): AXMDashboardEntityScopeRef;
@@ -364,5 +381,5 @@ declare function normalizeDashboardScopeRef(scope: AXMDashboardScope, scopeRef:
364
381
  entityType: string;
365
382
  }>): AXMDashboardScopeRef;
366
383
 
367
- export { AXMPermissionsKeys, AXPAdministrationPermissionKeys, AXPDashboardManagementFeatureKeys, AXPDashboardManagementMenuKeys, AXPHomeDashboardSetting, AXP_CHART_QUERY_RESULT_TYPE, DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY, RootConfig, buildEntityScopeRef, buildTenantScopeRef, buildUserScopeRef, normalizeDashboardScopeRef, readScopeEntityType, readScopeRoleIds, readScopeTenantId, readScopeUserId };
368
- export type { AXGridLayoutNode, AXGridLayoutSize, AXMCommonDashboardEntityModel, AXMDashboardBreakpoint, AXMDashboardEntityScopeRef, AXMDashboardScope, AXMDashboardScopeRef, AXMDashboardTenantScopeRef, AXMDashboardUserScopeRef, AXMDashboardWidgetData, AXMDashboardWidgetLayoutMap, AXPBarChartQueryItem, AXPBarChartQueryResult, AXPChartQueryResultType, AXPChartQueryWidgetOptions, AXPDonutChartQueryItem, AXPDonutChartQueryResult, AXPEntityModel, AXPFunnelChartQueryItem, AXPFunnelChartQueryResult, AXPGaugeChartQueryResult, AXPHeatmapChartQueryItem, AXPHeatmapChartQueryResult, AXPKpiDetailsQueryResult, AXPKpiProgressQueryResult, AXPKpiSegmentedQueryResult, AXPKpiStatCardQueryResult, AXPLineChartQueryPoint, AXPLineChartQueryResult, AXPLineChartQuerySeries, AXPMultiLanguageString };
384
+ export { AXMPermissionsKeys, AXPAdministrationPermissionKeys, AXPDashboardManagementFeatureKeys, AXPDashboardManagementMenuKeys, AXPHomeDashboardSetting, AXP_CHART_CONFIGURATOR_WIDGET_NAME, AXP_CHART_QUERY_RESULT_TYPE, DASHBOARD_LAYOUT_PAGE_COMPONENT_KEY, RootConfig, buildEntityScopeRef, buildTenantScopeRef, buildUserScopeRef, normalizeDashboardScopeRef, readScopeEntityType, readScopeRoleIds, readScopeTenantId, readScopeUserId };
385
+ export type { AXGridLayoutNode, AXGridLayoutSize, AXMCommonDashboardEntityModel, AXMDashboardBreakpoint, AXMDashboardEntityScopeRef, AXMDashboardScope, AXMDashboardScopeRef, AXMDashboardTenantScopeRef, AXMDashboardUserScopeRef, AXMDashboardWidgetData, AXMDashboardWidgetLayoutMap, AXPBarChartQueryItem, AXPBarChartQueryResult, AXPChartCardWidgetOptions, AXPChartQueryResultType, AXPChartQueryWidgetOptions, AXPDonutChartQueryItem, AXPDonutChartQueryResult, AXPEntityModel, AXPFunnelChartQueryItem, AXPFunnelChartQueryResult, AXPGaugeChartQueryResult, AXPHeatmapChartQueryItem, AXPHeatmapChartQueryResult, AXPKpiDetailsQueryResult, AXPKpiProgressQueryResult, AXPKpiSegmentedQueryResult, AXPKpiStatCardQueryResult, AXPLineChartQueryPoint, AXPLineChartQueryResult, AXPLineChartQuerySeries, AXPMultiLanguageString };
@@ -0,0 +1,12 @@
1
+ import * as _angular_core from '@angular/core';
2
+ export { dashboardManagementLocalEntityCatalog } from '@acorex-platform/module-dashboard-management-client/contracts/entity-catalog';
3
+
4
+ /**
5
+ * Registers dashboard-management layouts on the client from packaged factories.
6
+ * Each `import()` targets a secondary entry so unused entities stay out of the
7
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
8
+ * `Domain:GetEntityLayout`.
9
+ */
10
+ declare function provideDashboardManagementLocalEntities(): _angular_core.EnvironmentProviders;
11
+
12
+ export { provideDashboardManagementLocalEntities };
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnDestroy, OnInit, Signal } from '@angular/core';
3
3
  import * as i1 from '@acorex-platform/framework-client/layout/widget-core';
4
- import { AXPBaseWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
4
+ import { AXPBaseWidgetComponent, AXPColumnWidgetComponent, AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
5
5
  import * as _acorex_platform_module_dashboard_management_client_contracts from '@acorex-platform/module-dashboard-management-client/contracts';
6
6
  import { AXPMultiLanguageString, AXMDashboardWidgetLayoutMap, AXMDashboardScope, AXMDashboardScopeRef, AXMDashboardBreakpoint, AXMCommonDashboardEntityModel } from '@acorex-platform/module-dashboard-management-client/contracts';
7
7
  import * as _ngrx_signals from '@ngrx/signals';
@@ -15,7 +15,7 @@ import { AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex
15
15
  import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
16
16
  import { AXPopupService } from '@acorex/components/popup';
17
17
  import { AXBasePageComponent } from '@acorex/components/page';
18
- import { AXPWidgetPropertiesChangedEvent } from '@acorex-platform/framework-client/layout/components';
18
+ import { AXPWidgetPropertiesChangedEvent, ItemConfiguratorListItem } from '@acorex-platform/framework-client/layout/components';
19
19
  import { AXItemClickEvent, AXValueChangedEvent } from '@acorex/cdk/common';
20
20
  import { AXButtonItemComponent } from '@acorex/components/button';
21
21
  import * as _acorex_platform_module_dashboard_management_contracts from '@acorex-platform/module-dashboard-management-client/contracts';
@@ -163,6 +163,7 @@ declare class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent imple
163
163
  gaugeChart: string;
164
164
  funnelChart: string;
165
165
  heatmapChart: string;
166
+ chartCard: string;
166
167
  stickyNote: string;
167
168
  clockCalendar: string;
168
169
  weather: string;
@@ -387,6 +388,7 @@ declare class AXMAddDashboardPopup extends AXBasePageComponent implements OnInit
387
388
  declare class AXMConfigurationPopup extends AXBasePageComponent implements OnInit {
388
389
  widget: AXPWidgetNode;
389
390
  protected readonly widgetData: _angular_core.WritableSignal<AXPWidgetNode | null>;
391
+ protected readonly saveError: _angular_core.WritableSignal<string | null>;
390
392
  ngOnInit(): void;
391
393
  protected handleClose(isCanceled?: boolean): Promise<void>;
392
394
  protected handlePropertyChange(event: AXPWidgetPropertiesChangedEvent): void;
@@ -532,6 +534,13 @@ declare function buildDashboardKpiStatCard(id: string, x: number, y: number, que
532
534
  declare function buildDashboardKpiTile(id: string, type: 'KpiProgress' | 'KpiSegmented' | 'KpiDetails', x: number, y: number, options: Record<string, unknown>, size?: DashboardSeedGridSize): DashboardSeedWidget;
533
535
  declare function buildDashboardChartWidget(id: string, title: string, type: ChartWidgetType, x: number, y: number, options: Record<string, unknown>, size?: DashboardSeedGridSize): DashboardSeedWidget;
534
536
  declare function buildDashboardChartWidgetWithQuery(id: string, title: string, type: 'BarChart' | 'DonutChart' | 'LineChart' | 'GaugeChart', x: number, y: number, queryOrTabs: string | QueryTab[], size?: DashboardSeedGridSize): DashboardSeedWidget;
537
+ type DashboardChartCardTab = {
538
+ type: ChartWidgetType;
539
+ label: string;
540
+ query: string;
541
+ color?: string;
542
+ };
543
+ declare function buildDashboardChartCardWidget(id: string, title: string, x: number, y: number, tabs: DashboardChartCardTab[], size?: DashboardSeedGridSize): DashboardSeedWidget;
535
544
  declare function buildDashboardShortcut(id: string, x: number, y: number, title: string, icon: string, path: string, color: string, size?: DashboardSeedGridSize): DashboardSeedWidget;
536
545
  declare function buildDashboardClockCalendar(id: string, x: number, y: number, options?: Record<string, unknown>, size?: DashboardSeedGridSize): DashboardSeedWidget;
537
546
  declare function buildDashboardStickyNote(id: string, x: number, y: number, defaultValue: string, size?: DashboardSeedGridSize): DashboardSeedWidget;
@@ -546,6 +555,19 @@ declare const AXP_CHART_GAUGE_DIMENSIONS: Required<Partial<Record<dist_libs_modu
546
555
  /** Funnel chart — same allowed sizes as wide charts. */
547
556
  declare const AXP_CHART_FUNNEL_DIMENSIONS: Required<Partial<Record<dist_libs_modules_dashboard_management_contracts_src.AXMDashboardBreakpoint, _acorex_platform_module_dashboard_management_client.AXPDashboardBreakpointDimensions>>>;
548
557
 
558
+ /** New Chart Tabs rows default to donut so + Add Item is immediately typed. */
559
+ declare const AXP_CHART_CONFIGURATOR_DEFAULT_TYPE: string;
560
+ declare function chartResultTypeForWidget(type: string): string | undefined;
561
+ declare function chartTypeUsesAxisLabels(resultType: string): boolean;
562
+ declare function asChartTabWidgetNode(value: unknown): AXPWidgetNode | null;
563
+ declare function readChartTabTitle(node: AXPWidgetNode): unknown;
564
+ declare function readChartTabQuery(node: AXPWidgetNode): string;
565
+ declare function isChartTabConfigured(node: AXPWidgetNode): boolean;
566
+ /** Widget Configuration Save: empty cards are allowed; every present tab needs a query. */
567
+ declare function areChartCardTabsConfigured(widget: AXPWidgetNode | null | undefined): boolean;
568
+ declare function readStashedChartAppearance(options: Record<string, unknown>): Record<string, unknown>;
569
+ declare function optionsAfterChartTypeSwitch(options: Record<string, unknown>, previousType: string, nextType: string, stashedAppearance: Record<string, unknown>): Record<string, unknown>;
570
+
549
571
  /**
550
572
  * Shared helpers for loading dashboard chart/KPI data via AXPQuery (single or tabbed).
551
573
  */
@@ -648,6 +670,62 @@ declare class AXPBarChartWidgetViewComponent extends AXPDashboardWidgetComponent
648
670
 
649
671
  declare const AXPBarChartWidget: AXPWidgetConfig;
650
672
 
673
+ declare class AXPChartCardWidgetViewComponent extends AXPDashboardWidgetComponent {
674
+ private readonly translationService;
675
+ protected readonly tabNodes: _angular_core.Signal<AXPWidgetNode[]>;
676
+ protected readonly tabStrip: _angular_core.WritableSignal<AXPChartQueryTab[]>;
677
+ protected readonly activeTabIndex: _angular_core.WritableSignal<number>;
678
+ protected readonly activeTabNode: _angular_core.Signal<AXPWidgetNode | null>;
679
+ protected selectQueryTab(index: number): void;
680
+ protected isTabConfigured(node: AXPWidgetNode): boolean;
681
+ private readonly clampTabIndexEffect;
682
+ private readonly resolveTabLabelsEffect;
683
+ private resolveTabLabel;
684
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPChartCardWidgetViewComponent, never>;
685
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPChartCardWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
686
+ }
687
+
688
+ declare const AXPChartCardWidget: AXPWidgetConfig;
689
+
690
+ /**
691
+ * Pick a chart type and configure tab-scoped options via {@link AXPItemConfiguratorComponent}.
692
+ * Bound value is an {@link AXPWidgetNode} (`type` + `options`).
693
+ */
694
+ declare class AXMChartConfiguratorComponent {
695
+ readonly widget: _angular_core.ModelSignal<AXPWidgetNode>;
696
+ readonly label: _angular_core.InputSignal<string>;
697
+ readonly readonly: _angular_core.InputSignal<boolean>;
698
+ protected readonly selectedTypeModel: _angular_core.ModelSignal<string>;
699
+ protected readonly optionsModel: _angular_core.ModelSignal<Record<string, unknown>>;
700
+ protected readonly catalogItems: _angular_core.Signal<ItemConfiguratorListItem[]>;
701
+ private lastSelectedType;
702
+ private stashedAppearance;
703
+ constructor();
704
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChartConfiguratorComponent, never>;
705
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMChartConfiguratorComponent, "axm-chart-configurator", never, { "widget": { "alias": "widget"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "selectedTypeModel": { "alias": "selectedTypeModel"; "required": false; "isSignal": true; }; "optionsModel": { "alias": "optionsModel"; "required": false; "isSignal": true; }; }, { "widget": "widgetChange"; "selectedTypeModel": "selectedTypeModelChange"; "optionsModel": "optionsModelChange"; }, never, never, true, never>;
706
+ }
707
+
708
+ declare const AXMChartConfiguratorWidget: AXPWidgetConfig;
709
+
710
+ declare class AXMChartConfiguratorWidgetColumnComponent extends AXPColumnWidgetComponent<AXPWidgetNode> {
711
+ private readonly widgetRegistry;
712
+ protected readonly widget: _angular_core.Signal<AXPWidgetConfig<any> | undefined>;
713
+ protected readonly displayTitle: _angular_core.Signal<_acorex_platform_framework_shared_core.AXPMultiLanguageString | undefined>;
714
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChartConfiguratorWidgetColumnComponent, never>;
715
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMChartConfiguratorWidgetColumnComponent, "axm-chart-configurator-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
716
+ }
717
+
718
+ declare class AXMChartConfiguratorWidgetEditComponent extends AXPValueWidgetComponent<AXPWidgetNode> {
719
+ protected readonly readonly: _angular_core.Signal<boolean>;
720
+ protected readonly label: _angular_core.Signal<string>;
721
+ protected readonly isInitialized: _angular_core.WritableSignal<boolean>;
722
+ protected readonly widgetModel: _angular_core.ModelSignal<AXPWidgetNode>;
723
+ private readonly syncValueToConfigurator;
724
+ private readonly syncConfiguratorToValue;
725
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChartConfiguratorWidgetEditComponent, never>;
726
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMChartConfiguratorWidgetEditComponent, "axm-chart-configurator-widget-edit", never, { "widgetModel": { "alias": "widgetModel"; "required": false; "isSignal": true; }; }, { "widgetModel": "widgetModelChange"; }, never, never, true, never>;
727
+ }
728
+
651
729
  /**
652
730
  * Donut Chart Widget Component
653
731
  * Displays data in a circular donut chart with interactive segments
@@ -1242,5 +1320,5 @@ declare const AXP_DASHBOARD_SHARED_SUB_UTILITY_TIME: AXPDefinitionCategory;
1242
1320
  declare const AXP_DASHBOARD_SHARED_SUB_UTILITY_WEATHER: AXPDefinitionCategory;
1243
1321
  declare const AXP_DASHBOARD_SHARED_SUB_UTILITY_NOTES: AXPDefinitionCategory;
1244
1322
 
1245
- export { AXMAddDashboardPopup, AXMConfigurationPopup, AXMDashboardHomeComponent, AXMDashboardManagementModule, AXMDashboardPopupService, AXMDashboardStore, AXMDashboardWidgetWrapperComponent, AXPBarChartWidget, AXPBarChartWidgetViewComponent, AXPClockCalendarWidget, AXPClockCalendarWidgetViewComponent, AXPDASHBOARD_ENTITY_CONTEXT_KEY, AXPDashboardWidgetComponent, AXPDonutChartWidget, AXPDonutChartWidgetViewComponent, AXPFunnelChartWidget, AXPFunnelChartWidgetViewComponent, AXPGaugeChartWidget, AXPGaugeChartWidgetViewComponent, AXPHeatmapChartWidget, AXPHeatmapChartWidgetViewComponent, AXPKpiDetailsWidget, AXPKpiDetailsWidgetViewComponent, AXPKpiProgressWidget, AXPKpiProgressWidgetViewComponent, AXPKpiSegmentedWidget, AXPKpiSegmentedWidgetViewComponent, AXPKpiStatCardWidget, AXPKpiStatCardWidgetViewComponent, AXPLineChartWidget, AXPLineChartWidgetViewComponent, AXPShortcutWidget, AXPShortcutWidgetViewComponent, AXPStickyNoteWidget, AXPStickyNoteWidgetViewComponent, AXP_CHART_FUNNEL_DIMENSIONS, AXP_CHART_GAUGE_DIMENSIONS, AXP_CHART_SQUARE_DIMENSIONS, AXP_CHART_WIDE_DIMENSIONS, AXP_DASHBOARD_SHARED_SUB_CHART_CARTESIAN, AXP_DASHBOARD_SHARED_SUB_CHART_KPI, AXP_DASHBOARD_SHARED_SUB_CHART_RADIAL, AXP_DASHBOARD_SHARED_SUB_CHART_SPECIALIZED, AXP_DASHBOARD_SHARED_SUB_UTILITY_NOTES, AXP_DASHBOARD_SHARED_SUB_UTILITY_SHORTCUT, AXP_DASHBOARD_SHARED_SUB_UTILITY_TIME, AXP_DASHBOARD_SHARED_SUB_UTILITY_WEATHER, AXP_KPI_DETAILS_DIMENSIONS, DASHBOARD_WIDGET_GRID_HEIGHT_OPTION as AXP_KPI_GRID_HEIGHT_OPTION, DASHBOARD_WIDGET_GRID_WIDTH_OPTION as AXP_KPI_GRID_WIDTH_OPTION, AXP_KPI_PROGRESS_SEGMENTED_DIMENSIONS, AXP_KPI_STANDARD_DIMENSIONS, AXP_KPI_STAT_CARD_DIMENSIONS, AXP_UTILITY_CLOCK_CALENDAR_DIMENSIONS, AXP_UTILITY_COMPACT_SQUARE_DIMENSIONS, AXP_UTILITY_SHORTCUT_DIMENSIONS, AXP_UTILITY_WEATHER_DIMENSIONS, AXP_WIDGETS_CHART_CATEGORY, AXP_WIDGETS_UTILITY_CATEGORY, DASHBOARD_WIDGET_GRID_HEIGHT_OPTION, DASHBOARD_WIDGET_GRID_WIDTH_OPTION, STICKY_NOTE_COLOR_PRESETS, STICKY_NOTE_DEFAULT_BACKGROUND, buildDashboardChartWidget, buildDashboardChartWidgetWithQuery, buildDashboardClockCalendar, buildDashboardKpiStatCard, buildDashboardKpiTile, buildDashboardShortcut, buildDashboardStickyNote, buildDashboardWeatherWidget, buildDashboardWidgetsContext, defineDashboardWidgetDimensions, enrichDashboardLayoutNode, formatDashboardGridSizeToken, formatDashboardGridSizeToken as formatKpiGridSizeToken, formatKpiValue, formatUtcOffsetLabel, getIanaTimeZoneOffsetMinutes, hasKpiQueryConfigured, isStickyNoteEmpty, layoutFromDimensions, loadKpiQueryResult, normalizeKpiPercent, readDashboardEntityContext, readDashboardGridSizeToken, readDashboardGridSizeToken as readKpiGridSizeToken, resolveDashboardLayoutNode, resolveDashboardMetaDimensionsForBreakpoint, resolveDashboardMetaLayoutNode, resolveKpiIconToneTheme, resolveKpiIconToneValueColor, resolveKpiProgressBarTone, resolveKpiSegmentPaletteColor, resolveKpiText, resolveStickyNoteBackgroundColor, resolveStickyNoteLayoutVariant, resolveStickyNoteMutedTextColor, resolveStickyNoteText, resolveStickyNoteTextColor, resolveTimeZoneCode, shouldShowStickyNoteEmptyHint, stripHtmlToPlainText, withDashboardGridSizeOptions };
1246
- export type { AXMDashboardLayoutDialogOptions, AXPDashboardBreakpointDimensions, AXPDashboardCoreDimensionPresets, AXPDashboardDimensionPreset, AXPDashboardDimensionPresets, AXPDashboardEntityContext, AXPDashboardLegacyBreakpointDimensions, AXPDashboardWidgetContainerSize, AXPDashboardWidgetDimensions, AXPHourNumber, AXPKpiDetailItem, AXPKpiDetailsData, AXPKpiIconTone, AXPKpiProgressData, AXPKpiQueryLoadState, AXPKpiSegmentItem, AXPKpiSegmentedData, AXPKpiStatCardData, AXPKpiTextValueFormat, AXPKpiTitleBadge, AXPKpiTitleBadgeTone, AXPKpiTrendStatus, AXPShortcutItem, AXPStickyNoteLayoutVariant, DashboardSeedDimensionPreset, DashboardSeedGridSize, DashboardSeedLayoutPlacement, DashboardSeedWidget };
1323
+ export { AXMAddDashboardPopup, AXMChartConfiguratorComponent, AXMChartConfiguratorWidget, AXMChartConfiguratorWidgetColumnComponent, AXMChartConfiguratorWidgetEditComponent, AXMConfigurationPopup, AXMDashboardHomeComponent, AXMDashboardManagementModule, AXMDashboardPopupService, AXMDashboardStore, AXMDashboardWidgetWrapperComponent, AXPBarChartWidget, AXPBarChartWidgetViewComponent, AXPChartCardWidget, AXPChartCardWidgetViewComponent, AXPClockCalendarWidget, AXPClockCalendarWidgetViewComponent, AXPDASHBOARD_ENTITY_CONTEXT_KEY, AXPDashboardWidgetComponent, AXPDonutChartWidget, AXPDonutChartWidgetViewComponent, AXPFunnelChartWidget, AXPFunnelChartWidgetViewComponent, AXPGaugeChartWidget, AXPGaugeChartWidgetViewComponent, AXPHeatmapChartWidget, AXPHeatmapChartWidgetViewComponent, AXPKpiDetailsWidget, AXPKpiDetailsWidgetViewComponent, AXPKpiProgressWidget, AXPKpiProgressWidgetViewComponent, AXPKpiSegmentedWidget, AXPKpiSegmentedWidgetViewComponent, AXPKpiStatCardWidget, AXPKpiStatCardWidgetViewComponent, AXPLineChartWidget, AXPLineChartWidgetViewComponent, AXPShortcutWidget, AXPShortcutWidgetViewComponent, AXPStickyNoteWidget, AXPStickyNoteWidgetViewComponent, AXP_CHART_CONFIGURATOR_DEFAULT_TYPE, AXP_CHART_FUNNEL_DIMENSIONS, AXP_CHART_GAUGE_DIMENSIONS, AXP_CHART_SQUARE_DIMENSIONS, AXP_CHART_WIDE_DIMENSIONS, AXP_DASHBOARD_SHARED_SUB_CHART_CARTESIAN, AXP_DASHBOARD_SHARED_SUB_CHART_KPI, AXP_DASHBOARD_SHARED_SUB_CHART_RADIAL, AXP_DASHBOARD_SHARED_SUB_CHART_SPECIALIZED, AXP_DASHBOARD_SHARED_SUB_UTILITY_NOTES, AXP_DASHBOARD_SHARED_SUB_UTILITY_SHORTCUT, AXP_DASHBOARD_SHARED_SUB_UTILITY_TIME, AXP_DASHBOARD_SHARED_SUB_UTILITY_WEATHER, AXP_KPI_DETAILS_DIMENSIONS, DASHBOARD_WIDGET_GRID_HEIGHT_OPTION as AXP_KPI_GRID_HEIGHT_OPTION, DASHBOARD_WIDGET_GRID_WIDTH_OPTION as AXP_KPI_GRID_WIDTH_OPTION, AXP_KPI_PROGRESS_SEGMENTED_DIMENSIONS, AXP_KPI_STANDARD_DIMENSIONS, AXP_KPI_STAT_CARD_DIMENSIONS, AXP_UTILITY_CLOCK_CALENDAR_DIMENSIONS, AXP_UTILITY_COMPACT_SQUARE_DIMENSIONS, AXP_UTILITY_SHORTCUT_DIMENSIONS, AXP_UTILITY_WEATHER_DIMENSIONS, AXP_WIDGETS_CHART_CATEGORY, AXP_WIDGETS_UTILITY_CATEGORY, DASHBOARD_WIDGET_GRID_HEIGHT_OPTION, DASHBOARD_WIDGET_GRID_WIDTH_OPTION, STICKY_NOTE_COLOR_PRESETS, STICKY_NOTE_DEFAULT_BACKGROUND, areChartCardTabsConfigured, asChartTabWidgetNode, buildDashboardChartCardWidget, buildDashboardChartWidget, buildDashboardChartWidgetWithQuery, buildDashboardClockCalendar, buildDashboardKpiStatCard, buildDashboardKpiTile, buildDashboardShortcut, buildDashboardStickyNote, buildDashboardWeatherWidget, buildDashboardWidgetsContext, chartResultTypeForWidget, chartTypeUsesAxisLabels, defineDashboardWidgetDimensions, enrichDashboardLayoutNode, formatDashboardGridSizeToken, formatDashboardGridSizeToken as formatKpiGridSizeToken, formatKpiValue, formatUtcOffsetLabel, getIanaTimeZoneOffsetMinutes, hasKpiQueryConfigured, isChartTabConfigured, isStickyNoteEmpty, layoutFromDimensions, loadKpiQueryResult, normalizeKpiPercent, optionsAfterChartTypeSwitch, readChartTabQuery, readChartTabTitle, readDashboardEntityContext, readDashboardGridSizeToken, readDashboardGridSizeToken as readKpiGridSizeToken, readStashedChartAppearance, resolveDashboardLayoutNode, resolveDashboardMetaDimensionsForBreakpoint, resolveDashboardMetaLayoutNode, resolveKpiIconToneTheme, resolveKpiIconToneValueColor, resolveKpiProgressBarTone, resolveKpiSegmentPaletteColor, resolveKpiText, resolveStickyNoteBackgroundColor, resolveStickyNoteLayoutVariant, resolveStickyNoteMutedTextColor, resolveStickyNoteText, resolveStickyNoteTextColor, resolveTimeZoneCode, shouldShowStickyNoteEmptyHint, stripHtmlToPlainText, withDashboardGridSizeOptions };
1324
+ export type { AXMDashboardLayoutDialogOptions, AXPDashboardBreakpointDimensions, AXPDashboardCoreDimensionPresets, AXPDashboardDimensionPreset, AXPDashboardDimensionPresets, AXPDashboardEntityContext, AXPDashboardLegacyBreakpointDimensions, AXPDashboardWidgetContainerSize, AXPDashboardWidgetDimensions, AXPHourNumber, AXPKpiDetailItem, AXPKpiDetailsData, AXPKpiIconTone, AXPKpiProgressData, AXPKpiQueryLoadState, AXPKpiSegmentItem, AXPKpiSegmentedData, AXPKpiStatCardData, AXPKpiTextValueFormat, AXPKpiTitleBadge, AXPKpiTitleBadgeTone, AXPKpiTrendStatus, AXPShortcutItem, AXPStickyNoteLayoutVariant, DashboardChartCardTab, DashboardSeedDimensionPreset, DashboardSeedGridSize, DashboardSeedLayoutPlacement, DashboardSeedWidget };