@acorex/modules 20.0.12 → 20.0.13

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 (46) hide show
  1. package/calendar-management/README.md +271 -0
  2. package/calendar-management/index.d.ts +156 -0
  3. package/contact-management/README.md +150 -0
  4. package/contact-management/index.d.ts +15 -4
  5. package/fesm2022/acorex-modules-calendar-management.mjs +1509 -0
  6. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -0
  7. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs +128 -0
  8. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +1 -0
  9. package/fesm2022/acorex-modules-common.mjs +2 -2
  10. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs +2548 -0
  11. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +1 -0
  12. package/fesm2022/{acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs → acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs} +65 -38
  13. package/fesm2022/acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map +1 -0
  14. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs → acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs} +49 -95
  15. package/fesm2022/acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map +1 -0
  16. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs → acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs} +67 -69
  17. package/fesm2022/acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs.map +1 -0
  18. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs → acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs} +34 -63
  19. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs → acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs} +67 -40
  21. package/fesm2022/acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map +1 -0
  22. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs +680 -0
  23. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs.map +1 -0
  24. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs +1062 -0
  25. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs.map +1 -0
  26. package/fesm2022/acorex-modules-contact-management.mjs +1 -2331
  27. package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
  28. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +1 -1
  29. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs} +4 -4
  30. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs.map → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs → acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs} +41 -24
  32. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs.map +1 -0
  33. package/fesm2022/acorex-modules-report-management.mjs +670 -8
  34. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  35. package/fesm2022/acorex-modules-security-management.mjs +4 -2
  36. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  37. package/package.json +9 -5
  38. package/report-management/index.d.ts +303 -5
  39. package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs +0 -128
  40. package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs.map +0 -1
  41. package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs.map +0 -1
  42. package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs.map +0 -1
  43. package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs.map +0 -1
  44. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs.map +0 -1
  45. package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs.map +0 -1
  46. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs.map +0 -1
@@ -1,20 +1,37 @@
1
1
  import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
2
- import { AXP_REPORT_DEFINITION_PROVIDER, AXP_REPORT_CATEGORY_PROVIDER, createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPLockService, AXP_MENU_PROVIDER } from '@acorex/platform/common';
2
+ import { AXP_REPORT_DEFINITION_PROVIDER, AXP_REPORT_CATEGORY_PROVIDER, createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPLockService, AXP_MENU_PROVIDER, AXPReportDefinitionService } from '@acorex/platform/common';
3
3
  import { AXPDomainModule, provideEntity } from '@acorex/platform/domain';
4
4
  import { AXPQueryService, provideCommandSetups } from '@acorex/platform/runtime';
5
5
  import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
6
6
  import * as i0 from '@angular/core';
7
- import { inject, Injectable, NgModule } from '@angular/core';
8
- import { ROUTES } from '@angular/router';
7
+ import { inject, Injectable, NgModule, computed, input, output, ChangeDetectionStrategy, Component, viewChild, ViewEncapsulation } from '@angular/core';
8
+ import { ROUTES, ActivatedRoute, Router } from '@angular/router';
9
9
  import { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from '@acorex/platform/core';
10
10
  import * as i1 from '@acorex/platform/workflow';
11
11
  import { AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
12
- import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
12
+ import { AXPWidgetsCatalog, AXPPageStatus, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
13
13
  import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
14
- import { AXTranslationService } from '@acorex/core/translation';
14
+ import * as i5 from '@acorex/core/translation';
15
+ import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
15
16
  import { AXDataSource } from '@acorex/cdk/common';
16
17
  import { AXMDataSourceService } from '@acorex/modules/platform-management';
17
18
  import { AXPopupService } from '@acorex/components/popup';
19
+ import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
20
+ import { AXLocaleService } from '@acorex/core/locale';
21
+ import * as i2$1 from '@acorex/components/button';
22
+ import { AXButtonModule } from '@acorex/components/button';
23
+ import * as i4 from '@acorex/components/decorators';
24
+ import { AXDecoratorModule } from '@acorex/components/decorators';
25
+ import * as i3 from '@acorex/components/loading';
26
+ import { AXLoadingModule } from '@acorex/components/loading';
27
+ import { AXUnsubscriber } from '@acorex/core/utils';
28
+ import { AXPDynamicFormComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
29
+ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
30
+ import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
31
+ import * as i1$1 from '@angular/common';
32
+ import { CommonModule } from '@angular/common';
33
+ import * as i2 from '@acorex/components/data-table';
34
+ import { AXDataTableModule } from '@acorex/components/data-table';
18
35
 
19
36
  const config = {
20
37
  i18n: 'report-management',
@@ -959,7 +976,7 @@ class AXMReportCreateRootWorkflowAction extends AXPWorkflowAction {
959
976
  }
960
977
  async execute(context) {
961
978
  // const refId = context.getVariable<string>('options.refId');
962
- const comp = await import('./acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs').then(m => m.AXPReportCreateRootComponent);
979
+ const comp = await import('./acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs').then(m => m.AXPReportCreateRootComponent);
963
980
  this.popupService.open(comp, await this.translationService.translateAsync('report.create.title', { scope: 'report-management' }));
964
981
  }
965
982
  }
@@ -999,6 +1016,25 @@ const AXMReportCreateWorkflow = {
999
1016
 
1000
1017
  function routesFacory() {
1001
1018
  let routes = [
1019
+ {
1020
+ path: `:app/${RootConfig.module.route}/viewer`,
1021
+ canActivate: [AXPAuthGuard],
1022
+ loadComponent: () => {
1023
+ return AXPRootLayoutComponent;
1024
+ },
1025
+ children: [
1026
+ {
1027
+ path: ':reportId',
1028
+ loadComponent: () => Promise.resolve().then(function () { return reportViewerPage_component; }).then((c) => c.AXPReportViewerPageComponent),
1029
+ data: { reuse: true },
1030
+ },
1031
+ {
1032
+ path: '',
1033
+ loadComponent: () => Promise.resolve().then(function () { return reportViewerPage_component; }).then((c) => c.AXPReportViewerPageComponent),
1034
+ data: { reuse: true },
1035
+ },
1036
+ ],
1037
+ },
1002
1038
  {
1003
1039
  path: `:app/${RootConfig.module.route}/reports`,
1004
1040
  canActivate: [AXPAuthGuard],
@@ -1008,7 +1044,7 @@ function routesFacory() {
1008
1044
  children: [
1009
1045
  {
1010
1046
  path: '**',
1011
- loadComponent: () => import('./acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
1047
+ loadComponent: () => import('./acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
1012
1048
  data: { reuse: true },
1013
1049
  },
1014
1050
  ],
@@ -1051,6 +1087,10 @@ class AXMReportManagementModule {
1051
1087
  key: `${RootConfig.entities.report.fullName}:Run`,
1052
1088
  command: () => import('./acorex-modules-report-management-run.command-DHPmdkSZ.mjs').then((c) => c.AXMReportRunCommand),
1053
1089
  },
1090
+ {
1091
+ key: `${RootConfig.entities.report.fullName}:Execute`,
1092
+ command: () => Promise.resolve().then(function () { return execute_command; }).then((c) => c.AXMReportExecuteCommand),
1093
+ },
1054
1094
  ]),
1055
1095
  provideEntity([RootConfig.entities.report.fullName, RootConfig.entities.category.fullName]),
1056
1096
  {
@@ -1116,6 +1156,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1116
1156
  key: `${RootConfig.entities.report.fullName}:Run`,
1117
1157
  command: () => import('./acorex-modules-report-management-run.command-DHPmdkSZ.mjs').then((c) => c.AXMReportRunCommand),
1118
1158
  },
1159
+ {
1160
+ key: `${RootConfig.entities.report.fullName}:Execute`,
1161
+ command: () => Promise.resolve().then(function () { return execute_command; }).then((c) => c.AXMReportExecuteCommand),
1162
+ },
1119
1163
  ]),
1120
1164
  provideEntity([RootConfig.entities.report.fullName, RootConfig.entities.category.fullName]),
1121
1165
  {
@@ -1127,9 +1171,627 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1127
1171
  }]
1128
1172
  }] });
1129
1173
 
1174
+ class AXMReportExecuteCommand {
1175
+ //#region ---- Command Implementation ----
1176
+ async execute(input) {
1177
+ try {
1178
+ // Simulate mock data for now
1179
+ const { parameters, page = 1, pageSize = 50 } = input;
1180
+ // Mock data generation based on parameters
1181
+ const mockData = this.generateMockData(parameters, pageSize);
1182
+ return {
1183
+ data: mockData,
1184
+ total: 150, // Mock total
1185
+ page,
1186
+ pageSize
1187
+ };
1188
+ }
1189
+ catch (error) {
1190
+ console.error('Error executing report:', error);
1191
+ throw new Error('Failed to execute report');
1192
+ }
1193
+ }
1194
+ //#endregion
1195
+ //#region ---- Mock Data Generation ----
1196
+ generateMockData(parameters, pageSize) {
1197
+ const data = [];
1198
+ for (let i = 0; i < pageSize; i++) {
1199
+ data.push({
1200
+ id: `report-item-${i + 1}`,
1201
+ title: `Report Item ${i + 1}`,
1202
+ category: parameters['category'] || 'General',
1203
+ createdDate: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000),
1204
+ status: ['Active', 'Pending', 'Completed'][Math.floor(Math.random() * 3)],
1205
+ value: Math.floor(Math.random() * 1000),
1206
+ description: `This is a sample report item ${i + 1} with some description text.`,
1207
+ ...(parameters['startDate'] && { filteredByDate: true }),
1208
+ ...(parameters['category'] && { categoryFilter: parameters['category'] })
1209
+ });
1210
+ }
1211
+ return data;
1212
+ }
1213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportExecuteCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1214
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportExecuteCommand }); }
1215
+ }
1216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportExecuteCommand, decorators: [{
1217
+ type: Injectable
1218
+ }] });
1219
+
1220
+ var execute_command = /*#__PURE__*/Object.freeze({
1221
+ __proto__: null,
1222
+ AXMReportExecuteCommand: AXMReportExecuteCommand
1223
+ });
1224
+
1225
+ const AXPReportViewerViewModel = signalStore(withState(() => ({
1226
+ reportDefinition: null,
1227
+ reportData: [],
1228
+ filterContext: {},
1229
+ previousFilterContext: {},
1230
+ categoriesPath: [],
1231
+ status: AXPPageStatus.Idle,
1232
+ totalRecords: 0,
1233
+ currentPage: 1,
1234
+ pageSize: 50,
1235
+ error: null,
1236
+ })), withComputed((store) => ({
1237
+ //#region ---- Layout Type Detection ----
1238
+ layoutType: computed(() => store.reportDefinition()?.layout?.type),
1239
+ //#endregion
1240
+ //#region ---- Table Layout Configuration ----
1241
+ tableLayoutConfig: computed(() => store.reportDefinition()?.layout?.type === 'table'
1242
+ ? store.reportDefinition()?.layout
1243
+ : null),
1244
+ //#endregion
1245
+ //#region ---- State Indicators ----
1246
+ isLoading: computed(() => store.status() === AXPPageStatus.Processing),
1247
+ isExecuting: computed(() => store.status() === AXPPageStatus.Submitting),
1248
+ hasData: computed(() => store.reportData().length > 0),
1249
+ hasError: computed(() => store.error() !== null),
1250
+ title: computed(() => store.reportDefinition()?.title ?? 'Report Viewer'),
1251
+ description: computed(() => store.reportDefinition()?.description ?? null),
1252
+ //#endregion
1253
+ //#region ---- Form Configuration ----
1254
+ formDefinition: computed(() => {
1255
+ const report = store.reportDefinition();
1256
+ if (!report || !report.parameterGroups) {
1257
+ return { groups: [] };
1258
+ }
1259
+ return {
1260
+ groups: report.parameterGroups.map(group => ({
1261
+ name: group.name,
1262
+ title: group.title,
1263
+ description: group.description,
1264
+ parameters: group.parameters.map(param => ({
1265
+ path: param.path,
1266
+ title: param.title,
1267
+ description: param.description,
1268
+ widget: param.widget
1269
+ }))
1270
+ }))
1271
+ };
1272
+ }),
1273
+ //#endregion
1274
+ //#region ---- Data Source ----
1275
+ dataSource: computed(() => new AXDataSource({
1276
+ load: async () => {
1277
+ const data = store.reportData();
1278
+ return {
1279
+ items: data,
1280
+ total: store.totalRecords()
1281
+ };
1282
+ },
1283
+ pageSize: store.pageSize(),
1284
+ key: 'id'
1285
+ }))
1286
+ //#endregion
1287
+ })), withComputed((store) => ({
1288
+ //#region ---- Derived Layout Properties ----
1289
+ isTableLayout: computed(() => store.layoutType() === 'table'),
1290
+ isChartLayout: computed(() => store.layoutType() === 'chart'),
1291
+ isCardsLayout: computed(() => store.layoutType() === 'cards'),
1292
+ isCustomLayout: computed(() => store.layoutType() === 'custom'),
1293
+ columns: computed(() => {
1294
+ const layout = store.tableLayoutConfig();
1295
+ return layout?.columns?.map((col) => ({
1296
+ field: col.field,
1297
+ title: col.title || col.field,
1298
+ width: col.width || '150px',
1299
+ visible: col.visible !== false,
1300
+ align: col.align || 'left',
1301
+ widget: col.widget
1302
+ })) || [];
1303
+ }),
1304
+ paginationEnabled: computed(() => {
1305
+ const layout = store.tableLayoutConfig();
1306
+ return layout?.options?.pagination !== false;
1307
+ }),
1308
+ canExecute: computed(() => store.reportDefinition() !== null && !store.isLoading() && !store.isExecuting()),
1309
+ //#endregion
1310
+ })), withMethods((store, reportDefinitionService = inject(AXPReportDefinitionService), executeCommand = inject(AXMReportExecuteCommand)) => ({
1311
+ //#region ---- Report Loading ----
1312
+ async loadReport(reportId) {
1313
+ patchState(store, {
1314
+ status: AXPPageStatus.Processing,
1315
+ error: null
1316
+ });
1317
+ try {
1318
+ const report = await reportDefinitionService.getReportById(reportId);
1319
+ if (report) {
1320
+ // Configure parameter widgets with proper paths
1321
+ report.parameterGroups.forEach(group => {
1322
+ group.parameters.forEach(param => {
1323
+ param.widget.path = param.path;
1324
+ });
1325
+ });
1326
+ // Load categories path for breadcrumbs
1327
+ const categoriesPath = await reportDefinitionService.getCategoriesPathByReportId(reportId);
1328
+ patchState(store, {
1329
+ reportDefinition: report,
1330
+ categoriesPath: categoriesPath || [],
1331
+ reportData: [],
1332
+ totalRecords: 0,
1333
+ currentPage: 1,
1334
+ filterContext: {}, // Reset context when loading new report
1335
+ previousFilterContext: {}
1336
+ });
1337
+ }
1338
+ }
1339
+ catch (error) {
1340
+ patchState(store, {
1341
+ error: 'Failed to load report definition'
1342
+ });
1343
+ console.error('Error loading report:', error);
1344
+ }
1345
+ finally {
1346
+ patchState(store, {
1347
+ status: AXPPageStatus.Idle
1348
+ });
1349
+ }
1350
+ },
1351
+ //#endregion
1352
+ //#region ---- Data Execution ----
1353
+ async executeReport() {
1354
+ const report = store.reportDefinition();
1355
+ if (!report)
1356
+ return;
1357
+ patchState(store, {
1358
+ status: AXPPageStatus.Submitting,
1359
+ error: null
1360
+ });
1361
+ try {
1362
+ const result = await executeCommand.execute({
1363
+ reportId: report.id,
1364
+ parameters: store.filterContext(),
1365
+ page: store.currentPage(),
1366
+ pageSize: store.pageSize()
1367
+ });
1368
+ patchState(store, {
1369
+ reportData: result.data || [],
1370
+ totalRecords: result.total || 0,
1371
+ previousFilterContext: { ...store.filterContext() }
1372
+ });
1373
+ }
1374
+ catch (error) {
1375
+ patchState(store, {
1376
+ error: 'Failed to execute report'
1377
+ });
1378
+ console.error('Error executing report:', error);
1379
+ }
1380
+ finally {
1381
+ patchState(store, {
1382
+ status: AXPPageStatus.Idle
1383
+ });
1384
+ }
1385
+ },
1386
+ //#endregion
1387
+ //#region ---- Filter Management ----
1388
+ updateFilterContext(context) {
1389
+ // Replace context completely instead of merging to fix binding issues
1390
+ patchState(store, {
1391
+ filterContext: { ...context }
1392
+ });
1393
+ },
1394
+ clearFilters() {
1395
+ patchState(store, {
1396
+ filterContext: {},
1397
+ reportData: [],
1398
+ totalRecords: 0,
1399
+ currentPage: 1
1400
+ });
1401
+ },
1402
+ resetFilters() {
1403
+ patchState(store, {
1404
+ filterContext: { ...store.previousFilterContext() }
1405
+ });
1406
+ },
1407
+ //#endregion
1408
+ //#region ---- Pagination ----
1409
+ changePage(page) {
1410
+ patchState(store, {
1411
+ currentPage: page
1412
+ });
1413
+ // Call executeReport method
1414
+ this.executeReport();
1415
+ },
1416
+ changePageSize(pageSize) {
1417
+ patchState(store, {
1418
+ pageSize: pageSize,
1419
+ currentPage: 1
1420
+ });
1421
+ // Call executeReport method
1422
+ this.executeReport();
1423
+ },
1424
+ //#endregion
1425
+ //#region ---- Utility Methods ----
1426
+ refresh() {
1427
+ // Call executeReport method
1428
+ this.executeReport();
1429
+ },
1430
+ clearError() {
1431
+ patchState(store, {
1432
+ error: null
1433
+ });
1434
+ },
1435
+ reset() {
1436
+ patchState(store, {
1437
+ reportDefinition: null,
1438
+ reportData: [],
1439
+ filterContext: {},
1440
+ previousFilterContext: {},
1441
+ categoriesPath: [],
1442
+ status: AXPPageStatus.Idle,
1443
+ totalRecords: 0,
1444
+ currentPage: 1,
1445
+ error: null
1446
+ });
1447
+ }
1448
+ //#endregion
1449
+ })), withHooks((store, translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) => ({
1450
+ async onInit() {
1451
+ // Subscribe to language and locale changes
1452
+ translationService.langChanges$.subscribe(() => {
1453
+ // Handle language change if needed
1454
+ });
1455
+ localeService.profileChanged$.subscribe(() => {
1456
+ // Handle locale change if needed
1457
+ });
1458
+ },
1459
+ onDestroy() {
1460
+ // Cleanup if needed
1461
+ }
1462
+ })));
1463
+
1464
+ class AXPReportTableViewComponent {
1465
+ constructor() {
1466
+ //#region ---- Inputs ----
1467
+ this.dataSource = input.required();
1468
+ this.columns = input.required();
1469
+ this.isLoading = input(false);
1470
+ this.hasError = input(false);
1471
+ this.errorMessage = input(null);
1472
+ this.hasData = input(false);
1473
+ this.paginationEnabled = input(true);
1474
+ //#endregion
1475
+ //#region ---- Outputs ----
1476
+ this.rowClick = output();
1477
+ this.actionClick = output();
1478
+ }
1479
+ //#endregion
1480
+ //#region ---- Event Handlers ----
1481
+ handleRowClick(event) {
1482
+ this.rowClick.emit(event);
1483
+ }
1484
+ //#endregion
1485
+ //#region ---- Utility Methods ----
1486
+ getStatusColor(status) {
1487
+ switch (status?.toLowerCase()) {
1488
+ case 'active': return 'success';
1489
+ case 'pending': return 'warning';
1490
+ case 'completed': return 'primary';
1491
+ case 'inactive': return 'danger';
1492
+ default: return 'secondary';
1493
+ }
1494
+ }
1495
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportTableViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1496
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPReportTableViewComponent, isStandalone: true, selector: "axp-report-table-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, hasData: { classPropertyName: "hasData", publicName: "hasData", isSignal: true, isRequired: false, transformFunction: null }, paginationEnabled: { classPropertyName: "paginationEnabled", publicName: "paginationEnabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowClick: "rowClick", actionClick: "actionClick" }, ngImport: i0, template: "<div class=\"axp-report-table-view\" *translate=\"let t\">\n @if (isLoading()) {\n <!-- Loading State -->\n <div class=\"__loading-state\">\n <ax-loading></ax-loading>\n <p class=\"__loading-text\">\n {{ t('@report-management:features.report-viewer.loading') | async }}\n </p>\n </div>\n } @else if (hasError()) {\n <!-- Error State -->\n <div class=\"__error-state\">\n <div class=\"__error-content\">\n <div class=\"__error-icon\">\n <ax-icon class=\"fa-light fa-exclamation-triangle\"></ax-icon>\n </div>\n <div class=\"__error-message\">\n {{ errorMessage() || (t('@report-management:features.report-viewer.error') | async) }}\n </div>\n </div>\n </div>\n } @else if (!hasData()) {\n <!-- No Data State -->\n <div class=\"__no-data-state\">\n <div class=\"__no-data-content\">\n <div class=\"__no-data-icon\">\n <ax-icon class=\"fa-light fa-table\"></ax-icon>\n </div>\n <div class=\"__no-data-title\">\n {{ t('@report-management:features.report-viewer.no-data.title') | async }}\n </div>\n <div class=\"__no-data-description\">\n {{ t('@report-management:features.report-viewer.no-data.description') | async }}\n </div>\n </div>\n </div>\n } @else {\n <!-- Data Table -->\n <div class=\"__table-container\">\n <ax-data-table\n [dataSource]=\"dataSource()\"\n [paging]=\"paginationEnabled()\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n (onRowClick)=\"handleRowClick($event)\"\n class=\"__data-table\"\n >\n <!-- Dynamic columns based on configuration -->\n @for (column of columns(); track column.field) {\n @if (column.visible) {\n <ax-text-column [dataField]=\"column.field\" [caption]=\"column.title\" [width]=\"column.width\">\n </ax-text-column>\n }\n }\n </ax-data-table>\n </div>\n }\n</div>\n", styles: [".axp-report-table-view{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-table-view .__loading-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.axp-report-table-view .__loading-state ax-loading{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__loading-state .__loading-text{max-width:28rem;text-align:center;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-table-view .__error-state{display:flex;height:100%;align-items:center;justify-content:center;padding:2rem}.axp-report-table-view .__error-state .__error-content{display:flex;max-width:28rem;flex-direction:column;align-items:center;gap:1rem;text-align:center}.axp-report-table-view .__error-state .__error-content .__error-icon{margin-bottom:.5rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__error-state .__error-content .__error-message{font-weight:500;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__no-data-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-table-view .__no-data-state .__no-data-content{max-width:28rem}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-icon{margin-bottom:1rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-description{font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-table-view .__table-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.axp-report-table-view .__table-container .__data-table{height:100%;width:100%}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table{display:flex;height:100%;flex-direction:column}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-data-table-container{flex:1 1 0%;overflow:auto}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-data-table-content{height:100%;overflow:auto}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-table{min-height:0px}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-table-body{overflow:auto}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table-footer{flex-shrink:0;border-top-width:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i2.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1497
+ }
1498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportTableViewComponent, decorators: [{
1499
+ type: Component,
1500
+ args: [{ selector: 'axp-report-table-view', standalone: true, imports: [
1501
+ CommonModule,
1502
+ AXDataTableModule,
1503
+ AXLoadingModule,
1504
+ AXDecoratorModule,
1505
+ AXTranslationModule,
1506
+ AXPLayoutBuilderModule
1507
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"axp-report-table-view\" *translate=\"let t\">\n @if (isLoading()) {\n <!-- Loading State -->\n <div class=\"__loading-state\">\n <ax-loading></ax-loading>\n <p class=\"__loading-text\">\n {{ t('@report-management:features.report-viewer.loading') | async }}\n </p>\n </div>\n } @else if (hasError()) {\n <!-- Error State -->\n <div class=\"__error-state\">\n <div class=\"__error-content\">\n <div class=\"__error-icon\">\n <ax-icon class=\"fa-light fa-exclamation-triangle\"></ax-icon>\n </div>\n <div class=\"__error-message\">\n {{ errorMessage() || (t('@report-management:features.report-viewer.error') | async) }}\n </div>\n </div>\n </div>\n } @else if (!hasData()) {\n <!-- No Data State -->\n <div class=\"__no-data-state\">\n <div class=\"__no-data-content\">\n <div class=\"__no-data-icon\">\n <ax-icon class=\"fa-light fa-table\"></ax-icon>\n </div>\n <div class=\"__no-data-title\">\n {{ t('@report-management:features.report-viewer.no-data.title') | async }}\n </div>\n <div class=\"__no-data-description\">\n {{ t('@report-management:features.report-viewer.no-data.description') | async }}\n </div>\n </div>\n </div>\n } @else {\n <!-- Data Table -->\n <div class=\"__table-container\">\n <ax-data-table\n [dataSource]=\"dataSource()\"\n [paging]=\"paginationEnabled()\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n (onRowClick)=\"handleRowClick($event)\"\n class=\"__data-table\"\n >\n <!-- Dynamic columns based on configuration -->\n @for (column of columns(); track column.field) {\n @if (column.visible) {\n <ax-text-column [dataField]=\"column.field\" [caption]=\"column.title\" [width]=\"column.width\">\n </ax-text-column>\n }\n }\n </ax-data-table>\n </div>\n }\n</div>\n", styles: [".axp-report-table-view{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-table-view .__loading-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.axp-report-table-view .__loading-state ax-loading{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__loading-state .__loading-text{max-width:28rem;text-align:center;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-table-view .__error-state{display:flex;height:100%;align-items:center;justify-content:center;padding:2rem}.axp-report-table-view .__error-state .__error-content{display:flex;max-width:28rem;flex-direction:column;align-items:center;gap:1rem;text-align:center}.axp-report-table-view .__error-state .__error-content .__error-icon{margin-bottom:.5rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__error-state .__error-content .__error-message{font-weight:500;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__no-data-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-table-view .__no-data-state .__no-data-content{max-width:28rem}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-icon{margin-bottom:1rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-description{font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-table-view .__table-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.axp-report-table-view .__table-container .__data-table{height:100%;width:100%}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table{display:flex;height:100%;flex-direction:column}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-data-table-container{flex:1 1 0%;overflow:auto}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-data-table-content{height:100%;overflow:auto}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-table{min-height:0px}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table .ax-table-body{overflow:auto}.axp-report-table-view .__table-container .__data-table ::ng-deep .ax-data-table-footer{flex-shrink:0;border-top-width:1px}\n"] }]
1508
+ }] });
1509
+
1510
+ class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
1511
+ constructor() {
1512
+ super(...arguments);
1513
+ //#region ---- Dependencies ----
1514
+ this.layoutService = inject(AXPLayoutThemeService);
1515
+ this.route = inject(ActivatedRoute);
1516
+ this.router = inject(Router);
1517
+ this.reportDefinitionService = inject(AXPReportDefinitionService);
1518
+ this.unsubscriber = inject(AXUnsubscriber);
1519
+ //#endregion
1520
+ //#region ---- Inputs ----
1521
+ this.reportId = input();
1522
+ this.reportParameters = input({});
1523
+ //#endregion
1524
+ //#region ---- Outputs ----
1525
+ this.reportExecuted = output();
1526
+ //#endregion
1527
+ //#region ---- ViewChildren ----
1528
+ this.filtersForm = viewChild('filtersForm');
1529
+ this.mobileFiltersForm = viewChild('mobileFiltersForm');
1530
+ //#endregion
1531
+ //#region ---- ViewModel ----
1532
+ this.vm = new AXPReportViewerViewModel();
1533
+ //#endregion
1534
+ //#region ---- Computed Properties ----
1535
+ this.showFiltersPanel = () => this.layoutService.isLarge();
1536
+ this.baseRoutes = [this.sessionService.application?.name, 'report-management'];
1537
+ //#endregion
1538
+ //#region ---- Layout Configurations ----
1539
+ this.defaultLayout = () => ({
1540
+ positions: {
1541
+ default: { colSpan: 12 },
1542
+ md: { colSpan: 6 },
1543
+ lg: { colSpan: 12 }
1544
+ }
1545
+ });
1546
+ this.compactLayout = () => ({
1547
+ positions: {
1548
+ default: { colSpan: 12 },
1549
+ sm: { colSpan: 6 },
1550
+ md: { colSpan: 4 },
1551
+ lg: { colSpan: 3 }
1552
+ }
1553
+ });
1554
+ }
1555
+ //#endregion
1556
+ //#region ---- Lifecycle ----
1557
+ async ngOnInit() {
1558
+ await super.ngOnInit();
1559
+ // Load report from route parameter or input
1560
+ const reportId = this.route.snapshot.paramMap.get('reportId') ||
1561
+ this.route.snapshot.queryParamMap.get('reportId') ||
1562
+ this.reportId();
1563
+ if (reportId) {
1564
+ await this.vm.loadReport(reportId);
1565
+ // Extract all query parameters except reportId as initial parameters
1566
+ const queryParams = this.route.snapshot.queryParams;
1567
+ const initialParams = { ...queryParams };
1568
+ delete initialParams['reportId']; // Remove reportId from parameters
1569
+ // Merge with component input parameters
1570
+ const allParams = { ...initialParams, ...this.reportParameters() };
1571
+ if (Object.keys(allParams).length > 0) {
1572
+ console.log('Applying initial parameters:', allParams);
1573
+ this.vm.updateFilterContext(allParams);
1574
+ // Auto-execute if parameters are provided
1575
+ setTimeout(async () => {
1576
+ await this.vm.executeReport();
1577
+ }, 500); // Small delay to ensure form is ready
1578
+ }
1579
+ }
1580
+ }
1581
+ //#endregion
1582
+ //#region ---- Event Handlers ----
1583
+ handleFiltersChange(event) {
1584
+ this.vm.updateFilterContext(event.data);
1585
+ }
1586
+ handleFiltersInitiated(event) {
1587
+ this.vm.updateFilterContext(event.data);
1588
+ }
1589
+ async handleExecuteReport() {
1590
+ console.log('Executing report with context:', this.vm.filterContext());
1591
+ await this.vm.executeReport();
1592
+ this.reportExecuted.emit(this.vm.reportData());
1593
+ }
1594
+ handleRefresh() {
1595
+ this.vm.refresh();
1596
+ }
1597
+ handleClearFilters() {
1598
+ this.vm.clearFilters();
1599
+ // Reset form if available
1600
+ const form = this.filtersForm() || this.mobileFiltersForm();
1601
+ if (form) {
1602
+ form.resetErrors();
1603
+ }
1604
+ }
1605
+ handleRowClick(rowData) {
1606
+ // Handle row click - can be extended for row details
1607
+ console.log('Row clicked:', rowData);
1608
+ }
1609
+ handleActionClick(event) {
1610
+ // Handle action click - can be extended for row actions
1611
+ console.log('Action clicked:', event);
1612
+ }
1613
+ //#endregion
1614
+ //#region ---- Page Configuration Overrides ----
1615
+ async getPageBreadcrumbs() {
1616
+ const breadcrumbs = [
1617
+ {
1618
+ name: 'reports',
1619
+ title: await this.translateService.translateAsync('@report-management:features.report-runner.menu-title'),
1620
+ command: {
1621
+ name: 'navigate-to-reports',
1622
+ },
1623
+ }
1624
+ ];
1625
+ // Add categories path
1626
+ const categoriesPath = this.vm.categoriesPath();
1627
+ if (categoriesPath && categoriesPath.length > 0) {
1628
+ let urlParts = [...this.baseRoutes, 'reports'];
1629
+ for (const category of categoriesPath) {
1630
+ urlParts.push(category.id);
1631
+ breadcrumbs.push({
1632
+ name: category.id,
1633
+ title: category.title,
1634
+ command: {
1635
+ name: 'navigate-to-category',
1636
+ options: {
1637
+ path: [...urlParts]
1638
+ },
1639
+ },
1640
+ });
1641
+ }
1642
+ }
1643
+ // Add report title as final breadcrumb
1644
+ const reportDefinition = this.vm.reportDefinition();
1645
+ if (reportDefinition) {
1646
+ breadcrumbs.push({
1647
+ name: 'report-viewer',
1648
+ title: reportDefinition.title,
1649
+ });
1650
+ }
1651
+ return breadcrumbs;
1652
+ }
1653
+ async getPageTitle() {
1654
+ const reportDefinition = this.vm.reportDefinition();
1655
+ if (reportDefinition) {
1656
+ return reportDefinition.title;
1657
+ }
1658
+ return await this.translateService.translateAsync('@report-management:features.report-viewer.title');
1659
+ }
1660
+ async getPageDescription() {
1661
+ const reportDefinition = this.vm.reportDefinition();
1662
+ return reportDefinition?.description || null;
1663
+ }
1664
+ async getBackButton() {
1665
+ const categoriesPath = this.vm.categoriesPath();
1666
+ if (!categoriesPath || categoriesPath.length === 0) {
1667
+ // If no categories path, go back to reports root
1668
+ return {
1669
+ title: await this.translateService.translateAsync('@report-management:features.report-runner.menu-title'),
1670
+ };
1671
+ }
1672
+ if (categoriesPath.length === 1) {
1673
+ // If only one category, go back to reports root
1674
+ return {
1675
+ title: await this.translateService.translateAsync('@report-management:features.report-runner.menu-title'),
1676
+ };
1677
+ }
1678
+ // Go back to parent category
1679
+ const parentCategory = categoriesPath[categoriesPath.length - 1];
1680
+ return {
1681
+ title: parentCategory.title,
1682
+ };
1683
+ }
1684
+ async onBackButtonClick() {
1685
+ const categoriesPath = this.vm.categoriesPath();
1686
+ if (!categoriesPath || categoriesPath.length <= 1) {
1687
+ // Navigate back to reports root
1688
+ await this.router.navigate([...this.baseRoutes, 'reports']);
1689
+ }
1690
+ else {
1691
+ // Navigate to parent category
1692
+ let urlParts = [...this.baseRoutes, 'reports'];
1693
+ for (const cat of categoriesPath) {
1694
+ urlParts.push(cat.id);
1695
+ }
1696
+ await this.router.navigate(urlParts);
1697
+ }
1698
+ }
1699
+ async getPrimaryMenuItems() {
1700
+ // No primary menu items since execute button is in footer
1701
+ return [];
1702
+ }
1703
+ async getSecondaryMenuItems() {
1704
+ const reportDefinition = this.vm.reportDefinition();
1705
+ if (!reportDefinition) {
1706
+ return [];
1707
+ }
1708
+ return [
1709
+ {
1710
+ title: await this.translateService.translateAsync('@report-management:features.report-viewer.actions.refresh'),
1711
+ icon: 'fa-light fa-refresh',
1712
+ color: 'secondary',
1713
+ disabled: this.vm.isLoading() || this.vm.isExecuting(),
1714
+ command: {
1715
+ name: 'refresh-report',
1716
+ },
1717
+ },
1718
+ {
1719
+ title: await this.translateService.translateAsync('@report-management:features.report-viewer.actions.clear-filters'),
1720
+ icon: 'fa-light fa-filter-slash',
1721
+ color: 'warning',
1722
+ command: {
1723
+ name: 'clear-filters',
1724
+ },
1725
+ },
1726
+ ];
1727
+ }
1728
+ async execute(command) {
1729
+ switch (command.name) {
1730
+ case 'execute-report':
1731
+ await this.handleExecuteReport();
1732
+ break;
1733
+ case 'refresh-report':
1734
+ this.handleRefresh();
1735
+ break;
1736
+ case 'clear-filters':
1737
+ this.handleClearFilters();
1738
+ break;
1739
+ case 'navigate-to-reports':
1740
+ await this.router.navigate([...this.baseRoutes, 'reports']);
1741
+ break;
1742
+ case 'navigate-to-category':
1743
+ const path = command.options?.['path'];
1744
+ if (path) {
1745
+ await this.router.navigate(path);
1746
+ }
1747
+ break;
1748
+ default:
1749
+ console.warn(`Unknown command: ${command.name}`);
1750
+ break;
1751
+ }
1752
+ }
1753
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportViewerPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1754
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPReportViewerPageComponent, isStandalone: true, selector: "axp-report-viewer-page", inputs: { reportId: { classPropertyName: "reportId", publicName: "reportId", isSignal: true, isRequired: false, transformFunction: null }, reportParameters: { classPropertyName: "reportParameters", publicName: "reportParameters", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { reportExecuted: "reportExecuted" }, host: { classAttribute: "axp-report-viewer-page" }, providers: [
1755
+ AXUnsubscriber,
1756
+ AXMReportExecuteCommand,
1757
+ {
1758
+ provide: AXPPageLayoutBase,
1759
+ useExisting: AXPReportViewerPageComponent,
1760
+ },
1761
+ ], viewQueries: [{ propertyName: "filtersForm", first: true, predicate: ["filtersForm"], descendants: true, isSignal: true }, { propertyName: "mobileFiltersForm", first: true, predicate: ["mobileFiltersForm"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Left Panel: Filters (Always visible for desktop) -->\n @if (showFiltersPanel()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>\n {{ t('@report-management:features.report-viewer.filters.title') | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content>\n <div class=\"__filters-container\">\n <axp-dynamic-form #filtersForm [formDefinition]=\"vm.formDefinition()\" [context]=\"vm.filterContext()\"\n [layoutConfig]=\"defaultLayout()\" [layoutStyle]=\"'compact'\" (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\">\n </axp-dynamic-form>\n </div>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <!-- Main Content: Report Display -->\n <axp-page-content>\n <!-- Mobile Filters (Collapsed) -->\n @if (!showFiltersPanel() && vm.reportDefinition()) {\n <div class=\"__mobile-filters\">\n <axp-dynamic-form #mobileFiltersForm [formDefinition]=\"vm.formDefinition()\" [context]=\"vm.filterContext()\"\n [layoutConfig]=\"compactLayout()\" [layoutStyle]=\"'compact'\" (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\">\n </axp-dynamic-form>\n </div>\n }\n\n @if (!vm.reportDefinition()) {\n <!-- No Report Selected State -->\n <div class=\"__no-report\">\n <div class=\"__no-report-icon\">\n <ax-icon class=\"fa-light fa-chart-line\"></ax-icon>\n </div>\n <div class=\"__no-report-content\">\n <h3 class=\"__no-report-title\">\n {{ t('@report-management:features.report-viewer.no-report.title') | async }}\n </h3>\n <p class=\"__no-report-description\">\n {{ t('@report-management:features.report-viewer.no-report.description') | async }}\n </p>\n <div class=\"__no-report-actions\">\n <ax-button look=\"outline\" color=\"primary\"\n [text]=\"t('@report-management:features.report-viewer.no-report.browse-reports') | async\">\n <ax-prefix>\n <ax-icon class=\"fa-light fa-folder-open\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n </div>\n } @else {\n <!-- Report Display Area -->\n @if (vm.isTableLayout()) {\n <axp-report-table-view [dataSource]=\"vm.dataSource()\" [columns]=\"vm.columns()\" [isLoading]=\"vm.isLoading()\"\n [hasError]=\"vm.hasError()\" [errorMessage]=\"vm.error()\" [hasData]=\"vm.hasData()\"\n [paginationEnabled]=\"vm.paginationEnabled()\" (rowClick)=\"handleRowClick($event)\"\n (actionClick)=\"handleActionClick($event)\">\n </axp-report-table-view>\n } @else if (vm.isChartLayout()) {\n <!-- Chart View Placeholder -->\n <div class=\"__chart-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-chart-column\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Chart View</h4>\n <p class=\"__placeholder-description\">Chart visualization will be implemented here</p>\n </div>\n </div>\n } @else if (vm.isCardsLayout()) {\n <!-- Cards View Placeholder -->\n <div class=\"__cards-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-table-cells\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Cards View</h4>\n <p class=\"__placeholder-description\">Card-based layout will be implemented here</p>\n </div>\n </div>\n } @else {\n <!-- Custom Layout Placeholder -->\n <div class=\"__custom-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-layout-grid\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Custom Layout</h4>\n <p class=\"__placeholder-description\">Custom report layout will be implemented here</p>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer: Execute Button -->\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <ax-button [class.ax-sm]=\"layoutService.isSmall()\"\n [text]=\"t('@report-management:features.report-viewer.actions.execute') | async\" [color]=\"'primary'\"\n (onClick)=\"execute({ name: 'execute-report' })\">\n <ax-prefix>\n <ax-icon class=\"fa-light fa-play\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-footer>\n</axp-page-layout>", styles: [".axp-report-viewer-page{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-viewer-page axp-layout-start-side{height:100%;width:20rem;border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}@media (min-width: 1920px){.axp-report-viewer-page axp-layout-start-side{width:24rem}}.axp-report-viewer-page axp-layout-start-side axp-layout-content{overflow-x:auto}.axp-report-viewer-page axp-layout-start-side .__filters-container{padding:1rem}.axp-report-viewer-page .__mobile-filters{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding:1rem;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-report-viewer-page axp-page-content{display:flex;height:100%;flex-direction:column}.axp-report-viewer-page .__no-report{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-viewer-page .__no-report .__no-report-icon{margin-bottom:1rem;font-size:3.75rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-viewer-page .__no-report .__no-report-content{max-width:28rem}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-description{margin-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-actions{display:flex;justify-content:center}.axp-report-viewer-page axp-report-table-view{flex:1 1 0%;overflow:hidden}.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;margin:1.5rem;border-radius:.5rem;border-width:2px;border-style:dashed;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon,.axp-report-viewer-page .__cards-placeholder .__placeholder-icon,.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{margin-bottom:1rem;font-size:3rem;line-height:1;opacity:.5}.axp-report-viewer-page .__chart-placeholder .__placeholder-content,.axp-report-viewer-page .__cards-placeholder .__placeholder-content,.axp-report-viewer-page .__custom-placeholder .__placeholder-content{max-width:28rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__cards-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-accent1-500),var(--tw-text-opacity, 1))}@media (max-width: 768px){.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{margin:1rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{font-size:1rem;line-height:1.5rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.75rem;line-height:1rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type: AXPDynamicFormComponent, selector: "axp-dynamic-form", inputs: ["formDefinition", "context", "layoutStyle", "layoutConfig"], outputs: ["contextChange", "contextInitiated", "validityChange"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPReportTableViewComponent, selector: "axp-report-table-view", inputs: ["dataSource", "columns", "isLoading", "hasError", "errorMessage", "hasData", "paginationEnabled"], outputs: ["rowClick", "actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1762
+ }
1763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportViewerPageComponent, decorators: [{
1764
+ type: Component,
1765
+ args: [{ selector: 'axp-report-viewer-page', standalone: true, imports: [
1766
+ CommonModule,
1767
+ AXButtonModule,
1768
+ AXDecoratorModule,
1769
+ AXLoadingModule,
1770
+ AXTranslationModule,
1771
+ AXPDynamicFormComponent,
1772
+ AXPPageLayoutComponent,
1773
+ AXPThemeLayoutStartSideComponent,
1774
+ AXPThemeLayoutHeaderComponent,
1775
+ AXPThemeLayoutBlockComponent,
1776
+ AXPReportTableViewComponent
1777
+ ], providers: [
1778
+ AXUnsubscriber,
1779
+ AXMReportExecuteCommand,
1780
+ {
1781
+ provide: AXPPageLayoutBase,
1782
+ useExisting: AXPReportViewerPageComponent,
1783
+ },
1784
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'axp-report-viewer-page' }, template: "<axp-page-layout *translate=\"let t\">\n <!-- Left Panel: Filters (Always visible for desktop) -->\n @if (showFiltersPanel()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>\n {{ t('@report-management:features.report-viewer.filters.title') | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content>\n <div class=\"__filters-container\">\n <axp-dynamic-form #filtersForm [formDefinition]=\"vm.formDefinition()\" [context]=\"vm.filterContext()\"\n [layoutConfig]=\"defaultLayout()\" [layoutStyle]=\"'compact'\" (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\">\n </axp-dynamic-form>\n </div>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <!-- Main Content: Report Display -->\n <axp-page-content>\n <!-- Mobile Filters (Collapsed) -->\n @if (!showFiltersPanel() && vm.reportDefinition()) {\n <div class=\"__mobile-filters\">\n <axp-dynamic-form #mobileFiltersForm [formDefinition]=\"vm.formDefinition()\" [context]=\"vm.filterContext()\"\n [layoutConfig]=\"compactLayout()\" [layoutStyle]=\"'compact'\" (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\">\n </axp-dynamic-form>\n </div>\n }\n\n @if (!vm.reportDefinition()) {\n <!-- No Report Selected State -->\n <div class=\"__no-report\">\n <div class=\"__no-report-icon\">\n <ax-icon class=\"fa-light fa-chart-line\"></ax-icon>\n </div>\n <div class=\"__no-report-content\">\n <h3 class=\"__no-report-title\">\n {{ t('@report-management:features.report-viewer.no-report.title') | async }}\n </h3>\n <p class=\"__no-report-description\">\n {{ t('@report-management:features.report-viewer.no-report.description') | async }}\n </p>\n <div class=\"__no-report-actions\">\n <ax-button look=\"outline\" color=\"primary\"\n [text]=\"t('@report-management:features.report-viewer.no-report.browse-reports') | async\">\n <ax-prefix>\n <ax-icon class=\"fa-light fa-folder-open\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n </div>\n } @else {\n <!-- Report Display Area -->\n @if (vm.isTableLayout()) {\n <axp-report-table-view [dataSource]=\"vm.dataSource()\" [columns]=\"vm.columns()\" [isLoading]=\"vm.isLoading()\"\n [hasError]=\"vm.hasError()\" [errorMessage]=\"vm.error()\" [hasData]=\"vm.hasData()\"\n [paginationEnabled]=\"vm.paginationEnabled()\" (rowClick)=\"handleRowClick($event)\"\n (actionClick)=\"handleActionClick($event)\">\n </axp-report-table-view>\n } @else if (vm.isChartLayout()) {\n <!-- Chart View Placeholder -->\n <div class=\"__chart-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-chart-column\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Chart View</h4>\n <p class=\"__placeholder-description\">Chart visualization will be implemented here</p>\n </div>\n </div>\n } @else if (vm.isCardsLayout()) {\n <!-- Cards View Placeholder -->\n <div class=\"__cards-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-table-cells\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Cards View</h4>\n <p class=\"__placeholder-description\">Card-based layout will be implemented here</p>\n </div>\n </div>\n } @else {\n <!-- Custom Layout Placeholder -->\n <div class=\"__custom-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-layout-grid\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Custom Layout</h4>\n <p class=\"__placeholder-description\">Custom report layout will be implemented here</p>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer: Execute Button -->\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <ax-button [class.ax-sm]=\"layoutService.isSmall()\"\n [text]=\"t('@report-management:features.report-viewer.actions.execute') | async\" [color]=\"'primary'\"\n (onClick)=\"execute({ name: 'execute-report' })\">\n <ax-prefix>\n <ax-icon class=\"fa-light fa-play\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-footer>\n</axp-page-layout>", styles: [".axp-report-viewer-page{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-viewer-page axp-layout-start-side{height:100%;width:20rem;border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}@media (min-width: 1920px){.axp-report-viewer-page axp-layout-start-side{width:24rem}}.axp-report-viewer-page axp-layout-start-side axp-layout-content{overflow-x:auto}.axp-report-viewer-page axp-layout-start-side .__filters-container{padding:1rem}.axp-report-viewer-page .__mobile-filters{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding:1rem;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-report-viewer-page axp-page-content{display:flex;height:100%;flex-direction:column}.axp-report-viewer-page .__no-report{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-viewer-page .__no-report .__no-report-icon{margin-bottom:1rem;font-size:3.75rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-viewer-page .__no-report .__no-report-content{max-width:28rem}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-description{margin-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-actions{display:flex;justify-content:center}.axp-report-viewer-page axp-report-table-view{flex:1 1 0%;overflow:hidden}.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;margin:1.5rem;border-radius:.5rem;border-width:2px;border-style:dashed;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon,.axp-report-viewer-page .__cards-placeholder .__placeholder-icon,.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{margin-bottom:1rem;font-size:3rem;line-height:1;opacity:.5}.axp-report-viewer-page .__chart-placeholder .__placeholder-content,.axp-report-viewer-page .__cards-placeholder .__placeholder-content,.axp-report-viewer-page .__custom-placeholder .__placeholder-content{max-width:28rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__cards-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-accent1-500),var(--tw-text-opacity, 1))}@media (max-width: 768px){.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{margin:1rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{font-size:1rem;line-height:1.5rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.75rem;line-height:1rem}}\n"] }]
1785
+ }] });
1786
+
1787
+ var reportViewerPage_component = /*#__PURE__*/Object.freeze({
1788
+ __proto__: null,
1789
+ AXPReportViewerPageComponent: AXPReportViewerPageComponent
1790
+ });
1791
+
1130
1792
  /**
1131
1793
  * Generated bundle index. Do not edit.
1132
1794
  */
1133
1795
 
1134
- export { AXMReportManagementModule, RootConfig };
1796
+ export { AXMReportExecuteCommand, AXMReportManagementModule, AXPReportTableViewComponent, AXPReportViewerPageComponent, AXPReportViewerViewModel, RootConfig };
1135
1797
  //# sourceMappingURL=acorex-modules-report-management.mjs.map