@acorex/connectivity 20.9.6 → 20.9.9

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 (21) hide show
  1. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs → acorex-connectivity-mock-acorex-connectivity-mock-DILmgDYe.mjs} +574 -558
  2. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-DILmgDYe.mjs.map +1 -0
  3. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs → acorex-connectivity-mock-assign-to-manager.activity-C2nbx_nS.mjs} +2 -2
  4. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs.map → acorex-connectivity-mock-assign-to-manager.activity-C2nbx_nS.mjs.map} +1 -1
  5. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs → acorex-connectivity-mock-chat-generate-image.command-P-G8jI9p.mjs} +2 -2
  6. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs.map → acorex-connectivity-mock-chat-generate-image.command-P-G8jI9p.mjs.map} +1 -1
  7. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-CK8Jl9jw.mjs} +2 -2
  8. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-CK8Jl9jw.mjs.map} +1 -1
  9. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-0LZDZT0P.mjs} +2 -2
  10. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs.map → acorex-connectivity-mock-chat-transcribe-speech.command-0LZDZT0P.mjs.map} +1 -1
  11. package/fesm2022/{acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs → acorex-connectivity-mock-get-product-list.query-BtzXU8Tg.mjs} +17 -1
  12. package/fesm2022/acorex-connectivity-mock-get-product-list.query-BtzXU8Tg.mjs.map +1 -0
  13. package/fesm2022/{acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs → acorex-connectivity-mock-get-product-pdf-data.query-DjyRJ7il.mjs} +2 -2
  14. package/fesm2022/{acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs.map → acorex-connectivity-mock-get-product-pdf-data.query-DjyRJ7il.mjs.map} +1 -1
  15. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-D5BRGlk3.mjs} +2 -2
  16. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs.map → acorex-connectivity-mock-user-roles-for-list-column.query-D5BRGlk3.mjs.map} +1 -1
  17. package/fesm2022/acorex-connectivity-mock.mjs +1 -1
  18. package/package.json +2 -2
  19. package/types/acorex-connectivity-mock.d.ts +9 -1
  20. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs.map +0 -1
  21. package/fesm2022/acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs.map +0 -1
@@ -12,6 +12,7 @@ import { getApps, getApp, initializeApp } from 'firebase/app';
12
12
  import * as i1$1 from 'firebase/firestore';
13
13
  import { collection, getDocs, query, limit, writeBatch, where, doc, getDoc, updateDoc, deleteDoc, setDoc, getFirestore, orderBy, addDoc } from 'firebase/firestore';
14
14
  import { AXPDataGenerator, isLocaleStringMap, resolveMultiLanguageString, createMultiLanguageString, AXPSystemStatusType, AXPFileStorageStatus, AXPWidgetsCatalog, AXPPlatformScope, getSmart, AXPWidgetsList, AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CONNECTION_STATUS, AXPSystemStatuses } from '@acorex/platform/contracts';
15
+ import { delay } from '@acorex/core/utils';
15
16
  import Dexie from 'dexie';
16
17
  import { collectEntityQuickSearchFieldPaths, AXPEntityCommandScope, buildAXPRecordWorkflowInfo } from '@acorex/platform/layout/entity-contracts';
17
18
  import { get, castArray, isString, isEmpty, trim, defaultTo, orderBy as orderBy$1, isArray, set } from 'lodash-es';
@@ -25,7 +26,7 @@ import { RootConfig as RootConfig$4, AXMPermissionsKeys as AXMPermissionsKeys$7
25
26
  import { AXMAssetManagementFeatureKeys, RootConfig as RootConfig$6, AXMAssetManagementPermissionKeys, AXMAssetStatus } from '@acorex/modules/asset-management';
26
27
  import { AXMAssessmentManagementFeatureKeys, RootConfig as RootConfig$5, AXMAssessmentManagementPermissionKeys } from '@acorex/modules/assessment-management';
27
28
  import { AXPCommonFeatureKeys } from '@acorex/modules/common';
28
- import { AXPReportManagementFeatureKeys, RootConfig as RootConfig$C, AXPReportViewerService } from '@acorex/modules/report-management';
29
+ import { AXPReportManagementFeatureKeys, AXPReportViewerService, RootConfig as RootConfig$D } from '@acorex/modules/report-management';
29
30
  import { AXMDataManagementFeatureKeys, AXMPermissionsKeys as AXMPermissionsKeys$1, RootConfig as RootConfig$h, ShowMetaDataFormPopupCommand, ShowMetaDataBuilderPopupCommand, AXMQueryService } from '@acorex/modules/data-management';
30
31
  import { AXMHealthCoreDataSourceKeys, HEALTH_CATALOG_SCOPE, AXMHealthCorePermissionKeys, RootConfig as RootConfig$l } from '@acorex/modules/health-core';
31
32
  import { AXP_IDENTIFIER_SERVICE, AXP_IDENTIFIER_RULES, AXPIdentifierService, AXPSimplePatternEngine, buildScopeHash, AXP_DEFAULT_TOKEN_PROVIDERS } from '@acorex/modules/identifier-management';
@@ -85,7 +86,7 @@ import { AXLoadingDialogService } from '@acorex/components/loading-dialog';
85
86
  import { RootConfig as RootConfig$z } from '@acorex/modules/platform-management';
86
87
  import { RootConfig as RootConfig$A } from '@acorex/modules/procurement-management';
87
88
  import { RootConfig as RootConfig$B, AXM_PRODUCT_HISTORY_BAR_CHART_WIDGET_OPTIONS } from '@acorex/modules/product-catalog';
88
- import { RootConfig as RootConfig$D } from '@acorex/modules/project-management';
89
+ import { RootConfig as RootConfig$C } from '@acorex/modules/project-management';
89
90
  import { RootConfig as RootConfig$E } from '@acorex/modules/reservation-management';
90
91
  import * as i1$3 from '@acorex/components/dialog';
91
92
  import { RootConfig as RootConfig$F } from '@acorex/modules/supplier-management';
@@ -118,16 +119,20 @@ const AXC_FIRESTORE_CONFIG = new InjectionToken('AXC_FIRESTORE_CONFIG', {
118
119
 
119
120
  //#region ---- Mock entity seed gate ----
120
121
  /** Bump when mock entity seed structure changes and developers should clear IndexedDB. */
121
- const MOCK_DATA_SEED_VERSION = '2';
122
+ const MOCK_DATA_SEED_VERSION = '3';
122
123
  const MOCK_ENTITY_SEED_META_KEY = 'entity-mock-seed';
123
124
  //#endregion
124
125
 
125
126
  /** Rows loaded into memory for aggregation on mock backends (safety cap). */
126
127
  const ENTITY_AGGREGATE_MAX_ROWS$1 = 500_000;
128
+ /** Simulated network latency for mock read operations (ms). */
129
+ const MOCK_API_DELAY_MS = 100;
127
130
  class AXCDexieEntityStorageService extends Dexie {
128
131
  constructor() {
129
132
  super('ACoreXPlatform');
130
133
  this.sessionService = inject(AXPSessionService);
134
+ /** When > 0, simulated read latency is skipped (startup mock seeding). */
135
+ this.seedingDepth = 0;
131
136
  this.version(1).stores({
132
137
  'entity-store': '++id, entityName, [entityName+id]',
133
138
  });
@@ -230,7 +235,29 @@ class AXCDexieEntityStorageService extends Dexie {
230
235
  return row.value;
231
236
  }
232
237
  //#endregion
238
+ //#region ---- Seeding mode ----
239
+ /**
240
+ * Runs work with mock read latency disabled.
241
+ * Used during startup entity seeding so artificial delays do not stack per operation.
242
+ */
243
+ async runDuringSeeding(work) {
244
+ this.seedingDepth++;
245
+ try {
246
+ return await work();
247
+ }
248
+ finally {
249
+ this.seedingDepth--;
250
+ }
251
+ }
252
+ async mockApiDelay() {
253
+ if (this.seedingDepth > 0) {
254
+ return;
255
+ }
256
+ await delay(MOCK_API_DELAY_MS);
257
+ }
258
+ //#endregion
233
259
  async getOne(entityName, id) {
260
+ await this.mockApiDelay();
234
261
  return await this.table('entity-store').where({ entityName, id: id }).first();
235
262
  }
236
263
  async updateOne(entityName, id, keyValue) {
@@ -251,6 +278,7 @@ class AXCDexieEntityStorageService extends Dexie {
251
278
  return await this.table('entity-store').where({ entityName }).toArray();
252
279
  }
253
280
  async query(entityName, request) {
281
+ await this.mockApiDelay();
254
282
  return runEntityQuery(entityName, request, this.createQueryAdapters(), request.params?.['locale']);
255
283
  }
256
284
  async count(entityName, request) {
@@ -23071,7 +23099,7 @@ class AXCAiManagementMockModule {
23071
23099
  provideCommandSetups([
23072
23100
  {
23073
23101
  key: 'AiManagement:ChatGenerateImage',
23074
- command: () => import('./acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
23102
+ command: () => import('./acorex-connectivity-mock-chat-generate-image.command-P-G8jI9p.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
23075
23103
  },
23076
23104
  {
23077
23105
  key: 'AiManagement:ExtractDocumentText',
@@ -23083,11 +23111,11 @@ class AXCAiManagementMockModule {
23083
23111
  },
23084
23112
  {
23085
23113
  key: 'AiManagement:ChatTranscribeSpeech',
23086
- command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
23114
+ command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-0LZDZT0P.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
23087
23115
  },
23088
23116
  {
23089
23117
  key: 'AiManagement:ChatSynthesizeSpeech',
23090
- command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
23118
+ command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-CK8Jl9jw.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
23091
23119
  },
23092
23120
  ]),
23093
23121
  ] }); }
@@ -23140,7 +23168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
23140
23168
  provideCommandSetups([
23141
23169
  {
23142
23170
  key: 'AiManagement:ChatGenerateImage',
23143
- command: () => import('./acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
23171
+ command: () => import('./acorex-connectivity-mock-chat-generate-image.command-P-G8jI9p.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
23144
23172
  },
23145
23173
  {
23146
23174
  key: 'AiManagement:ExtractDocumentText',
@@ -23152,11 +23180,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
23152
23180
  },
23153
23181
  {
23154
23182
  key: 'AiManagement:ChatTranscribeSpeech',
23155
- command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
23183
+ command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-0LZDZT0P.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
23156
23184
  },
23157
23185
  {
23158
23186
  key: 'AiManagement:ChatSynthesizeSpeech',
23159
- command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
23187
+ command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-CK8Jl9jw.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
23160
23188
  },
23161
23189
  ]),
23162
23190
  ],
@@ -50928,7 +50956,7 @@ class AXMFormDataSourcesProvider {
50928
50956
  source: () => {
50929
50957
  return new AXDataSource({
50930
50958
  pageSize: 10,
50931
- key: 'value',
50959
+ key: 'id',
50932
50960
  load: async () => {
50933
50961
  return {
50934
50962
  items: [
@@ -50978,7 +51006,7 @@ class AXMFormDataSourcesProvider {
50978
51006
  source: () => {
50979
51007
  return new AXDataSource({
50980
51008
  pageSize: 10,
50981
- key: 'value',
51009
+ key: 'id',
50982
51010
  load: async () => {
50983
51011
  return {
50984
51012
  items: [
@@ -51029,7 +51057,7 @@ class AXMFormDataSourcesProvider {
51029
51057
  source: () => {
51030
51058
  return new AXDataSource({
51031
51059
  pageSize: 10,
51032
- key: 'value',
51060
+ key: 'id',
51033
51061
  load: async () => {
51034
51062
  return {
51035
51063
  items: [
@@ -51081,7 +51109,7 @@ class AXMFormDataSourcesProvider {
51081
51109
  source: () => {
51082
51110
  return new AXDataSource({
51083
51111
  pageSize: 10,
51084
- key: 'value',
51112
+ key: 'id',
51085
51113
  load: async () => {
51086
51114
  return {
51087
51115
  items: [
@@ -51138,7 +51166,7 @@ class AXMFormDataSourcesProvider {
51138
51166
  source: () => {
51139
51167
  return new AXDataSource({
51140
51168
  pageSize: 10,
51141
- key: 'value',
51169
+ key: 'id',
51142
51170
  load: async () => {
51143
51171
  return {
51144
51172
  items: [
@@ -51195,7 +51223,7 @@ class AXMFormDataSourcesProvider {
51195
51223
  source: () => {
51196
51224
  return new AXDataSource({
51197
51225
  pageSize: 10,
51198
- key: 'value',
51226
+ key: 'id',
51199
51227
  load: async () => {
51200
51228
  return {
51201
51229
  items: [
@@ -51257,7 +51285,7 @@ class AXMFormDataSourcesProvider {
51257
51285
  source: () => {
51258
51286
  return new AXDataSource({
51259
51287
  pageSize: 10,
51260
- key: 'value',
51288
+ key: 'id',
51261
51289
  load: async () => {
51262
51290
  return {
51263
51291
  items: [
@@ -51322,7 +51350,7 @@ class AXMFormDataSourcesProvider {
51322
51350
  source: () => {
51323
51351
  return new AXDataSource({
51324
51352
  pageSize: 10,
51325
- key: 'value',
51353
+ key: 'id',
51326
51354
  load: async () => {
51327
51355
  return {
51328
51356
  items: [
@@ -51383,7 +51411,7 @@ class AXMFormDataSourcesProvider {
51383
51411
  source: () => {
51384
51412
  return new AXDataSource({
51385
51413
  pageSize: 10,
51386
- key: 'value',
51414
+ key: 'id',
51387
51415
  load: async () => {
51388
51416
  return {
51389
51417
  items: [
@@ -51435,7 +51463,7 @@ class AXMFormDataSourcesProvider {
51435
51463
  source: () => {
51436
51464
  return new AXDataSource({
51437
51465
  pageSize: 10,
51438
- key: 'value',
51466
+ key: 'id',
51439
51467
  load: async () => {
51440
51468
  return {
51441
51469
  items: [
@@ -51487,7 +51515,7 @@ class AXMFormDataSourcesProvider {
51487
51515
  source: () => {
51488
51516
  return new AXDataSource({
51489
51517
  pageSize: 10,
51490
- key: 'value',
51518
+ key: 'id',
51491
51519
  load: async () => {
51492
51520
  return {
51493
51521
  items: [
@@ -51540,7 +51568,7 @@ class AXMFormDataSourcesProvider {
51540
51568
  source: () => {
51541
51569
  return new AXDataSource({
51542
51570
  pageSize: 10,
51543
- key: 'value',
51571
+ key: 'id',
51544
51572
  load: async () => {
51545
51573
  return {
51546
51574
  items: [
@@ -51595,7 +51623,7 @@ class AXMFormDataSourcesProvider {
51595
51623
  source: () => {
51596
51624
  return new AXDataSource({
51597
51625
  pageSize: 10,
51598
- key: 'value',
51626
+ key: 'id',
51599
51627
  load: async () => {
51600
51628
  return {
51601
51629
  items: [
@@ -51652,7 +51680,7 @@ class AXMFormDataSourcesProvider {
51652
51680
  source: () => {
51653
51681
  return new AXDataSource({
51654
51682
  pageSize: 10,
51655
- key: 'value',
51683
+ key: 'id',
51656
51684
  load: async () => {
51657
51685
  return {
51658
51686
  items: [
@@ -51711,7 +51739,7 @@ class AXMFormDataSourcesProvider {
51711
51739
  source: () => {
51712
51740
  return new AXDataSource({
51713
51741
  pageSize: 10,
51714
- key: 'value',
51742
+ key: 'id',
51715
51743
  load: async () => {
51716
51744
  return {
51717
51745
  items: [
@@ -51770,7 +51798,7 @@ class AXMFormDataSourcesProvider {
51770
51798
  ];
51771
51799
  return new AXDataSource({
51772
51800
  pageSize: 10,
51773
- key: 'value',
51801
+ key: 'id',
51774
51802
  load: async () => ({ items, total: items.length }),
51775
51803
  byKey: async (key) => items.find(item => item.id === key),
51776
51804
  });
@@ -73204,496 +73232,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
73204
73232
  type: Injectable
73205
73233
  }] });
73206
73234
 
73207
- //#region ---- Mock Categories ----
73208
- /**
73209
- * Generate report categories with optimized count metadata
73210
- *
73211
- * Uses childrenCount & itemsCount for performance:
73212
- * - childrenCount: Direct child categories (for lazy loading)
73213
- * - itemsCount: Direct reports in this category
73214
- * - No need for boolean flags (hasChild, hasReport)
73215
- */
73216
- function generateCategories$3() {
73217
- const categories = [];
73218
- // Root categories with child count metadata
73219
- const rootCategories = [
73220
- {
73221
- title: 'Product Catalog',
73222
- description: 'Product catalog analysis and reports',
73223
- childrenCount: 1, // Has 1 child category
73224
- itemsCount: 0, // No direct reports
73225
- },
73226
- ];
73227
- rootCategories.forEach(({ title, description, childrenCount, itemsCount }) => {
73228
- const categoryId = AXPDataGenerator.uuid();
73229
- categories.push({
73230
- id: categoryId,
73231
- title,
73232
- description,
73233
- parentId: undefined,
73234
- childrenCount,
73235
- itemsCount,
73236
- });
73237
- });
73238
- // Child categories (leaf nodes with reports)
73239
- const childCategories = [
73240
- {
73241
- parent: 'Product Catalog',
73242
- children: [
73243
- {
73244
- title: 'Product Analysis',
73245
- description: 'Product catalog analysis and insights',
73246
- childrenCount: 0,
73247
- itemsCount: 1, // Products by Brand
73248
- },
73249
- ],
73250
- },
73251
- ];
73252
- childCategories.forEach(({ parent, children }) => {
73253
- const parentCat = categories.find((c) => resolveMultiLanguageString(c.title, 'en-US') === parent);
73254
- if (parentCat) {
73255
- children.forEach(({ title, description, childrenCount, itemsCount }) => {
73256
- categories.push({
73257
- id: AXPDataGenerator.uuid(),
73258
- title,
73259
- description,
73260
- parentId: parentCat.id,
73261
- childrenCount,
73262
- itemsCount,
73263
- });
73264
- });
73265
- }
73266
- });
73267
- return categories;
73268
- }
73269
- const PRODUCT_REPORT_CATEGORIES = generateCategories$3();
73270
- //#endregion
73271
- //#region ---- Mock Parameter Groups ----
73272
- const productCatalogParameterGroups = [
73273
- {
73274
- name: 'productDetails',
73275
- title: 'Product Details',
73276
- description: 'Product catalog filtering options',
73277
- parameters: [
73278
- {
73279
- path: 'brand',
73280
- title: 'Brand',
73281
- description: 'Filter by specific brand',
73282
- widget: {
73283
- type: AXPWidgetsList.Editors.LookupBox,
73284
- options: {
73285
- entity: 'ProductCatalog.Brand',
73286
- multiple: true,
73287
- },
73288
- },
73289
- },
73290
- {
73291
- path: 'category',
73292
- title: 'Category',
73293
- description: 'Filter by product category',
73294
- widget: {
73295
- type: AXPWidgetsList.Editors.LookupBox,
73296
- options: {
73297
- entity: 'ProductCatalog.ProductCategory',
73298
- multiple: true,
73299
- },
73300
- },
73301
- },
73302
- {
73303
- path: 'status',
73304
- title: 'Status',
73305
- description: 'Filter by product status',
73306
- widget: {
73307
- type: AXPWidgetsList.Editors.SelectBox,
73308
- options: {
73309
- valueField: 'value',
73310
- textField: 'text',
73311
- dataSource: [
73312
- { value: 'all', text: 'All' },
73313
- { value: 'approved', text: 'Approved' },
73314
- { value: 'in-review', text: 'In Review' },
73315
- { value: 'draft', text: 'Draft' },
73316
- { value: 'rejected', text: 'Rejected' },
73317
- ],
73318
- },
73319
- },
73320
- },
73321
- {
73322
- path: 'priceRange',
73323
- title: 'Price Range',
73324
- description: 'Filter by price range',
73325
- widget: {
73326
- type: AXPWidgetsList.Editors.SelectBox,
73327
- options: {
73328
- valueField: 'value',
73329
- textField: 'text',
73330
- dataSource: [
73331
- { value: 'all', text: 'All' },
73332
- { value: 'under-50', text: 'Under $50' },
73333
- { value: '50-100', text: '$50 - $100' },
73334
- { value: '100-500', text: '$100 - $500' },
73335
- { value: '500-1000', text: '$500 - $1000' },
73336
- { value: 'over-1000', text: 'Over $1000' },
73337
- ],
73338
- },
73339
- },
73340
- },
73341
- ],
73342
- },
73343
- ];
73344
- //#endregion
73345
- //#region ---- Layout Definitions Generator ----
73346
- function generateLayoutsForReport$3(reportTitle) {
73347
- const layouts = [];
73348
- const titleLower = reportTitle.toLowerCase();
73349
- // Generate base export options
73350
- const baseExportOptions = {
73351
- fileNameTemplate: 'Report_{date}_{user}',
73352
- pdf: {
73353
- enabled: true,
73354
- pageSize: 'A4',
73355
- headerEnabled: true,
73356
- footerEnabled: true,
73357
- showPageNumbers: true,
73358
- watermarkText: 'Mock Report',
73359
- watermarkOpacity: 0.5,
73360
- compression: true,
73361
- embedImages: true,
73362
- },
73363
- };
73364
- // Table Layout (always available)
73365
- if (titleLower.includes('product') || titleLower.includes('brand')) {
73366
- layouts.push({
73367
- id: AXPDataGenerator.uuid(),
73368
- title: 'Table View',
73369
- description: 'Detailed tabular view of the data',
73370
- icon: 'fa-light fa-table',
73371
- isDefault: true,
73372
- layout: {
73373
- type: 'table',
73374
- columns: [
73375
- {
73376
- field: 'brand',
73377
- title: 'Brand',
73378
- visible: true,
73379
- width: 150,
73380
- align: 'left',
73381
- pin: 'start',
73382
- sortable: true,
73383
- widget: { type: AXPWidgetsList.Editors.TextBox, path: 'brand' },
73384
- },
73385
- {
73386
- field: 'manufacturer',
73387
- title: 'Manufacturer',
73388
- visible: true,
73389
- width: 150,
73390
- align: 'left',
73391
- sortable: true,
73392
- widget: { type: AXPWidgetsList.Editors.TextBox, path: 'manufacturer' },
73393
- },
73394
- {
73395
- field: 'productCount',
73396
- title: 'Product Count',
73397
- visible: true,
73398
- width: 120,
73399
- align: 'right',
73400
- sortable: true,
73401
- widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'productCount' },
73402
- },
73403
- {
73404
- field: 'totalValue',
73405
- title: 'Total Value',
73406
- visible: true,
73407
- width: 120,
73408
- align: 'right',
73409
- sortable: true,
73410
- widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'totalValue' },
73411
- },
73412
- {
73413
- field: 'averagePrice',
73414
- title: 'Average Price',
73415
- visible: true,
73416
- width: 120,
73417
- align: 'right',
73418
- sortable: true,
73419
- widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'averagePrice' },
73420
- },
73421
- {
73422
- field: 'minPrice',
73423
- title: 'Min Price',
73424
- visible: true,
73425
- width: 100,
73426
- align: 'right',
73427
- sortable: true,
73428
- widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'minPrice' },
73429
- },
73430
- {
73431
- field: 'maxPrice',
73432
- title: 'Max Price',
73433
- visible: true,
73434
- width: 100,
73435
- align: 'right',
73436
- sortable: true,
73437
- widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'maxPrice' },
73438
- },
73439
- {
73440
- field: 'categories',
73441
- title: 'Categories',
73442
- visible: true,
73443
- width: 200,
73444
- align: 'left',
73445
- widget: { type: AXPWidgetsList.Editors.TextBox, path: 'categories' },
73446
- },
73447
- ],
73448
- actions: [],
73449
- options: {
73450
- pagination: true,
73451
- stickyHeader: true,
73452
- stripedRows: true,
73453
- sorting: [{ name: 'brand', dir: 'asc' }],
73454
- },
73455
- summary: [
73456
- { field: 'totalValue', operation: 'sum', displayIn: 'reportFooter' },
73457
- { field: 'averagePrice', operation: 'sum', displayIn: 'reportFooter' },
73458
- { field: 'minPrice', operation: 'sum', displayIn: 'reportFooter' },
73459
- { field: 'maxPrice', operation: 'sum', displayIn: 'reportFooter' },
73460
- ],
73461
- },
73462
- dataSource: {
73463
- type: 'query',
73464
- name: 'getProductList',
73465
- pagination: true,
73466
- sortFields: [{ name: 'brand', dir: 'asc' }],
73467
- },
73468
- export: {
73469
- ...baseExportOptions,
73470
- fileNameTemplate: 'Report_{date}_{user}',
73471
- excel: {
73472
- enabled: true,
73473
- sheetName: 'Report',
73474
- },
73475
- csv: {
73476
- enabled: true,
73477
- },
73478
- pdf: {
73479
- enabled: true,
73480
- },
73481
- },
73482
- });
73483
- }
73484
- // Chart Layout (for product/brand reports)
73485
- if (titleLower.includes('product') || titleLower.includes('brand')) {
73486
- // Bar Chart View
73487
- layouts.push({
73488
- id: AXPDataGenerator.uuid(),
73489
- title: 'Bar Chart View',
73490
- description: 'Visual Bar chart representation of products by brand',
73491
- icon: 'fa-light fa-chart-bar',
73492
- layout: {
73493
- type: 'chart',
73494
- options: {
73495
- chartType: 'bar',
73496
- dataMapping: {
73497
- xField: 'brand',
73498
- yFields: 'productCount',
73499
- groupBy: 'brand',
73500
- aggregation: {
73501
- method: 'sum',
73502
- field: 'productCount',
73503
- },
73504
- },
73505
- styling: {
73506
- colorScheme: 'primary',
73507
- gridLines: true,
73508
- legend: {
73509
- show: true,
73510
- position: 'bottom',
73511
- },
73512
- animation: {
73513
- enabled: true,
73514
- duration: 750,
73515
- },
73516
- },
73517
- interactivity: {
73518
- tooltips: {
73519
- enabled: true,
73520
- showOnHover: true,
73521
- },
73522
- zoom: {
73523
- enabled: true,
73524
- mode: 'x',
73525
- },
73526
- export: {
73527
- enabled: true,
73528
- formats: ['png', 'pdf', 'svg'],
73529
- },
73530
- },
73531
- },
73532
- },
73533
- dataSource: {
73534
- type: 'query',
73535
- name: 'getProductChartData',
73536
- },
73537
- });
73538
- // Doughnut Chart View
73539
- layouts.push({
73540
- id: AXPDataGenerator.uuid(),
73541
- title: 'Doughnut Chart View',
73542
- description: 'Visual Doughnut chart representation of products by brand',
73543
- icon: 'fa-light fa-chart-pie',
73544
- layout: {
73545
- type: 'chart',
73546
- options: {
73547
- chartType: 'doughnut',
73548
- dataMapping: {
73549
- xField: 'brand',
73550
- yFields: 'productCount',
73551
- groupBy: 'brand',
73552
- aggregation: {
73553
- method: 'sum',
73554
- field: 'productCount',
73555
- },
73556
- },
73557
- styling: {
73558
- colorScheme: 'primary',
73559
- gridLines: true,
73560
- legend: {
73561
- show: true,
73562
- position: 'bottom',
73563
- },
73564
- animation: {
73565
- enabled: true,
73566
- duration: 750,
73567
- },
73568
- },
73569
- interactivity: {
73570
- tooltips: {
73571
- enabled: true,
73572
- showOnHover: true,
73573
- },
73574
- zoom: {
73575
- enabled: true,
73576
- mode: 'x',
73577
- },
73578
- export: {
73579
- enabled: true,
73580
- formats: ['png', 'pdf', 'svg'],
73581
- },
73582
- },
73583
- },
73584
- },
73585
- dataSource: {
73586
- type: 'query',
73587
- name: 'getProductChartData',
73588
- },
73589
- });
73590
- // PDF View
73591
- layouts.push({
73592
- id: AXPDataGenerator.uuid(),
73593
- title: 'PDF View',
73594
- description: 'PDF document view of the product report',
73595
- icon: 'fa-light fa-file-pdf',
73596
- layout: {
73597
- type: 'pdf',
73598
- options: {
73599
- showDownloadButton: true,
73600
- showPrintButton: true,
73601
- showZoomControls: true,
73602
- showFullscreenButton: true,
73603
- defaultZoom: 100,
73604
- height: '100%',
73605
- },
73606
- header: {
73607
- title: reportTitle,
73608
- showDate: true,
73609
- },
73610
- footer: {
73611
- showDate: true,
73612
- },
73613
- },
73614
- dataSource: {
73615
- type: 'query',
73616
- name: 'getProductPdfData',
73617
- },
73618
- });
73619
- }
73620
- return layouts;
73621
- }
73622
- //#endregion
73623
- //#region ---- Mock Report Definitions ----
73624
- /**
73625
- * Generate report definitions for categories
73626
- *
73627
- * Optimization: Only generates reports for categories with itemsCount > 0
73628
- */
73629
- function generateReportDefinitions$3() {
73630
- const reports = [];
73631
- // ✅ Get categories that have reports (itemsCount > 0)
73632
- const categoriesWithReports = PRODUCT_REPORT_CATEGORIES.filter((cat) => (cat.itemsCount ?? 0) > 0);
73633
- categoriesWithReports.forEach((category) => {
73634
- let reportsForCategory = [];
73635
- switch (category.title) {
73636
- case 'Product Analysis':
73637
- reportsForCategory = [
73638
- {
73639
- title: 'Products by Brand',
73640
- description: 'Product catalog analysis grouped by brand with chart visualization',
73641
- parameterGroups: [...productCatalogParameterGroups],
73642
- },
73643
- ];
73644
- break;
73645
- }
73646
- reportsForCategory.forEach((report) => {
73647
- const layouts = generateLayoutsForReport$3(report.title);
73648
- const defaultLayout = layouts.find((l) => l.isDefault) || layouts[0];
73649
- reports.push({
73650
- id: AXPDataGenerator.uuid(),
73651
- title: report.title,
73652
- description: report.description,
73653
- categoryIds: [category.id],
73654
- parameterGroups: report.parameterGroups,
73655
- layouts: layouts,
73656
- defaultLayoutId: defaultLayout?.id || '',
73657
- });
73658
- });
73659
- });
73660
- return reports;
73661
- }
73662
- const PRODUCT_REPORT_DEFINITIONS = generateReportDefinitions$3();
73663
- //#endregion
73664
- //#region ---- Category-Report Mapping ----
73665
- /**
73666
- * Create a mapping of categories to their reports for easy lookup
73667
- *
73668
- * Optimization: Only processes categories with itemsCount > 0
73669
- */
73670
- const CATEGORY_REPORT_MAPPING$1 = new Map();
73671
- PRODUCT_REPORT_CATEGORIES.filter((cat) => (cat.itemsCount ?? 0) > 0).forEach((category) => {
73672
- const categoryTitleLc = resolveMultiLanguageString(category.title, 'en-US').toLowerCase();
73673
- const categoryReports = PRODUCT_REPORT_DEFINITIONS.filter((report) => {
73674
- // Simple matching based on category title and report title
73675
- return (report.title.toLowerCase().includes(categoryTitleLc) ||
73676
- report.description?.toLowerCase().includes(categoryTitleLc));
73677
- });
73678
- CATEGORY_REPORT_MAPPING$1.set(category.id, categoryReports);
73679
- });
73680
- //#endregion
73681
-
73682
- class AXMProductReportDefinitionDataSeeder {
73683
- constructor() {
73684
- this.storageService = inject(AXPEntityStorageService);
73685
- }
73686
- async seed() {
73687
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}`, PRODUCT_REPORT_DEFINITIONS);
73688
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}Category`, PRODUCT_REPORT_CATEGORIES);
73689
- }
73690
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMProductReportDefinitionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
73691
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMProductReportDefinitionDataSeeder }); }
73692
- }
73693
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMProductReportDefinitionDataSeeder, decorators: [{
73694
- type: Injectable
73695
- }] });
73696
-
73697
73235
  class AXCProductCatalogMockModule {
73698
73236
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProductCatalogMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
73699
73237
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXCProductCatalogMockModule }); }
@@ -73728,16 +73266,11 @@ class AXCProductCatalogMockModule {
73728
73266
  useClass: AXCProductSkuSeeder,
73729
73267
  multi: true,
73730
73268
  },
73731
- {
73732
- provide: AXP_DATA_SEEDER_TOKEN,
73733
- useClass: AXMProductReportDefinitionDataSeeder,
73734
- multi: true,
73735
- },
73736
73269
  // Register report queries using provideQuerySetups
73737
73270
  provideQuerySetups([
73738
73271
  {
73739
73272
  key: 'getProductList',
73740
- loader: () => import('./acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs').then((q) => q.GetProductListQuery),
73273
+ loader: () => import('./acorex-connectivity-mock-get-product-list.query-BtzXU8Tg.mjs').then((q) => q.GetProductListQuery),
73741
73274
  },
73742
73275
  {
73743
73276
  key: 'getProductChartData',
@@ -73745,7 +73278,7 @@ class AXCProductCatalogMockModule {
73745
73278
  },
73746
73279
  {
73747
73280
  key: 'getProductPdfData',
73748
- loader: () => import('./acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs').then((q) => q.GetProductPdfDataQuery),
73281
+ loader: () => import('./acorex-connectivity-mock-get-product-pdf-data.query-DjyRJ7il.mjs').then((q) => q.GetProductPdfDataQuery),
73749
73282
  },
73750
73283
  ]),
73751
73284
  provideLazyProvider(AXP_DATASOURCE_DEFINITION_PROVIDER, () => import('./acorex-connectivity-mock-index-D0jdkk2E.mjs').then((m) => m.AXCProductHistoryBarChartDataSourceDefinition)),
@@ -73785,16 +73318,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
73785
73318
  useClass: AXCProductSkuSeeder,
73786
73319
  multi: true,
73787
73320
  },
73788
- {
73789
- provide: AXP_DATA_SEEDER_TOKEN,
73790
- useClass: AXMProductReportDefinitionDataSeeder,
73791
- multi: true,
73792
- },
73793
73321
  // Register report queries using provideQuerySetups
73794
73322
  provideQuerySetups([
73795
73323
  {
73796
73324
  key: 'getProductList',
73797
- loader: () => import('./acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs').then((q) => q.GetProductListQuery),
73325
+ loader: () => import('./acorex-connectivity-mock-get-product-list.query-BtzXU8Tg.mjs').then((q) => q.GetProductListQuery),
73798
73326
  },
73799
73327
  {
73800
73328
  key: 'getProductChartData',
@@ -73802,7 +73330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
73802
73330
  },
73803
73331
  {
73804
73332
  key: 'getProductPdfData',
73805
- loader: () => import('./acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs').then((q) => q.GetProductPdfDataQuery),
73333
+ loader: () => import('./acorex-connectivity-mock-get-product-pdf-data.query-DjyRJ7il.mjs').then((q) => q.GetProductPdfDataQuery),
73806
73334
  },
73807
73335
  ]),
73808
73336
  provideLazyProvider(AXP_DATASOURCE_DEFINITION_PROVIDER, () => import('./acorex-connectivity-mock-index-D0jdkk2E.mjs').then((m) => m.AXCProductHistoryBarChartDataSourceDefinition)),
@@ -73868,7 +73396,7 @@ class AXCProjectDataSeeder {
73868
73396
  this.storageService = inject(AXPEntityStorageService);
73869
73397
  }
73870
73398
  async seed() {
73871
- await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.project.name}`, projectMock);
73399
+ await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.project.name}`, projectMock);
73872
73400
  }
73873
73401
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
73874
73402
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectDataSeeder }); }
@@ -74163,7 +73691,7 @@ class AXCProjectMemberDataSeeder {
74163
73691
  this.storageService = inject(AXPEntityStorageService);
74164
73692
  }
74165
73693
  async seed() {
74166
- await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.projectMemeber.name}`, projectMemberMock);
73694
+ await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.projectMemeber.name}`, projectMemberMock);
74167
73695
  }
74168
73696
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectMemberDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74169
73697
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectMemberDataSeeder }); }
@@ -74177,7 +73705,7 @@ class AXCProjectTypeRoleTypeDataSeeder {
74177
73705
  this.storageService = inject(AXPEntityStorageService);
74178
73706
  }
74179
73707
  async seed() {
74180
- await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.projectTypeRoleType.name}`, projectTypeRoleTypeMock);
73708
+ await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.projectTypeRoleType.name}`, projectTypeRoleTypeMock);
74181
73709
  }
74182
73710
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectTypeRoleTypeDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74183
73711
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectTypeRoleTypeDataSeeder }); }
@@ -74191,7 +73719,7 @@ class AXCProjectTypeDataSeeder {
74191
73719
  this.storageService = inject(AXPEntityStorageService);
74192
73720
  }
74193
73721
  async seed() {
74194
- await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.projectType.name}`, projectTypeMock);
73722
+ await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.projectType.name}`, projectTypeMock);
74195
73723
  }
74196
73724
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectTypeDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74197
73725
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectTypeDataSeeder }); }
@@ -74205,7 +73733,7 @@ class AXCProjectTypeCategoryDataSeeder {
74205
73733
  this.storageService = inject(AXPEntityStorageService);
74206
73734
  }
74207
73735
  async seed() {
74208
- await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.projectTypeCategory.name}`, projectTypeCategoryMocks);
73736
+ await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.projectTypeCategory.name}`, projectTypeCategoryMocks);
74209
73737
  }
74210
73738
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectTypeCategoryDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74211
73739
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCProjectTypeCategoryDataSeeder }); }
@@ -74632,7 +74160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
74632
74160
  /**
74633
74161
  * Generate report categories for employee reports
74634
74162
  */
74635
- function generateCategories$2() {
74163
+ function generateCategories$3() {
74636
74164
  const categories = [];
74637
74165
  // Root categories with child count metadata
74638
74166
  const rootCategories = [
@@ -74685,7 +74213,7 @@ function generateCategories$2() {
74685
74213
  });
74686
74214
  return categories;
74687
74215
  }
74688
- const EMPLOYEE_REPORT_CATEGORIES = generateCategories$2();
74216
+ const EMPLOYEE_REPORT_CATEGORIES = generateCategories$3();
74689
74217
  //#endregion
74690
74218
  //#region ---- Mock Parameter Groups ----
74691
74219
  const employeeReportParameterGroups = [
@@ -74785,7 +74313,7 @@ const employeeReportParameterGroups = [
74785
74313
  ];
74786
74314
  //#endregion
74787
74315
  //#region ---- Layout Definitions Generator ----
74788
- function generateLayoutsForReport$2(reportTitle) {
74316
+ function generateLayoutsForReport$3(reportTitle) {
74789
74317
  const layouts = [];
74790
74318
  const titleLower = reportTitle.toLowerCase();
74791
74319
  // Generate base export options
@@ -74897,7 +74425,7 @@ function generateLayoutsForReport$2(reportTitle) {
74897
74425
  *
74898
74426
  * Optimization: Only generates reports for categories with itemsCount > 0
74899
74427
  */
74900
- function generateReportDefinitions$2() {
74428
+ function generateReportDefinitions$3() {
74901
74429
  const reports = [];
74902
74430
  // ✅ Get categories that have reports (itemsCount > 0)
74903
74431
  const categoriesWithReports = EMPLOYEE_REPORT_CATEGORIES.filter((cat) => (cat.itemsCount ?? 0) > 0);
@@ -74915,7 +74443,7 @@ function generateReportDefinitions$2() {
74915
74443
  break;
74916
74444
  }
74917
74445
  reportsForCategory.forEach((report) => {
74918
- const layouts = generateLayoutsForReport$2(report.title);
74446
+ const layouts = generateLayoutsForReport$3(report.title);
74919
74447
  const defaultLayout = layouts.find((l) => l.isDefault) || layouts[0];
74920
74448
  reports.push({
74921
74449
  id: AXPDataGenerator.uuid(),
@@ -74930,7 +74458,7 @@ function generateReportDefinitions$2() {
74930
74458
  });
74931
74459
  return reports;
74932
74460
  }
74933
- const EMPLOYEE_REPORT_DEFINITIONS = generateReportDefinitions$2();
74461
+ const EMPLOYEE_REPORT_DEFINITIONS = generateReportDefinitions$3();
74934
74462
  //#endregion
74935
74463
  //#region ---- Category-Report Mapping ----
74936
74464
  /**
@@ -74955,8 +74483,8 @@ class AXMEmployeeReportDefinitionDataSeeder {
74955
74483
  this.storageService = inject(AXPEntityStorageService);
74956
74484
  }
74957
74485
  async seed() {
74958
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}`, EMPLOYEE_REPORT_DEFINITIONS);
74959
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}Category`, EMPLOYEE_REPORT_CATEGORIES);
74486
+ await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}`, EMPLOYEE_REPORT_DEFINITIONS);
74487
+ await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}Category`, EMPLOYEE_REPORT_CATEGORIES);
74960
74488
  }
74961
74489
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEmployeeReportDefinitionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74962
74490
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEmployeeReportDefinitionDataSeeder }); }
@@ -74969,7 +74497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
74969
74497
  /**
74970
74498
  * Generate report categories for location reports
74971
74499
  */
74972
- function generateCategories$1() {
74500
+ function generateCategories$2() {
74973
74501
  const categories = [];
74974
74502
  // Root categories with child count metadata
74975
74503
  const rootCategories = [
@@ -75022,7 +74550,7 @@ function generateCategories$1() {
75022
74550
  });
75023
74551
  return categories;
75024
74552
  }
75025
- const LOCATION_REPORT_CATEGORIES = generateCategories$1();
74553
+ const LOCATION_REPORT_CATEGORIES = generateCategories$2();
75026
74554
  //#endregion
75027
74555
  //#region ---- Mock Parameter Groups ----
75028
74556
  const locationReportParameterGroups = [
@@ -75152,7 +74680,7 @@ const locationReportParameterGroups = [
75152
74680
  ];
75153
74681
  //#endregion
75154
74682
  //#region ---- Layout Definitions Generator ----
75155
- function generateLayoutsForReport$1(reportTitle) {
74683
+ function generateLayoutsForReport$2(reportTitle) {
75156
74684
  const layouts = [];
75157
74685
  const titleLower = reportTitle.toLowerCase();
75158
74686
  // Generate base export options
@@ -75251,7 +74779,7 @@ function generateLayoutsForReport$1(reportTitle) {
75251
74779
  *
75252
74780
  * Optimization: Only generates reports for categories with itemsCount > 0
75253
74781
  */
75254
- function generateReportDefinitions$1() {
74782
+ function generateReportDefinitions$2() {
75255
74783
  const reports = [];
75256
74784
  // ✅ Get categories that have reports (itemsCount > 0)
75257
74785
  const categoriesWithReports = LOCATION_REPORT_CATEGORIES.filter((cat) => (cat.itemsCount ?? 0) > 0);
@@ -75269,7 +74797,7 @@ function generateReportDefinitions$1() {
75269
74797
  break;
75270
74798
  }
75271
74799
  reportsForCategory.forEach((report) => {
75272
- const layouts = generateLayoutsForReport$1(report.title);
74800
+ const layouts = generateLayoutsForReport$2(report.title);
75273
74801
  const defaultLayout = layouts.find((l) => l.isDefault) || layouts[0];
75274
74802
  reports.push({
75275
74803
  id: AXPDataGenerator.uuid(),
@@ -75284,7 +74812,7 @@ function generateReportDefinitions$1() {
75284
74812
  });
75285
74813
  return reports;
75286
74814
  }
75287
- const LOCATION_REPORT_DEFINITIONS = generateReportDefinitions$1();
74815
+ const LOCATION_REPORT_DEFINITIONS = generateReportDefinitions$2();
75288
74816
  //#endregion
75289
74817
  //#region ---- Category-Report Mapping ----
75290
74818
  /**
@@ -75309,8 +74837,8 @@ class AXMLocationReportDefinitionDataSeeder {
75309
74837
  this.storageService = inject(AXPEntityStorageService);
75310
74838
  }
75311
74839
  async seed() {
75312
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}`, LOCATION_REPORT_DEFINITIONS);
75313
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}Category`, LOCATION_REPORT_CATEGORIES);
74840
+ await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}`, LOCATION_REPORT_DEFINITIONS);
74841
+ await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}Category`, LOCATION_REPORT_CATEGORIES);
75314
74842
  }
75315
74843
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMLocationReportDefinitionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
75316
74844
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMLocationReportDefinitionDataSeeder }); }
@@ -75319,6 +74847,476 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
75319
74847
  type: Injectable
75320
74848
  }] });
75321
74849
 
74850
+ //#region ---- Stable Catalog IDs ----
74851
+ const PRODUCT_CATALOG_ROOT_CATEGORY_ID = 'c2000001-0000-4000-8000-000000000001';
74852
+ const PRODUCT_ANALYSIS_CATEGORY_ID = 'c2000002-0000-4000-8000-000000000002';
74853
+ const PRODUCTS_BY_BRAND_REPORT_ID = 'c1000001-0000-4000-8000-000000000001';
74854
+ const PRODUCTS_BY_BRAND_TABLE_LAYOUT_ID = 'c1000011-0000-4000-8000-000000000001';
74855
+ //#endregion
74856
+ //#region ---- Mock Categories ----
74857
+ /**
74858
+ * Generate report categories with optimized count metadata
74859
+ *
74860
+ * Uses childrenCount & itemsCount for performance:
74861
+ * - childrenCount: Direct child categories (for lazy loading)
74862
+ * - itemsCount: Direct reports in this category
74863
+ * - No need for boolean flags (hasChild, hasReport)
74864
+ */
74865
+ function generateCategories$1() {
74866
+ const categories = [];
74867
+ // Root categories with child count metadata
74868
+ const rootCategories = [
74869
+ {
74870
+ title: 'Product Catalog',
74871
+ description: 'Product catalog analysis and reports',
74872
+ childrenCount: 1, // Has 1 child category
74873
+ itemsCount: 0, // No direct reports
74874
+ },
74875
+ ];
74876
+ rootCategories.forEach(({ title, description, childrenCount, itemsCount }) => {
74877
+ categories.push({
74878
+ id: PRODUCT_CATALOG_ROOT_CATEGORY_ID,
74879
+ title,
74880
+ description,
74881
+ parentId: undefined,
74882
+ childrenCount,
74883
+ itemsCount,
74884
+ });
74885
+ });
74886
+ // Child categories (leaf nodes with reports)
74887
+ const childCategories = [
74888
+ {
74889
+ parent: 'Product Catalog',
74890
+ children: [
74891
+ {
74892
+ title: 'Product Analysis',
74893
+ description: 'Product catalog analysis and insights',
74894
+ childrenCount: 0,
74895
+ itemsCount: 1,
74896
+ },
74897
+ ],
74898
+ },
74899
+ ];
74900
+ childCategories.forEach(({ parent, children }) => {
74901
+ const parentCat = categories.find((c) => resolveMultiLanguageString(c.title, 'en-US') === parent);
74902
+ if (parentCat) {
74903
+ children.forEach(({ title, description, childrenCount, itemsCount }) => {
74904
+ categories.push({
74905
+ id: PRODUCT_ANALYSIS_CATEGORY_ID,
74906
+ title,
74907
+ description,
74908
+ parentId: parentCat.id,
74909
+ childrenCount,
74910
+ itemsCount,
74911
+ });
74912
+ });
74913
+ }
74914
+ });
74915
+ return categories;
74916
+ }
74917
+ const PRODUCT_REPORT_CATEGORIES = generateCategories$1();
74918
+ //#endregion
74919
+ //#region ---- Mock Parameter Groups ----
74920
+ const productCatalogParameterGroups = [
74921
+ {
74922
+ name: 'productDetails',
74923
+ title: 'Product Details',
74924
+ description: 'Product catalog filtering options',
74925
+ parameters: [
74926
+ {
74927
+ path: 'brand',
74928
+ title: 'Brand',
74929
+ description: 'Filter by specific brand',
74930
+ widget: {
74931
+ type: AXPWidgetsList.Editors.LookupBox,
74932
+ options: {
74933
+ entity: 'ProductCatalog.Brand',
74934
+ multiple: true,
74935
+ },
74936
+ },
74937
+ },
74938
+ {
74939
+ path: 'category',
74940
+ title: 'Category',
74941
+ description: 'Filter by product category',
74942
+ widget: {
74943
+ type: AXPWidgetsList.Editors.LookupBox,
74944
+ options: {
74945
+ entity: 'ProductCatalog.ProductCategory',
74946
+ multiple: true,
74947
+ },
74948
+ },
74949
+ },
74950
+ {
74951
+ path: 'status',
74952
+ title: 'Status',
74953
+ description: 'Filter by product status',
74954
+ widget: {
74955
+ type: AXPWidgetsList.Editors.SelectBox,
74956
+ options: {
74957
+ valueField: 'value',
74958
+ textField: 'text',
74959
+ dataSource: [
74960
+ { value: 'all', text: 'All' },
74961
+ { value: 'approved', text: 'Approved' },
74962
+ { value: 'in-review', text: 'In Review' },
74963
+ { value: 'draft', text: 'Draft' },
74964
+ { value: 'rejected', text: 'Rejected' },
74965
+ ],
74966
+ },
74967
+ },
74968
+ },
74969
+ {
74970
+ path: 'priceRange',
74971
+ title: 'Price Range',
74972
+ description: 'Filter by price range',
74973
+ widget: {
74974
+ type: AXPWidgetsList.Editors.SelectBox,
74975
+ options: {
74976
+ valueField: 'value',
74977
+ textField: 'text',
74978
+ dataSource: [
74979
+ { value: 'all', text: 'All' },
74980
+ { value: 'under-50', text: 'Under $50' },
74981
+ { value: '50-100', text: '$50 - $100' },
74982
+ { value: '100-500', text: '$100 - $500' },
74983
+ { value: '500-1000', text: '$500 - $1000' },
74984
+ { value: 'over-1000', text: 'Over $1000' },
74985
+ ],
74986
+ },
74987
+ },
74988
+ },
74989
+ ],
74990
+ },
74991
+ ];
74992
+ //#endregion
74993
+ //#region ---- Layout Definitions Generator ----
74994
+ function generateProductsByBrandLayouts() {
74995
+ const baseExportOptions = {
74996
+ fileNameTemplate: 'Report_{date}_{user}',
74997
+ pdf: {
74998
+ enabled: true,
74999
+ pageSize: 'A4',
75000
+ headerEnabled: true,
75001
+ footerEnabled: true,
75002
+ showPageNumbers: true,
75003
+ watermarkText: 'Mock Report',
75004
+ watermarkOpacity: 0.5,
75005
+ compression: true,
75006
+ embedImages: true,
75007
+ },
75008
+ };
75009
+ const layouts = [];
75010
+ layouts.push({
75011
+ id: PRODUCTS_BY_BRAND_TABLE_LAYOUT_ID,
75012
+ title: 'Table View',
75013
+ description: 'Detailed tabular view of the data',
75014
+ icon: 'fa-light fa-table',
75015
+ isDefault: true,
75016
+ layout: {
75017
+ type: 'table',
75018
+ columns: [
75019
+ {
75020
+ field: 'brand',
75021
+ title: 'Brand',
75022
+ visible: true,
75023
+ width: 150,
75024
+ align: 'left',
75025
+ pin: 'start',
75026
+ sortable: true,
75027
+ widget: { type: AXPWidgetsList.Editors.TextBox, path: 'brand' },
75028
+ },
75029
+ {
75030
+ field: 'manufacturer',
75031
+ title: 'Manufacturer',
75032
+ visible: true,
75033
+ width: 150,
75034
+ align: 'left',
75035
+ sortable: true,
75036
+ widget: { type: AXPWidgetsList.Editors.TextBox, path: 'manufacturer' },
75037
+ },
75038
+ {
75039
+ field: 'productCount',
75040
+ title: 'Product Count',
75041
+ visible: true,
75042
+ width: 120,
75043
+ align: 'right',
75044
+ sortable: true,
75045
+ widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'productCount' },
75046
+ },
75047
+ {
75048
+ field: 'totalValue',
75049
+ title: 'Total Value',
75050
+ visible: true,
75051
+ width: 120,
75052
+ align: 'right',
75053
+ sortable: true,
75054
+ widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'totalValue' },
75055
+ },
75056
+ {
75057
+ field: 'averagePrice',
75058
+ title: 'Average Price',
75059
+ visible: true,
75060
+ width: 120,
75061
+ align: 'right',
75062
+ sortable: true,
75063
+ widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'averagePrice' },
75064
+ },
75065
+ {
75066
+ field: 'minPrice',
75067
+ title: 'Min Price',
75068
+ visible: true,
75069
+ width: 100,
75070
+ align: 'right',
75071
+ sortable: true,
75072
+ widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'minPrice' },
75073
+ },
75074
+ {
75075
+ field: 'maxPrice',
75076
+ title: 'Max Price',
75077
+ visible: true,
75078
+ width: 100,
75079
+ align: 'right',
75080
+ sortable: true,
75081
+ widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'maxPrice' },
75082
+ },
75083
+ {
75084
+ field: 'categories',
75085
+ title: 'Categories',
75086
+ visible: true,
75087
+ width: 200,
75088
+ align: 'left',
75089
+ widget: { type: AXPWidgetsList.Editors.TextBox, path: 'categories' },
75090
+ },
75091
+ ],
75092
+ groupBy: [
75093
+ {
75094
+ fields: ['brandId'],
75095
+ displayField: 'brand',
75096
+ title: 'View Products',
75097
+ default: true,
75098
+ drillDown: {
75099
+ title: "Products for {{ context.eval('brand') }}",
75100
+ parameters: {
75101
+ brand: 'brandId',
75102
+ },
75103
+ },
75104
+ },
75105
+ {
75106
+ fields: ['manufacturerId'],
75107
+ displayField: 'manufacturer',
75108
+ title: 'View by Manufacturer',
75109
+ drillDown: {
75110
+ title: "Products for {{ context.eval('manufacturer') }}",
75111
+ parameters: {
75112
+ manufacturer: 'manufacturerId',
75113
+ },
75114
+ },
75115
+ },
75116
+ ],
75117
+ options: {
75118
+ pagination: true,
75119
+ stickyHeader: true,
75120
+ stripedRows: true,
75121
+ sorting: [{ name: 'brand', dir: 'asc' }],
75122
+ },
75123
+ summary: [
75124
+ { field: 'totalValue', operation: 'sum', displayIn: 'reportFooter' },
75125
+ { field: 'averagePrice', operation: 'sum', displayIn: 'reportFooter' },
75126
+ { field: 'minPrice', operation: 'sum', displayIn: 'reportFooter' },
75127
+ { field: 'maxPrice', operation: 'sum', displayIn: 'reportFooter' },
75128
+ ],
75129
+ },
75130
+ dataSource: {
75131
+ type: 'query',
75132
+ name: 'getProductList',
75133
+ pagination: true,
75134
+ sortFields: [{ name: 'brand', dir: 'asc' }],
75135
+ },
75136
+ export: {
75137
+ ...baseExportOptions,
75138
+ fileNameTemplate: 'Report_{date}_{user}',
75139
+ excel: {
75140
+ enabled: true,
75141
+ sheetName: 'Report',
75142
+ },
75143
+ csv: {
75144
+ enabled: true,
75145
+ },
75146
+ pdf: {
75147
+ enabled: true,
75148
+ },
75149
+ },
75150
+ });
75151
+ layouts.push({
75152
+ id: 'c1000013-0000-4000-8000-000000000003',
75153
+ title: 'Bar Chart View',
75154
+ description: 'Visual Bar chart representation of products by brand',
75155
+ icon: 'fa-light fa-chart-bar',
75156
+ layout: {
75157
+ type: 'chart',
75158
+ options: {
75159
+ chartType: 'bar',
75160
+ dataMapping: {
75161
+ xField: 'brand',
75162
+ yFields: 'productCount',
75163
+ groupBy: 'brand',
75164
+ aggregation: {
75165
+ method: 'sum',
75166
+ field: 'productCount',
75167
+ },
75168
+ },
75169
+ styling: {
75170
+ colorScheme: 'primary',
75171
+ gridLines: true,
75172
+ legend: {
75173
+ show: true,
75174
+ position: 'bottom',
75175
+ },
75176
+ animation: {
75177
+ enabled: true,
75178
+ duration: 750,
75179
+ },
75180
+ },
75181
+ interactivity: {
75182
+ tooltips: {
75183
+ enabled: true,
75184
+ showOnHover: true,
75185
+ },
75186
+ zoom: {
75187
+ enabled: true,
75188
+ mode: 'x',
75189
+ },
75190
+ export: {
75191
+ enabled: true,
75192
+ formats: ['png', 'pdf', 'svg'],
75193
+ },
75194
+ },
75195
+ },
75196
+ },
75197
+ dataSource: {
75198
+ type: 'query',
75199
+ name: 'getProductChartData',
75200
+ },
75201
+ });
75202
+ return layouts;
75203
+ }
75204
+ function generateLayoutsForReport$1(reportTitle) {
75205
+ const titleLower = reportTitle.toLowerCase();
75206
+ if (titleLower === 'products by brand') {
75207
+ return generateProductsByBrandLayouts();
75208
+ }
75209
+ return [];
75210
+ }
75211
+ //#endregion
75212
+ //#region ---- Mock Report Definitions ----
75213
+ /**
75214
+ * Generate report definitions for categories
75215
+ *
75216
+ * Optimization: Only generates reports for categories with itemsCount > 0
75217
+ */
75218
+ function generateReportDefinitions$1() {
75219
+ const reports = [];
75220
+ // ✅ Get categories that have reports (itemsCount > 0)
75221
+ const categoriesWithReports = PRODUCT_REPORT_CATEGORIES.filter((cat) => (cat.itemsCount ?? 0) > 0);
75222
+ categoriesWithReports.forEach((category) => {
75223
+ let reportsForCategory = [];
75224
+ switch (resolveMultiLanguageString(category.title, 'en-US')) {
75225
+ case 'Product Analysis':
75226
+ reportsForCategory = [
75227
+ {
75228
+ id: PRODUCTS_BY_BRAND_REPORT_ID,
75229
+ title: 'Products by Brand',
75230
+ description: 'Product catalog analysis grouped by brand with drill-down to product list',
75231
+ parameterGroups: [...productCatalogParameterGroups],
75232
+ },
75233
+ ];
75234
+ break;
75235
+ }
75236
+ reportsForCategory.forEach((report) => {
75237
+ const layouts = generateLayoutsForReport$1(report.title);
75238
+ const defaultLayout = layouts.find((l) => l.isDefault) || layouts[0];
75239
+ reports.push({
75240
+ id: report.id,
75241
+ title: report.title,
75242
+ description: report.description,
75243
+ categoryIds: [category.id],
75244
+ parameterGroups: report.parameterGroups,
75245
+ layouts: layouts,
75246
+ defaultLayoutId: defaultLayout?.id || '',
75247
+ });
75248
+ });
75249
+ });
75250
+ return reports;
75251
+ }
75252
+ const PRODUCT_REPORT_DEFINITIONS = generateReportDefinitions$1();
75253
+ //#endregion
75254
+ //#region ---- Category-Report Mapping ----
75255
+ /**
75256
+ * Create a mapping of categories to their reports for easy lookup
75257
+ *
75258
+ * Optimization: Only processes categories with itemsCount > 0
75259
+ */
75260
+ const CATEGORY_REPORT_MAPPING$1 = new Map();
75261
+ PRODUCT_REPORT_CATEGORIES.filter((cat) => (cat.itemsCount ?? 0) > 0).forEach((category) => {
75262
+ const categoryTitleLc = resolveMultiLanguageString(category.title, 'en-US').toLowerCase();
75263
+ const categoryReports = PRODUCT_REPORT_DEFINITIONS.filter((report) => {
75264
+ // Simple matching based on category title and report title
75265
+ return (report.title.toLowerCase().includes(categoryTitleLc) ||
75266
+ report.description?.toLowerCase().includes(categoryTitleLc));
75267
+ });
75268
+ CATEGORY_REPORT_MAPPING$1.set(category.id, categoryReports);
75269
+ });
75270
+ //#endregion
75271
+
75272
+ //#region ---- Entity Names ----
75273
+ const REPORT_ENTITY = `${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}`;
75274
+ const REPORT_CATEGORY_ENTITY = `${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}Category`;
75275
+ //#endregion
75276
+ //#region ---- Sync Helpers ----
75277
+ /**
75278
+ * Upserts report catalog rows so multiple module seeders can contribute without `initial()` skip conflicts.
75279
+ */
75280
+ async function syncReportCatalog(storageService, categories, definitions) {
75281
+ await syncById(storageService, REPORT_CATEGORY_ENTITY, categories);
75282
+ await syncById(storageService, REPORT_ENTITY, definitions);
75283
+ }
75284
+ async function syncById(storageService, entityName, items) {
75285
+ const existing = await storageService.getAll(entityName);
75286
+ const existingIds = new Set(existing.map((row) => String(row.id)));
75287
+ for (const item of items) {
75288
+ if (existingIds.has(item.id)) {
75289
+ await storageService.updateOne(entityName, item.id, item);
75290
+ }
75291
+ else {
75292
+ await storageService.insertOne(entityName, item);
75293
+ }
75294
+ }
75295
+ }
75296
+ //#endregion
75297
+
75298
+ //#region ---- Report Catalog Seeder ----
75299
+ /**
75300
+ * Syncs report categories and definitions that are not covered by the first `initial()` seeder pass.
75301
+ * Product Catalog (and other late modules) use stable ids and upsert so they appear alongside Platform Analytics.
75302
+ */
75303
+ class AXMReportCatalogDataSeeder {
75304
+ constructor() {
75305
+ //#region ---- Services & Dependencies ----
75306
+ this.storageService = inject(AXPEntityStorageService);
75307
+ }
75308
+ //#endregion
75309
+ //#region ---- Seed ----
75310
+ async seed() {
75311
+ await syncReportCatalog(this.storageService, PRODUCT_REPORT_CATEGORIES, PRODUCT_REPORT_DEFINITIONS);
75312
+ }
75313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMReportCatalogDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
75314
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMReportCatalogDataSeeder }); }
75315
+ }
75316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMReportCatalogDataSeeder, decorators: [{
75317
+ type: Injectable
75318
+ }] });
75319
+
75322
75320
  class AXCReportManagementMockModule {
75323
75321
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCReportManagementMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
75324
75322
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXCReportManagementMockModule, imports: [AXPRuntimeModule] }); }
@@ -75332,6 +75330,10 @@ class AXCReportManagementMockModule {
75332
75330
  key: 'ReportManagement.Report:SampleAction',
75333
75331
  command: () => import('./acorex-connectivity-mock-sample.command-CJmDL4pL.mjs').then((c) => c.AXMReportSampleActionExecuteCommand),
75334
75332
  },
75333
+ {
75334
+ key: 'ReportManagement.Report:DrillToReport',
75335
+ command: () => import('@acorex/modules/report-management').then((m) => m.AXPDrillToReportCommand),
75336
+ },
75335
75337
  ]),
75336
75338
  // Register sample report queries
75337
75339
  provideQuerySetups([
@@ -75355,6 +75357,11 @@ class AXCReportManagementMockModule {
75355
75357
  useClass: AXMLocationReportDefinitionDataSeeder,
75356
75358
  multi: true,
75357
75359
  },
75360
+ {
75361
+ provide: AXP_DATA_SEEDER_TOKEN,
75362
+ useClass: AXMReportCatalogDataSeeder,
75363
+ multi: true,
75364
+ },
75358
75365
  ], imports: [AXPRuntimeModule] }); }
75359
75366
  }
75360
75367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCReportManagementMockModule, decorators: [{
@@ -75373,6 +75380,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
75373
75380
  key: 'ReportManagement.Report:SampleAction',
75374
75381
  command: () => import('./acorex-connectivity-mock-sample.command-CJmDL4pL.mjs').then((c) => c.AXMReportSampleActionExecuteCommand),
75375
75382
  },
75383
+ {
75384
+ key: 'ReportManagement.Report:DrillToReport',
75385
+ command: () => import('@acorex/modules/report-management').then((m) => m.AXPDrillToReportCommand),
75386
+ },
75376
75387
  ]),
75377
75388
  // Register sample report queries
75378
75389
  provideQuerySetups([
@@ -75396,6 +75407,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
75396
75407
  useClass: AXMLocationReportDefinitionDataSeeder,
75397
75408
  multi: true,
75398
75409
  },
75410
+ {
75411
+ provide: AXP_DATA_SEEDER_TOKEN,
75412
+ useClass: AXMReportCatalogDataSeeder,
75413
+ multi: true,
75414
+ },
75399
75415
  ],
75400
75416
  }]
75401
75417
  }] });
@@ -76024,7 +76040,7 @@ class AXCSecurityManagementMockModule {
76024
76040
  provideQuerySetups([
76025
76041
  {
76026
76042
  key: 'SecurityManagement:User:RolesForListColumn',
76027
- loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs').then((m) => m.UserRolesForListColumnQuery),
76043
+ loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-D5BRGlk3.mjs').then((m) => m.UserRolesForListColumnQuery),
76028
76044
  },
76029
76045
  ]),
76030
76046
  ] }); }
@@ -76068,7 +76084,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
76068
76084
  provideQuerySetups([
76069
76085
  {
76070
76086
  key: 'SecurityManagement:User:RolesForListColumn',
76071
- loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs').then((m) => m.UserRolesForListColumnQuery),
76087
+ loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-D5BRGlk3.mjs').then((m) => m.UserRolesForListColumnQuery),
76072
76088
  },
76073
76089
  ]),
76074
76090
  ],
@@ -79617,8 +79633,8 @@ class AXMPlatformAnalyticsReportDefinitionDataSeeder {
79617
79633
  this.storageService = inject(AXPEntityStorageService);
79618
79634
  }
79619
79635
  async seed() {
79620
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}`, PLATFORM_ANALYTICS_REPORT_DEFINITIONS);
79621
- await this.storageService.initial(`${RootConfig$C.module.name}.${RootConfig$C.entities.report.name}Category`, PLATFORM_ANALYTICS_REPORT_CATEGORIES);
79636
+ await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}`, PLATFORM_ANALYTICS_REPORT_DEFINITIONS);
79637
+ await this.storageService.initial(`${RootConfig$D.module.name}.${RootConfig$D.entities.report.name}Category`, PLATFORM_ANALYTICS_REPORT_CATEGORIES);
79622
79638
  }
79623
79639
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMPlatformAnalyticsReportDefinitionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
79624
79640
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMPlatformAnalyticsReportDefinitionDataSeeder }); }
@@ -83929,7 +83945,7 @@ class AXCWorkflowManagementMockModule {
83929
83945
  provideCommandSetups([
83930
83946
  {
83931
83947
  key: 'workflow-activity:assign-to-manager',
83932
- command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs').then((c) => c.AssignToManagerActivity),
83948
+ command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-C2nbx_nS.mjs').then((c) => c.AssignToManagerActivity),
83933
83949
  },
83934
83950
  {
83935
83951
  key: 'workflow-activity:get-current-user-manager',
@@ -84024,7 +84040,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
84024
84040
  provideCommandSetups([
84025
84041
  {
84026
84042
  key: 'workflow-activity:assign-to-manager',
84027
- command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs').then((c) => c.AssignToManagerActivity),
84043
+ command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-C2nbx_nS.mjs').then((c) => c.AssignToManagerActivity),
84028
84044
  },
84029
84045
  {
84030
84046
  key: 'workflow-activity:get-current-user-manager',
@@ -90339,7 +90355,7 @@ class AXCMockModule {
90339
90355
  return;
90340
90356
  }
90341
90357
  const seedStartedAt = performance.now();
90342
- await seederService.seed();
90358
+ await dexieStorage.runDuringSeeding(() => seederService.seed());
90343
90359
  const durationSec = (performance.now() - seedStartedAt) / 1000;
90344
90360
  await dexieStorage.markMockEntitySeedComplete(durationSec);
90345
90361
  const seedMeta = await dexieStorage.getMockEntitySeedMeta();
@@ -90676,4 +90692,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
90676
90692
  */
90677
90693
 
90678
90694
  export { AXCFirestoreEntityStorageService as $, AXCAiChatRouterService as A, AXCAssetManagementMockModule as B, AXCAuthMockModule as C, AXCCalendarDataSeeder as D, AXCCalendarManagementMockModule as E, AXCCalendarOccasionDataSeeder as F, AXCCommandRegistryDataSeeder as G, AXCCommonMockModule as H, AXCContactCoreMockModule as I, AXCContentManagementMockModule as J, AXCConversationMockModule as K, AXCConversationMockUploaderService as L, AXCCustomerManagementMockModule as M, AXCDashboardManagementMockModule as N, OPENROUTER_GEMINI_FLASH_TTS_DEFAULT_FORMAT as O, AXCDataManagementMockModule as P, AXCDexieEntityStorageService as Q, AXCDocumentManagementMockModule as R, AXCEditionDataSeeder as S, AXCEntityDefinitionSeederService as T, AXCEntityDefinitionsModule as U, AXCEntityStorageInsertCommand as V, AXCEntityStorageModule as W, AXCEntityStorageQueryQuery as X, AXCFileStorageServiceDexie as Y, AXCFileStorageServiceFirestore as Z, AXCFinancialCoreMockModule as _, AXMAiModelStableIds as a, AXMAiDemisGeneralAssistId as a$, AXCFormTemplateManagementMockModule as a0, AXCGoogleStrategyMock as a1, AXCHealthCoreMockModule as a2, AXCHelpDeskMockModule as a3, AXCHumanCapitalManagementMockModule as a4, AXCIdentifierManagementMockModule as a5, AXCImageCaptchaChallengeProviderMock as a6, AXCIntegrationLifecycleEventsService as a7, AXCIntegrationManagementMockModule as a8, AXCIntegrationOAuthMockService as a9, AXCSecurityManagementMockModule as aA, AXCStoredEntityDefinitionLoader as aB, AXCSubscriptionManagementMockModule as aC, AXCSupplierManagementMockModule as aD, AXCTaskManagementMockModule as aE, AXCTenantManagementMockModule as aF, AXCTenantSeeder as aG, AXCTextTemplateRenderBackend as aH, AXCTokensDataSeeder as aI, AXCUserPassStrategyMock as aJ, AXCVersionDB as aK, AXCVersioningService as aL, AXCWidgetCatalogDataSeeder as aM, AXCWorkflowCategorySeeder as aN, AXCWorkflowDefinitionDataSeeder as aO, AXCWorkflowEngine as aP, AXCWorkflowExecutionDB as aQ, AXCWorkflowExecutionStoreDexie as aR, AXCWorkflowExecutionStoreFirestore as aS, AXCWorkflowInstanceCartableDemoSeeder as aT, AXCWorkflowManagementMockModule as aU, AXC_ENTITY_STORAGE_BACKEND_TYPE as aV, AXC_FIRESTORE_CONFIG as aW, AXC_FIRESTORE_DB as aX, AXC_WORKFLOW_EXECUTION_STORE as aY, AXMAiDemisAssistAgentUuid as aZ, AXMAiDemisAssistId as a_, AXCIntegrationSecretStoreMock as aa, AXCIntegrationTokenRefreshService as ab, AXCJiraManagementMockModule as ac, AXCLearningManagementMockModule as ad, AXCLocaleManagementMockModule as ae, AXCLocationManagementMockModule as af, AXCLockService as ag, AXCMeasurementCoreMockModule as ah, AXCMeetingManagementMockModule as ai, AXCMetaDataDefinitionDataSeeder as aj, AXCMetadataCategorySeeder as ak, AXCMiddlewaresModule as al, AXCMockCaptchaChallengeComponent as am, AXCMockEntityLogListener as an, AXCMockModule as ao, AXCMockShowMetaDataFormPopupCommand as ap, AXCNotificationManagementMockModule as aq, AXCOrderManagementMockModule as ar, AXCOrganizationManagementMockModule as as, AXCPersonCoreMockModule as at, AXCPlatformManagementMockModule as au, AXCProcurementManagementMockModule as av, AXCProductCatalogMockModule as aw, AXCProjectManagementMockModule as ax, AXCQueryRegistryDataSeeder as ay, AXCReportManagementMockModule as az, resolveAssistSpeechModelId as b, JOB_DEFINITIONS_CATEGORY_MOCK as b$, AXMAiPlatformAssistantAssistId as b0, AXMAutomationDataSeeder as b1, AXMBusinessUnitDataSeeder as b2, AXMCalendarOccasionTypeSeeder as b3, AXMDashboardChartDataSourceDefinition as b4, AXMEmployeeDataSeeder as b5, AXMEmploymentTypeDataSeeder as b6, AXMFormDataSourcesProvider as b7, AXMJiraManagementMockIds as b8, AXMJobDefinitionDataSeeder as b9, AXPIdentifierDB as bA, AXPMessageDataSeeder as bB, AXPMockChecksumProvider as bC, AXPMockClockProvider as bD, AXPMockIdentifierService as bE, AXPMockLookupProvider as bF, AXPMockPolicyProvider as bG, AXPMockSequenceProvider as bH, AXPRoomDataSeeder as bI, AXPSecurityManagementRoleDataSeeder as bJ, AXPSecurityManagementUserDataSeeder as bK, AXPTaskBoardPlatformManagementTaskProvider as bL, AXVChangeType as bM, BCC as bN, BOC as bO, BUSINESS_UNITS_MOCK as bP, COLLABORATION_STANDARD as bQ, CP as bR, DASHBOARDS as bS, EDITIONS as bT, EMPLOYEES_MOCK as bU, EMPLOYMENT_TYPES_MOCK as bV, ENTITY_DEFINITION_MAP as bW, ENTITY_REGISTRY as bX, G as bY, HR_ENTERPRISE as bZ, HW as b_, AXMJobLevelDataSeeder as ba, AXMLeaveRequestDataSeeder as bb, AXMMeetingDataSeeder as bc, AXMMeetingFilesDataSeeder as bd, AXMMeetingParticipantDataSeeder as be, AXMMeetingRoleTypeDataSeeder as bf, AXMMeetingSessionDataSeeder as bg, AXMMeetingTypeDataSeeder as bh, AXMMeetingTypeFileTemplateDataSeeder as bi, AXMPositionAssignmentDataSeeder as bj, AXMPositionDataSeeder as bk, AXMQuestionBankItemCategoryDataSeeder as bl, AXMQuestionBankItemDataSeeder as bm, AXMQuestionnaireCategoryDataSeeder as bn, AXMQuestionnaireDataSeeder as bo, AXMResponsibilityDataSeeder as bp, AXMTagDataSeeder as bq, AXMTeamBusinessUnitDataSeeder as br, AXMTeamDataSeeder as bs, AXMTeamMemberDataSeeder as bt, AXMTeamMemberRoleDataSeeder as bu, AXMWorkflowDashboardChartDataSourceDefinition as bv, AXM_AI_REGISTRY_COMMAND_NAME as bw, AXM_AI_REGISTRY_QUERY_NAME as bx, AXM_CORPORATE_BUSINESS_UNIT_ID as by, AXPDashboardDataSeeder as bz, resolveDelegatedAssistOptionString as c, automationCommandMiddleware as c$, JOB_DEFINITIONS_MOCK as c0, JOB_DEFINITION_CATEGORY_KEY_TO_ID as c1, JOB_LEVELS_MOCK as c2, LASER_PLUMBING_TENANT_ID as c3, LEAVE_REQUESTS_MOCK as c4, MAGFA_COMMERCE_STANDARD as c5, MAGFA_CONVERSATION_DASHBOARD as c6, MAGFA_TENANT_ID as c7, METADATA_CATEGORY_IDS as c8, METADATA_GENERAL_CATEGORY_REFS as c9, RESPONSIBILITIES_MOCK as cA, RESPONSIBILITY_CATEGORY_KEY_TO_ID as cB, SAFETYMINDER_BASIC as cC, SAFETYMINDER_ENTERPRISE as cD, SAFETYMINDER_PROFESSIONAL as cE, TAGS_MOCK as cF, TASKS as cG, TASK_STATUSES as cH, TASK_TEMPLATES as cI, TASK_TYPES as cJ, TEAMS_CATEGORY_MOCK as cK, TEAMS_MOCK as cL, TEAM_BUSINESS_UNITS_MOCK as cM, TEAM_CATEGORY_KEY_TO_ID as cN, TEAM_MEMBERS_MOCK as cO, TEAM_MEMBER_ROLES_MOCK as cP, TIMEPLICITY_TENANT_ID as cQ, TLA as cR, TOKENS as cS, TPC as cT, VISIBILITY_FILTER_BYPASS as cU, WORKFLOW_CATEGORIES as cV, WS as cW, activityCategoryMocks as cX, activityDefinitionEntityMock as cY, applyEntityDefinitionFirestoreSnapshot as cZ, attachmentsInterface as c_, METADATA_SYSTEM_CATEGORY_REFS as ca, MLC as cb, MOCK_CALENDAR_AUSTRALIA_ID as cc, MOCK_CALENDAR_INTERNATIONAL_GREGORIAN_ID as cd, MOCK_CALENDAR_IRAN_PERSIAN_ID as ce, MOCK_CALENDAR_NEW_ZEALAND_ID as cf, MOCK_DATA_SEED_VERSION as cg, MOCK_ENTITY_SEED_META_KEY as ch, OHR as ci, OWNERSHIP_FILTER_BYPASS as cj, PLATFORM_CONSOLE as ck, PLATFORM_TENANT_ID as cl, PM as cm, POSITIONS_CATEGORY_MOCK as cn, POSITIONS_MOCK as co, POSITION_ASSIGNMENTS_MOCK as cp, QCP as cq, QGEN as cr, QHW as cs, QOHR as ct, QPM as cu, QTLE as cv, QUESTIONNAIRE_CATEGORY_MOCK as cw, QUESTION_BANK_ITEM_CATEGORY_MOCK as cx, QWS as cy, RESPONSIBILITIES_CATEGORY_MOCK as cz, resolveOpenAiCompatibleTtsVoice as d, mergeQuickSearchIntoRequest as d$, automationMock as d0, avatarInterface as d1, axVersionDB as d2, axWorkflowExecutionDB as d3, axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows as d4, axcPatchEmployeeActivePrimaryPositionRefsFromRows as d5, axcPatchEmployeeManagerRefsFromRows as d6, axcResolveCommandRegistrySeedId as d7, axcResolveQueryRegistrySeedId as d8, axcResolveWidgetCatalogSeedId as d9, enrichWorkflowGraph as dA, entityDefDb as dB, entityValidationMiddleware as dC, finalizeActivityCategoryItemCounts as dD, findEmployeeById as dE, folderStorageMiddleware as dF, groupOrderItemCalculatorMiddleware as dG, historyMiddleware as dH, identifierCommitMiddleware as dI, imageInterface as dJ, inspectionOkXNaInterface as dK, loadMockPropertyDefinitions as dL, lockGuardMiddleware as dM, longTextAnswerInterface as dN, lookupInterface as dO, lookupResolverMiddleware as dP, mapInterface as dQ, meetingFilesMock as dR, meetingIds as dS, meetingMock as dT, meetingParticipantMock as dU, meetingRoleTypeMock as dV, meetingSessionMock as dW, meetingTimeSlotMock as dX, meetingTypeFileTemplateMock as dY, meetingTypeMock as dZ, mergeDetailRelationMiddleware as d_, bankCategory as da, buildEntityStorageQuickSearchFilter as db, buildWorkflowInstanceCartableDemoRows as dc, bypassAllFilters as dd, bypassOwnershipFilter as de, bypassVisibilityFilter as df, calendarMock as dg, calendarOccasionMock as dh, calendarOccasionSeedData as di, calendarOccasionTypeMockData as dj, checkboxInterface as dk, childCountMiddleware as dl, clearEntityDefinitionFirestoreCollections as dm, colorInterface as dn, computeDiff as dp, contactInterface as dq, createFileCastMiddleware as dr, createWidgetLayoutConfig as ds, createWorkflowDefinitionEntityMock as dt, dateInterface as du, dateTimeInterface as dv, descriptionInterface as dw, documentFolderSyncMiddleware as dx, emailInterface as dy, enrichCalendarOccasionForStorage as dz, axcSyncSingleEmployeeDenormalizedOrgFields as e, metadataCategoryMocks as e0, mockQuestionBankItemByName as e1, mockRoleDefinitions as e2, multipleChoiceInterface as e3, multipleSelectInterface as e4, normalizeAnyFileArrayForView as e5, normalizeSnapshotFileFieldsForView as e6, numberInterface as e7, parseEntityStorageInsertData as e8, parseEntityStorageQueryRequest as e9, titleInterface as eA, toUiRows as eB, toggleInterface as eC, tokenCategoryIds as eD, tokenCategoryMocks as eE, urlInterface as eF, versionInterface as eG, visibilityFilterMiddleware as eH, workflowDefinitionEntityMock as eI, workflowDefinitionIds as eJ, workflowDefinitionMock as eK, yesNoInterface as eL, participantIds as ea, passwordInterface as eb, personIdentifierTypeMock as ec, personIds as ed, personLegalIds as ee, personMock as ef, personNaturalIds as eg, phoneInterface as eh, primaryMiddleware as ei, provideMockPropertySetups as ej, qrcodeInterface as ek, questionBankItemMock as el, questionnaireMock as em, ratingInterface as en, richTextInterface as eo, scaleInterface as ep, selectInterface as eq, selectionListInterface as er, sexAtBirthInterface as es, signatureInterface as et, statusDefaultMiddleware as eu, tagInterface as ev, tenantMocks as ew, textAreaInterface as ex, textInterface as ey, timeDurationInterface as ez, ACTIVITY_CATEGORIES as f, ACTIVITY_CATEGORY_ID_BY_KEY as g, ACTIVITY_DEFINITIONS as h, AI_ASSIST_MOCK as i, AI_MODEL_MOCK as j, APPLICATIONS as k, APPLICATION_CATEGORY_IDS as l, mockUsers as m, APPLICATION_CATEGORY_MOCKS as n, AXCActivityCategorySeeder as o, AXCActivityDefinitionSeeder as p, AXCAiAssistSeeder as q, resolveDelegatedAssistOptionModel as r, AXCAiManagementMockModule as s, AXCAiModelSeeder as t, AXCAppTermDataSeeder as u, AXCAppVersionDataSeeder as v, AXCApplicationCategoryDataSeeder as w, AXCApplicationDataSeeder as x, AXCApplicationManagementMockModule as y, AXCAssessmentManagementMockModule as z };
90679
- //# sourceMappingURL=acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs.map
90695
+ //# sourceMappingURL=acorex-connectivity-mock-acorex-connectivity-mock-DILmgDYe.mjs.map