@acorex/connectivity 20.3.0-next.8 → 20.3.0-next.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.
- package/api/index.d.ts +13 -7
- package/fesm2022/acorex-connectivity-api-execute.command-CP4cZ_5M.mjs +86 -0
- package/fesm2022/acorex-connectivity-api-execute.command-CP4cZ_5M.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-api.mjs +334 -12
- package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
- package/fesm2022/acorex-connectivity-mock.mjs +1079 -195
- package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
- package/mock/index.d.ts +57 -5
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import * as i2$1 from '@acorex/platform/auth';
|
|
|
3
3
|
import { AXPAuthStrategy, AXP_TENANT_LOADER, AXP_APPLICATION_LOADER, AXP_FEATURE_LOADER, AXP_PERMISSION_LOADER, AXPSessionService, AXPAuthModule } from '@acorex/platform/auth';
|
|
4
4
|
import * as i1$1 from '@acorex/platform/core';
|
|
5
5
|
import { AXPDataGenerator, AXPActivityLogProvider, AXP_ACTIVITY_LOG_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, objectKeyValueTransforms, AXPSystemActionType, applySortArray, applyFilterArray, AXPExpressionEvaluatorService } from '@acorex/platform/core';
|
|
6
|
-
import { AXPEntityDefinitionRegistryService, AXPEntityStorageService, AXP_DATA_SEEDER_TOKEN, AXMEntityCrudServiceImpl, AXP_ENTITY_STORAGE_BACKEND, AXPMiddlewareEntityStorageService, AXP_ENTITY_STORAGE_MIDDLEWARE, eventDispatchMiddleware, AXPDataSeederService } from '@acorex/platform/layout/entity';
|
|
6
|
+
import { AXPEntityDefinitionRegistryService, AXPEntityStorageService, AXP_DATA_SEEDER_TOKEN, AXMEntityCrudServiceImpl, AXP_ENTITY_STORAGE_BACKEND, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXP_ENTITY_STORAGE_MIDDLEWARE, eventDispatchMiddleware, AXPDataSeederService } from '@acorex/platform/layout/entity';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
8
|
import { inject, Injectable, NgModule, Injector, runInInjectionContext } from '@angular/core';
|
|
9
9
|
import { AXMDeviceSessionsService, AXMSessionStatusTypes, AXMDeviceSessionsServiceImpl, AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';
|
|
@@ -30,10 +30,10 @@ import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
|
|
|
30
30
|
import { RootConfig as RootConfig$8 } from '@acorex/modules/locale-management';
|
|
31
31
|
import { RootConfig as RootConfig$9 } from '@acorex/modules/location-management';
|
|
32
32
|
import { RootConfig as RootConfig$a } from '@acorex/modules/log-management';
|
|
33
|
+
import { AXPWidgetsList } from '@acorex/modules/common';
|
|
34
|
+
import { AXP_REPORT_CATEGORY_PROVIDER, AXP_REPORT_DEFINITION_PROVIDER, RootConfig as RootConfig$g, AXPReportDefinitionService } from '@acorex/modules/report-management';
|
|
33
35
|
import { RootConfig as RootConfig$c, AXMOrgChartNodeType } from '@acorex/modules/organization-management';
|
|
34
36
|
import { RootConfig as RootConfig$d } from '@acorex/modules/human-capital-management';
|
|
35
|
-
import { AXP_REPORT_CATEGORY_PROVIDER, AXP_REPORT_DEFINITION_PROVIDER, RootConfig as RootConfig$g, AXPReportDefinitionService } from '@acorex/modules/report-management';
|
|
36
|
-
import { AXPWidgetsList } from '@acorex/modules/common';
|
|
37
37
|
import { RootConfig as RootConfig$e } from '@acorex/modules/platform-management';
|
|
38
38
|
import { RootConfig as RootConfig$f } from '@acorex/modules/project-management';
|
|
39
39
|
import { RootConfig as RootConfig$i } from '@acorex/modules/training-management';
|
|
@@ -4443,15 +4443,15 @@ function generateMetadataCategories() {
|
|
|
4443
4443
|
'Version Control': 'Document versioning and change tracking',
|
|
4444
4444
|
'Access Control': 'User permissions and access management',
|
|
4445
4445
|
'Document Types': 'Classification and categorization of documents',
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4446
|
+
Standards: 'Quality standards and specifications',
|
|
4447
|
+
Testing: 'Test procedures and results tracking',
|
|
4448
|
+
Validation: 'Data validation and verification processes',
|
|
4449
|
+
Regulations: 'Regulatory requirements and compliance rules',
|
|
4450
4450
|
'Audit Trail': 'Activity logging and audit documentation',
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4451
|
+
Certifications: 'Certification and accreditation tracking',
|
|
4452
|
+
Planning: 'Project planning and scheduling metadata',
|
|
4453
|
+
Resources: 'Resource allocation and management',
|
|
4454
|
+
Timeline: 'Project timeline and milestone tracking',
|
|
4455
4455
|
};
|
|
4456
4456
|
categories.push({ id, title, description: descriptionMap[title] ?? '', parentId, childCount: 0 });
|
|
4457
4457
|
});
|
|
@@ -4463,16 +4463,14 @@ function generateMetadataCategories() {
|
|
|
4463
4463
|
}
|
|
4464
4464
|
const METADATA_CATEGORY_MOCK = generateMetadataCategories();
|
|
4465
4465
|
// Interface definitions for different metadata types
|
|
4466
|
-
const titleInterface
|
|
4467
|
-
const descriptionInterface
|
|
4466
|
+
const titleInterface = '{"type":"text-editor","path":"title","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4467
|
+
const descriptionInterface = '{"type":"large-text-editor","path":"description","options":{}}';
|
|
4468
4468
|
const versionInterface = '{"type":"text-editor","path":"version","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4469
4469
|
const dateInterface = '{"type":"date-time-editor","path":"date","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4470
4470
|
const numberInterface = '{"type":"number-editor","path":"number","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4471
4471
|
const selectInterface = '{"type":"select-editor","path":"select","options":{"dataSource":"languages","validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4472
4472
|
const checkboxInterface = '{"type":"checkbox-editor","path":"checkbox","options":{"label":"Checkbox"}}';
|
|
4473
4473
|
const textAreaInterface = '{"type":"large-text-editor","path":"textarea","options":{}}';
|
|
4474
|
-
const emailInterface = '{"type":"email-editor","path":"email","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4475
|
-
const urlInterface = '{"type":"link-editor","path":"url","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4476
4474
|
const textInterface = '{"type":"text-editor","path":"text","options":{"validations":[{"rule":"required","message":"This field is required."}]}}';
|
|
4477
4475
|
const METADATA_MOCK = [
|
|
4478
4476
|
// General - Common metadata fields
|
|
@@ -4481,7 +4479,7 @@ const METADATA_MOCK = [
|
|
|
4481
4479
|
name: 'title',
|
|
4482
4480
|
title: 'Title',
|
|
4483
4481
|
defaultValue: '',
|
|
4484
|
-
interface: titleInterface
|
|
4482
|
+
interface: titleInterface,
|
|
4485
4483
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General').id],
|
|
4486
4484
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General')],
|
|
4487
4485
|
},
|
|
@@ -4490,7 +4488,7 @@ const METADATA_MOCK = [
|
|
|
4490
4488
|
name: 'description',
|
|
4491
4489
|
title: 'Description',
|
|
4492
4490
|
defaultValue: '',
|
|
4493
|
-
interface: descriptionInterface
|
|
4491
|
+
interface: descriptionInterface,
|
|
4494
4492
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General').id],
|
|
4495
4493
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General')],
|
|
4496
4494
|
},
|
|
@@ -4503,15 +4501,6 @@ const METADATA_MOCK = [
|
|
|
4503
4501
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General').id],
|
|
4504
4502
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General')],
|
|
4505
4503
|
},
|
|
4506
|
-
{
|
|
4507
|
-
id: AXPDataGenerator.uuid(),
|
|
4508
|
-
name: 'created-by',
|
|
4509
|
-
title: 'Created By',
|
|
4510
|
-
defaultValue: '',
|
|
4511
|
-
interface: emailInterface,
|
|
4512
|
-
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General').id],
|
|
4513
|
-
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'General')],
|
|
4514
|
-
},
|
|
4515
4504
|
{
|
|
4516
4505
|
id: AXPDataGenerator.uuid(),
|
|
4517
4506
|
name: 'status',
|
|
@@ -4572,7 +4561,7 @@ const METADATA_MOCK = [
|
|
|
4572
4561
|
name: 'document-title',
|
|
4573
4562
|
title: 'Document Title',
|
|
4574
4563
|
defaultValue: '',
|
|
4575
|
-
interface: titleInterface
|
|
4564
|
+
interface: titleInterface,
|
|
4576
4565
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Version Control').id],
|
|
4577
4566
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Version Control')],
|
|
4578
4567
|
},
|
|
@@ -4613,15 +4602,6 @@ const METADATA_MOCK = [
|
|
|
4613
4602
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Access Control').id],
|
|
4614
4603
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Access Control')],
|
|
4615
4604
|
},
|
|
4616
|
-
{
|
|
4617
|
-
id: AXPDataGenerator.uuid(),
|
|
4618
|
-
name: 'owner',
|
|
4619
|
-
title: 'Document Owner',
|
|
4620
|
-
defaultValue: '',
|
|
4621
|
-
interface: emailInterface,
|
|
4622
|
-
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Access Control').id],
|
|
4623
|
-
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Access Control')],
|
|
4624
|
-
},
|
|
4625
4605
|
{
|
|
4626
4606
|
id: AXPDataGenerator.uuid(),
|
|
4627
4607
|
name: 'permissions',
|
|
@@ -4725,15 +4705,6 @@ const METADATA_MOCK = [
|
|
|
4725
4705
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Validation').id],
|
|
4726
4706
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Validation')],
|
|
4727
4707
|
},
|
|
4728
|
-
{
|
|
4729
|
-
id: AXPDataGenerator.uuid(),
|
|
4730
|
-
name: 'validator',
|
|
4731
|
-
title: 'Validator',
|
|
4732
|
-
defaultValue: '',
|
|
4733
|
-
interface: emailInterface,
|
|
4734
|
-
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Validation').id],
|
|
4735
|
-
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Validation')],
|
|
4736
|
-
},
|
|
4737
4708
|
{
|
|
4738
4709
|
id: AXPDataGenerator.uuid(),
|
|
4739
4710
|
name: 'validation-notes',
|
|
@@ -4790,15 +4761,6 @@ const METADATA_MOCK = [
|
|
|
4790
4761
|
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Audit Trail').id],
|
|
4791
4762
|
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Audit Trail')],
|
|
4792
4763
|
},
|
|
4793
|
-
{
|
|
4794
|
-
id: AXPDataGenerator.uuid(),
|
|
4795
|
-
name: 'auditor',
|
|
4796
|
-
title: 'Auditor',
|
|
4797
|
-
defaultValue: '',
|
|
4798
|
-
interface: emailInterface,
|
|
4799
|
-
categoryIds: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Audit Trail').id],
|
|
4800
|
-
categories: [METADATA_CATEGORY_MOCK.find((c) => c.title === 'Audit Trail')],
|
|
4801
|
-
},
|
|
4802
4764
|
// Compliance - Certifications
|
|
4803
4765
|
{
|
|
4804
4766
|
id: AXPDataGenerator.uuid(),
|
|
@@ -5232,119 +5194,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
5232
5194
|
type: Injectable
|
|
5233
5195
|
}] });
|
|
5234
5196
|
|
|
5235
|
-
const checkbox$1 = '{"type":"document-layout","children":[{"type":"page-layout","children":[{"type":"checkbox-editor","name":"checkbox-editor1","options":{"label":"i accept","readonly":false,"disabled":false},"defaultValue":false,"path":"accept-check-box"}],"name":"page-layout1"}],"name":"document"}';
|
|
5236
|
-
const color = '{"type":"document-layout","children":[{"type":"page-layout","children":[{"type":"block-layout","name":"block-layout1","options":{"flexDirection":{"id":"ax-flex-row"},"flexJustifyContent":{"id":"ax-justify-normal"},"flexAlignItems":{"id":"ax-items-start"},"gap":2,"flexWrap":{"id":"ax-flex-nowrap"},"spacing":{"margin":"0px 0px 0px 0px","padding":"0px 0px 0px 0px"},"border":{"width":"0px","radius":"0px","color":"#000000","style":"none"},"flexOptions":{"gap":"0px","flexDirection":"row","flexWrap":"nowrap","justifyContent":"flex-start","alignItems":"flex-start"}}},"children":[{"type":"color-editor","name":"color-editor1","options":{"readonly":false,"disabled":false,"validations":{"required":{"rule":"required","message":"This field is required."}},"placeholder":"pick color"},"path":"color-box"}]}],"name":"page-layout1"}],"name":"document"}';
|
|
5237
|
-
const titleInterface = `{
|
|
5238
|
-
"type": "document-layout",
|
|
5239
|
-
"children": [
|
|
5240
|
-
{
|
|
5241
|
-
"type": "page-layout",
|
|
5242
|
-
"children": [
|
|
5243
|
-
{
|
|
5244
|
-
"type": "title-editor",
|
|
5245
|
-
"name": "title-editor1",
|
|
5246
|
-
"meta": {
|
|
5247
|
-
"header": true
|
|
5248
|
-
},
|
|
5249
|
-
"options": {
|
|
5250
|
-
"multiple": false,
|
|
5251
|
-
"disabled": false,
|
|
5252
|
-
"hasClearButton": false,
|
|
5253
|
-
"validations": {
|
|
5254
|
-
"regex": null,
|
|
5255
|
-
"required": {
|
|
5256
|
-
"rule": "required",
|
|
5257
|
-
"message": "This field is required."
|
|
5258
|
-
}
|
|
5259
|
-
}
|
|
5260
|
-
},
|
|
5261
|
-
"defaultValue": "",
|
|
5262
|
-
"path": "title"
|
|
5263
|
-
}
|
|
5264
|
-
],
|
|
5265
|
-
"name": "page-layout1"
|
|
5266
|
-
}
|
|
5267
|
-
],
|
|
5268
|
-
"name": "document"
|
|
5269
|
-
}`;
|
|
5270
|
-
const descriptionInterface = `{
|
|
5271
|
-
"type": "document-layout",
|
|
5272
|
-
"children": [
|
|
5273
|
-
{
|
|
5274
|
-
"type": "page-layout",
|
|
5275
|
-
"children": [
|
|
5276
|
-
{
|
|
5277
|
-
"type": "description-editor",
|
|
5278
|
-
"name": "description-editor1",
|
|
5279
|
-
"meta": {
|
|
5280
|
-
"header": true
|
|
5281
|
-
},
|
|
5282
|
-
"options": {
|
|
5283
|
-
"multiple": false,
|
|
5284
|
-
"disabled": false,
|
|
5285
|
-
"hasClearButton": false,
|
|
5286
|
-
},
|
|
5287
|
-
"defaultValue": "",
|
|
5288
|
-
"path": "description"
|
|
5289
|
-
}
|
|
5290
|
-
],
|
|
5291
|
-
"name": "page-layout1"
|
|
5292
|
-
}
|
|
5293
|
-
],
|
|
5294
|
-
"name": "document"
|
|
5295
|
-
}`;
|
|
5296
|
-
const contractNumberInterface = `{
|
|
5297
|
-
"type": "document-layout",
|
|
5298
|
-
"children": [
|
|
5299
|
-
{
|
|
5300
|
-
"type": "page-layout",
|
|
5301
|
-
"children": [
|
|
5302
|
-
{
|
|
5303
|
-
"type": "number-editor",
|
|
5304
|
-
"name": "number-editor1",
|
|
5305
|
-
"meta": {
|
|
5306
|
-
"header": true
|
|
5307
|
-
},
|
|
5308
|
-
"options": {
|
|
5309
|
-
"multiple": false,
|
|
5310
|
-
"disabled": false,
|
|
5311
|
-
"hasClearButton": false,
|
|
5312
|
-
},
|
|
5313
|
-
"defaultValue": "",
|
|
5314
|
-
"path": "contract-number"
|
|
5315
|
-
}
|
|
5316
|
-
],
|
|
5317
|
-
"name": "page-layout1"
|
|
5318
|
-
}
|
|
5319
|
-
],
|
|
5320
|
-
"name": "document"
|
|
5321
|
-
}`;
|
|
5322
|
-
const evaluatorInterface = `{
|
|
5323
|
-
"type": "document-layout",
|
|
5324
|
-
"children": [
|
|
5325
|
-
{
|
|
5326
|
-
"type": "page-layout",
|
|
5327
|
-
"children": [
|
|
5328
|
-
{
|
|
5329
|
-
"type": "text-editor",
|
|
5330
|
-
"name": "text-editor1",
|
|
5331
|
-
"meta": {
|
|
5332
|
-
"header": true
|
|
5333
|
-
},
|
|
5334
|
-
"options": {
|
|
5335
|
-
"multiple": false,
|
|
5336
|
-
"disabled": false,
|
|
5337
|
-
"hasClearButton": false,
|
|
5338
|
-
},
|
|
5339
|
-
"defaultValue": "",
|
|
5340
|
-
"path": "evaluator"
|
|
5341
|
-
}
|
|
5342
|
-
],
|
|
5343
|
-
"name": "page-layout1"
|
|
5344
|
-
}
|
|
5345
|
-
],
|
|
5346
|
-
"name": "document"
|
|
5347
|
-
}`;
|
|
5348
5197
|
const DOCUMENT_TYPES = [
|
|
5349
5198
|
{
|
|
5350
5199
|
id: AXPDataGenerator.uuid(),
|
|
@@ -5356,14 +5205,14 @@ const DOCUMENT_TYPES = [
|
|
|
5356
5205
|
enableExpiration: false,
|
|
5357
5206
|
requiresReview: true,
|
|
5358
5207
|
requiresDistribution: false,
|
|
5359
|
-
|
|
5208
|
+
metaData: [
|
|
5360
5209
|
{
|
|
5361
5210
|
id: AXPDataGenerator.uuid(),
|
|
5362
5211
|
text: 'Description',
|
|
5363
5212
|
// "parentId": "9e3c7586-4722-4170-bc55-e612ca2ab4b5",
|
|
5364
5213
|
hasCheckbox: true,
|
|
5365
5214
|
isSelected: true,
|
|
5366
|
-
interface: '{"type":"
|
|
5215
|
+
interface: '{"type":"text-editor","name":"description-editor1","meta":{"header":true},"options":{"multiple":false,"disabled":false,"hasClearButton":false},"defaultValue":"","path":"description"}',
|
|
5367
5216
|
name: 'description',
|
|
5368
5217
|
title: 'Description',
|
|
5369
5218
|
isRequired: true,
|
|
@@ -5411,7 +5260,7 @@ const DOCUMENT_TYPES = [
|
|
|
5411
5260
|
requiresReview: false,
|
|
5412
5261
|
requiresDistribution: false,
|
|
5413
5262
|
control: { isSystem: true },
|
|
5414
|
-
|
|
5263
|
+
metaData: [],
|
|
5415
5264
|
type: {
|
|
5416
5265
|
selectedItems: [],
|
|
5417
5266
|
context: {
|
|
@@ -5432,14 +5281,14 @@ const DOCUMENT_TYPES = [
|
|
|
5432
5281
|
enableExpiration: true,
|
|
5433
5282
|
requiresReview: true,
|
|
5434
5283
|
requiresDistribution: true,
|
|
5435
|
-
|
|
5284
|
+
metaData: [
|
|
5436
5285
|
{
|
|
5437
5286
|
id: AXPDataGenerator.uuid(),
|
|
5438
5287
|
text: 'Description',
|
|
5439
5288
|
// "parentId": "9e3c7586-4722-4170-bc55-e612ca2ab4b5",
|
|
5440
5289
|
hasCheckbox: true,
|
|
5441
5290
|
isSelected: true,
|
|
5442
|
-
interface: '{"type":"
|
|
5291
|
+
interface: '{"type":"text-editor","name":"description-editor1","meta":{"header":true},"options":{"multiple":false,"disabled":false,"hasClearButton":false},"defaultValue":"","path":"description"}',
|
|
5443
5292
|
name: 'description',
|
|
5444
5293
|
title: 'Description',
|
|
5445
5294
|
isRequired: true,
|
|
@@ -21436,11 +21285,739 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
21436
21285
|
type: Injectable
|
|
21437
21286
|
}] });
|
|
21438
21287
|
|
|
21288
|
+
//#region ---- Imports ----
|
|
21289
|
+
//#endregion
|
|
21290
|
+
//#region ---- Category & Report Data (Log Management) ----
|
|
21291
|
+
const LOG_REPORT_ROOT_CATEGORY_ID = 'log-management.reports.root';
|
|
21292
|
+
const LOG_REPORT_AUDIT_CATEGORY_ID = 'log-management.reports.audit';
|
|
21293
|
+
const LOG_REPORT_IDENTITY_CATEGORY_ID = 'log-management.reports.identity-audit-log';
|
|
21294
|
+
const LOG_REPORT_CATEGORIES = [
|
|
21295
|
+
{
|
|
21296
|
+
id: LOG_REPORT_ROOT_CATEGORY_ID,
|
|
21297
|
+
title: 'Log Management',
|
|
21298
|
+
description: 'Reports related to application logs',
|
|
21299
|
+
hasChild: true,
|
|
21300
|
+
},
|
|
21301
|
+
{
|
|
21302
|
+
id: LOG_REPORT_AUDIT_CATEGORY_ID,
|
|
21303
|
+
parentId: LOG_REPORT_ROOT_CATEGORY_ID,
|
|
21304
|
+
title: 'Audit Logs',
|
|
21305
|
+
description: 'User actions and system audit trail',
|
|
21306
|
+
hasReport: true,
|
|
21307
|
+
},
|
|
21308
|
+
{
|
|
21309
|
+
id: LOG_REPORT_IDENTITY_CATEGORY_ID,
|
|
21310
|
+
parentId: LOG_REPORT_ROOT_CATEGORY_ID,
|
|
21311
|
+
title: 'Identity Audit Log',
|
|
21312
|
+
description: 'Authentication and identity management logs',
|
|
21313
|
+
hasReport: true,
|
|
21314
|
+
},
|
|
21315
|
+
];
|
|
21316
|
+
const LOG_REPORT_DEFINITIONS = [
|
|
21317
|
+
{
|
|
21318
|
+
id: 'log-management.report.audit-trail-by-user',
|
|
21319
|
+
title: 'Audit Trail by User',
|
|
21320
|
+
description: 'Comprehensive audit trail showing user actions, system events, and entity changes',
|
|
21321
|
+
categoryIds: [LOG_REPORT_AUDIT_CATEGORY_ID],
|
|
21322
|
+
parameterGroups: [
|
|
21323
|
+
{
|
|
21324
|
+
name: 'period',
|
|
21325
|
+
title: 'Period',
|
|
21326
|
+
parameters: [
|
|
21327
|
+
{
|
|
21328
|
+
path: 'startDate',
|
|
21329
|
+
title: 'Start Date',
|
|
21330
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21331
|
+
},
|
|
21332
|
+
{
|
|
21333
|
+
path: 'endDate',
|
|
21334
|
+
title: 'End Date',
|
|
21335
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21336
|
+
},
|
|
21337
|
+
],
|
|
21338
|
+
},
|
|
21339
|
+
{
|
|
21340
|
+
name: 'filters',
|
|
21341
|
+
title: 'Filters',
|
|
21342
|
+
parameters: [
|
|
21343
|
+
{
|
|
21344
|
+
path: 'userName',
|
|
21345
|
+
title: 'User Name',
|
|
21346
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, options: { placeholder: 'Filter by username' } },
|
|
21347
|
+
},
|
|
21348
|
+
{
|
|
21349
|
+
path: 'httpMethod',
|
|
21350
|
+
title: 'HTTP Method',
|
|
21351
|
+
widget: {
|
|
21352
|
+
type: AXPWidgetsList.Editors.SelectBox,
|
|
21353
|
+
options: {
|
|
21354
|
+
dataSource: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
|
|
21355
|
+
multiple: true,
|
|
21356
|
+
},
|
|
21357
|
+
},
|
|
21358
|
+
},
|
|
21359
|
+
{
|
|
21360
|
+
path: 'httpStatusCode',
|
|
21361
|
+
title: 'HTTP Status',
|
|
21362
|
+
widget: {
|
|
21363
|
+
type: AXPWidgetsList.Editors.SelectBox,
|
|
21364
|
+
options: {
|
|
21365
|
+
dataSource: ['200', '201', '400', '401', '403', '404', '500'],
|
|
21366
|
+
multiple: true,
|
|
21367
|
+
},
|
|
21368
|
+
},
|
|
21369
|
+
},
|
|
21370
|
+
],
|
|
21371
|
+
},
|
|
21372
|
+
],
|
|
21373
|
+
layouts: [
|
|
21374
|
+
{
|
|
21375
|
+
id: 'table',
|
|
21376
|
+
title: 'Table View',
|
|
21377
|
+
layout: {
|
|
21378
|
+
type: 'table',
|
|
21379
|
+
columns: [
|
|
21380
|
+
{
|
|
21381
|
+
field: 'executionTime',
|
|
21382
|
+
title: 'Date',
|
|
21383
|
+
visible: true,
|
|
21384
|
+
width: 180,
|
|
21385
|
+
align: 'left',
|
|
21386
|
+
widget: {
|
|
21387
|
+
type: AXPWidgetsList.Editors.DateTimeBox,
|
|
21388
|
+
options: { format: 'datetime' },
|
|
21389
|
+
path: 'executionTime',
|
|
21390
|
+
},
|
|
21391
|
+
},
|
|
21392
|
+
{
|
|
21393
|
+
field: 'userName',
|
|
21394
|
+
title: 'User Name',
|
|
21395
|
+
visible: true,
|
|
21396
|
+
width: 150,
|
|
21397
|
+
align: 'left',
|
|
21398
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'userName' },
|
|
21399
|
+
},
|
|
21400
|
+
{
|
|
21401
|
+
field: 'tenantName',
|
|
21402
|
+
title: 'Tenant',
|
|
21403
|
+
visible: true,
|
|
21404
|
+
width: 120,
|
|
21405
|
+
align: 'left',
|
|
21406
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'tenantName' },
|
|
21407
|
+
},
|
|
21408
|
+
{
|
|
21409
|
+
field: 'httpMethod',
|
|
21410
|
+
title: 'Method',
|
|
21411
|
+
visible: true,
|
|
21412
|
+
width: 80,
|
|
21413
|
+
align: 'center',
|
|
21414
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpMethod' },
|
|
21415
|
+
},
|
|
21416
|
+
{
|
|
21417
|
+
field: 'url',
|
|
21418
|
+
title: 'URL',
|
|
21419
|
+
visible: true,
|
|
21420
|
+
width: 300,
|
|
21421
|
+
align: 'left',
|
|
21422
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'url' },
|
|
21423
|
+
},
|
|
21424
|
+
{
|
|
21425
|
+
field: 'httpStatusCode',
|
|
21426
|
+
title: 'Status',
|
|
21427
|
+
visible: true,
|
|
21428
|
+
width: 80,
|
|
21429
|
+
align: 'center',
|
|
21430
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpStatusCode' },
|
|
21431
|
+
},
|
|
21432
|
+
{
|
|
21433
|
+
field: 'httpStatus',
|
|
21434
|
+
title: 'HTTP Status',
|
|
21435
|
+
visible: true,
|
|
21436
|
+
width: 100,
|
|
21437
|
+
align: 'center',
|
|
21438
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpStatus' },
|
|
21439
|
+
},
|
|
21440
|
+
{
|
|
21441
|
+
field: 'executionDuration',
|
|
21442
|
+
title: 'Duration (ms)',
|
|
21443
|
+
visible: true,
|
|
21444
|
+
width: 120,
|
|
21445
|
+
align: 'right',
|
|
21446
|
+
widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'executionDuration' },
|
|
21447
|
+
},
|
|
21448
|
+
{
|
|
21449
|
+
field: 'clientIpAddress',
|
|
21450
|
+
title: 'Client IP',
|
|
21451
|
+
visible: true,
|
|
21452
|
+
width: 120,
|
|
21453
|
+
align: 'left',
|
|
21454
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'clientIpAddress' },
|
|
21455
|
+
},
|
|
21456
|
+
{
|
|
21457
|
+
field: 'clientName',
|
|
21458
|
+
title: 'Client',
|
|
21459
|
+
visible: true,
|
|
21460
|
+
width: 120,
|
|
21461
|
+
align: 'left',
|
|
21462
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'clientName' },
|
|
21463
|
+
},
|
|
21464
|
+
{
|
|
21465
|
+
field: 'correlationId',
|
|
21466
|
+
title: 'Correlation ID',
|
|
21467
|
+
visible: true,
|
|
21468
|
+
width: 200,
|
|
21469
|
+
align: 'left',
|
|
21470
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'correlationId' },
|
|
21471
|
+
},
|
|
21472
|
+
{
|
|
21473
|
+
field: 'comments',
|
|
21474
|
+
title: 'Comments',
|
|
21475
|
+
visible: true,
|
|
21476
|
+
width: 200,
|
|
21477
|
+
align: 'left',
|
|
21478
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'comments' },
|
|
21479
|
+
},
|
|
21480
|
+
{
|
|
21481
|
+
field: 'exceptions',
|
|
21482
|
+
title: 'Exceptions',
|
|
21483
|
+
visible: false,
|
|
21484
|
+
width: 200,
|
|
21485
|
+
align: 'left',
|
|
21486
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'exceptions' },
|
|
21487
|
+
},
|
|
21488
|
+
{
|
|
21489
|
+
field: 'impersonatorUserName',
|
|
21490
|
+
title: 'Impersonated By',
|
|
21491
|
+
visible: false,
|
|
21492
|
+
width: 150,
|
|
21493
|
+
align: 'left',
|
|
21494
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'impersonatorUserName' },
|
|
21495
|
+
},
|
|
21496
|
+
],
|
|
21497
|
+
options: {
|
|
21498
|
+
pagination: true,
|
|
21499
|
+
},
|
|
21500
|
+
},
|
|
21501
|
+
dataSource: {
|
|
21502
|
+
type: 'custom',
|
|
21503
|
+
provider: 'mock-data',
|
|
21504
|
+
},
|
|
21505
|
+
export: {
|
|
21506
|
+
fileNameTemplate: 'AuditTrailByUser_{date}_{user}',
|
|
21507
|
+
pdf: {
|
|
21508
|
+
enabled: true,
|
|
21509
|
+
pageSize: 'A4',
|
|
21510
|
+
headerEnabled: true,
|
|
21511
|
+
footerEnabled: true,
|
|
21512
|
+
showPageNumbers: true,
|
|
21513
|
+
},
|
|
21514
|
+
},
|
|
21515
|
+
},
|
|
21516
|
+
],
|
|
21517
|
+
defaultLayoutId: 'table',
|
|
21518
|
+
},
|
|
21519
|
+
{
|
|
21520
|
+
id: 'log-management.report.login-logs',
|
|
21521
|
+
title: 'Login Logs',
|
|
21522
|
+
description: 'Authentication and login activity reports',
|
|
21523
|
+
categoryIds: [LOG_REPORT_IDENTITY_CATEGORY_ID],
|
|
21524
|
+
parameterGroups: [
|
|
21525
|
+
{
|
|
21526
|
+
name: 'period',
|
|
21527
|
+
title: 'Period',
|
|
21528
|
+
parameters: [
|
|
21529
|
+
{
|
|
21530
|
+
path: 'startDate',
|
|
21531
|
+
title: 'Start Date',
|
|
21532
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21533
|
+
},
|
|
21534
|
+
{
|
|
21535
|
+
path: 'endDate',
|
|
21536
|
+
title: 'End Date',
|
|
21537
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21538
|
+
},
|
|
21539
|
+
],
|
|
21540
|
+
},
|
|
21541
|
+
{
|
|
21542
|
+
name: 'filters',
|
|
21543
|
+
title: 'Filters',
|
|
21544
|
+
parameters: [
|
|
21545
|
+
{
|
|
21546
|
+
path: 'userName',
|
|
21547
|
+
title: 'User Name',
|
|
21548
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, options: { placeholder: 'Filter by username' } },
|
|
21549
|
+
},
|
|
21550
|
+
{
|
|
21551
|
+
path: 'status',
|
|
21552
|
+
title: 'Login Status',
|
|
21553
|
+
widget: {
|
|
21554
|
+
type: AXPWidgetsList.Editors.SelectBox,
|
|
21555
|
+
options: {
|
|
21556
|
+
dataSource: ['Success', 'Failed'],
|
|
21557
|
+
multiple: true,
|
|
21558
|
+
},
|
|
21559
|
+
},
|
|
21560
|
+
},
|
|
21561
|
+
],
|
|
21562
|
+
},
|
|
21563
|
+
],
|
|
21564
|
+
layouts: [
|
|
21565
|
+
{
|
|
21566
|
+
id: 'table',
|
|
21567
|
+
title: 'Table View',
|
|
21568
|
+
layout: {
|
|
21569
|
+
type: 'table',
|
|
21570
|
+
columns: [
|
|
21571
|
+
{
|
|
21572
|
+
field: 'userName',
|
|
21573
|
+
title: 'User Name',
|
|
21574
|
+
visible: true,
|
|
21575
|
+
width: 150,
|
|
21576
|
+
align: 'left',
|
|
21577
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'userName' },
|
|
21578
|
+
},
|
|
21579
|
+
{
|
|
21580
|
+
field: 'httpStatus',
|
|
21581
|
+
title: 'HTTP Status',
|
|
21582
|
+
visible: true,
|
|
21583
|
+
width: 100,
|
|
21584
|
+
align: 'center',
|
|
21585
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpStatus' },
|
|
21586
|
+
},
|
|
21587
|
+
{
|
|
21588
|
+
field: 'clientName',
|
|
21589
|
+
title: 'Client',
|
|
21590
|
+
visible: true,
|
|
21591
|
+
width: 120,
|
|
21592
|
+
align: 'left',
|
|
21593
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'clientName' },
|
|
21594
|
+
},
|
|
21595
|
+
{
|
|
21596
|
+
field: 'tenantName',
|
|
21597
|
+
title: 'Tenant',
|
|
21598
|
+
visible: true,
|
|
21599
|
+
width: 120,
|
|
21600
|
+
align: 'left',
|
|
21601
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'tenantName' },
|
|
21602
|
+
},
|
|
21603
|
+
{
|
|
21604
|
+
field: 'applicationName',
|
|
21605
|
+
title: 'Application',
|
|
21606
|
+
visible: true,
|
|
21607
|
+
width: 150,
|
|
21608
|
+
align: 'left',
|
|
21609
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'applicationName' },
|
|
21610
|
+
},
|
|
21611
|
+
{
|
|
21612
|
+
field: 'impersonatorUserName',
|
|
21613
|
+
title: 'Impersonated By',
|
|
21614
|
+
visible: false,
|
|
21615
|
+
width: 200,
|
|
21616
|
+
align: 'left',
|
|
21617
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'impersonatorUserName' },
|
|
21618
|
+
},
|
|
21619
|
+
{
|
|
21620
|
+
field: 'executionTime',
|
|
21621
|
+
title: 'Execution Time',
|
|
21622
|
+
visible: true,
|
|
21623
|
+
width: 180,
|
|
21624
|
+
align: 'right',
|
|
21625
|
+
widget: {
|
|
21626
|
+
type: AXPWidgetsList.Editors.DateTimeBox,
|
|
21627
|
+
options: { format: 'datetime' },
|
|
21628
|
+
path: 'executionTime',
|
|
21629
|
+
},
|
|
21630
|
+
},
|
|
21631
|
+
],
|
|
21632
|
+
options: {
|
|
21633
|
+
pagination: true,
|
|
21634
|
+
},
|
|
21635
|
+
},
|
|
21636
|
+
dataSource: {
|
|
21637
|
+
type: 'custom',
|
|
21638
|
+
provider: 'mock-data',
|
|
21639
|
+
},
|
|
21640
|
+
export: {
|
|
21641
|
+
fileNameTemplate: 'LoginLogs_{date}_{user}',
|
|
21642
|
+
pdf: {
|
|
21643
|
+
enabled: true,
|
|
21644
|
+
pageSize: 'A4',
|
|
21645
|
+
headerEnabled: true,
|
|
21646
|
+
footerEnabled: true,
|
|
21647
|
+
showPageNumbers: true,
|
|
21648
|
+
},
|
|
21649
|
+
},
|
|
21650
|
+
},
|
|
21651
|
+
],
|
|
21652
|
+
defaultLayoutId: 'table',
|
|
21653
|
+
},
|
|
21654
|
+
{
|
|
21655
|
+
id: 'log-management.report.change-password-logs',
|
|
21656
|
+
title: 'Change Password Logs',
|
|
21657
|
+
description: 'Password change activity and security events',
|
|
21658
|
+
categoryIds: [LOG_REPORT_IDENTITY_CATEGORY_ID],
|
|
21659
|
+
parameterGroups: [
|
|
21660
|
+
{
|
|
21661
|
+
name: 'period',
|
|
21662
|
+
title: 'Period',
|
|
21663
|
+
parameters: [
|
|
21664
|
+
{
|
|
21665
|
+
path: 'startDate',
|
|
21666
|
+
title: 'Start Date',
|
|
21667
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21668
|
+
},
|
|
21669
|
+
{
|
|
21670
|
+
path: 'endDate',
|
|
21671
|
+
title: 'End Date',
|
|
21672
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21673
|
+
},
|
|
21674
|
+
],
|
|
21675
|
+
},
|
|
21676
|
+
{
|
|
21677
|
+
name: 'filters',
|
|
21678
|
+
title: 'Filters',
|
|
21679
|
+
parameters: [
|
|
21680
|
+
{
|
|
21681
|
+
path: 'userName',
|
|
21682
|
+
title: 'User Name',
|
|
21683
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, options: { placeholder: 'Filter by username' } },
|
|
21684
|
+
},
|
|
21685
|
+
{
|
|
21686
|
+
path: 'status',
|
|
21687
|
+
title: 'Change Status',
|
|
21688
|
+
widget: {
|
|
21689
|
+
type: AXPWidgetsList.Editors.SelectBox,
|
|
21690
|
+
options: {
|
|
21691
|
+
dataSource: ['Success', 'Failed'],
|
|
21692
|
+
multiple: true,
|
|
21693
|
+
},
|
|
21694
|
+
},
|
|
21695
|
+
},
|
|
21696
|
+
],
|
|
21697
|
+
},
|
|
21698
|
+
],
|
|
21699
|
+
layouts: [
|
|
21700
|
+
{
|
|
21701
|
+
id: 'table',
|
|
21702
|
+
title: 'Table View',
|
|
21703
|
+
layout: {
|
|
21704
|
+
type: 'table',
|
|
21705
|
+
columns: [
|
|
21706
|
+
{
|
|
21707
|
+
field: 'userName',
|
|
21708
|
+
title: 'User Name',
|
|
21709
|
+
visible: true,
|
|
21710
|
+
width: 150,
|
|
21711
|
+
align: 'left',
|
|
21712
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'userName' },
|
|
21713
|
+
},
|
|
21714
|
+
{
|
|
21715
|
+
field: 'httpStatus',
|
|
21716
|
+
title: 'HTTP Status',
|
|
21717
|
+
visible: true,
|
|
21718
|
+
width: 100,
|
|
21719
|
+
align: 'center',
|
|
21720
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpStatus' },
|
|
21721
|
+
},
|
|
21722
|
+
{
|
|
21723
|
+
field: 'clientName',
|
|
21724
|
+
title: 'Client',
|
|
21725
|
+
visible: true,
|
|
21726
|
+
width: 120,
|
|
21727
|
+
align: 'left',
|
|
21728
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'clientName' },
|
|
21729
|
+
},
|
|
21730
|
+
{
|
|
21731
|
+
field: 'tenantName',
|
|
21732
|
+
title: 'Tenant',
|
|
21733
|
+
visible: true,
|
|
21734
|
+
width: 120,
|
|
21735
|
+
align: 'left',
|
|
21736
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'tenantName' },
|
|
21737
|
+
},
|
|
21738
|
+
{
|
|
21739
|
+
field: 'applicationName',
|
|
21740
|
+
title: 'Application',
|
|
21741
|
+
visible: true,
|
|
21742
|
+
width: 150,
|
|
21743
|
+
align: 'left',
|
|
21744
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'applicationName' },
|
|
21745
|
+
},
|
|
21746
|
+
{
|
|
21747
|
+
field: 'impersonatorUserName',
|
|
21748
|
+
title: 'Impersonated By',
|
|
21749
|
+
visible: false,
|
|
21750
|
+
width: 150,
|
|
21751
|
+
align: 'left',
|
|
21752
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'impersonatorUserName' },
|
|
21753
|
+
},
|
|
21754
|
+
{
|
|
21755
|
+
field: 'executionTime',
|
|
21756
|
+
title: 'Date',
|
|
21757
|
+
visible: true,
|
|
21758
|
+
width: 180,
|
|
21759
|
+
align: 'left',
|
|
21760
|
+
widget: {
|
|
21761
|
+
type: AXPWidgetsList.Editors.DateTimeBox,
|
|
21762
|
+
options: { format: 'datetime' },
|
|
21763
|
+
path: 'executionTime',
|
|
21764
|
+
},
|
|
21765
|
+
},
|
|
21766
|
+
],
|
|
21767
|
+
options: {
|
|
21768
|
+
pagination: true,
|
|
21769
|
+
},
|
|
21770
|
+
},
|
|
21771
|
+
dataSource: {
|
|
21772
|
+
type: 'custom',
|
|
21773
|
+
provider: 'mock-data',
|
|
21774
|
+
},
|
|
21775
|
+
export: {
|
|
21776
|
+
fileNameTemplate: 'ChangePasswordLogs_{date}_{user}',
|
|
21777
|
+
pdf: {
|
|
21778
|
+
enabled: true,
|
|
21779
|
+
pageSize: 'A4',
|
|
21780
|
+
headerEnabled: true,
|
|
21781
|
+
footerEnabled: true,
|
|
21782
|
+
showPageNumbers: true,
|
|
21783
|
+
},
|
|
21784
|
+
},
|
|
21785
|
+
},
|
|
21786
|
+
],
|
|
21787
|
+
defaultLayoutId: 'table',
|
|
21788
|
+
},
|
|
21789
|
+
{
|
|
21790
|
+
id: 'log-management.report.identity-error-logs',
|
|
21791
|
+
title: 'Identity Error Logs',
|
|
21792
|
+
description: 'Authentication errors, token failures, and security violations',
|
|
21793
|
+
categoryIds: [LOG_REPORT_IDENTITY_CATEGORY_ID],
|
|
21794
|
+
parameterGroups: [
|
|
21795
|
+
{
|
|
21796
|
+
name: 'period',
|
|
21797
|
+
title: 'Period',
|
|
21798
|
+
parameters: [
|
|
21799
|
+
{
|
|
21800
|
+
path: 'startDate',
|
|
21801
|
+
title: 'Start Date',
|
|
21802
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21803
|
+
},
|
|
21804
|
+
{
|
|
21805
|
+
path: 'endDate',
|
|
21806
|
+
title: 'End Date',
|
|
21807
|
+
widget: { type: AXPWidgetsList.Editors.DateTimeBox, options: { format: 'date' } },
|
|
21808
|
+
},
|
|
21809
|
+
],
|
|
21810
|
+
},
|
|
21811
|
+
{
|
|
21812
|
+
name: 'filters',
|
|
21813
|
+
title: 'Filters',
|
|
21814
|
+
parameters: [
|
|
21815
|
+
{
|
|
21816
|
+
path: 'userName',
|
|
21817
|
+
title: 'User Name',
|
|
21818
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, options: { placeholder: 'Filter by username' } },
|
|
21819
|
+
},
|
|
21820
|
+
{
|
|
21821
|
+
path: 'errorType',
|
|
21822
|
+
title: 'Error Type',
|
|
21823
|
+
widget: {
|
|
21824
|
+
type: AXPWidgetsList.Editors.SelectBox,
|
|
21825
|
+
options: {
|
|
21826
|
+
dataSource: ['Token Expired', 'Invalid Credentials', 'Rate Limited', 'User Not Found'],
|
|
21827
|
+
multiple: true,
|
|
21828
|
+
},
|
|
21829
|
+
},
|
|
21830
|
+
},
|
|
21831
|
+
],
|
|
21832
|
+
},
|
|
21833
|
+
],
|
|
21834
|
+
layouts: [
|
|
21835
|
+
{
|
|
21836
|
+
id: 'table',
|
|
21837
|
+
title: 'Table View',
|
|
21838
|
+
layout: {
|
|
21839
|
+
type: 'table',
|
|
21840
|
+
columns: [
|
|
21841
|
+
{
|
|
21842
|
+
field: 'executionTime',
|
|
21843
|
+
title: 'Date',
|
|
21844
|
+
visible: true,
|
|
21845
|
+
width: 180,
|
|
21846
|
+
align: 'left',
|
|
21847
|
+
widget: {
|
|
21848
|
+
type: AXPWidgetsList.Editors.DateTimeBox,
|
|
21849
|
+
options: { format: 'datetime' },
|
|
21850
|
+
path: 'executionTime',
|
|
21851
|
+
},
|
|
21852
|
+
},
|
|
21853
|
+
{
|
|
21854
|
+
field: 'userName',
|
|
21855
|
+
title: 'User Name',
|
|
21856
|
+
visible: true,
|
|
21857
|
+
width: 150,
|
|
21858
|
+
align: 'left',
|
|
21859
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'userName' },
|
|
21860
|
+
},
|
|
21861
|
+
{
|
|
21862
|
+
field: 'tenantName',
|
|
21863
|
+
title: 'Tenant',
|
|
21864
|
+
visible: true,
|
|
21865
|
+
width: 120,
|
|
21866
|
+
align: 'left',
|
|
21867
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'tenantName' },
|
|
21868
|
+
},
|
|
21869
|
+
{
|
|
21870
|
+
field: 'httpMethod',
|
|
21871
|
+
title: 'Method',
|
|
21872
|
+
visible: true,
|
|
21873
|
+
width: 80,
|
|
21874
|
+
align: 'center',
|
|
21875
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpMethod' },
|
|
21876
|
+
},
|
|
21877
|
+
{
|
|
21878
|
+
field: 'url',
|
|
21879
|
+
title: 'URL',
|
|
21880
|
+
visible: true,
|
|
21881
|
+
width: 300,
|
|
21882
|
+
align: 'left',
|
|
21883
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'url' },
|
|
21884
|
+
},
|
|
21885
|
+
{
|
|
21886
|
+
field: 'httpStatusCode',
|
|
21887
|
+
title: 'Status',
|
|
21888
|
+
visible: true,
|
|
21889
|
+
width: 80,
|
|
21890
|
+
align: 'center',
|
|
21891
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'httpStatusCode' },
|
|
21892
|
+
},
|
|
21893
|
+
{
|
|
21894
|
+
field: 'executionDuration',
|
|
21895
|
+
title: 'Duration (ms)',
|
|
21896
|
+
visible: true,
|
|
21897
|
+
width: 120,
|
|
21898
|
+
align: 'right',
|
|
21899
|
+
widget: { type: AXPWidgetsList.Editors.NumberBox, path: 'executionDuration' },
|
|
21900
|
+
},
|
|
21901
|
+
{
|
|
21902
|
+
field: 'clientIpAddress',
|
|
21903
|
+
title: 'Client IP',
|
|
21904
|
+
visible: true,
|
|
21905
|
+
width: 120,
|
|
21906
|
+
align: 'left',
|
|
21907
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'clientIpAddress' },
|
|
21908
|
+
},
|
|
21909
|
+
{
|
|
21910
|
+
field: 'clientName',
|
|
21911
|
+
title: 'Client',
|
|
21912
|
+
visible: true,
|
|
21913
|
+
width: 120,
|
|
21914
|
+
align: 'left',
|
|
21915
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'clientName' },
|
|
21916
|
+
},
|
|
21917
|
+
{
|
|
21918
|
+
field: 'correlationId',
|
|
21919
|
+
title: 'Correlation ID',
|
|
21920
|
+
visible: true,
|
|
21921
|
+
width: 200,
|
|
21922
|
+
align: 'left',
|
|
21923
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'correlationId' },
|
|
21924
|
+
},
|
|
21925
|
+
{
|
|
21926
|
+
field: 'comments',
|
|
21927
|
+
title: 'Comments',
|
|
21928
|
+
visible: true,
|
|
21929
|
+
width: 200,
|
|
21930
|
+
align: 'left',
|
|
21931
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'comments' },
|
|
21932
|
+
},
|
|
21933
|
+
{
|
|
21934
|
+
field: 'exceptions',
|
|
21935
|
+
title: 'Exceptions',
|
|
21936
|
+
visible: true,
|
|
21937
|
+
width: 200,
|
|
21938
|
+
align: 'left',
|
|
21939
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'exceptions' },
|
|
21940
|
+
},
|
|
21941
|
+
{
|
|
21942
|
+
field: 'impersonatorUserName',
|
|
21943
|
+
title: 'Impersonated By',
|
|
21944
|
+
visible: false,
|
|
21945
|
+
width: 150,
|
|
21946
|
+
align: 'left',
|
|
21947
|
+
widget: { type: AXPWidgetsList.Editors.TextBox, path: 'impersonatorUserName' },
|
|
21948
|
+
},
|
|
21949
|
+
],
|
|
21950
|
+
options: {
|
|
21951
|
+
pagination: true,
|
|
21952
|
+
},
|
|
21953
|
+
},
|
|
21954
|
+
dataSource: {
|
|
21955
|
+
type: 'custom',
|
|
21956
|
+
provider: 'mock-data',
|
|
21957
|
+
},
|
|
21958
|
+
export: {
|
|
21959
|
+
fileNameTemplate: 'IdentityErrorLogs_{date}_{user}',
|
|
21960
|
+
pdf: {
|
|
21961
|
+
enabled: true,
|
|
21962
|
+
pageSize: 'A4',
|
|
21963
|
+
headerEnabled: true,
|
|
21964
|
+
footerEnabled: true,
|
|
21965
|
+
showPageNumbers: true,
|
|
21966
|
+
},
|
|
21967
|
+
},
|
|
21968
|
+
},
|
|
21969
|
+
],
|
|
21970
|
+
defaultLayoutId: 'table',
|
|
21971
|
+
},
|
|
21972
|
+
];
|
|
21973
|
+
//#endregion
|
|
21974
|
+
//#region ---- Providers ----
|
|
21975
|
+
class AXCLogReportCategoryProvider {
|
|
21976
|
+
async getList(parentId) {
|
|
21977
|
+
if (!parentId)
|
|
21978
|
+
return LOG_REPORT_CATEGORIES.filter((c) => !c.parentId);
|
|
21979
|
+
return LOG_REPORT_CATEGORIES.filter((c) => c.parentId === parentId);
|
|
21980
|
+
}
|
|
21981
|
+
async getById(id) {
|
|
21982
|
+
return LOG_REPORT_CATEGORIES.find((c) => c.id === id);
|
|
21983
|
+
}
|
|
21984
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogReportCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21985
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogReportCategoryProvider }); }
|
|
21986
|
+
}
|
|
21987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogReportCategoryProvider, decorators: [{
|
|
21988
|
+
type: Injectable
|
|
21989
|
+
}] });
|
|
21990
|
+
class AXCLogReportDefinitionProvider {
|
|
21991
|
+
async getList(categoryId) {
|
|
21992
|
+
return LOG_REPORT_DEFINITIONS.filter((r) => r.categoryIds.includes(categoryId));
|
|
21993
|
+
}
|
|
21994
|
+
async getById(id) {
|
|
21995
|
+
return LOG_REPORT_DEFINITIONS.find((r) => r.id === id);
|
|
21996
|
+
}
|
|
21997
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogReportDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21998
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogReportDefinitionProvider }); }
|
|
21999
|
+
}
|
|
22000
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogReportDefinitionProvider, decorators: [{
|
|
22001
|
+
type: Injectable
|
|
22002
|
+
}] });
|
|
22003
|
+
const AXC_LOG_REPORT_CATEGORY_PROVIDER = {
|
|
22004
|
+
provide: AXP_REPORT_CATEGORY_PROVIDER,
|
|
22005
|
+
useClass: AXCLogReportCategoryProvider,
|
|
22006
|
+
multi: true,
|
|
22007
|
+
};
|
|
22008
|
+
const AXC_LOG_REPORT_DEFINITION_PROVIDER = {
|
|
22009
|
+
provide: AXP_REPORT_DEFINITION_PROVIDER,
|
|
22010
|
+
useClass: AXCLogReportDefinitionProvider,
|
|
22011
|
+
multi: true,
|
|
22012
|
+
};
|
|
22013
|
+
|
|
21439
22014
|
class AXCLogManagementMockModule {
|
|
21440
22015
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogManagementMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
21441
22016
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: AXCLogManagementMockModule }); }
|
|
21442
22017
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogManagementMockModule, providers: [
|
|
21443
22018
|
{ provide: AXP_DATA_SEEDER_TOKEN, useClass: AXMLogDataSeeder, multi: true },
|
|
22019
|
+
AXC_LOG_REPORT_CATEGORY_PROVIDER,
|
|
22020
|
+
AXC_LOG_REPORT_DEFINITION_PROVIDER,
|
|
21444
22021
|
] }); }
|
|
21445
22022
|
}
|
|
21446
22023
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCLogManagementMockModule, decorators: [{
|
|
@@ -21451,6 +22028,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
21451
22028
|
declarations: [],
|
|
21452
22029
|
providers: [
|
|
21453
22030
|
{ provide: AXP_DATA_SEEDER_TOKEN, useClass: AXMLogDataSeeder, multi: true },
|
|
22031
|
+
AXC_LOG_REPORT_CATEGORY_PROVIDER,
|
|
22032
|
+
AXC_LOG_REPORT_DEFINITION_PROVIDER,
|
|
21454
22033
|
],
|
|
21455
22034
|
}]
|
|
21456
22035
|
}] });
|
|
@@ -28036,11 +28615,11 @@ class AXMReportMockDataService {
|
|
|
28036
28615
|
generateMockDataForReport(reportDefinition, parameters, pageSize) {
|
|
28037
28616
|
const reportTitle = reportDefinition.title.toLowerCase();
|
|
28038
28617
|
const reportId = reportDefinition.id;
|
|
28039
|
-
// Generate data based on report type
|
|
28618
|
+
// Generate data based on report type - check reportId first for log management reports
|
|
28040
28619
|
if (reportId.includes('log-management.report.audit-trail') ||
|
|
28041
28620
|
reportId.includes('log-management.report.login-logs') ||
|
|
28042
28621
|
reportId.includes('log-management.report.change-password-logs') ||
|
|
28043
|
-
reportId.includes('log-management.report.identity-
|
|
28622
|
+
reportId.includes('log-management.report.identity-error-logs')) {
|
|
28044
28623
|
return this.generateAuditTrailData(reportDefinition, parameters, pageSize);
|
|
28045
28624
|
}
|
|
28046
28625
|
else if (reportTitle.includes('balance sheet') || reportTitle.includes('financial')) {
|
|
@@ -28067,14 +28646,41 @@ class AXMReportMockDataService {
|
|
|
28067
28646
|
// Use imported log mock data
|
|
28068
28647
|
const baseData = logMock;
|
|
28069
28648
|
const data = [];
|
|
28649
|
+
// For Identity Error Logs, filter to only include failed operations
|
|
28650
|
+
let filteredBaseData = baseData;
|
|
28651
|
+
if (reportDefinition.id.includes('identity-error-logs')) {
|
|
28652
|
+
filteredBaseData = baseData.filter(item => item['httpStatus'] === 'failed' ||
|
|
28653
|
+
item['httpStatusCode'] >= 400);
|
|
28654
|
+
}
|
|
28655
|
+
// If no filtered data available, use all data
|
|
28656
|
+
if (filteredBaseData.length === 0) {
|
|
28657
|
+
filteredBaseData = baseData;
|
|
28658
|
+
}
|
|
28070
28659
|
// Duplicate base data to reach pageSize
|
|
28071
28660
|
for (let i = 0; i < pageSize; i++) {
|
|
28072
|
-
const baseItem =
|
|
28661
|
+
const baseItem = filteredBaseData[i % filteredBaseData.length];
|
|
28073
28662
|
const duplicatedItem = {
|
|
28074
|
-
|
|
28075
|
-
|
|
28076
|
-
|
|
28077
|
-
|
|
28663
|
+
id: AXPDataGenerator.uuid(),
|
|
28664
|
+
executionTime: this.getRandomPastDate(30),
|
|
28665
|
+
userName: baseItem['userName'] || 'Unknown User',
|
|
28666
|
+
tenantName: baseItem['tenantName'] || 'ark',
|
|
28667
|
+
httpMethod: baseItem['httpMethod'] || 'GET',
|
|
28668
|
+
url: baseItem['url'] || '/unknown',
|
|
28669
|
+
httpStatusCode: baseItem['httpStatusCode'] || 200,
|
|
28670
|
+
executionDuration: baseItem['executionDuration'] || 0,
|
|
28671
|
+
clientIpAddress: baseItem['clientIpAddress'] || '0.0.0.0',
|
|
28672
|
+
clientName: baseItem['clientName'] || 'Unknown Client',
|
|
28673
|
+
correlationId: AXPDataGenerator.uuid(),
|
|
28674
|
+
comments: baseItem['comments'] || '',
|
|
28675
|
+
exceptions: baseItem['exceptions'] || '',
|
|
28676
|
+
httpStatus: baseItem['httpStatus'] || 'unknown',
|
|
28677
|
+
applicationName: baseItem['applicationName'] || 'DemoApp',
|
|
28678
|
+
impersonatorUserName: baseItem['impersonatorUserName'] || null,
|
|
28679
|
+
// Include any other fields from baseItem
|
|
28680
|
+
...Object.fromEntries(Object.entries(baseItem).filter(([key]) => !['id', 'executionTime', 'userName', 'tenantName', 'httpMethod', 'url',
|
|
28681
|
+
'httpStatusCode', 'executionDuration', 'clientIpAddress', 'clientName',
|
|
28682
|
+
'correlationId', 'comments', 'exceptions', 'httpStatus', 'applicationName',
|
|
28683
|
+
'impersonatorUserName'].includes(key)))
|
|
28078
28684
|
};
|
|
28079
28685
|
data.push(duplicatedItem);
|
|
28080
28686
|
}
|
|
@@ -28314,7 +28920,7 @@ class AXMReportExecuteCommand {
|
|
|
28314
28920
|
else if (reportDefinition.id.includes('log-management.report.change-password-logs')) {
|
|
28315
28921
|
filteredData = this.applyChangePasswordLogsFilters(allData, parameters);
|
|
28316
28922
|
}
|
|
28317
|
-
else if (reportDefinition.id.includes('log-management.report.identity-
|
|
28923
|
+
else if (reportDefinition.id.includes('log-management.report.identity-error-logs')) {
|
|
28318
28924
|
filteredData = this.applyIdentityAuditLogErrorLogsFilters(allData, parameters);
|
|
28319
28925
|
}
|
|
28320
28926
|
// Debug logging
|
|
@@ -28842,7 +29448,7 @@ class AXMReportExecuteCommand {
|
|
|
28842
29448
|
}
|
|
28843
29449
|
}
|
|
28844
29450
|
// Debug logging
|
|
28845
|
-
console.log('🔍 Identity
|
|
29451
|
+
console.log('🔍 Identity Error Logs Filter Debug:', {
|
|
28846
29452
|
startDate,
|
|
28847
29453
|
endDate,
|
|
28848
29454
|
userNameFilter,
|
|
@@ -34933,12 +35539,129 @@ class AXCDexieEntityStorageService extends Dexie {
|
|
|
34933
35539
|
if (request.sort && request.sort.length) {
|
|
34934
35540
|
result = applySortArray(result, request.sort);
|
|
34935
35541
|
}
|
|
34936
|
-
|
|
35542
|
+
// Handle recursive category filtering
|
|
35543
|
+
if (request.filter && this.isCategoryFilter(request.filter)) {
|
|
35544
|
+
result = await this.applyRecursiveCategoryFilter(result, request.filter, entityName);
|
|
35545
|
+
}
|
|
35546
|
+
else {
|
|
35547
|
+
result = applyFilterArray(result, request.filter ? [request.filter] : []);
|
|
35548
|
+
}
|
|
35549
|
+
// Calculate childCount for category entities
|
|
35550
|
+
if (this.isCategoryEntity(entityName)) {
|
|
35551
|
+
result = await this.calculateChildCounts(result, entityName);
|
|
35552
|
+
}
|
|
34937
35553
|
return Promise.resolve({
|
|
34938
35554
|
total: result.length,
|
|
34939
35555
|
items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),
|
|
34940
35556
|
});
|
|
34941
35557
|
}
|
|
35558
|
+
//#region ---- Private Helper Methods ----
|
|
35559
|
+
/**
|
|
35560
|
+
* Check if the entity is a category entity (ends with 'Category')
|
|
35561
|
+
*/
|
|
35562
|
+
isCategoryEntity(entityName) {
|
|
35563
|
+
return entityName.endsWith('Category');
|
|
35564
|
+
}
|
|
35565
|
+
/**
|
|
35566
|
+
* Calculate childCount for each category entity
|
|
35567
|
+
*/
|
|
35568
|
+
async calculateChildCounts(items, entityName) {
|
|
35569
|
+
return Promise.all(items.map(async (item) => {
|
|
35570
|
+
const childCount = await this.getDirectChildCount(item.id, entityName);
|
|
35571
|
+
return {
|
|
35572
|
+
...item,
|
|
35573
|
+
childCount
|
|
35574
|
+
};
|
|
35575
|
+
}));
|
|
35576
|
+
}
|
|
35577
|
+
/**
|
|
35578
|
+
* Get the count of direct children for a category
|
|
35579
|
+
*/
|
|
35580
|
+
async getDirectChildCount(categoryId, entityName) {
|
|
35581
|
+
const children = await this.table('entity-store')
|
|
35582
|
+
.where({ entityName })
|
|
35583
|
+
.filter((item) => item.parentId === categoryId)
|
|
35584
|
+
.toArray();
|
|
35585
|
+
return children.length;
|
|
35586
|
+
}
|
|
35587
|
+
/**
|
|
35588
|
+
* Check if the filter is a category filter (contains operator on categoryIds field)
|
|
35589
|
+
* Handles both simple filters and compound filters
|
|
35590
|
+
*/
|
|
35591
|
+
isCategoryFilter(filter) {
|
|
35592
|
+
// Handle simple filter
|
|
35593
|
+
if (filter?.operator?.type === 'contains' &&
|
|
35594
|
+
(filter.field === 'categoryIds' || filter.field?.endsWith('Ids'))) {
|
|
35595
|
+
return true;
|
|
35596
|
+
}
|
|
35597
|
+
// Handle compound filter - check if any nested filter is a category filter
|
|
35598
|
+
if (filter?.logic && filter?.filters && Array.isArray(filter.filters)) {
|
|
35599
|
+
return filter.filters.some((nestedFilter) => nestedFilter?.operator?.type === 'contains' &&
|
|
35600
|
+
(nestedFilter.field === 'categoryIds' || nestedFilter.field?.endsWith('Ids')));
|
|
35601
|
+
}
|
|
35602
|
+
return false;
|
|
35603
|
+
}
|
|
35604
|
+
/**
|
|
35605
|
+
* Apply recursive category filtering - finds entities that belong to the category or any of its children
|
|
35606
|
+
*/
|
|
35607
|
+
async applyRecursiveCategoryFilter(result, filter, entityName) {
|
|
35608
|
+
// Handle compound filter - find the category filter within it
|
|
35609
|
+
let categoryFilter = filter;
|
|
35610
|
+
let otherFilters = [];
|
|
35611
|
+
if (filter?.logic && filter?.filters && Array.isArray(filter.filters)) {
|
|
35612
|
+
// Find the category filter and collect other filters
|
|
35613
|
+
const categoryFilterIndex = filter.filters.findIndex((f) => f?.operator?.type === 'contains' &&
|
|
35614
|
+
(f.field === 'categoryIds' || f.field?.endsWith('Ids')));
|
|
35615
|
+
if (categoryFilterIndex !== -1) {
|
|
35616
|
+
categoryFilter = filter.filters[categoryFilterIndex];
|
|
35617
|
+
// Get all other filters (excluding the category filter)
|
|
35618
|
+
otherFilters = filter.filters.filter((_, index) => index !== categoryFilterIndex);
|
|
35619
|
+
}
|
|
35620
|
+
}
|
|
35621
|
+
if (!categoryFilter) {
|
|
35622
|
+
// Fallback to regular filtering if no category filter found
|
|
35623
|
+
return applyFilterArray(result, [filter]);
|
|
35624
|
+
}
|
|
35625
|
+
const categoryId = categoryFilter.value;
|
|
35626
|
+
const categoryField = categoryFilter.field;
|
|
35627
|
+
// Get all child category IDs recursively
|
|
35628
|
+
const allCategoryIds = await this.getAllChildCategoryIds(categoryId, entityName);
|
|
35629
|
+
// Filter results to include entities that belong to any of the collected category IDs
|
|
35630
|
+
let filteredResult = result.filter((item) => {
|
|
35631
|
+
const categoryIds = item[categoryField];
|
|
35632
|
+
if (!categoryIds)
|
|
35633
|
+
return false;
|
|
35634
|
+
// Handle both string and array formats
|
|
35635
|
+
const itemCategoryIds = Array.isArray(categoryIds) ? categoryIds : [categoryIds];
|
|
35636
|
+
// Check if any of the item's categories match any of the collected category IDs
|
|
35637
|
+
return itemCategoryIds.some((itemCategoryId) => allCategoryIds.includes(itemCategoryId));
|
|
35638
|
+
});
|
|
35639
|
+
// Apply other filters if they exist
|
|
35640
|
+
if (otherFilters.length > 0) {
|
|
35641
|
+
filteredResult = applyFilterArray(filteredResult, otherFilters);
|
|
35642
|
+
}
|
|
35643
|
+
return filteredResult;
|
|
35644
|
+
}
|
|
35645
|
+
/**
|
|
35646
|
+
* Recursively gets all child category IDs including the parent category itself
|
|
35647
|
+
*/
|
|
35648
|
+
async getAllChildCategoryIds(categoryId, entityName) {
|
|
35649
|
+
const allIds = [categoryId];
|
|
35650
|
+
// Extract module name and entity name from entityName (e.g., "module.entity" -> "module" and "entity")
|
|
35651
|
+
const [moduleName, entityNameOnly] = entityName.split('.');
|
|
35652
|
+
const categoryEntityName = `${moduleName}.${entityNameOnly}Category`;
|
|
35653
|
+
// Get direct children
|
|
35654
|
+
const childrenResult = await this.table('entity-store').where({
|
|
35655
|
+
entityName: categoryEntityName
|
|
35656
|
+
}).toArray();
|
|
35657
|
+
const directChildren = childrenResult.filter((child) => child.parentId === categoryId);
|
|
35658
|
+
// Recursively get children of children
|
|
35659
|
+
for (const child of directChildren) {
|
|
35660
|
+
const childIds = await this.getAllChildCategoryIds(child.id, entityName);
|
|
35661
|
+
allIds.push(...childIds);
|
|
35662
|
+
}
|
|
35663
|
+
return allIds;
|
|
35664
|
+
}
|
|
34942
35665
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCDexieEntityStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34943
35666
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCDexieEntityStorageService }); }
|
|
34944
35667
|
}
|
|
@@ -34984,6 +35707,70 @@ const auditLoggerMiddleware = {
|
|
|
34984
35707
|
},
|
|
34985
35708
|
};
|
|
34986
35709
|
|
|
35710
|
+
const childCountMiddleware = {
|
|
35711
|
+
target: { ops: ['create', 'delete'], order: 20 },
|
|
35712
|
+
execute: async (ctx, next) => {
|
|
35713
|
+
// Check if entity name ends with "Category"
|
|
35714
|
+
if (!ctx.entityName.endsWith('Category')) {
|
|
35715
|
+
await next();
|
|
35716
|
+
return;
|
|
35717
|
+
}
|
|
35718
|
+
// For delete operations, get the entity data before deletion
|
|
35719
|
+
let entityDataBeforeDelete = null;
|
|
35720
|
+
if (ctx.op === 'delete') {
|
|
35721
|
+
try {
|
|
35722
|
+
entityDataBeforeDelete = await ctx.backend.getOne(ctx.entityName, ctx.id);
|
|
35723
|
+
}
|
|
35724
|
+
catch (error) {
|
|
35725
|
+
// Entity might not exist, continue anyway
|
|
35726
|
+
console.warn('Could not fetch entity before delete:', error);
|
|
35727
|
+
}
|
|
35728
|
+
}
|
|
35729
|
+
// Execute the operation first
|
|
35730
|
+
await next();
|
|
35731
|
+
// After successful operation, update childCount for parent categories
|
|
35732
|
+
await updateChildCountForParent(ctx, entityDataBeforeDelete);
|
|
35733
|
+
},
|
|
35734
|
+
};
|
|
35735
|
+
/**
|
|
35736
|
+
* Updates childCount for parent categories when a category entity is created, updated, or deleted
|
|
35737
|
+
*/
|
|
35738
|
+
async function updateChildCountForParent(ctx, entityDataBeforeDelete) {
|
|
35739
|
+
try {
|
|
35740
|
+
let currentEntity = null;
|
|
35741
|
+
if (ctx.op === 'delete' && entityDataBeforeDelete) {
|
|
35742
|
+
// For delete operations, use the data we fetched before deletion
|
|
35743
|
+
currentEntity = entityDataBeforeDelete;
|
|
35744
|
+
}
|
|
35745
|
+
else {
|
|
35746
|
+
// For create operations, get the entity data after creation
|
|
35747
|
+
const id = ctx.result ?? ctx.data?.id ?? ctx.id;
|
|
35748
|
+
currentEntity = await ctx.backend.getOne(ctx.entityName, id);
|
|
35749
|
+
}
|
|
35750
|
+
if (!currentEntity || !currentEntity.parentId) {
|
|
35751
|
+
return; // No parent to update
|
|
35752
|
+
}
|
|
35753
|
+
// Count children for the parent category
|
|
35754
|
+
const childrenResult = await ctx.backend.query(ctx.entityName, {
|
|
35755
|
+
skip: 0,
|
|
35756
|
+
take: 1000, // Reasonable limit for counting
|
|
35757
|
+
filter: {
|
|
35758
|
+
field: 'parentId',
|
|
35759
|
+
operator: { type: 'equal' },
|
|
35760
|
+
value: currentEntity.parentId
|
|
35761
|
+
}
|
|
35762
|
+
});
|
|
35763
|
+
// Update parent's childCount
|
|
35764
|
+
await ctx.backend.updateOne(ctx.entityName, currentEntity.parentId, {
|
|
35765
|
+
childCount: childrenResult.items.length
|
|
35766
|
+
});
|
|
35767
|
+
}
|
|
35768
|
+
catch (error) {
|
|
35769
|
+
// Log error but don't fail the operation
|
|
35770
|
+
console.warn('Failed to update childCount:', error);
|
|
35771
|
+
}
|
|
35772
|
+
}
|
|
35773
|
+
|
|
34987
35774
|
/**
|
|
34988
35775
|
* File Cast Middleware - Handles file operations in entity storage
|
|
34989
35776
|
*
|
|
@@ -35887,7 +36674,7 @@ async function isRuleActive(conditions, evaluator, extraScope) {
|
|
|
35887
36674
|
const policyEnforceMiddleware = {
|
|
35888
36675
|
target: { ops: ['create', 'update', 'delete', 'getOne', 'getAll', 'query'], order: 5 },
|
|
35889
36676
|
execute: async (ctx, next) => {
|
|
35890
|
-
//try { console.warn('[policy] enter-middleware', ctx.op, ctx.entityName, ctx.id); } catch {}
|
|
36677
|
+
// try { console.warn('[policy] enter-middleware', ctx.op, ctx.entityName, ctx.id); } catch {}
|
|
35891
36678
|
// Prevent recursion: skip enforcement when querying the Policy entity itself
|
|
35892
36679
|
const policyEntityFullName = `${RootConfig.module.name}.${RootConfig.entities.policy.name}`;
|
|
35893
36680
|
if (ctx.entityName === policyEntityFullName) {
|
|
@@ -36012,7 +36799,11 @@ const policyEnforceMiddleware = {
|
|
|
36012
36799
|
// Check if entire object is immutable
|
|
36013
36800
|
const immutableAll = immutableTargets.includes('*');
|
|
36014
36801
|
if (immutableAll) {
|
|
36015
|
-
throw new
|
|
36802
|
+
throw new AXPMiddlewareAbortError('Update forbidden by policy: Record is marked as system and cannot be modified', {
|
|
36803
|
+
status: 409,
|
|
36804
|
+
code: 'POLICY_IMMUTABLE_RECORD',
|
|
36805
|
+
details: { entity: ctx.entityName, id: ctx.id },
|
|
36806
|
+
});
|
|
36016
36807
|
}
|
|
36017
36808
|
// For specific immutable/readonly fields, remove them from payload
|
|
36018
36809
|
const forbiddenPaths = [];
|
|
@@ -36035,14 +36826,13 @@ const policyEnforceMiddleware = {
|
|
|
36035
36826
|
if (uniqueForbidden.length > 0) {
|
|
36036
36827
|
removeFields(ctx.data, uniqueForbidden);
|
|
36037
36828
|
// Log which fields were removed
|
|
36038
|
-
try {
|
|
36039
|
-
|
|
36040
|
-
|
|
36041
|
-
|
|
36042
|
-
|
|
36043
|
-
|
|
36044
|
-
}
|
|
36045
|
-
catch { }
|
|
36829
|
+
// try {
|
|
36830
|
+
// console.warn('[policy] fields-removed', {
|
|
36831
|
+
// entity: ctx.entityName,
|
|
36832
|
+
// id: ctx.id,
|
|
36833
|
+
// removedFields: uniqueForbidden
|
|
36834
|
+
// });
|
|
36835
|
+
// } catch {}
|
|
36046
36836
|
}
|
|
36047
36837
|
}
|
|
36048
36838
|
}
|
|
@@ -36082,11 +36872,15 @@ const policyEnforceMiddleware = {
|
|
|
36082
36872
|
console.warn('[policy] delete-blocked', { entity: ctx.entityName, id: ctx.id });
|
|
36083
36873
|
}
|
|
36084
36874
|
catch { }
|
|
36085
|
-
throw new
|
|
36875
|
+
throw new AXPMiddlewareAbortError('Delete forbidden by policy: Record is marked as system and cannot be deleted', {
|
|
36876
|
+
status: 409,
|
|
36877
|
+
code: 'POLICY_IMMUTABLE_RECORD',
|
|
36878
|
+
details: { entity: ctx.entityName, id: ctx.id },
|
|
36879
|
+
});
|
|
36086
36880
|
}
|
|
36087
36881
|
}
|
|
36088
36882
|
await next();
|
|
36089
|
-
//try { console.warn('[policy] after-next', ctx.op, ctx.entityName); } catch {
|
|
36883
|
+
// try { console.warn('[policy] after-next', ctx.op, ctx.entityName); } catch {}
|
|
36090
36884
|
// READ PATH (after next to transform response)
|
|
36091
36885
|
if (ctx.op === 'getOne' || ctx.op === 'getAll' || ctx.op === 'query') {
|
|
36092
36886
|
// Re-evaluate rules with result in scope (read conditions can depend on returned data)
|
|
@@ -36110,6 +36904,92 @@ const policyEnforceMiddleware = {
|
|
|
36110
36904
|
},
|
|
36111
36905
|
};
|
|
36112
36906
|
|
|
36907
|
+
const primaryMiddleware = {
|
|
36908
|
+
target: { ops: ['create', 'update'], order: 70 },
|
|
36909
|
+
execute: async (ctx, next) => {
|
|
36910
|
+
const backend = inject(AXP_ENTITY_STORAGE_BACKEND);
|
|
36911
|
+
// Check if this is a primary-related operation
|
|
36912
|
+
const isSettingPrimary = ctx.data && ctx.data.isPrimary === true;
|
|
36913
|
+
if (isSettingPrimary) {
|
|
36914
|
+
// Before setting a record as primary, unset all other primary records for this entity
|
|
36915
|
+
try {
|
|
36916
|
+
// Query all records for this entity to find existing primary records
|
|
36917
|
+
const queryResult = await ctx.backend.query(ctx.entityName, {
|
|
36918
|
+
filter: {
|
|
36919
|
+
field: null,
|
|
36920
|
+
logic: 'and',
|
|
36921
|
+
operator: null,
|
|
36922
|
+
filters: [
|
|
36923
|
+
{
|
|
36924
|
+
field: 'isPrimary',
|
|
36925
|
+
operator: { type: 'equal' },
|
|
36926
|
+
value: true
|
|
36927
|
+
}
|
|
36928
|
+
]
|
|
36929
|
+
},
|
|
36930
|
+
skip: 0,
|
|
36931
|
+
take: 1000 // Get all primary records
|
|
36932
|
+
});
|
|
36933
|
+
// Update all existing primary records to set isPrimary = false
|
|
36934
|
+
if (queryResult.items && queryResult.items.length > 0) {
|
|
36935
|
+
for (const item of queryResult.items) {
|
|
36936
|
+
// Skip the current record being updated
|
|
36937
|
+
if (ctx.op === 'update' && item.id === ctx.id) {
|
|
36938
|
+
continue;
|
|
36939
|
+
}
|
|
36940
|
+
// Update the record to set isPrimary = false
|
|
36941
|
+
await ctx.backend.updateOne(ctx.entityName, item.id, { isPrimary: false });
|
|
36942
|
+
}
|
|
36943
|
+
}
|
|
36944
|
+
}
|
|
36945
|
+
catch (error) {
|
|
36946
|
+
console.error('Failed to unset existing primary records:', error);
|
|
36947
|
+
// Continue with the operation even if this fails
|
|
36948
|
+
}
|
|
36949
|
+
}
|
|
36950
|
+
// Execute the main operation
|
|
36951
|
+
await next();
|
|
36952
|
+
// After the operation, ensure only one primary record exists
|
|
36953
|
+
if (isSettingPrimary) {
|
|
36954
|
+
try {
|
|
36955
|
+
// Double-check: query again to ensure only one primary record exists
|
|
36956
|
+
const queryResult = await ctx.backend.query(ctx.entityName, {
|
|
36957
|
+
filter: {
|
|
36958
|
+
field: null,
|
|
36959
|
+
logic: 'and',
|
|
36960
|
+
operator: null,
|
|
36961
|
+
filters: [
|
|
36962
|
+
{
|
|
36963
|
+
field: 'isPrimary',
|
|
36964
|
+
operator: { type: 'equal' },
|
|
36965
|
+
value: true
|
|
36966
|
+
}
|
|
36967
|
+
]
|
|
36968
|
+
},
|
|
36969
|
+
skip: 0,
|
|
36970
|
+
take: 1000
|
|
36971
|
+
});
|
|
36972
|
+
// If multiple primary records exist, keep only the most recent one
|
|
36973
|
+
if (queryResult.items && queryResult.items.length > 1) {
|
|
36974
|
+
// Sort by creation/update date to keep the most recent
|
|
36975
|
+
const sortedItems = queryResult.items.sort((a, b) => {
|
|
36976
|
+
const dateA = new Date(a.createdAt || a.updatedAt || 0);
|
|
36977
|
+
const dateB = new Date(b.createdAt || b.updatedAt || 0);
|
|
36978
|
+
return dateB.getTime() - dateA.getTime();
|
|
36979
|
+
});
|
|
36980
|
+
// Set all but the first (most recent) to isPrimary = false
|
|
36981
|
+
for (let i = 1; i < sortedItems.length; i++) {
|
|
36982
|
+
await ctx.backend.updateOne(ctx.entityName, sortedItems[i].id, { isPrimary: false });
|
|
36983
|
+
}
|
|
36984
|
+
}
|
|
36985
|
+
}
|
|
36986
|
+
catch (error) {
|
|
36987
|
+
console.error('Failed to ensure single primary record:', error);
|
|
36988
|
+
}
|
|
36989
|
+
}
|
|
36990
|
+
},
|
|
36991
|
+
};
|
|
36992
|
+
|
|
36113
36993
|
class AXCMiddlewaresModule {
|
|
36114
36994
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXCMiddlewaresModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
36115
36995
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: AXCMiddlewaresModule }); }
|
|
@@ -36123,8 +37003,10 @@ class AXCMiddlewaresModule {
|
|
|
36123
37003
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: eventDispatchMiddleware },
|
|
36124
37004
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: mergeDetailRelationMiddleware },
|
|
36125
37005
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: identifierCommitMiddleware },
|
|
37006
|
+
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: childCountMiddleware },
|
|
36126
37007
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: auditLoggerMiddleware },
|
|
36127
37008
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: createFileCastMiddleware },
|
|
37009
|
+
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: primaryMiddleware },
|
|
36128
37010
|
// Sample entity event listener to show logs for all entity.* events
|
|
36129
37011
|
//{ provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, multi: true, useValue: AXCMockEntityLogListener },
|
|
36130
37012
|
] }); }
|
|
@@ -36145,8 +37027,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
36145
37027
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: eventDispatchMiddleware },
|
|
36146
37028
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: mergeDetailRelationMiddleware },
|
|
36147
37029
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: identifierCommitMiddleware },
|
|
37030
|
+
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: childCountMiddleware },
|
|
36148
37031
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: auditLoggerMiddleware },
|
|
36149
37032
|
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: createFileCastMiddleware },
|
|
37033
|
+
{ provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: primaryMiddleware },
|
|
36150
37034
|
// Sample entity event listener to show logs for all entity.* events
|
|
36151
37035
|
//{ provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, multi: true, useValue: AXCMockEntityLogListener },
|
|
36152
37036
|
],
|
|
@@ -37204,5 +38088,5 @@ const AXCMockEntityLogListener = {
|
|
|
37204
38088
|
* Generated bundle index. Do not edit.
|
|
37205
38089
|
*/
|
|
37206
38090
|
|
|
37207
|
-
export { APPLICATIONS, APPLICATIONS_MODULES, AXCAppTermDataSeeder, AXCAppVersionDataSeeder, AXCApplicationManagementMockModule, AXCApplicationTemplateDataSeeder, AXCAuthMockModule, AXCCalendarDataSeeder, AXCCalendarEventDataSeeder, AXCCalendarManagementMockModule, AXCCommonMockModule, AXCContactManagementMockModule, AXCContentManagementMockModule, AXCConversationMockModule, AXCCustomerManagementMockModule, AXCDashboardManagementMockModule, AXCDataManagementMockModule, AXCDexieEntityStorageService, AXCDocumentManagementMockModule, AXCFileStorageService, AXCFormTemplateManagementMockModule, AXCGlobalVariablesDataSeeder, AXCGoogleStrategyMock, AXCHelpDeskMockModule, AXCHumanCapitalManagementMockModule, AXCIdentifierManagementMockModule, AXCJsaSeeder, AXCLocaleManagementMockModule, AXCLocationManagementMockModule, AXCLockService, AXCLogManagementMockModule, AXCMeetingManagementMockModule, AXCMetaDataDefinitionDataSeeder, AXCMiddlewaresModule, AXCMockEntityLogListener, AXCMockModule, AXCNotificationManagementMockModule, AXCOrganizationManagementMockModule, AXCPartyManagementMockModule, AXCPlatformManagementMockModule, AXCProjectManagementMockModule, AXCQueryCategoryMetadataInheritanceQuery, AXCReportManagementMockModule, AXCSchedulerJobDataSeeder, AXCSchedulerJobManagementMockModule, AXCSecurityManagementMockModule, AXCTaskManagementMockModule, AXCTextTemplateCategoryDataSeeder, AXCTextTemplateDataSeeder, AXCTextTemplateManagementMockModule, AXCTrainingManagementMockModule, AXCUserPassStrategyMock, AXCWorkflowManagementMockModule, AXMAiResponderService, AXMBusinessUnitDataSeeder, AXMCalendarEventTypeSeeder, AXMEmployeeDataSeeder, AXMEmployeeSkillDataSeeder, AXMEmployeeSkillsCategoryProvider, AXMEmployeeSkillsReportDefinitionProvider, AXMEmploymentTypeDataSeeder, AXMFormDataSourcesProvider, AXMIndustryDataSeeder, AXMLeaveRequestDataSeeder, AXMMeetingDataSeeder, AXMMeetingFilesDataSeeder, AXMMeetingParticipantDataSeeder, AXMMeetingRoleTypeDataSeeder, AXMMeetingSessionDataSeeder, AXMMeetingTypeDataSeeder, AXMMeetingTypeFileTemplateDataSeeder, AXMPositionAssignmentDataSeeder, AXMPositionDataSeeder, AXMReportCategoryDataSeeder, AXMReportDefinitionDataSeeder, AXMReportExecuteCommand, AXMReportMockDataService, AXMResponsibilityDataSeeder, AXMRoleDataSeeder, AXMSkillDataSeeder, AXMSkillLevelDataSeeder, AXMTeamDataSeeder, AXM_EMPLOYEE_SKILLS_CATEGORY_PROVIDER, AXM_EMPLOYEE_SKILLS_DEFINITION_PROVIDER, AXPDashboardDataSeeder, AXPIdentifierDB, AXPMessageDataSeeder, AXPMockChecksumProvider, AXPMockClockProvider, AXPMockIdentifierService, AXPMockLookupProvider, AXPMockPolicyProvider, AXPMockSequenceProvider, AXPRoomDataSeeder, AXPSecurityManagementRoleDataSeeder, AXPSecurityManagementUserDataSeeder, AXPTaskBoardPlatformManagementTaskProvider, AXPTaskBoardProjectManagementTaskProvider, AXQEmployeeSkillsLevelPercentagesQuery, AXQEmployeeSkillsLevelsQuery, AXQEmployeeSkillsListQuery, AXQEmployeeSkillsSkillPercentagesQuery, AXQEmployeeSkillsStatsQuery, AXQEmployeeSkillsTrendQuery, BUSINESS_UNITS_MOCK, DASHBOARDS, EDITIONS, EMPLOYEES_MOCK, EMPLOYEE_SKILLS_MOCK, EMPLOYMENT_TYPES_MOCK, ENTITIES, FEATURES, GLOBAL_VARIABLES, LEAVE_REQUESTS_MOCK, MODULES, PERMISSIONS, POSITIONS_CATEGORY_MOCK, POSITIONS_MOCK, POSITION_ASSIGNMENTS_MOCK, PROPERTIES, RESPONSIBILITIES_CATEGORY_MOCK, RESPONSIBILITIES_MOCK, ROLES_CATEGORY_MOCK, ROLES_MOCK, SKILLS_CATEGORY_MOCK, SKILLS_MOCK, SKILL_LEVELS_MOCK, TASKS, TASK_STATUSES, TASK_TEMPLATES, TASK_TYPES, TEAMS_MOCK, TEXT_TEMPLATES, TEXT_TEMPLATE_CATEGORY, applications, auditLoggerMiddleware, calendarEventMock, calendarEventTypeMockData, calendarMock, createAndSaveDashboardForUser, createDashboardForUser, createFileCastMiddleware, findContactMethod, findEmployeeById, findPartyById, generateUserDashboard, identifierCommitMiddleware, meetingFilesMock, meetingIds, meetingMock, meetingParticipantMock, meetingRoleTypeMock, meetingSessionMock, meetingTimeSlotMock, meetingTypeFileTemplateMock, meetingTypeMock, mergeDetailRelationMiddleware, mockRoleDefinitions, mockUsers, participantIds, tenantsMock };
|
|
38091
|
+
export { APPLICATIONS, APPLICATIONS_MODULES, AXCAppTermDataSeeder, AXCAppVersionDataSeeder, AXCApplicationManagementMockModule, AXCApplicationTemplateDataSeeder, AXCAuthMockModule, AXCCalendarDataSeeder, AXCCalendarEventDataSeeder, AXCCalendarManagementMockModule, AXCCommonMockModule, AXCContactManagementMockModule, AXCContentManagementMockModule, AXCConversationMockModule, AXCCustomerManagementMockModule, AXCDashboardManagementMockModule, AXCDataManagementMockModule, AXCDexieEntityStorageService, AXCDocumentManagementMockModule, AXCFileStorageService, AXCFormTemplateManagementMockModule, AXCGlobalVariablesDataSeeder, AXCGoogleStrategyMock, AXCHelpDeskMockModule, AXCHumanCapitalManagementMockModule, AXCIdentifierManagementMockModule, AXCJsaSeeder, AXCLocaleManagementMockModule, AXCLocationManagementMockModule, AXCLockService, AXCLogManagementMockModule, AXCLogReportCategoryProvider, AXCLogReportDefinitionProvider, AXCMeetingManagementMockModule, AXCMetaDataDefinitionDataSeeder, AXCMiddlewaresModule, AXCMockEntityLogListener, AXCMockModule, AXCNotificationManagementMockModule, AXCOrganizationManagementMockModule, AXCPartyManagementMockModule, AXCPlatformManagementMockModule, AXCProjectManagementMockModule, AXCQueryCategoryMetadataInheritanceQuery, AXCReportManagementMockModule, AXCSchedulerJobDataSeeder, AXCSchedulerJobManagementMockModule, AXCSecurityManagementMockModule, AXCTaskManagementMockModule, AXCTextTemplateCategoryDataSeeder, AXCTextTemplateDataSeeder, AXCTextTemplateManagementMockModule, AXCTrainingManagementMockModule, AXCUserPassStrategyMock, AXCWorkflowManagementMockModule, AXC_LOG_REPORT_CATEGORY_PROVIDER, AXC_LOG_REPORT_DEFINITION_PROVIDER, AXMAiResponderService, AXMBusinessUnitDataSeeder, AXMCalendarEventTypeSeeder, AXMEmployeeDataSeeder, AXMEmployeeSkillDataSeeder, AXMEmployeeSkillsCategoryProvider, AXMEmployeeSkillsReportDefinitionProvider, AXMEmploymentTypeDataSeeder, AXMFormDataSourcesProvider, AXMIndustryDataSeeder, AXMLeaveRequestDataSeeder, AXMMeetingDataSeeder, AXMMeetingFilesDataSeeder, AXMMeetingParticipantDataSeeder, AXMMeetingRoleTypeDataSeeder, AXMMeetingSessionDataSeeder, AXMMeetingTypeDataSeeder, AXMMeetingTypeFileTemplateDataSeeder, AXMPositionAssignmentDataSeeder, AXMPositionDataSeeder, AXMReportCategoryDataSeeder, AXMReportDefinitionDataSeeder, AXMReportExecuteCommand, AXMReportMockDataService, AXMResponsibilityDataSeeder, AXMRoleDataSeeder, AXMSkillDataSeeder, AXMSkillLevelDataSeeder, AXMTeamDataSeeder, AXM_EMPLOYEE_SKILLS_CATEGORY_PROVIDER, AXM_EMPLOYEE_SKILLS_DEFINITION_PROVIDER, AXPDashboardDataSeeder, AXPIdentifierDB, AXPMessageDataSeeder, AXPMockChecksumProvider, AXPMockClockProvider, AXPMockIdentifierService, AXPMockLookupProvider, AXPMockPolicyProvider, AXPMockSequenceProvider, AXPRoomDataSeeder, AXPSecurityManagementRoleDataSeeder, AXPSecurityManagementUserDataSeeder, AXPTaskBoardPlatformManagementTaskProvider, AXPTaskBoardProjectManagementTaskProvider, AXQEmployeeSkillsLevelPercentagesQuery, AXQEmployeeSkillsLevelsQuery, AXQEmployeeSkillsListQuery, AXQEmployeeSkillsSkillPercentagesQuery, AXQEmployeeSkillsStatsQuery, AXQEmployeeSkillsTrendQuery, BUSINESS_UNITS_MOCK, DASHBOARDS, EDITIONS, EMPLOYEES_MOCK, EMPLOYEE_SKILLS_MOCK, EMPLOYMENT_TYPES_MOCK, ENTITIES, FEATURES, GLOBAL_VARIABLES, LEAVE_REQUESTS_MOCK, MODULES, PERMISSIONS, POSITIONS_CATEGORY_MOCK, POSITIONS_MOCK, POSITION_ASSIGNMENTS_MOCK, PROPERTIES, RESPONSIBILITIES_CATEGORY_MOCK, RESPONSIBILITIES_MOCK, ROLES_CATEGORY_MOCK, ROLES_MOCK, SKILLS_CATEGORY_MOCK, SKILLS_MOCK, SKILL_LEVELS_MOCK, TASKS, TASK_STATUSES, TASK_TEMPLATES, TASK_TYPES, TEAMS_MOCK, TEXT_TEMPLATES, TEXT_TEMPLATE_CATEGORY, applications, auditLoggerMiddleware, calendarEventMock, calendarEventTypeMockData, calendarMock, childCountMiddleware, createAndSaveDashboardForUser, createDashboardForUser, createFileCastMiddleware, findContactMethod, findEmployeeById, findPartyById, generateUserDashboard, identifierCommitMiddleware, meetingFilesMock, meetingIds, meetingMock, meetingParticipantMock, meetingRoleTypeMock, meetingSessionMock, meetingTimeSlotMock, meetingTypeFileTemplateMock, meetingTypeMock, mergeDetailRelationMiddleware, mockRoleDefinitions, mockUsers, participantIds, primaryMiddleware, tenantsMock };
|
|
37208
38092
|
//# sourceMappingURL=acorex-connectivity-mock.mjs.map
|