@acorex-platform/module-report-management-client 0.0.32 → 0.0.33

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 (37) hide show
  1. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-query-snapshot-policy.mjs +143 -0
  2. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-query-snapshot-policy.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-query-snapshot.mjs +183 -0
  4. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-query-snapshot.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-report-category.mjs +129 -0
  6. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-report-category.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-report-generation-request.mjs +260 -0
  8. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-report-generation-request.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-report.mjs +170 -0
  10. package/fesm2022/acorex-platform-module-report-management-client-contracts-entities-report.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-acorex-platform-module-report-management-client-contracts-entity-catalog-CgrfJQLl.mjs +83 -0
  12. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-acorex-platform-module-report-management-client-contracts-entity-catalog-CgrfJQLl.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-query-snapshot-policy.entity-D50GUBH6.mjs +83 -0
  14. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-query-snapshot-policy.entity-D50GUBH6.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-query-snapshot.entity-DuR9ZuN2.mjs +123 -0
  16. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-query-snapshot.entity-DuR9ZuN2.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-report-category.entity-Dc4uvjsG.mjs +69 -0
  18. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-report-category.entity-Dc4uvjsG.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-report-generation-request.entity-mJUQuk89.mjs +200 -0
  20. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-report-generation-request.entity-mJUQuk89.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-report.entity-CMDFRHeK.mjs +110 -0
  22. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog-report.entity-CMDFRHeK.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog.mjs +2 -0
  24. package/fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-report-management-client-contracts.mjs +2 -1
  26. package/fesm2022/acorex-platform-module-report-management-client-contracts.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-module-report-management-client-local-entities.mjs +33 -0
  28. package/fesm2022/acorex-platform-module-report-management-client-local-entities.mjs.map +1 -0
  29. package/package.json +29 -1
  30. package/types/acorex-platform-module-report-management-client-contracts-entities-query-snapshot-policy.d.ts +5 -0
  31. package/types/acorex-platform-module-report-management-client-contracts-entities-query-snapshot.d.ts +5 -0
  32. package/types/acorex-platform-module-report-management-client-contracts-entities-report-category.d.ts +5 -0
  33. package/types/acorex-platform-module-report-management-client-contracts-entities-report-generation-request.d.ts +5 -0
  34. package/types/acorex-platform-module-report-management-client-contracts-entities-report.d.ts +5 -0
  35. package/types/acorex-platform-module-report-management-client-contracts-entity-catalog.d.ts +10 -0
  36. package/types/acorex-platform-module-report-management-client-contracts.d.ts +2 -1
  37. package/types/acorex-platform-module-report-management-client-local-entities.d.ts +12 -0
@@ -0,0 +1,110 @@
1
+ import { AXPEntityCommandScope, createAllQueryView } from '@acorex-platform/framework-shared/entity';
2
+ import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
3
+ import { R as RootConfig } from './acorex-platform-module-report-management-client-contracts-entity-catalog-acorex-platform-module-report-management-client-contracts-entity-catalog-CgrfJQLl.mjs';
4
+
5
+ //#region ---- Report definition entity factory ----
6
+ async function reportEntityFactory() {
7
+ return {
8
+ module: RootConfig.module.name,
9
+ name: RootConfig.entities.report.name,
10
+ title: RootConfig.entities.report.title,
11
+ icon: RootConfig.entities.report.icon,
12
+ plugins: [{ name: 'category', options: { readonly: true } }],
13
+ formats: {
14
+ individual: RootConfig.entities.report.title,
15
+ plural: RootConfig.entities.report.titlePlural,
16
+ searchResult: {
17
+ title: '{{ title }}',
18
+ description: '{{ description }}',
19
+ },
20
+ },
21
+ groups: [{ id: 'basic-info', title: '@general:terms.interface.basic-info' }],
22
+ properties: [
23
+ {
24
+ name: 'title',
25
+ title: '@general:terms.common.title',
26
+ groupId: 'basic-info',
27
+ options: {
28
+ sort: { enabled: true },
29
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
30
+ },
31
+ schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },
32
+ validations: [{ rule: 'required' }],
33
+ },
34
+ {
35
+ name: 'description',
36
+ title: '@general:terms.common.description',
37
+ groupId: 'basic-info',
38
+ options: {
39
+ sort: { enabled: true },
40
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
41
+ },
42
+ schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },
43
+ },
44
+ {
45
+ name: 'parameterGroups',
46
+ title: '@report-management:reports.entities.report.fields.parameter-groups',
47
+ groupId: 'basic-info',
48
+ schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },
49
+ },
50
+ {
51
+ name: 'layouts',
52
+ title: '@report-management:reports.entities.report.fields.layouts',
53
+ groupId: 'basic-info',
54
+ schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },
55
+ },
56
+ {
57
+ name: 'defaultLayoutId',
58
+ title: '@report-management:reports.entities.report.fields.default-layout-id',
59
+ groupId: 'basic-info',
60
+ schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },
61
+ },
62
+ {
63
+ name: 'permissions',
64
+ title: '@general:terms.security.permissions',
65
+ groupId: 'basic-info',
66
+ schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },
67
+ },
68
+ {
69
+ name: 'entities',
70
+ title: '@report-management:reports.entities.report.fields.entities',
71
+ groupId: 'basic-info',
72
+ schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },
73
+ },
74
+ {
75
+ name: 'generation',
76
+ title: '@report-management:reports.entities.report.fields.generation',
77
+ groupId: 'basic-info',
78
+ schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },
79
+ },
80
+ ],
81
+ columns: [{ name: 'title' }, { name: 'description' }],
82
+ interfaces: {
83
+ master: {
84
+ list: {
85
+ actions: [
86
+ {
87
+ title: '@general:actions.open.title',
88
+ icon: 'fa-light fa-play',
89
+ command: {
90
+ name: 'ReportManagement.Report:OpenViewer',
91
+ options: {
92
+ reportId: '{{ context.eval("id") }}',
93
+ },
94
+ },
95
+ priority: 'primary',
96
+ type: 'view',
97
+ scope: AXPEntityCommandScope.Individual,
98
+ default: true,
99
+ },
100
+ ],
101
+ views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],
102
+ },
103
+ },
104
+ },
105
+ };
106
+ }
107
+ //#endregion
108
+
109
+ export { reportEntityFactory };
110
+ //# sourceMappingURL=acorex-platform-module-report-management-client-contracts-entity-catalog-report.entity-CMDFRHeK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-report-management-client-contracts-entity-catalog-report.entity-CMDFRHeK.mjs","sources":["../../../../libs/modules/report-management/contracts/src/entities/report/report.entity.ts"],"sourcesContent":["import {\n AXPEntity,\n AXPEntityCommandScope,\n createAllQueryView,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from '../../root-config';\n\n//#region ---- Report definition entity factory ----\n\nexport async function reportEntityFactory(): Promise<AXPEntity | null> {\n return {\n module: RootConfig.module.name,\n name: RootConfig.entities.report.name,\n title: RootConfig.entities.report.title,\n icon: RootConfig.entities.report.icon,\n plugins: [{ name: 'category', options: { readonly: true } }],\n formats: {\n individual: RootConfig.entities.report.title,\n plural: RootConfig.entities.report.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: '{{ description }}',\n },\n },\n groups: [{ id: 'basic-info', title: '@general:terms.interface.basic-info' }],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },\n },\n {\n name: 'parameterGroups',\n title: '@report-management:reports.entities.report.fields.parameter-groups',\n groupId: 'basic-info',\n schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'layouts',\n title: '@report-management:reports.entities.report.fields.layouts',\n groupId: 'basic-info',\n schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'defaultLayoutId',\n title: '@report-management:reports.entities.report.fields.default-layout-id',\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'permissions',\n title: '@general:terms.security.permissions',\n groupId: 'basic-info',\n schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'entities',\n title: '@report-management:reports.entities.report.fields.entities',\n groupId: 'basic-info',\n schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'generation',\n title: '@report-management:reports.entities.report.fields.generation',\n groupId: 'basic-info',\n schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.text } },\n },\n ],\n columns: [{ name: 'title' }, { name: 'description' }],\n interfaces: {\n master: {\n list: {\n actions: [\n {\n title: '@general:actions.open.title',\n icon: 'fa-light fa-play',\n command: {\n name: 'ReportManagement.Report:OpenViewer',\n options: {\n reportId: '{{ context.eval(\"id\") }}',\n },\n },\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n default: true,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { r as reportManagementLocalEntityCatalog } from './acorex-platform-module-report-management-client-contracts-entity-catalog-acorex-platform-module-report-management-client-contracts-entity-catalog-CgrfJQLl.mjs';
2
+ //# sourceMappingURL=acorex-platform-module-report-management-client-contracts-entity-catalog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-report-management-client-contracts-entity-catalog.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -138,6 +138,7 @@ const RootConfig = {
138
138
 
139
139
  //#region ----- Imports -----
140
140
  const REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY = 'ReportManagement:ReportGeneration';
141
+ const REPORT_GENERATION_OPEN_FROZEN_COMMAND = 'ReportManagement.Report:OpenViewer';
141
142
  /** In-app inbox correlation id for a completed report generation run. */
142
143
  function buildReportGenerationNotificationCorrelationId(runId) {
143
144
  const normalized = runId.trim();
@@ -174,5 +175,5 @@ const AXMReportManagementQueryKeys = {
174
175
  * Generated bundle index. Do not edit.
175
176
  */
176
177
 
177
- export { AXMPermissionsKeys, AXMReportManagementCommandKeys, AXMReportManagementQueryKeys, AXM_RECALCULATE_QUERY_SNAPSHOTS_COMMAND_KEY, AXM_REFRESH_QUERY_SNAPSHOTS_COMMAND_KEY, AXPInsightsReportingPermissionKeys, AXPReportManagementFeatureKeys, AXPReportManagementMenuKeys, AXPReportManagementSettings, AXP_REPORT_MANAGEMENT_GENERATION_SETTING_DEFAULTS, REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY, RootConfig, buildReportGenerationNotificationCorrelationId };
178
+ export { AXMPermissionsKeys, AXMReportManagementCommandKeys, AXMReportManagementQueryKeys, AXM_RECALCULATE_QUERY_SNAPSHOTS_COMMAND_KEY, AXM_REFRESH_QUERY_SNAPSHOTS_COMMAND_KEY, AXPInsightsReportingPermissionKeys, AXPReportManagementFeatureKeys, AXPReportManagementMenuKeys, AXPReportManagementSettings, AXP_REPORT_MANAGEMENT_GENERATION_SETTING_DEFAULTS, REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY, REPORT_GENERATION_OPEN_FROZEN_COMMAND, RootConfig, buildReportGenerationNotificationCorrelationId };
178
179
  //# sourceMappingURL=acorex-platform-module-report-management-client-contracts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-report-management-client-contracts.mjs","sources":["../../../../libs/modules/report-management/contracts/src/commands.keys.ts","../../../../libs/modules/report-management/contracts/src/features.keys.ts","../../../../libs/modules/report-management/contracts/src/menu.keys.ts","../../../../libs/modules/report-management/contracts/src/permission.keys.ts","../../../../libs/modules/report-management/contracts/src/settings.keys.ts","../../../../libs/modules/report-management/contracts/src/root-config.ts","../../../../libs/modules/report-management/contracts/src/report.types.ts","../../../../libs/modules/report-management/contracts/src/report-generation.types.ts","../../../../libs/modules/report-management/contracts/src/runtime.keys.ts","../../../../libs/modules/report-management/contracts/src/entities/query-snapshot-policy/query-snapshot-policy.types.ts","../../../../libs/modules/report-management/contracts/src/entities/query-snapshot/query-snapshot.types.ts","../../../../libs/modules/report-management/contracts/src/index.ts","../../../../libs/modules/report-management/contracts/src/acorex-platform-module-report-management-client-contracts.ts"],"sourcesContent":["//#region ---- Report management command keys ----\n\nexport const AXMReportManagementCommandKeys = {\n RecalculateQuerySnapshots: 'ReportManagement:RecalculateQuerySnapshots',\n RefreshQuerySnapshots: 'ReportManagement:RefreshQuerySnapshots',\n ReportGeneration: {\n Create: 'ReportManagement:ReportGeneration:Create',\n Execute: 'ReportManagement:ReportGeneration:Execute',\n ReleaseInlineWatch: 'ReportManagement:ReportGeneration:ReleaseInlineWatch',\n },\n} as const;\n\nexport const AXM_RECALCULATE_QUERY_SNAPSHOTS_COMMAND_KEY =\n AXMReportManagementCommandKeys.RecalculateQuerySnapshots;\n\nexport const AXM_REFRESH_QUERY_SNAPSHOTS_COMMAND_KEY =\n AXMReportManagementCommandKeys.RefreshQuerySnapshots;\n\n//#endregion\n","export const AXPReportManagementFeatureKeys = {\n ReportBuilder: 'ReportManagement:Feature:ReportBuilder',\n SavedReports: 'ReportManagement:Feature:SavedReports',\n ScheduledReports: 'ReportManagement:Feature:ScheduledReports',\n BackgroundReports: 'ReportManagement:Feature:BackgroundReports',\n} as const;\n\n","export const AXPReportManagementMenuKeys = {\n Root: 'report-management:menu',\n Reports: 'report-management:menu:reports',\n Categories: 'report-management:menu:categories',\n DataSets: 'report-management:menu:data-sets',\n} as const;\n\n","/**\n * Insights & Reporting capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPInsightsReportingPermissionKeys = {\n Access: 'InsightsReporting:Permission:Access',\n MaintainReports: 'InsightsReporting:Permission:MaintainReports',\n MaintainData: 'InsightsReporting:Permission:MaintainData',\n ViewActivityInsight: 'InsightsReporting:Permission:ViewActivityInsight',\n ManageActivityInsight: 'InsightsReporting:Permission:ManageActivityInsight',\n Setup: 'InsightsReporting:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPInsightsReportingPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n ReportManagement: {\n Management: AXPInsightsReportingPermissionKeys.MaintainReports,\n Report: {\n Management: AXPInsightsReportingPermissionKeys.MaintainReports,\n View: AXPInsightsReportingPermissionKeys.MaintainReports,\n Create: AXPInsightsReportingPermissionKeys.MaintainReports,\n Update: AXPInsightsReportingPermissionKeys.MaintainReports,\n Delete: AXPInsightsReportingPermissionKeys.MaintainReports,\n },\n Category: {\n Management: AXPInsightsReportingPermissionKeys.Setup,\n View: AXPInsightsReportingPermissionKeys.Setup,\n Create: AXPInsightsReportingPermissionKeys.Setup,\n Update: AXPInsightsReportingPermissionKeys.Setup,\n Delete: AXPInsightsReportingPermissionKeys.Setup,\n },\n },\n} as const;\n","//#region ----- Report management settings -----\n\nimport type { AXPReportGenerationDedupePolicy } from './report.types';\n\nexport enum AXPReportManagementSettings {\n GenerationDedupePolicy = 'ReportManagement:Setting:Generation.Dedupe.Policy',\n GenerationDedupeCooldownMinutes = 'ReportManagement:Setting:Generation.Dedupe.CooldownMinutes',\n GenerationMaxConcurrentPerUser = 'ReportManagement:Setting:Generation.MaxConcurrentPerUser',\n}\n\nexport const AXP_REPORT_MANAGEMENT_GENERATION_SETTING_DEFAULTS = {\n [AXPReportManagementSettings.GenerationDedupePolicy]: 'in-flight' as AXPReportGenerationDedupePolicy,\n [AXPReportManagementSettings.GenerationDedupeCooldownMinutes]: 0,\n [AXPReportManagementSettings.GenerationMaxConcurrentPerUser]: 3,\n} as const;\n\n//#endregion\n","const config = {\n i18n: 'report-management',\n module: 'ReportManagement',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'report-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-chart-bar',\n },\n entities: {\n dataSet: {\n name: 'DataSet',\n title: `t(\"dataSet\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"dataSetPlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-default',\n },\n category: {\n name: 'ReportCategory',\n fullName: `${config.module}.ReportCategory`,\n title: `@${config.i18n}:reports.entities.category.title`,\n titlePlural: `@${config.i18n}:reports.entities.category.plural`,\n icon: 'fa-light fa-folder',\n },\n report: {\n name: 'Report',\n fullName: `${config.module}.Report`,\n title: `@${config.i18n}:reports.entities.report.title`,\n titlePlural: `@${config.i18n}:reports.entities.report.plural`,\n icon: 'fa-light fa-file-chart-pie',\n },\n querySnapshotPolicy: {\n name: 'QuerySnapshotPolicy',\n fullName: `${config.module}.QuerySnapshotPolicy`,\n title: `@${config.i18n}:query-snapshots.entities.policy.title`,\n titlePlural: `@${config.i18n}:query-snapshots.entities.policy.plural`,\n icon: 'fa-light fa-sliders',\n },\n querySnapshot: {\n name: 'QuerySnapshot',\n fullName: `${config.module}.QuerySnapshot`,\n title: `@${config.i18n}:query-snapshots.entities.snapshot.title`,\n titlePlural: `@${config.i18n}:query-snapshots.entities.snapshot.plural`,\n icon: 'fa-light fa-camera',\n },\n reportGenerationRequest: {\n name: 'ReportGenerationRequest',\n fullName: `${config.module}.ReportGenerationRequest`,\n title: `@${config.i18n}:report-generation.entities.request.title`,\n titlePlural: `@${config.i18n}:report-generation.entities.request.plural`,\n icon: 'fa-light fa-file-export',\n },\n },\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPWidgetColumnNode } from '@acorex-platform/framework-shared/widget-core';\nimport { AXPQuerySort } from '@acorex-platform/framework-shared/entity';\nimport { AXPActionMenuItem, AXPCategoryEntity, AXPExportOptions, AXPFilterClause, AXPSystemActionType, type AXPMultiLanguageString, type AXPWidgetNode } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Core Report Types and Interfaces ----\n\nexport type AXPReportLayoutType = 'table' | 'chart' | 'cards' | 'custom' | 'pdf';\n\n/**\n * Report Category - Extends AXPCategoryEntity for consistency and performance\n *\n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct reports count (replaces hasReport boolean)\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total reports in tree (optional, for analytics)\n *\n * Performance benefits:\n * - Lazy loading support (childrenCount > 0 shows expand icon)\n * - Report count display (itemsCount shows \"5 reports\" badge)\n * - Efficient queries (no need to query to know if expandable)\n */\nexport interface AXPReportCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasReport\n}\n\n/** How an entity-bound report is surfaced on the host entity UI. */\nexport type AXPReportEntityDisplay = 'action' | 'page' | 'popup';\n\n/**\n * Parameter value on an entity binding:\n * - field path / expression string (e.g. `id`)\n * - `'today'` → local calendar day `{ from, to }`\n * - explicit `{ from, to }` date range\n */\nexport type AXPReportEntityParameterValue = string | { from: string; to: string };\n\n/** Binds a report to a host entity type for Reports page discovery. */\nexport interface AXPReportEntityBinding {\n /** Fully qualified entity type, e.g. `SecurityManagement.User`. */\n entity: string;\n /** Optional list title (i18n key or plain text). Falls back to report title. */\n title?: string;\n /** Optional list description (i18n key or plain text). Falls back to report description. */\n description?: string;\n layoutId?: string;\n /**\n * Where to surface the report. Defaults to `['page']` (Reports side-menu page).\n * `action` / `popup` are retained for data compatibility but are not contributed as entity Actions.\n */\n display?: AXPReportEntityDisplay | AXPReportEntityDisplay[];\n /**\n * Map report parameter path → entity field / expression / date token.\n * Example: `{ userId: 'id', dateRange: 'today' }`\n */\n parameters?: Record<string, AXPReportEntityParameterValue>;\n order?: number;\n}\n\nexport interface AXPReportDefinition {\n id: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n categoryIds: string[];\n parameterGroups: AXPReportParameterGroup[];\n permissions?: string[];\n layouts: AXPReportLayoutDefinition[]; // Changed to support multiple layouts\n defaultLayoutId: string; // Which layout to show by default\n /** Optional host-entity bindings for the entity `reports` plugin. */\n entities?: AXPReportEntityBinding[];\n /** Background / choose / interactive generation options. Omitted = interactive. */\n generation?: AXPReportGenerationOptions;\n}\n\nexport type AXPReportGenerationMode = 'interactive' | 'background' | 'choose';\n\nexport type AXPReportArtifactKind = 'viewer' | 'pdf' | 'excel' | 'csv';\n\nexport type AXPReportFreezeLayouts = 'current' | 'all';\n\nexport type AXPReportGenerationDedupePolicy =\n | 'none'\n | 'in-flight'\n | 'in-flight-or-cooldown';\n\nexport interface AXPReportGenerationDedupeOptions {\n /** Omitted → inherit platform `ReportManagement:Setting:Generation.Dedupe.Policy`. */\n policy?: AXPReportGenerationDedupePolicy;\n /** Omitted → inherit platform `ReportManagement:Setting:Generation.Dedupe.CooldownMinutes`. */\n cooldownMs?: number;\n}\n\nexport interface AXPReportGenerationOptions {\n /** Omitted = interactive (today’s viewer). */\n mode?: AXPReportGenerationMode;\n /** Default `['viewer']` when mode is background or choose. */\n formats?: AXPReportArtifactKind[];\n executionTimeoutMs?: number;\n /** Default 30. Used to set `expiresAt` when the run finishes. */\n retentionDays?: number;\n /** Default `'all'` query layouts. `'current'` freezes only the layout the user ran. */\n freezeLayouts?: AXPReportFreezeLayouts;\n /** Default true. Store layout/title/parameter snapshot in the viewer freeze file. */\n pinDefinition?: boolean;\n /** Demo/local only. Worker waits this long after marking the run running. */\n simulateDelayMs?: number;\n /** Omitted → dedupe behavior comes from platform settings. */\n dedupe?: AXPReportGenerationDedupeOptions;\n /**\n * When true (default for background/choose), completed jobs stay in the footer tray until dismissed.\n * Set false to remove from tray as soon as the job completes.\n */\n keepInTray?: boolean;\n}\n\nexport type AXPReportLayoutAction = AXPActionMenuItem & {\n priority: 'primary' | 'secondary';\n};\n\n/**\n * Layout Definition - Associates a layout with metadata\n */\nexport interface AXPReportLayoutDefinition {\n id: string; // Unique identifier for this layout\n title: AXPMultiLanguageString; // Display name (e.g., \"Table View\", \"Chart View\")\n description?: AXPMultiLanguageString; // Optional description\n icon?: string; // Icon for layout switcher UI\n layout: AXPReportLayout; // The actual layout configuration\n dataSource?: AXPReportDataSource; // Optional layout-specific dataSource (overrides report-level)\n isDefault?: boolean; // Alternative to defaultLayoutId\n actions?: AXPReportLayoutAction[];\n export?: AXPExportOptions;\n}\n\nexport interface AXPReportParameterGroup {\n name: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n parameters: AXPReportParameter[];\n}\n\nexport interface AXPReportParameter {\n path: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n /**\n * Boolean or expression (e.g. `{{ permission.check(\"…\") }}` / `{{ feature.check(\"…\") }}`).\n * Omitted / `true` means visible. Evaluated by the Report Viewer layout renderer.\n */\n visible?: boolean | string;\n widget: AXPWidgetNode;\n}\n\n//#endregion\n\n//#region ---- Data Source Types ----\n\nexport type AXPReportDataSource =\n | AXPQueryDataSource\n | AXPCustomDataSource\n | AXPAggregatedDataSource\n | AXPTransformedDataSource;\n\n/**\n * Query Data Source - Used for executing predefined queries (AXPQuery)\n */\nexport interface AXPQueryDataSource {\n type: 'query';\n name: string; // The registered query name, e.g., 'getProductList'\n description?: string;\n\n inputs?: AXPReportParameterBinding[]; // Maps report parameters to query inputs\n sortFields?: AXPQuerySort[]; // Default sorting applied by the backend\n pagination?: boolean; // Enables paging in result set\n}\n\n/**\n * Custom Data Source - Used for fetching data from custom providers like REST APIs or external services\n */\nexport interface AXPCustomDataSource {\n type: 'custom';\n provider: string; // Example: 'http://api/report' or 'custom:MyHandler'\n description?: string;\n\n inputs?: AXPReportParameterBinding[]; // Maps report parameters to payload\n options?: { [key: string]: any }; // Additional options for the custom handler\n}\n\n/**\n * Parameter Binding - Maps report-level parameters to actual query/command input structure\n */\nexport interface AXPReportParameterBinding {\n parameterKey: string; // Report parameter key, e.g., 'startDate'\n bindTo: string; // Input key in the query/command payload, e.g., 'filters.from'\n}\n\n/**\n * Aggregated Data Source - Used for pre-aggregated data optimized for charts\n */\nexport interface AXPAggregatedDataSource {\n type: 'aggregated';\n baseQuery: string; // Base query to aggregate from\n description?: string;\n\n groupBy: string[]; // Fields to group by\n aggregations: AXPAggregation[]; // Aggregation operations\n inputs?: AXPReportParameterBinding[];\n}\n\n/**\n * Transformed Data Source - Applies transformations to existing data sources\n */\nexport interface AXPTransformedDataSource {\n type: 'transformed';\n baseDataSource: AXPReportDataSource; // Source to transform\n description?: string;\n\n transformations: AXPDataTransformation[]; // List of transformations\n inputs?: AXPReportParameterBinding[];\n}\n\n/**\n * Aggregation operation for aggregated data sources\n */\nexport interface AXPAggregation {\n field: string;\n operation: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'distinct';\n alias?: string; // Output field name\n}\n\n/**\n * Data transformation operation\n */\nexport interface AXPDataTransformation {\n type: 'filter' | 'sort' | 'group' | 'pivot' | 'format';\n config: Record<string, any>; // Transformation-specific configuration\n}\n\n//#endregion\n\n//#region ---- Group By & Drill Down ----\n\n/**\n * Drill-down target for a grouped report row.\n * When reportId is omitted, the current report is used.\n */\nexport interface AXPReportDrillDownConfig {\n reportId?: string;\n layoutId?: string;\n title?: string;\n parameters?: Record<string, string>;\n}\n\n/**\n * Declares how a summary report is grouped and which detail view opens on drill-down.\n * Multiple definitions allow alternative drill paths (e.g. by brand vs by category).\n */\nexport interface AXPReportGroupByDefinition {\n fields: string[];\n displayField?: string;\n /** When true (default), `displayField` renders as a link instead of a row command column. */\n linkDisplay?: boolean;\n title?: string;\n default?: boolean;\n priority?: 'primary' | 'secondary';\n drillDown: AXPReportDrillDownConfig;\n}\n\n//#endregion\n\n//#region ---- Layout Types ----\n\nexport type AXPReportLayout = AXPReportTableLayout | AXPReportChartLayout | AXPReportPdfLayout;\n\n/**\n * Table Layout - Displays data in tabular format\n */\n\nexport interface AXPReportTableLayoutRowAction extends AXPActionMenuItem {\n priority: 'primary' | 'secondary';\n type: AXPSystemActionType | string;\n default?: boolean;\n}\n\nexport interface AXPReportTableLayout {\n type: 'table';\n columns: AXPReportColumn[];\n actions?: AXPReportTableLayoutRowAction[];\n options?: AXPTableOptions;\n groupBy?: AXPReportGroupByDefinition[];\n conditionalFormatting?: AXPConditionalFormatRule[];\n summary?: AXPReportSummaryOptions[];\n header?: AXPReportHeaderFooter;\n footer?: AXPReportHeaderFooter;\n}\n\nexport interface AXPTableOptions {\n pagination?: boolean;\n stickyHeader?: boolean;\n stripedRows?: boolean;\n sorting?: AXPQuerySort[];\n selectable?: {\n mode: 'single' | 'multiple' | 'none';\n };\n}\n\n/**\n * Chart Layout - Displays data in various chart formats\n */\nexport interface AXPReportChartLayout {\n type: 'chart';\n options: AXPReportChartOptions;\n header?: AXPReportHeaderFooter;\n footer?: AXPReportHeaderFooter;\n}\n\nexport interface AXPReportChartOptions {\n chartType: 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'radar' | 'mixed';\n dataMapping: AXPChartDataMapping;\n styling?: AXPChartStyling;\n interactivity?: AXPChartInteractivity;\n}\n\n/**\n * Chart Data Mapping Configuration\n */\nexport interface AXPChartDataMapping {\n // Core fields\n xField: string; // X-axis data field\n yFields: string | string[]; // Y-axis data field(s) for multiple series\n\n // Grouping and categorization\n groupBy?: string; // Group data by this field\n seriesField?: string; // Field to create multiple series\n\n // Special fields for specific chart types\n sizeField?: string; // For bubble charts\n colorField?: string; // For gradient/conditional coloring\n labelField?: string; // Custom label field\n\n // Data aggregation\n aggregation?: {\n method: 'sum' | 'avg' | 'count' | 'min' | 'max';\n field: string;\n };\n}\n\n/**\n * Chart Visual Styling Configuration\n */\nexport interface AXPChartStyling {\n // Theme and colors\n colorScheme?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'custom';\n /** Palette applied by series index when `seriesColors` is not set. */\n customColors?: string[];\n /**\n * Per-series fill colors keyed by chart category id/label\n * (e.g. Online → success, Away → warning, Busy → danger).\n */\n seriesColors?: Record<string, string>;\n\n // Chart appearance\n gridLines?: boolean;\n legend?: {\n show: boolean;\n position: 'top' | 'bottom' | 'left' | 'right';\n };\n\n // Axes configuration\n xAxis?: AXPChartAxisConfig;\n yAxis?: AXPChartAxisConfig;\n\n // Animation\n animation?: {\n enabled: boolean;\n duration?: number;\n };\n\n // Chart-specific styling\n chartSpecific?: {\n // Bar chart options\n bar?: {\n orientation: 'vertical' | 'horizontal';\n mode: 'grouped' | 'stacked';\n barWidth?: number;\n };\n\n // Line chart options\n line?: {\n style: 'straight' | 'curved' | 'stepped';\n showPoints?: boolean;\n tension?: number;\n };\n\n // Area chart options\n area?: {\n mode: 'normal' | 'stacked' | 'percentage';\n opacity?: number;\n };\n\n // Pie/Doughnut options\n pie?: {\n startAngle?: number;\n innerRadius?: number; // For doughnut charts\n showLabels?: boolean;\n };\n };\n}\n\n/**\n * Chart Axis Configuration\n */\nexport interface AXPChartAxisConfig {\n title?: string;\n show?: boolean;\n type?: 'linear' | 'logarithmic' | 'datetime' | 'category';\n min?: number | string;\n max?: number | string;\n format?: string;\n gridLines?: boolean;\n tickInterval?: number;\n}\n\n/**\n * Chart Interactivity Configuration\n */\nexport interface AXPChartInteractivity {\n // Zoom and pan\n zoom?: {\n enabled: boolean;\n mode?: 'x' | 'y' | 'xy';\n };\n\n // Tooltips\n tooltips?: {\n enabled: boolean;\n format?: string;\n showOnHover?: boolean;\n };\n\n // Click events\n onClick?: {\n enabled: boolean;\n action?: 'drill-down' | 'filter' | 'custom';\n };\n\n // Selection\n selection?: {\n enabled: boolean;\n mode?: 'single' | 'multiple';\n };\n\n // Export\n export?: {\n enabled: boolean;\n formats?: ('png' | 'jpg' | 'pdf' | 'svg')[];\n };\n}\n\n/**\n * PDF Layout - Displays PDF documents\n */\nexport interface AXPReportPdfLayout {\n type: 'pdf';\n options?: AXPReportPdfOptions;\n header?: AXPReportHeaderFooter;\n footer?: AXPReportHeaderFooter;\n}\n\n/**\n * PDF Layout Options\n */\nexport interface AXPReportPdfOptions {\n showDownloadButton?: boolean;\n showPrintButton?: boolean;\n showZoomControls?: boolean;\n showFullscreenButton?: boolean;\n defaultZoom?: number; // Percentage (e.g., 100, 150, 200)\n height?: string; // CSS height (e.g., '100%', '600px')\n}\n\n//#region ---- Shared Models ----\n\nexport interface AXPReportColumn {\n field: string;\n title?: string;\n /**\n * Boolean or expression (e.g. `{{ permission.check(\"…\") }}`).\n * Omitted / `true` means visible. Evaluated when building the table view.\n */\n visible?: boolean | string;\n width?: number | 'auto';\n align?: 'left' | 'center' | 'right';\n /** When true, column header supports interactive sort (opt-in). */\n sortable?: boolean;\n /** Pin column to the start or end of the table (definition-only). */\n pin?: 'start' | 'end';\n widget?: AXPWidgetColumnNode;\n /**\n * Optional cell interactivity. When omitted, group-by `displayField` columns\n * can still render as drill links automatically in report table view.\n */\n interactivity?: AXPReportColumnInteractivity;\n}\n\n/**\n * Column cell interaction — link triggers a command with the current row as context.\n * Platform widgets may mirror this via column `options.displayAs: 'link'` in the future.\n */\nexport interface AXPReportColumnInteractivity {\n type: 'link';\n command: {\n name: string;\n options?: Record<string, unknown>;\n };\n}\n\n/** Server-computed report footer totals keyed by column field. */\nexport type AXPReportTableSummaryResult = Record<string, number | null>;\n\nexport interface AXPReportSummaryOptions {\n field: string;\n operation: 'sum' | 'avg' | 'count' | 'min' | 'max';\n displayIn: 'groupFooter' | 'reportFooter';\n}\n\nexport interface AXPConditionalFormatRule {\n field: string;\n condition: '>' | '<' | '=' | '!=' | 'contains';\n value: any;\n style: {\n color?: string;\n backgroundColor?: string;\n fontWeight?: 'normal' | 'bold';\n };\n}\n\nexport interface AXPReportHeaderFooter {\n title?: string;\n logoUrl?: string;\n showDate?: boolean;\n showParameters?: boolean;\n customHtml?: string;\n}\n\n/**\n * Layout switcher options for UI components\n */\nexport interface AXPLayoutSwitcherOption {\n id: string;\n title: AXPMultiLanguageString;\n icon?: string;\n type: AXPReportLayoutType;\n}\n\n/**\n * Runtime layout selection state\n */\nexport interface AXPReportLayoutState {\n reportId: string;\n activeLayoutId: string;\n availableLayouts: AXPLayoutSwitcherOption[];\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPMultiLanguageString, AXPRuntimeQueryResult } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport type {\n AXPReportArtifactKind,\n AXPReportLayoutDefinition,\n} from './report.types';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type AXPReportGenerationStatus = 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';\n\nexport type AXPReportGenerationTrigger = 'manual' | 'schedule' | 'export';\n\nexport interface AXPReportGenerationArtifact {\n kind: AXPReportArtifactKind;\n fileId?: string;\n contentType?: string;\n fileName?: string;\n rowCount?: number;\n byteLength?: number;\n lastError?: string;\n}\n\nexport const REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY = 'ReportManagement:ReportGeneration';\n\n/** In-app inbox correlation id for a completed report generation run. */\nexport function buildReportGenerationNotificationCorrelationId(runId: string): string {\n const normalized = runId.trim();\n return normalized ? `report-generation:${normalized}` : 'report-generation:';\n}\n\nexport interface AXMReportGenerationRequest extends AXPEntityModel<string> {\n reportId: string;\n layoutId?: string;\n layoutIds?: string[];\n parameters?: Record<string, unknown>;\n formats: AXPReportArtifactKind[];\n trigger: AXPReportGenerationTrigger;\n status: AXPReportGenerationStatus;\n requestedBy?: string;\n jobId?: string;\n scheduleId?: string;\n scheduledOccurrence?: string;\n startedAt?: string;\n completedAt?: string;\n durationMs?: number;\n lastError?: string;\n expiresAt?: string;\n sourceRequestId?: string;\n /** When true, skip in-app notification because the report viewer is watching this run inline. */\n suppressNotificationOnComplete?: boolean;\n artifacts: AXPReportGenerationArtifact[];\n}\n\nexport interface AXPReportViewerFreeze {\n version: 1;\n reportId: string;\n generatedAt: string;\n parameters: Record<string, unknown>;\n definition?: {\n title: AXPMultiLanguageString;\n defaultLayoutId: string;\n layouts: AXPReportLayoutDefinition[];\n };\n dataSources: Array<{\n layoutId: string;\n queryName: string;\n result: AXPRuntimeQueryResult;\n }>;\n}\n\nexport interface AXPReportGenerationCreateInput {\n reportId: string;\n layoutId?: string;\n layoutIds?: string[];\n parameters?: Record<string, unknown>;\n formats?: AXPReportArtifactKind[];\n trigger?: AXPReportGenerationTrigger;\n sourceRequestId?: string;\n scheduleId?: string;\n scheduledOccurrence?: string;\n /** Set when the report viewer will poll and show the result inline. */\n suppressNotificationOnComplete?: boolean;\n}\n\nexport interface AXPReportGenerationReleaseInlineWatchInput {\n id: string;\n}\n\nexport interface AXPReportGenerationCreateResult {\n id: string;\n jobId?: string;\n status: AXPReportGenerationStatus;\n /** True when an existing run was returned instead of creating a new row. */\n deduplicated?: boolean;\n}\n\nexport interface AXPReportGenerationExecuteInput {\n reportRequestId: string;\n}\n\nexport interface AXPReportGenerationExecuteResult {\n reportRequestId: string;\n fileIds: string[];\n rowCount?: number;\n}\n\nexport interface AXPReportGenerationGetInput {\n id: string;\n}\n\nexport interface AXPReportGenerationGetViewerFreezeInput {\n id: string;\n}\n\nexport interface AXPReportGenerationListMineInput {\n skip?: number;\n take?: number;\n}\n\n//#endregion\n","//#region ---- Report management runtime keys ----\n\nexport const AXMReportManagementQueryKeys = {\n Category: {\n ListRoot: 'ReportManagement:Category:ListRoot',\n GetById: 'ReportManagement:Category:GetById',\n },\n Report: {\n GetDefinition: 'ReportManagement:Report:GetDefinition',\n },\n ReportGeneration: {\n Get: 'ReportManagement:ReportGeneration:Get',\n ListMine: 'ReportManagement:ReportGeneration:ListMine',\n GetViewerFreeze: 'ReportManagement:ReportGeneration:GetViewerFreeze',\n },\n} as const;\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type AXMQuerySnapshotTriggerOperation = 'create' | 'update' | 'delete';\n\nexport interface AXMQuerySnapshotPolicyTriggers {\n entities: string[];\n operations: AXMQuerySnapshotTriggerOperation[];\n debounceMs: number;\n}\n\nexport interface AXMQuerySnapshotPolicyEntityModel extends AXPEntityModel<string> {\n queryName: string;\n enabled: boolean;\n schedule: string;\n staleAfterMs: number;\n triggers: AXMQuerySnapshotPolicyTriggers;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPRuntimeCollectionData } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type AXMQuerySnapshotStatus = 'ready' | 'stale' | 'failed';\n\nexport type AXMQuerySnapshotPayload =\n | { success: true; kind: 'value'; data: unknown }\n | { success: true; kind: 'object'; data: unknown }\n | { success: true; kind: 'collection'; data: AXPRuntimeCollectionData };\n\nexport interface AXMQuerySnapshotEntityModel extends AXPEntityModel<string> {\n key: string;\n status: AXMQuerySnapshotStatus;\n calculatedAt: string;\n durationMs: number;\n lastError?: string;\n payload: AXMQuerySnapshotPayload;\n}\n\nexport interface AXMRecalculateQuerySnapshotsInput {\n tenantId?: string;\n applicationId?: string;\n queryKeys?: string[];\n /** When true, a full run ignores catch-up skips (manual refresh all). */\n force?: boolean;\n}\n\nexport interface AXMRefreshQuerySnapshotsInput {\n queryKeys?: string[];\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './commands.keys';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\nexport * from './settings.keys';\n\nexport * from './root-config';\nexport * from './report.types';\nexport * from './report-generation.types';\nexport * from './runtime.keys';\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
+ {"version":3,"file":"acorex-platform-module-report-management-client-contracts.mjs","sources":["../../../../libs/modules/report-management/contracts/src/commands.keys.ts","../../../../libs/modules/report-management/contracts/src/features.keys.ts","../../../../libs/modules/report-management/contracts/src/menu.keys.ts","../../../../libs/modules/report-management/contracts/src/permission.keys.ts","../../../../libs/modules/report-management/contracts/src/settings.keys.ts","../../../../libs/modules/report-management/contracts/src/root-config.ts","../../../../libs/modules/report-management/contracts/src/report.types.ts","../../../../libs/modules/report-management/contracts/src/report-generation.types.ts","../../../../libs/modules/report-management/contracts/src/runtime.keys.ts","../../../../libs/modules/report-management/contracts/src/entities/query-snapshot-policy/query-snapshot-policy.types.ts","../../../../libs/modules/report-management/contracts/src/entities/query-snapshot/query-snapshot.types.ts","../../../../libs/modules/report-management/contracts/src/index.ts","../../../../libs/modules/report-management/contracts/src/acorex-platform-module-report-management-client-contracts.ts"],"sourcesContent":["//#region ---- Report management command keys ----\n\nexport const AXMReportManagementCommandKeys = {\n RecalculateQuerySnapshots: 'ReportManagement:RecalculateQuerySnapshots',\n RefreshQuerySnapshots: 'ReportManagement:RefreshQuerySnapshots',\n ReportGeneration: {\n Create: 'ReportManagement:ReportGeneration:Create',\n Execute: 'ReportManagement:ReportGeneration:Execute',\n ReleaseInlineWatch: 'ReportManagement:ReportGeneration:ReleaseInlineWatch',\n },\n} as const;\n\nexport const AXM_RECALCULATE_QUERY_SNAPSHOTS_COMMAND_KEY =\n AXMReportManagementCommandKeys.RecalculateQuerySnapshots;\n\nexport const AXM_REFRESH_QUERY_SNAPSHOTS_COMMAND_KEY =\n AXMReportManagementCommandKeys.RefreshQuerySnapshots;\n\n//#endregion\n","export const AXPReportManagementFeatureKeys = {\n ReportBuilder: 'ReportManagement:Feature:ReportBuilder',\n SavedReports: 'ReportManagement:Feature:SavedReports',\n ScheduledReports: 'ReportManagement:Feature:ScheduledReports',\n BackgroundReports: 'ReportManagement:Feature:BackgroundReports',\n} as const;\n\n","export const AXPReportManagementMenuKeys = {\n Root: 'report-management:menu',\n Reports: 'report-management:menu:reports',\n Categories: 'report-management:menu:categories',\n DataSets: 'report-management:menu:data-sets',\n} as const;\n\n","/**\n * Insights & Reporting capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPInsightsReportingPermissionKeys = {\n Access: 'InsightsReporting:Permission:Access',\n MaintainReports: 'InsightsReporting:Permission:MaintainReports',\n MaintainData: 'InsightsReporting:Permission:MaintainData',\n ViewActivityInsight: 'InsightsReporting:Permission:ViewActivityInsight',\n ManageActivityInsight: 'InsightsReporting:Permission:ManageActivityInsight',\n Setup: 'InsightsReporting:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPInsightsReportingPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n ReportManagement: {\n Management: AXPInsightsReportingPermissionKeys.MaintainReports,\n Report: {\n Management: AXPInsightsReportingPermissionKeys.MaintainReports,\n View: AXPInsightsReportingPermissionKeys.MaintainReports,\n Create: AXPInsightsReportingPermissionKeys.MaintainReports,\n Update: AXPInsightsReportingPermissionKeys.MaintainReports,\n Delete: AXPInsightsReportingPermissionKeys.MaintainReports,\n },\n Category: {\n Management: AXPInsightsReportingPermissionKeys.Setup,\n View: AXPInsightsReportingPermissionKeys.Setup,\n Create: AXPInsightsReportingPermissionKeys.Setup,\n Update: AXPInsightsReportingPermissionKeys.Setup,\n Delete: AXPInsightsReportingPermissionKeys.Setup,\n },\n },\n} as const;\n","//#region ----- Report management settings -----\n\nimport type { AXPReportGenerationDedupePolicy } from './report.types';\n\nexport enum AXPReportManagementSettings {\n GenerationDedupePolicy = 'ReportManagement:Setting:Generation.Dedupe.Policy',\n GenerationDedupeCooldownMinutes = 'ReportManagement:Setting:Generation.Dedupe.CooldownMinutes',\n GenerationMaxConcurrentPerUser = 'ReportManagement:Setting:Generation.MaxConcurrentPerUser',\n}\n\nexport const AXP_REPORT_MANAGEMENT_GENERATION_SETTING_DEFAULTS = {\n [AXPReportManagementSettings.GenerationDedupePolicy]: 'in-flight' as AXPReportGenerationDedupePolicy,\n [AXPReportManagementSettings.GenerationDedupeCooldownMinutes]: 0,\n [AXPReportManagementSettings.GenerationMaxConcurrentPerUser]: 3,\n} as const;\n\n//#endregion\n","const config = {\n i18n: 'report-management',\n module: 'ReportManagement',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'report-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-chart-bar',\n },\n entities: {\n dataSet: {\n name: 'DataSet',\n title: `t(\"dataSet\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"dataSetPlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-default',\n },\n category: {\n name: 'ReportCategory',\n fullName: `${config.module}.ReportCategory`,\n title: `@${config.i18n}:reports.entities.category.title`,\n titlePlural: `@${config.i18n}:reports.entities.category.plural`,\n icon: 'fa-light fa-folder',\n },\n report: {\n name: 'Report',\n fullName: `${config.module}.Report`,\n title: `@${config.i18n}:reports.entities.report.title`,\n titlePlural: `@${config.i18n}:reports.entities.report.plural`,\n icon: 'fa-light fa-file-chart-pie',\n },\n querySnapshotPolicy: {\n name: 'QuerySnapshotPolicy',\n fullName: `${config.module}.QuerySnapshotPolicy`,\n title: `@${config.i18n}:query-snapshots.entities.policy.title`,\n titlePlural: `@${config.i18n}:query-snapshots.entities.policy.plural`,\n icon: 'fa-light fa-sliders',\n },\n querySnapshot: {\n name: 'QuerySnapshot',\n fullName: `${config.module}.QuerySnapshot`,\n title: `@${config.i18n}:query-snapshots.entities.snapshot.title`,\n titlePlural: `@${config.i18n}:query-snapshots.entities.snapshot.plural`,\n icon: 'fa-light fa-camera',\n },\n reportGenerationRequest: {\n name: 'ReportGenerationRequest',\n fullName: `${config.module}.ReportGenerationRequest`,\n title: `@${config.i18n}:report-generation.entities.request.title`,\n titlePlural: `@${config.i18n}:report-generation.entities.request.plural`,\n icon: 'fa-light fa-file-export',\n },\n },\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPWidgetColumnNode } from '@acorex-platform/framework-shared/widget-core';\nimport { AXPQuerySort } from '@acorex-platform/framework-shared/entity';\nimport { AXPActionMenuItem, AXPCategoryEntity, AXPExportOptions, AXPFilterClause, AXPSystemActionType, type AXPMultiLanguageString, type AXPWidgetNode } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Core Report Types and Interfaces ----\n\nexport type AXPReportLayoutType = 'table' | 'chart' | 'cards' | 'custom' | 'pdf';\n\n/**\n * Report Category - Extends AXPCategoryEntity for consistency and performance\n *\n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct reports count (replaces hasReport boolean)\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total reports in tree (optional, for analytics)\n *\n * Performance benefits:\n * - Lazy loading support (childrenCount > 0 shows expand icon)\n * - Report count display (itemsCount shows \"5 reports\" badge)\n * - Efficient queries (no need to query to know if expandable)\n */\nexport interface AXPReportCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasReport\n}\n\n/** How an entity-bound report is surfaced on the host entity UI. */\nexport type AXPReportEntityDisplay = 'action' | 'page' | 'popup';\n\n/**\n * Parameter value on an entity binding:\n * - field path / expression string (e.g. `id`)\n * - `'today'` → local calendar day `{ from, to }`\n * - explicit `{ from, to }` date range\n */\nexport type AXPReportEntityParameterValue = string | { from: string; to: string };\n\n/** Binds a report to a host entity type for Reports page discovery. */\nexport interface AXPReportEntityBinding {\n /** Fully qualified entity type, e.g. `SecurityManagement.User`. */\n entity: string;\n /** Optional list title (i18n key or plain text). Falls back to report title. */\n title?: string;\n /** Optional list description (i18n key or plain text). Falls back to report description. */\n description?: string;\n layoutId?: string;\n /**\n * Where to surface the report. Defaults to `['page']` (Reports side-menu page).\n * `action` / `popup` are retained for data compatibility but are not contributed as entity Actions.\n */\n display?: AXPReportEntityDisplay | AXPReportEntityDisplay[];\n /**\n * Map report parameter path → entity field / expression / date token.\n * Example: `{ userId: 'id', dateRange: 'today' }`\n */\n parameters?: Record<string, AXPReportEntityParameterValue>;\n order?: number;\n}\n\nexport interface AXPReportDefinition {\n id: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n categoryIds: string[];\n parameterGroups: AXPReportParameterGroup[];\n permissions?: string[];\n layouts: AXPReportLayoutDefinition[]; // Changed to support multiple layouts\n defaultLayoutId: string; // Which layout to show by default\n /** Optional host-entity bindings for the entity `reports` plugin. */\n entities?: AXPReportEntityBinding[];\n /** Background / choose / interactive generation options. Omitted = interactive. */\n generation?: AXPReportGenerationOptions;\n}\n\nexport type AXPReportGenerationMode = 'interactive' | 'background' | 'choose';\n\nexport type AXPReportArtifactKind = 'viewer' | 'pdf' | 'excel' | 'csv';\n\nexport type AXPReportFreezeLayouts = 'current' | 'all';\n\nexport type AXPReportGenerationDedupePolicy =\n | 'none'\n | 'in-flight'\n | 'in-flight-or-cooldown';\n\nexport interface AXPReportGenerationDedupeOptions {\n /** Omitted → inherit platform `ReportManagement:Setting:Generation.Dedupe.Policy`. */\n policy?: AXPReportGenerationDedupePolicy;\n /** Omitted → inherit platform `ReportManagement:Setting:Generation.Dedupe.CooldownMinutes`. */\n cooldownMs?: number;\n}\n\nexport interface AXPReportGenerationOptions {\n /** Omitted = interactive (today’s viewer). */\n mode?: AXPReportGenerationMode;\n /** Default `['viewer']` when mode is background or choose. */\n formats?: AXPReportArtifactKind[];\n executionTimeoutMs?: number;\n /** Default 30. Used to set `expiresAt` when the run finishes. */\n retentionDays?: number;\n /** Default `'all'` query layouts. `'current'` freezes only the layout the user ran. */\n freezeLayouts?: AXPReportFreezeLayouts;\n /** Default true. Store layout/title/parameter snapshot in the viewer freeze file. */\n pinDefinition?: boolean;\n /** Demo/local only. Worker waits this long after marking the run running. */\n simulateDelayMs?: number;\n /** Omitted → dedupe behavior comes from platform settings. */\n dedupe?: AXPReportGenerationDedupeOptions;\n /**\n * When true (default for background/choose), completed jobs stay in the footer tray until dismissed.\n * Set false to remove from tray as soon as the job completes.\n */\n keepInTray?: boolean;\n}\n\nexport type AXPReportLayoutAction = AXPActionMenuItem & {\n priority: 'primary' | 'secondary';\n};\n\n/**\n * Layout Definition - Associates a layout with metadata\n */\nexport interface AXPReportLayoutDefinition {\n id: string; // Unique identifier for this layout\n title: AXPMultiLanguageString; // Display name (e.g., \"Table View\", \"Chart View\")\n description?: AXPMultiLanguageString; // Optional description\n icon?: string; // Icon for layout switcher UI\n layout: AXPReportLayout; // The actual layout configuration\n dataSource?: AXPReportDataSource; // Optional layout-specific dataSource (overrides report-level)\n isDefault?: boolean; // Alternative to defaultLayoutId\n actions?: AXPReportLayoutAction[];\n export?: AXPExportOptions;\n}\n\nexport interface AXPReportParameterGroup {\n name: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n parameters: AXPReportParameter[];\n}\n\nexport interface AXPReportParameter {\n path: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n /**\n * Boolean or expression (e.g. `{{ permission.check(\"…\") }}` / `{{ feature.check(\"…\") }}`).\n * Omitted / `true` means visible. Evaluated by the Report Viewer layout renderer.\n */\n visible?: boolean | string;\n widget: AXPWidgetNode;\n}\n\n//#endregion\n\n//#region ---- Data Source Types ----\n\nexport type AXPReportDataSource =\n | AXPQueryDataSource\n | AXPCustomDataSource\n | AXPAggregatedDataSource\n | AXPTransformedDataSource;\n\n/**\n * Query Data Source - Used for executing predefined queries (AXPQuery)\n */\nexport interface AXPQueryDataSource {\n type: 'query';\n name: string; // The registered query name, e.g., 'getProductList'\n description?: string;\n\n inputs?: AXPReportParameterBinding[]; // Maps report parameters to query inputs\n sortFields?: AXPQuerySort[]; // Default sorting applied by the backend\n pagination?: boolean; // Enables paging in result set\n}\n\n/**\n * Custom Data Source - Used for fetching data from custom providers like REST APIs or external services\n */\nexport interface AXPCustomDataSource {\n type: 'custom';\n provider: string; // Example: 'http://api/report' or 'custom:MyHandler'\n description?: string;\n\n inputs?: AXPReportParameterBinding[]; // Maps report parameters to payload\n options?: { [key: string]: any }; // Additional options for the custom handler\n}\n\n/**\n * Parameter Binding - Maps report-level parameters to actual query/command input structure\n */\nexport interface AXPReportParameterBinding {\n parameterKey: string; // Report parameter key, e.g., 'startDate'\n bindTo: string; // Input key in the query/command payload, e.g., 'filters.from'\n}\n\n/**\n * Aggregated Data Source - Used for pre-aggregated data optimized for charts\n */\nexport interface AXPAggregatedDataSource {\n type: 'aggregated';\n baseQuery: string; // Base query to aggregate from\n description?: string;\n\n groupBy: string[]; // Fields to group by\n aggregations: AXPAggregation[]; // Aggregation operations\n inputs?: AXPReportParameterBinding[];\n}\n\n/**\n * Transformed Data Source - Applies transformations to existing data sources\n */\nexport interface AXPTransformedDataSource {\n type: 'transformed';\n baseDataSource: AXPReportDataSource; // Source to transform\n description?: string;\n\n transformations: AXPDataTransformation[]; // List of transformations\n inputs?: AXPReportParameterBinding[];\n}\n\n/**\n * Aggregation operation for aggregated data sources\n */\nexport interface AXPAggregation {\n field: string;\n operation: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'distinct';\n alias?: string; // Output field name\n}\n\n/**\n * Data transformation operation\n */\nexport interface AXPDataTransformation {\n type: 'filter' | 'sort' | 'group' | 'pivot' | 'format';\n config: Record<string, any>; // Transformation-specific configuration\n}\n\n//#endregion\n\n//#region ---- Group By & Drill Down ----\n\n/**\n * Drill-down target for a grouped report row.\n * When reportId is omitted, the current report is used.\n */\nexport interface AXPReportDrillDownConfig {\n reportId?: string;\n layoutId?: string;\n title?: string;\n parameters?: Record<string, string>;\n}\n\n/**\n * Declares how a summary report is grouped and which detail view opens on drill-down.\n * Multiple definitions allow alternative drill paths (e.g. by brand vs by category).\n */\nexport interface AXPReportGroupByDefinition {\n fields: string[];\n displayField?: string;\n /** When true (default), `displayField` renders as a link instead of a row command column. */\n linkDisplay?: boolean;\n title?: string;\n default?: boolean;\n priority?: 'primary' | 'secondary';\n drillDown: AXPReportDrillDownConfig;\n}\n\n//#endregion\n\n//#region ---- Layout Types ----\n\nexport type AXPReportLayout = AXPReportTableLayout | AXPReportChartLayout | AXPReportPdfLayout;\n\n/**\n * Table Layout - Displays data in tabular format\n */\n\nexport interface AXPReportTableLayoutRowAction extends AXPActionMenuItem {\n priority: 'primary' | 'secondary';\n type: AXPSystemActionType | string;\n default?: boolean;\n}\n\nexport interface AXPReportTableLayout {\n type: 'table';\n columns: AXPReportColumn[];\n actions?: AXPReportTableLayoutRowAction[];\n options?: AXPTableOptions;\n groupBy?: AXPReportGroupByDefinition[];\n conditionalFormatting?: AXPConditionalFormatRule[];\n summary?: AXPReportSummaryOptions[];\n header?: AXPReportHeaderFooter;\n footer?: AXPReportHeaderFooter;\n}\n\nexport interface AXPTableOptions {\n pagination?: boolean;\n stickyHeader?: boolean;\n stripedRows?: boolean;\n sorting?: AXPQuerySort[];\n selectable?: {\n mode: 'single' | 'multiple' | 'none';\n };\n}\n\n/**\n * Chart Layout - Displays data in various chart formats\n */\nexport interface AXPReportChartLayout {\n type: 'chart';\n options: AXPReportChartOptions;\n header?: AXPReportHeaderFooter;\n footer?: AXPReportHeaderFooter;\n}\n\nexport interface AXPReportChartOptions {\n chartType: 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'radar' | 'mixed';\n dataMapping: AXPChartDataMapping;\n styling?: AXPChartStyling;\n interactivity?: AXPChartInteractivity;\n}\n\n/**\n * Chart Data Mapping Configuration\n */\nexport interface AXPChartDataMapping {\n // Core fields\n xField: string; // X-axis data field\n yFields: string | string[]; // Y-axis data field(s) for multiple series\n\n // Grouping and categorization\n groupBy?: string; // Group data by this field\n seriesField?: string; // Field to create multiple series\n\n // Special fields for specific chart types\n sizeField?: string; // For bubble charts\n colorField?: string; // For gradient/conditional coloring\n labelField?: string; // Custom label field\n\n // Data aggregation\n aggregation?: {\n method: 'sum' | 'avg' | 'count' | 'min' | 'max';\n field: string;\n };\n}\n\n/**\n * Chart Visual Styling Configuration\n */\nexport interface AXPChartStyling {\n // Theme and colors\n colorScheme?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'custom';\n /** Palette applied by series index when `seriesColors` is not set. */\n customColors?: string[];\n /**\n * Per-series fill colors keyed by chart category id/label\n * (e.g. Online → success, Away → warning, Busy → danger).\n */\n seriesColors?: Record<string, string>;\n\n // Chart appearance\n gridLines?: boolean;\n legend?: {\n show: boolean;\n position: 'top' | 'bottom' | 'left' | 'right';\n };\n\n // Axes configuration\n xAxis?: AXPChartAxisConfig;\n yAxis?: AXPChartAxisConfig;\n\n // Animation\n animation?: {\n enabled: boolean;\n duration?: number;\n };\n\n // Chart-specific styling\n chartSpecific?: {\n // Bar chart options\n bar?: {\n orientation: 'vertical' | 'horizontal';\n mode: 'grouped' | 'stacked';\n barWidth?: number;\n };\n\n // Line chart options\n line?: {\n style: 'straight' | 'curved' | 'stepped';\n showPoints?: boolean;\n tension?: number;\n };\n\n // Area chart options\n area?: {\n mode: 'normal' | 'stacked' | 'percentage';\n opacity?: number;\n };\n\n // Pie/Doughnut options\n pie?: {\n startAngle?: number;\n innerRadius?: number; // For doughnut charts\n showLabels?: boolean;\n };\n };\n}\n\n/**\n * Chart Axis Configuration\n */\nexport interface AXPChartAxisConfig {\n title?: string;\n show?: boolean;\n type?: 'linear' | 'logarithmic' | 'datetime' | 'category';\n min?: number | string;\n max?: number | string;\n format?: string;\n gridLines?: boolean;\n tickInterval?: number;\n}\n\n/**\n * Chart Interactivity Configuration\n */\nexport interface AXPChartInteractivity {\n // Zoom and pan\n zoom?: {\n enabled: boolean;\n mode?: 'x' | 'y' | 'xy';\n };\n\n // Tooltips\n tooltips?: {\n enabled: boolean;\n format?: string;\n showOnHover?: boolean;\n };\n\n // Click events\n onClick?: {\n enabled: boolean;\n action?: 'drill-down' | 'filter' | 'custom';\n };\n\n // Selection\n selection?: {\n enabled: boolean;\n mode?: 'single' | 'multiple';\n };\n\n // Export\n export?: {\n enabled: boolean;\n formats?: ('png' | 'jpg' | 'pdf' | 'svg')[];\n };\n}\n\n/**\n * PDF Layout - Displays PDF documents\n */\nexport interface AXPReportPdfLayout {\n type: 'pdf';\n options?: AXPReportPdfOptions;\n header?: AXPReportHeaderFooter;\n footer?: AXPReportHeaderFooter;\n}\n\n/**\n * PDF Layout Options\n */\nexport interface AXPReportPdfOptions {\n showDownloadButton?: boolean;\n showPrintButton?: boolean;\n showZoomControls?: boolean;\n showFullscreenButton?: boolean;\n defaultZoom?: number; // Percentage (e.g., 100, 150, 200)\n height?: string; // CSS height (e.g., '100%', '600px')\n}\n\n//#region ---- Shared Models ----\n\nexport interface AXPReportColumn {\n field: string;\n title?: string;\n /**\n * Boolean or expression (e.g. `{{ permission.check(\"…\") }}`).\n * Omitted / `true` means visible. Evaluated when building the table view.\n */\n visible?: boolean | string;\n width?: number | 'auto';\n align?: 'left' | 'center' | 'right';\n /** When true, column header supports interactive sort (opt-in). */\n sortable?: boolean;\n /** Pin column to the start or end of the table (definition-only). */\n pin?: 'start' | 'end';\n widget?: AXPWidgetColumnNode;\n /**\n * Optional cell interactivity. When omitted, group-by `displayField` columns\n * can still render as drill links automatically in report table view.\n */\n interactivity?: AXPReportColumnInteractivity;\n}\n\n/**\n * Column cell interaction — link triggers a command with the current row as context.\n * Platform widgets may mirror this via column `options.displayAs: 'link'` in the future.\n */\nexport interface AXPReportColumnInteractivity {\n type: 'link';\n command: {\n name: string;\n options?: Record<string, unknown>;\n };\n}\n\n/** Server-computed report footer totals keyed by column field. */\nexport type AXPReportTableSummaryResult = Record<string, number | null>;\n\nexport interface AXPReportSummaryOptions {\n field: string;\n operation: 'sum' | 'avg' | 'count' | 'min' | 'max';\n displayIn: 'groupFooter' | 'reportFooter';\n}\n\nexport interface AXPConditionalFormatRule {\n field: string;\n condition: '>' | '<' | '=' | '!=' | 'contains';\n value: any;\n style: {\n color?: string;\n backgroundColor?: string;\n fontWeight?: 'normal' | 'bold';\n };\n}\n\nexport interface AXPReportHeaderFooter {\n title?: string;\n logoUrl?: string;\n showDate?: boolean;\n showParameters?: boolean;\n customHtml?: string;\n}\n\n/**\n * Layout switcher options for UI components\n */\nexport interface AXPLayoutSwitcherOption {\n id: string;\n title: AXPMultiLanguageString;\n icon?: string;\n type: AXPReportLayoutType;\n}\n\n/**\n * Runtime layout selection state\n */\nexport interface AXPReportLayoutState {\n reportId: string;\n activeLayoutId: string;\n availableLayouts: AXPLayoutSwitcherOption[];\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPMultiLanguageString, AXPRuntimeQueryResult } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\nimport type {\n AXPReportArtifactKind,\n AXPReportLayoutDefinition,\n} from './report.types';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type AXPReportGenerationStatus = 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';\n\nexport type AXPReportGenerationTrigger = 'manual' | 'schedule' | 'export';\n\nexport interface AXPReportGenerationArtifact {\n kind: AXPReportArtifactKind;\n fileId?: string;\n contentType?: string;\n fileName?: string;\n rowCount?: number;\n byteLength?: number;\n lastError?: string;\n}\n\nexport const REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY = 'ReportManagement:ReportGeneration';\n\nexport const REPORT_GENERATION_OPEN_FROZEN_COMMAND = 'ReportManagement.Report:OpenViewer';\n\n/** In-app inbox correlation id for a completed report generation run. */\nexport function buildReportGenerationNotificationCorrelationId(runId: string): string {\n const normalized = runId.trim();\n return normalized ? `report-generation:${normalized}` : 'report-generation:';\n}\n\nexport interface AXMReportGenerationRequest extends AXPEntityModel<string> {\n reportId: string;\n layoutId?: string;\n layoutIds?: string[];\n parameters?: Record<string, unknown>;\n formats: AXPReportArtifactKind[];\n trigger: AXPReportGenerationTrigger;\n status: AXPReportGenerationStatus;\n requestedBy?: string;\n jobId?: string;\n scheduleId?: string;\n scheduledOccurrence?: string;\n startedAt?: string;\n completedAt?: string;\n durationMs?: number;\n lastError?: string;\n expiresAt?: string;\n sourceRequestId?: string;\n /** When true, skip in-app notification because the report viewer is watching this run inline. */\n suppressNotificationOnComplete?: boolean;\n artifacts: AXPReportGenerationArtifact[];\n}\n\nexport interface AXPReportViewerFreeze {\n version: 1;\n reportId: string;\n generatedAt: string;\n parameters: Record<string, unknown>;\n definition?: {\n title: AXPMultiLanguageString;\n defaultLayoutId: string;\n layouts: AXPReportLayoutDefinition[];\n };\n dataSources: Array<{\n layoutId: string;\n queryName: string;\n result: AXPRuntimeQueryResult;\n }>;\n}\n\nexport interface AXPReportGenerationCreateInput {\n reportId: string;\n layoutId?: string;\n layoutIds?: string[];\n parameters?: Record<string, unknown>;\n formats?: AXPReportArtifactKind[];\n trigger?: AXPReportGenerationTrigger;\n sourceRequestId?: string;\n scheduleId?: string;\n scheduledOccurrence?: string;\n /** Set when the report viewer will poll and show the result inline. */\n suppressNotificationOnComplete?: boolean;\n}\n\nexport interface AXPReportGenerationReleaseInlineWatchInput {\n id: string;\n}\n\nexport interface AXPReportGenerationCreateResult {\n id: string;\n jobId?: string;\n status: AXPReportGenerationStatus;\n /** True when an existing run was returned instead of creating a new row. */\n deduplicated?: boolean;\n}\n\nexport interface AXPReportGenerationExecuteInput {\n reportRequestId: string;\n}\n\nexport interface AXPReportGenerationExecuteResult {\n reportRequestId: string;\n fileIds: string[];\n rowCount?: number;\n}\n\nexport interface AXPReportGenerationGetInput {\n id: string;\n}\n\nexport interface AXPReportGenerationGetViewerFreezeInput {\n id: string;\n}\n\nexport interface AXPReportGenerationListMineInput {\n skip?: number;\n take?: number;\n}\n\n//#endregion\n","//#region ---- Report management runtime keys ----\n\nexport const AXMReportManagementQueryKeys = {\n Category: {\n ListRoot: 'ReportManagement:Category:ListRoot',\n GetById: 'ReportManagement:Category:GetById',\n },\n Report: {\n GetDefinition: 'ReportManagement:Report:GetDefinition',\n },\n ReportGeneration: {\n Get: 'ReportManagement:ReportGeneration:Get',\n ListMine: 'ReportManagement:ReportGeneration:ListMine',\n GetViewerFreeze: 'ReportManagement:ReportGeneration:GetViewerFreeze',\n },\n} as const;\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type AXMQuerySnapshotTriggerOperation = 'create' | 'update' | 'delete';\n\nexport interface AXMQuerySnapshotPolicyTriggers {\n entities: string[];\n operations: AXMQuerySnapshotTriggerOperation[];\n debounceMs: number;\n}\n\nexport interface AXMQuerySnapshotPolicyEntityModel extends AXPEntityModel<string> {\n queryName: string;\n enabled: boolean;\n schedule: string;\n staleAfterMs: number;\n triggers: AXMQuerySnapshotPolicyTriggers;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPRuntimeCollectionData } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type AXMQuerySnapshotStatus = 'ready' | 'stale' | 'failed';\n\nexport type AXMQuerySnapshotPayload =\n | { success: true; kind: 'value'; data: unknown }\n | { success: true; kind: 'object'; data: unknown }\n | { success: true; kind: 'collection'; data: AXPRuntimeCollectionData };\n\nexport interface AXMQuerySnapshotEntityModel extends AXPEntityModel<string> {\n key: string;\n status: AXMQuerySnapshotStatus;\n calculatedAt: string;\n durationMs: number;\n lastError?: string;\n payload: AXMQuerySnapshotPayload;\n}\n\nexport interface AXMRecalculateQuerySnapshotsInput {\n tenantId?: string;\n applicationId?: string;\n queryKeys?: string[];\n /** When true, a full run ignores catch-up skips (manual refresh all). */\n force?: boolean;\n}\n\nexport interface AXMRefreshQuerySnapshotsInput {\n queryKeys?: string[];\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './commands.keys';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\nexport * from './settings.keys';\n\nexport * from './root-config';\nexport * from './report.types';\nexport * from './report-generation.types';\nexport * from './runtime.keys';\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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"}
@@ -0,0 +1,33 @@
1
+ import { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';
2
+ import { RootConfig } from '@acorex-platform/module-report-management-client/contracts';
3
+ export { reportManagementLocalEntityCatalog } from '@acorex-platform/module-report-management-client/contracts/entity-catalog';
4
+
5
+ //#region ----- Imports -----
6
+ //#endregion
7
+ //#region ----- Provide local entities -----
8
+ /**
9
+ * Registers report-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 provideReportManagementLocalEntities() {
15
+ return provideLocalEntityCatalog({
16
+ moduleName: RootConfig.module.name,
17
+ loaders: {
18
+ [RootConfig.entities.querySnapshot.name]: () => import('@acorex-platform/module-report-management-client/contracts/entities/query-snapshot').then((m) => m.querySnapshotEntityFactory()),
19
+ [RootConfig.entities.querySnapshotPolicy.name]: () => import('@acorex-platform/module-report-management-client/contracts/entities/query-snapshot-policy').then((m) => m.querySnapshotPolicyEntityFactory()),
20
+ [RootConfig.entities.report.name]: () => import('@acorex-platform/module-report-management-client/contracts/entities/report').then((m) => m.reportEntityFactory()),
21
+ [RootConfig.entities.category.name]: () => import('@acorex-platform/module-report-management-client/contracts/entities/report-category').then((m) => m.reportCategoryEntityFactory()),
22
+ [RootConfig.entities.reportGenerationRequest.name]: () => import('@acorex-platform/module-report-management-client/contracts/entities/report-generation-request').then((m) => m.reportGenerationRequestEntityFactory()),
23
+ },
24
+ });
25
+ }
26
+ //#endregion
27
+
28
+ /**
29
+ * Generated bundle index. Do not edit.
30
+ */
31
+
32
+ export { provideReportManagementLocalEntities };
33
+ //# sourceMappingURL=acorex-platform-module-report-management-client-local-entities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-report-management-client-local-entities.mjs","sources":["../../../../libs/modules/report-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/report-management/client/src/lib/acorex-platform-module-report-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-report-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers report-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 provideReportManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.querySnapshot.name]: () =>\n import('@acorex-platform/module-report-management-client/contracts/entities/query-snapshot').then((m) => m.querySnapshotEntityFactory()),\n [RootConfig.entities.querySnapshotPolicy.name]: () =>\n import('@acorex-platform/module-report-management-client/contracts/entities/query-snapshot-policy').then((m) => m.querySnapshotPolicyEntityFactory()),\n [RootConfig.entities.report.name]: () =>\n import('@acorex-platform/module-report-management-client/contracts/entities/report').then((m) => m.reportEntityFactory()),\n [RootConfig.entities.category.name]: () =>\n import('@acorex-platform/module-report-management-client/contracts/entities/report-category').then((m) => m.reportCategoryEntityFactory()),\n [RootConfig.entities.reportGenerationRequest.name]: () =>\n import('@acorex-platform/module-report-management-client/contracts/entities/report-generation-request').then((m) => m.reportGenerationRequestEntityFactory()),\n },\n });\n}\n\nexport { reportManagementLocalEntityCatalog } from '@acorex-platform/module-report-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,oCAAoC,GAAA;AAClD,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,aAAa,CAAC,IAAI,GAAG,MACxC,OAAO,oFAAoF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC;AAC1I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,GAAG,MAC9C,OAAO,2FAA2F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,EAAE,CAAC;AACvJ,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,MACjC,OAAO,4EAA4E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC3H,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,MACnC,OAAO,qFAAqF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,CAAC;AAC5I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,GAAG,MAClD,OAAO,+FAA+F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAChK,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;ACnCA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-report-management-client",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
@@ -22,6 +22,34 @@
22
22
  "./contracts": {
23
23
  "types": "./types/acorex-platform-module-report-management-client-contracts.d.ts",
24
24
  "default": "./fesm2022/acorex-platform-module-report-management-client-contracts.mjs"
25
+ },
26
+ "./contracts/entities/query-snapshot": {
27
+ "types": "./types/acorex-platform-module-report-management-client-contracts-entities-query-snapshot.d.ts",
28
+ "default": "./fesm2022/acorex-platform-module-report-management-client-contracts-entities-query-snapshot.mjs"
29
+ },
30
+ "./contracts/entities/query-snapshot-policy": {
31
+ "types": "./types/acorex-platform-module-report-management-client-contracts-entities-query-snapshot-policy.d.ts",
32
+ "default": "./fesm2022/acorex-platform-module-report-management-client-contracts-entities-query-snapshot-policy.mjs"
33
+ },
34
+ "./contracts/entities/report": {
35
+ "types": "./types/acorex-platform-module-report-management-client-contracts-entities-report.d.ts",
36
+ "default": "./fesm2022/acorex-platform-module-report-management-client-contracts-entities-report.mjs"
37
+ },
38
+ "./contracts/entities/report-category": {
39
+ "types": "./types/acorex-platform-module-report-management-client-contracts-entities-report-category.d.ts",
40
+ "default": "./fesm2022/acorex-platform-module-report-management-client-contracts-entities-report-category.mjs"
41
+ },
42
+ "./contracts/entities/report-generation-request": {
43
+ "types": "./types/acorex-platform-module-report-management-client-contracts-entities-report-generation-request.d.ts",
44
+ "default": "./fesm2022/acorex-platform-module-report-management-client-contracts-entities-report-generation-request.mjs"
45
+ },
46
+ "./contracts/entity-catalog": {
47
+ "types": "./types/acorex-platform-module-report-management-client-contracts-entity-catalog.d.ts",
48
+ "default": "./fesm2022/acorex-platform-module-report-management-client-contracts-entity-catalog.mjs"
49
+ },
50
+ "./local-entities": {
51
+ "types": "./types/acorex-platform-module-report-management-client-local-entities.d.ts",
52
+ "default": "./fesm2022/acorex-platform-module-report-management-client-local-entities.mjs"
25
53
  }
26
54
  },
27
55
  "type": "module"
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function querySnapshotPolicyEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { querySnapshotPolicyEntityFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function querySnapshotEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { querySnapshotEntityFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function reportCategoryEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { reportCategoryEntityFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function reportGenerationRequestEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { reportGenerationRequestEntityFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function reportEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { reportEntityFactory };
@@ -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 reportManagementLocalEntityCatalog: AXPLocalEntityCatalog;
9
+
10
+ export { reportManagementLocalEntityCatalog };
@@ -606,6 +606,7 @@ interface AXPReportGenerationArtifact {
606
606
  lastError?: string;
607
607
  }
608
608
  declare const REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY = "ReportManagement:ReportGeneration";
609
+ declare const REPORT_GENERATION_OPEN_FROZEN_COMMAND = "ReportManagement.Report:OpenViewer";
609
610
  /** In-app inbox correlation id for a completed report generation run. */
610
611
  declare function buildReportGenerationNotificationCorrelationId(runId: string): string;
611
612
  interface AXMReportGenerationRequest extends AXPEntityModel<string> {
@@ -750,5 +751,5 @@ interface AXMRefreshQuerySnapshotsInput {
750
751
  queryKeys?: string[];
751
752
  }
752
753
 
753
- export { AXMPermissionsKeys, AXMReportManagementCommandKeys, AXMReportManagementQueryKeys, AXM_RECALCULATE_QUERY_SNAPSHOTS_COMMAND_KEY, AXM_REFRESH_QUERY_SNAPSHOTS_COMMAND_KEY, AXPInsightsReportingPermissionKeys, AXPReportManagementFeatureKeys, AXPReportManagementMenuKeys, AXPReportManagementSettings, AXP_REPORT_MANAGEMENT_GENERATION_SETTING_DEFAULTS, REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY, RootConfig, buildReportGenerationNotificationCorrelationId };
754
+ export { AXMPermissionsKeys, AXMReportManagementCommandKeys, AXMReportManagementQueryKeys, AXM_RECALCULATE_QUERY_SNAPSHOTS_COMMAND_KEY, AXM_REFRESH_QUERY_SNAPSHOTS_COMMAND_KEY, AXPInsightsReportingPermissionKeys, AXPReportManagementFeatureKeys, AXPReportManagementMenuKeys, AXPReportManagementSettings, AXP_REPORT_MANAGEMENT_GENERATION_SETTING_DEFAULTS, REPORT_GENERATION_NOTIFICATION_DEFINITION_KEY, REPORT_GENERATION_OPEN_FROZEN_COMMAND, RootConfig, buildReportGenerationNotificationCorrelationId };
754
755
  export type { AXMQuerySnapshotEntityModel, AXMQuerySnapshotPayload, AXMQuerySnapshotPolicyEntityModel, AXMQuerySnapshotPolicyTriggers, AXMQuerySnapshotStatus, AXMQuerySnapshotTriggerOperation, AXMRecalculateQuerySnapshotsInput, AXMRefreshQuerySnapshotsInput, AXMReportGenerationRequest, AXPAggregatedDataSource, AXPAggregation, AXPChartAxisConfig, AXPChartDataMapping, AXPChartInteractivity, AXPChartStyling, AXPConditionalFormatRule, AXPCustomDataSource, AXPDataTransformation, AXPLayoutSwitcherOption, AXPQueryDataSource, AXPReportArtifactKind, AXPReportCategory, AXPReportChartLayout, AXPReportChartOptions, AXPReportColumn, AXPReportColumnInteractivity, AXPReportDataSource, AXPReportDefinition, AXPReportDrillDownConfig, AXPReportEntityBinding, AXPReportEntityDisplay, AXPReportEntityParameterValue, AXPReportFreezeLayouts, AXPReportGenerationArtifact, AXPReportGenerationCreateInput, AXPReportGenerationCreateResult, AXPReportGenerationDedupeOptions, AXPReportGenerationDedupePolicy, AXPReportGenerationExecuteInput, AXPReportGenerationExecuteResult, AXPReportGenerationGetInput, AXPReportGenerationGetViewerFreezeInput, AXPReportGenerationListMineInput, AXPReportGenerationMode, AXPReportGenerationOptions, AXPReportGenerationReleaseInlineWatchInput, AXPReportGenerationStatus, AXPReportGenerationTrigger, AXPReportGroupByDefinition, AXPReportHeaderFooter, AXPReportLayout, AXPReportLayoutAction, AXPReportLayoutDefinition, AXPReportLayoutState, AXPReportLayoutType, AXPReportParameter, AXPReportParameterBinding, AXPReportParameterGroup, AXPReportPdfLayout, AXPReportPdfOptions, AXPReportSummaryOptions, AXPReportTableLayout, AXPReportTableLayoutRowAction, AXPReportTableSummaryResult, AXPReportViewerFreeze, AXPTableOptions, AXPTransformedDataSource };
@@ -0,0 +1,12 @@
1
+ import * as _angular_core from '@angular/core';
2
+ export { reportManagementLocalEntityCatalog } from '@acorex-platform/module-report-management-client/contracts/entity-catalog';
3
+
4
+ /**
5
+ * Registers report-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 provideReportManagementLocalEntities(): _angular_core.EnvironmentProviders;
11
+
12
+ export { provideReportManagementLocalEntities };