@acorex/connectivity 19.2.11 → 19.2.15

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 (35) hide show
  1. package/api/lib/api-storage.service.d.ts +1 -1
  2. package/fesm2022/acorex-connectivity-api.mjs +2 -2
  3. package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
  4. package/fesm2022/acorex-connectivity-mock.mjs +1403 -129
  5. package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
  6. package/mock/lib/application-management/application.seeder.d.ts +1 -1
  7. package/mock/lib/conversation/chat/chat.seeder.d.ts +1 -1
  8. package/mock/lib/conversation/comments/comment.seeder.d.ts +1 -1
  9. package/mock/lib/document-management/document-type/document-type.mock.d.ts +2 -0
  10. package/mock/lib/document-management/document-type/document-type.seeder.d.ts +8 -0
  11. package/mock/lib/document-management/folder/folder.mock.data.d.ts +3 -0
  12. package/mock/lib/document-management/folder/folder.seeder.d.ts +8 -0
  13. package/mock/lib/document-management/folder/folder.service.d.ts +9 -0
  14. package/mock/lib/document-management/folder/index.d.ts +1 -0
  15. package/mock/lib/form-template-management/category.seeder.d.ts +2 -1
  16. package/mock/lib/mock.module.d.ts +2 -1
  17. package/mock/lib/mock.strategy.d.ts +1 -0
  18. package/mock/lib/notification-management/template.seeder.d.ts +1 -1
  19. package/mock/lib/organization-management/org-chart.mock.d.ts +2 -1
  20. package/mock/lib/organization-management/organization-management.seeder.d.ts +1 -1
  21. package/mock/lib/platform-management/app-term/app-term.seeder.d.ts +1 -1
  22. package/mock/lib/platform-management/app-version/app-version.seeder.d.ts +1 -1
  23. package/mock/lib/platform-management/common/regional-util.service.d.ts +1 -1
  24. package/mock/lib/platform-management/global-variables/global-variable.seeder.d.ts +1 -1
  25. package/mock/lib/platform-management/metadata/metadata.mock.d.ts +2 -0
  26. package/mock/lib/platform-management/metadata/metadata.seeder.d.ts +8 -0
  27. package/mock/lib/scheduler-job-management/scheduler-job.seeder.d.ts +1 -1
  28. package/mock/lib/security-management/datasource-provider.mock.service.d.ts +4 -0
  29. package/mock/lib/security-management/mock-data.d.ts +28 -0
  30. package/mock/lib/security-management/role.seeder.d.ts +10 -0
  31. package/mock/lib/security-management/security-management-mock.module.d.ts +6 -0
  32. package/mock/lib/security-management/user.seeder.d.ts +9 -0
  33. package/mock/lib/text-template-management/category.seeder.d.ts +1 -1
  34. package/mock/lib/text-template-management/template.seeder.d.ts +1 -1
  35. package/package.json +1 -1
@@ -1,24 +1,27 @@
1
1
  import { APPLICATION_SOURCE_NAME, MODULE_SOURCE_NAME, ENTITY_SOURCE_NAME, FEATURE_SOURCE_NAME, PERMISSION_SOURCE_NAME, PROPERTY_SOURCE_NAME, AXPModuleDesignerService } from '@acorex/modules/application-management';
2
- import { RootConfig as RootConfig$1, AXMNotificationEntityService } from '@acorex/modules/notification-management';
2
+ import { RootConfig, AXMFolderServiceImpl, AXMFolderService } from '@acorex/modules/document-management';
3
+ import { RootConfig as RootConfig$3, AXMNotificationEntityService } from '@acorex/modules/notification-management';
3
4
  import * as i1$1 from '@acorex/platform/auth';
4
- import { AXPSessionService, AXPAuthModule } from '@acorex/platform/auth';
5
- import { AXPDataGenerator, AXPDexieEntityStorageService, AXP_DATA_SEEDER_TOKEN, AXPEntityStorageService, AXPRegionalService, AXPFileStorageStatus, AXPFileStorageService, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
5
+ import { AXPSessionService, AXPPermissionProviderService, AXPAuthModule } from '@acorex/platform/auth';
6
+ import { AXPDataGenerator, AXPRegionalService, AXPFileStorageStatus, AXPFileStorageService, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
7
+ import { AXPDexieEntityStorageService, AXPEntityDefinitionRegistryService, AXP_DATA_SEEDER_TOKEN, AXPEntityStorageService } from '@acorex/platform/layout/entity';
6
8
  import * as i0 from '@angular/core';
7
9
  import { inject, Injectable, NgModule } from '@angular/core';
8
- import { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';
9
10
  import * as i1 from '@acorex/modules/conversation';
10
11
  import { AXMConverstionModuleConst, AXMChatServiceImpl, AXMCommentServiceImpl, AXMChatModule, AXMChatService } from '@acorex/modules/conversation';
12
+ import { AXPDataGenerator as AXPDataGenerator$1 } from '@acorex/platform/core';
11
13
  import Dexie from 'dexie';
12
14
  import { AXP_WIDGET_DATASOURCE_PROVIDER } from '@acorex/platform/layout/builder';
15
+ import { RootConfig as RootConfig$1 } from '@acorex/modules/form-template-management';
13
16
  import { convertArrayToDataSource } from '@acorex/components/common';
14
- import { RootConfig } from '@acorex/modules/form-template-management';
15
- import { AXMOrganizationNodeType, RootConfig as RootConfig$2 } from '@acorex/modules/organization-management';
16
- import { RootConfig as RootConfig$3 } from '@acorex/modules/platform-management';
17
+ import { RootConfig as RootConfig$2 } from '@acorex/modules/security-management';
18
+ import { AXMOrganizationNodeType, RootConfig as RootConfig$4 } from '@acorex/modules/organization-management';
19
+ import { RootConfig as RootConfig$5 } from '@acorex/modules/platform-management';
17
20
  import { AXTranslationService } from '@acorex/core/translation';
18
21
  import { firstValueFrom } from 'rxjs';
19
22
  import { AXFileService } from '@acorex/core/file';
20
- import { RootConfig as RootConfig$4 } from '@acorex/modules/scheduler-job-management';
21
- import { RootConfig as RootConfig$5 } from '@acorex/modules/text-template-management';
23
+ import { RootConfig as RootConfig$6 } from '@acorex/modules/scheduler-job-management';
24
+ import { RootConfig as RootConfig$7 } from '@acorex/modules/text-template-management';
22
25
 
23
26
  const APPLICATIONS = Array.from({ length: 5 }).map((_, i) => {
24
27
  const source = ['appOne', 'appTwo', 'appThree', 'myCoolApp', 'awesomeApp', 'superApp'];
@@ -547,6 +550,414 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
547
550
  }]
548
551
  }] });
549
552
 
553
+ const DocumentTypeMocks = [
554
+ {
555
+ id: AXPDataGenerator$1.uuid(),
556
+ name: 'OHS',
557
+ title: 'Occupational Health and Safety Policy',
558
+ maxSize: 5000,
559
+ isEncrypted: false,
560
+ meta: [
561
+ {
562
+ name: 'checkbox',
563
+ title: 'Check Box',
564
+ interface: '{"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"}',
565
+ },
566
+ ],
567
+ type: {
568
+ selectedItems: [
569
+ {
570
+ name: 'image.jpg',
571
+ title: 'Image/JPEG',
572
+ icon: 'fa-light fa-image ax-text-purple-500',
573
+ },
574
+ {
575
+ name: 'image.png',
576
+ title: 'Image/PNG',
577
+ icon: 'fa-light fa-image ax-text-purple-500',
578
+ },
579
+ {
580
+ name: 'image.gif',
581
+ title: 'Image/GIF',
582
+ icon: 'fa-light fa-image ax-text-purple-500',
583
+ },
584
+ ],
585
+ context: {
586
+ image: {
587
+ width: '22',
588
+ height: '33',
589
+ },
590
+ gift: {
591
+ duration: '11',
592
+ },
593
+ },
594
+ },
595
+ },
596
+ {
597
+ id: AXPDataGenerator$1.uuid(),
598
+ name: 'WHS',
599
+ title: 'Workplace Health and Safety Guidelines',
600
+ maxSize: 10000,
601
+ isEncrypted: true,
602
+ meta: [{ name: 'external', title: 'External', interface: '' }],
603
+ type: {
604
+ selectedItems: [
605
+ {
606
+ name: 'audio.mp3',
607
+ title: 'MP3',
608
+ icon: 'fa-light fa-file-audio ax-text-green-500',
609
+ },
610
+ {
611
+ name: 'audio.wav',
612
+ title: 'WAV',
613
+ icon: 'fa-light fa-file-audio ax-text-green-500',
614
+ },
615
+ ],
616
+ context: {
617
+ audio: {
618
+ bitrate: '320',
619
+ duration: '180',
620
+ },
621
+ },
622
+ },
623
+ },
624
+ ];
625
+
626
+ class AXCDocumentTypeDataSeeder {
627
+ constructor() {
628
+ this.storageService = inject(AXPDexieEntityStorageService);
629
+ }
630
+ async seed() {
631
+ await this.storageService.initial(`${RootConfig.module.name}.${RootConfig.entities.documentType.name}`, DocumentTypeMocks);
632
+ }
633
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCDocumentTypeDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
634
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCDocumentTypeDataSeeder }); }
635
+ }
636
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCDocumentTypeDataSeeder, decorators: [{
637
+ type: Injectable
638
+ }] });
639
+
640
+ const allFolders = [];
641
+ const allFiles = [];
642
+ const rootFolder = {
643
+ id: AXPDataGenerator$1.uuid(),
644
+ name: 'WHS Documentation',
645
+ color: '#FFFFFF',
646
+ description: 'Root folder for WHS/OHS Documentation',
647
+ parentId: undefined,
648
+ isSystem: true,
649
+ isHidden: false,
650
+ isDeleted: false,
651
+ createdAt: new Date(),
652
+ updatedAt: new Date(),
653
+ createdBy: 'system',
654
+ updatedBy: 'system',
655
+ folders: [],
656
+ documents: [],
657
+ };
658
+ // Updated sample file types with WHS/OHS specific examples
659
+ const sampleFileTypes = [
660
+ {
661
+ ext: 'pdf',
662
+ titles: [
663
+ 'Risk Assessment Report',
664
+ 'Safety Audit Checklist',
665
+ 'Emergency Response Plan',
666
+ 'Safety Training Manual'
667
+ ]
668
+ },
669
+ {
670
+ ext: 'docx',
671
+ titles: [
672
+ 'Incident Investigation Form',
673
+ 'Safety Meeting Minutes',
674
+ 'Hazard Report Template',
675
+ 'Safe Work Procedure'
676
+ ]
677
+ },
678
+ {
679
+ ext: 'xlsx',
680
+ titles: [
681
+ 'Incident Statistics',
682
+ 'Safety Training Matrix',
683
+ 'PPE Inventory List',
684
+ 'Risk Register'
685
+ ]
686
+ },
687
+ {
688
+ ext: 'jpg',
689
+ titles: [
690
+ 'Hazard Photo',
691
+ 'Safety Signage',
692
+ 'Emergency Exit Plan',
693
+ 'PPE Requirements Chart'
694
+ ]
695
+ },
696
+ {
697
+ ext: 'png',
698
+ titles: [
699
+ 'Safety Infographic',
700
+ 'Evacuation Map',
701
+ 'Incident Scene Photo',
702
+ 'Safety Procedure Diagram'
703
+ ]
704
+ },
705
+ {
706
+ ext: 'pptx',
707
+ titles: [
708
+ 'Safety Induction',
709
+ 'WHS Training Module',
710
+ 'Safety Committee Presentation',
711
+ 'Toolbox Talk'
712
+ ]
713
+ }
714
+ ];
715
+ const sites = ['Main Factory', 'Warehouse Complex', 'Office Building', 'Construction Site'];
716
+ const whsFolders = [
717
+ {
718
+ name: 'Policies and Procedures',
719
+ subFolders: ['Safety Policies', 'Standard Operating Procedures', 'Emergency Procedures', 'Work Instructions'],
720
+ commonFiles: ['WHS Policy Manual.pdf', 'Emergency Response Plan.pdf', 'Safety Management System.docx', 'Risk Management Framework.pdf']
721
+ },
722
+ {
723
+ name: 'Risk Management',
724
+ subFolders: ['Risk Assessments', 'Hazard Reports', 'Control Measures', 'Safety Audits'],
725
+ commonFiles: ['Risk Assessment Matrix.xlsx', 'Hazard Register.xlsx', 'Control Measure Checklist.pdf', 'Audit Schedule.xlsx']
726
+ },
727
+ {
728
+ name: 'Incident Management',
729
+ subFolders: ['Incident Reports', 'Investigations', 'Corrective Actions', 'Statistics'],
730
+ commonFiles: ['Incident Report Form.docx', 'Investigation Guidelines.pdf', 'Corrective Action Register.xlsx', 'Monthly Statistics.xlsx']
731
+ },
732
+ {
733
+ name: 'Training and Compliance',
734
+ subFolders: ['Training Records', 'Certifications', 'Competency Assessments', 'Toolbox Talks'],
735
+ commonFiles: ['Training Matrix.xlsx', 'Induction Package.pdf', 'Competency Framework.docx', 'Training Calendar.xlsx']
736
+ },
737
+ {
738
+ name: 'Safety Equipment',
739
+ subFolders: ['PPE Records', 'Equipment Inspections', 'Maintenance Records', 'Safety Data Sheets'],
740
+ commonFiles: ['PPE Register.xlsx', 'Equipment Maintenance Schedule.xlsx', 'Safety Equipment Inventory.xlsx', 'PPE Guidelines.pdf']
741
+ }
742
+ ];
743
+ sites.forEach((site) => {
744
+ const siteFolderId = AXPDataGenerator$1.uuid();
745
+ const siteFolder = {
746
+ id: siteFolderId,
747
+ name: site,
748
+ color: '#FFFFFF',
749
+ description: `WHS Documentation for ${site}`,
750
+ parentId: rootFolder.id,
751
+ isSystem: false,
752
+ isHidden: false,
753
+ isDeleted: false,
754
+ createdAt: new Date(),
755
+ updatedAt: new Date(),
756
+ createdBy: 'system',
757
+ updatedBy: 'system',
758
+ tenantId: site,
759
+ userId: undefined,
760
+ folders: [],
761
+ documents: [],
762
+ };
763
+ const safetyRoles = ['Safety Officer', 'Site Supervisor', 'WHS Representative'];
764
+ safetyRoles.forEach((role) => {
765
+ const roleFolderId = AXPDataGenerator$1.uuid();
766
+ const roleFolder = {
767
+ id: roleFolderId,
768
+ name: role,
769
+ color: '#FFFFFF',
770
+ description: `${role} Documentation`,
771
+ parentId: siteFolder.id,
772
+ isSystem: false,
773
+ isHidden: false,
774
+ isDeleted: false,
775
+ createdAt: new Date(),
776
+ updatedAt: new Date(),
777
+ createdBy: 'system',
778
+ updatedBy: 'system',
779
+ tenantId: site,
780
+ userId: role.toLowerCase().replace(/\s+/g, '_'),
781
+ folders: [],
782
+ documents: [],
783
+ };
784
+ sampleFileTypes.forEach((fileType) => {
785
+ fileType.titles.forEach((title) => {
786
+ if (Math.random() > 0.5) {
787
+ const file = {
788
+ id: AXPDataGenerator$1.uuid(),
789
+ name: `${title.toLowerCase().replace(/\s+/g, '-')}.${fileType.ext}`,
790
+ title: title,
791
+ parentId: roleFolderId,
792
+ };
793
+ allFiles.push(file);
794
+ roleFolder.documents?.push(file);
795
+ }
796
+ });
797
+ });
798
+ siteFolder.folders?.push(roleFolder);
799
+ allFolders.push(roleFolder);
800
+ });
801
+ whsFolders.forEach((dept) => {
802
+ const deptFolderId = AXPDataGenerator$1.uuid();
803
+ const deptFolder = {
804
+ id: deptFolderId,
805
+ name: dept.name,
806
+ color: '#' + Math.floor(Math.random() * 16777215).toString(16),
807
+ description: `${dept.name} documentation`,
808
+ parentId: siteFolder.id,
809
+ isSystem: false,
810
+ isHidden: false,
811
+ isDeleted: false,
812
+ createdAt: new Date(),
813
+ updatedAt: new Date(),
814
+ createdBy: 'system',
815
+ updatedBy: 'system',
816
+ tenantId: site,
817
+ folders: [],
818
+ documents: [],
819
+ };
820
+ dept.commonFiles.forEach((fileName) => {
821
+ const file = {
822
+ id: AXPDataGenerator$1.uuid(),
823
+ name: fileName,
824
+ title: fileName.split('.')[0],
825
+ parentId: deptFolderId,
826
+ };
827
+ allFiles.push(file);
828
+ deptFolder.documents?.push(file);
829
+ });
830
+ dept.subFolders.forEach((subFolderName) => {
831
+ const subFolderId = AXPDataGenerator$1.uuid();
832
+ const subFolder = {
833
+ id: subFolderId,
834
+ name: subFolderName,
835
+ color: '#' + Math.floor(Math.random() * 16777215).toString(16),
836
+ description: `${subFolderName} documentation`,
837
+ parentId: deptFolderId,
838
+ isSystem: false,
839
+ isHidden: false,
840
+ isDeleted: false,
841
+ createdAt: new Date(),
842
+ updatedAt: new Date(),
843
+ createdBy: 'system',
844
+ updatedBy: 'system',
845
+ tenantId: site,
846
+ folders: [],
847
+ documents: [],
848
+ };
849
+ sampleFileTypes.forEach((fileType) => {
850
+ fileType.titles.forEach((title) => {
851
+ if (Math.random() > 0.7) {
852
+ const file = {
853
+ id: AXPDataGenerator$1.uuid(),
854
+ name: `${title.toLowerCase().replace(/\s+/g, '-')}.${fileType.ext}`,
855
+ title: title,
856
+ parentId: subFolderId,
857
+ };
858
+ allFiles.push(file);
859
+ subFolder.documents?.push(file);
860
+ }
861
+ });
862
+ });
863
+ deptFolder.folders?.push(subFolder);
864
+ allFolders.push(subFolder);
865
+ });
866
+ siteFolder.folders?.push(deptFolder);
867
+ allFolders.push(deptFolder);
868
+ });
869
+ rootFolder.folders?.push(siteFolder);
870
+ allFolders.push(siteFolder);
871
+ });
872
+ allFolders.push(rootFolder);
873
+ const FOLDER_MOCK_DATA = allFolders;
874
+ const FILE_MOCK_DATA = allFiles;
875
+
876
+ class AXCFolderDataSeeder {
877
+ constructor() {
878
+ this.storageService = inject(AXPDexieEntityStorageService);
879
+ }
880
+ async seed() {
881
+ await this.storageService.initial(`${RootConfig.module.name}.${RootConfig.entities.folder.name}`, FOLDER_MOCK_DATA);
882
+ }
883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCFolderDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
884
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCFolderDataSeeder }); }
885
+ }
886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCFolderDataSeeder, decorators: [{
887
+ type: Injectable
888
+ }] });
889
+
890
+ class AXMFolderMockService extends AXMFolderServiceImpl {
891
+ async updateParentFolders(folder) {
892
+ if (folder.parentId) {
893
+ const parent = await this.getOne(folder.parentId);
894
+ if (parent && parent.id) {
895
+ if (!parent.folders) {
896
+ parent.folders = [];
897
+ }
898
+ const existingIndex = parent.folders.findIndex((f) => f.id === folder.id);
899
+ if (existingIndex === -1) {
900
+ parent.folders.push(folder);
901
+ }
902
+ else {
903
+ parent.folders[existingIndex] = folder;
904
+ }
905
+ await super.updateOne(parent.id, { folders: parent.folders });
906
+ await this.updateParentFolders(parent);
907
+ }
908
+ }
909
+ }
910
+ async removeFromParent(folder) {
911
+ if (folder.parentId) {
912
+ const parent = await this.getOne(folder.parentId);
913
+ if (parent && parent.id && parent.folders) {
914
+ parent.folders = parent.folders.filter((f) => f.id !== folder.id);
915
+ await super.updateOne(parent.id, { folders: parent.folders });
916
+ await this.updateParentFolders(parent);
917
+ }
918
+ }
919
+ }
920
+ async insertOne(request) {
921
+ const newId = await super.insertOne(request);
922
+ const folderData = {
923
+ ...request,
924
+ id: newId,
925
+ };
926
+ await this.updateParentFolders(folderData);
927
+ return newId;
928
+ }
929
+ async updateOne(id, values) {
930
+ const currentFolder = await this.getOne(id);
931
+ const updatedFolder = await super.updateOne(id, values);
932
+ if (currentFolder && values.parentId !== undefined && currentFolder.parentId !== values.parentId) {
933
+ await this.removeFromParent(currentFolder);
934
+ }
935
+ await this.updateParentFolders(updatedFolder);
936
+ return updatedFolder;
937
+ }
938
+ async deleteOne(id) {
939
+ const folderToDelete = await this.getOne(id);
940
+ if (folderToDelete) {
941
+ await this.removeFromParent(folderToDelete);
942
+ await super.deleteOne(id);
943
+ }
944
+ }
945
+ async getPath(folderId) {
946
+ const path = [];
947
+ let currentId = folderId;
948
+ while (currentId) {
949
+ const folder = await this.getOne(currentId);
950
+ if (!folder) {
951
+ // Folder not found in persisted storage
952
+ break;
953
+ }
954
+ path.push(folder);
955
+ currentId = folder.parentId ?? null;
956
+ }
957
+ return path.reverse();
958
+ }
959
+ }
960
+
550
961
  class EntitySearchProvider {
551
962
  async search(text) {
552
963
  const db = new Dexie('ACoreXPlatform');
@@ -561,11 +972,16 @@ class EntitySearchProvider {
561
972
  return filteredRecords.map((record) => ({
562
973
  group: `Module.${record.entityName}`,
563
974
  data: record,
564
- commands: {
565
- 'open-entity': {
975
+ command: {
976
+ // 'open-entity': {
977
+ // entity: record.entityName,
978
+ // data: record,
979
+ // },
980
+ name: 'open-entity',
981
+ options: {
566
982
  entity: record.entityName,
567
983
  data: record,
568
- },
984
+ }
569
985
  },
570
986
  }));
571
987
  }
@@ -588,6 +1004,83 @@ class EntitySearchProvider {
588
1004
  }
589
1005
  }
590
1006
 
1007
+ class AXPFormTemplateCategoryDataSeeder {
1008
+ constructor() {
1009
+ this.storageService = inject(AXPDexieEntityStorageService);
1010
+ }
1011
+ async seed() {
1012
+ await this.storageService.initial(`${RootConfig$1.module.name}.${RootConfig$1.entities.category.name}`, this.generateCategories());
1013
+ }
1014
+ generateCategories() {
1015
+ const categories = [];
1016
+ const rootCategories = [
1017
+ 'Risk Assessment',
1018
+ 'Servicing',
1019
+ 'Checklists',
1020
+ 'Incident Reporting',
1021
+ 'Emergency Procedures',
1022
+ 'Hazardous Materials',
1023
+ 'PPE (Personal Protective Equipment)',
1024
+ 'Workplace Ergonomics',
1025
+ 'Equipment Safety',
1026
+ 'Fire Safety',
1027
+ 'First Aid',
1028
+ 'Manual Handling',
1029
+ 'Electrical Safety',
1030
+ 'Confined Spaces',
1031
+ 'Chemical Safety',
1032
+ ];
1033
+ rootCategories.forEach((title) => {
1034
+ const categoryId = AXPDataGenerator.uuid();
1035
+ categories.push({ id: categoryId, title, parentId: undefined });
1036
+ });
1037
+ const childCategories = [
1038
+ {
1039
+ parent: 'Risk Assessment',
1040
+ children: ['Job Safety Analysis', 'Task Risk Assessment', 'General Hazard Identification'],
1041
+ },
1042
+ { parent: 'Incident Reporting', children: ['Near Miss Reports', 'Accident Reports', 'Injury Logs'] },
1043
+ {
1044
+ parent: 'Emergency Procedures',
1045
+ children: ['Fire Evacuation', 'Medical Emergencies', 'Chemical Spill Response'],
1046
+ },
1047
+ {
1048
+ parent: 'Hazardous Materials',
1049
+ children: ['Material Safety Data Sheets', 'Storage & Handling', 'Hazardous Waste Disposal'],
1050
+ },
1051
+ {
1052
+ parent: 'PPE (Personal Protective Equipment)',
1053
+ children: ['Protective Gloves', 'Eye Protection', 'Hearing Protection'],
1054
+ },
1055
+ { parent: 'Workplace Ergonomics', children: ['Seating Arrangements', 'Lifting Techniques', 'Workstation Setup'] },
1056
+ { parent: 'Equipment Safety', children: ['Machine Guarding', 'Lockout/Tagout', 'Inspection Procedures'] },
1057
+ { parent: 'Fire Safety', children: ['Fire Extinguishers', 'Fire Drills', 'Smoke Alarms'] },
1058
+ { parent: 'First Aid', children: ['CPR Training', 'First Aid Kits', 'Emergency Contacts'] },
1059
+ { parent: 'Manual Handling', children: ['Proper Lifting', 'Load Limits', 'Back Injury Prevention'] },
1060
+ {
1061
+ parent: 'Electrical Safety',
1062
+ children: ['Grounding & Wiring', 'High Voltage Procedures', 'Portable Equipment Checks'],
1063
+ },
1064
+ { parent: 'Confined Spaces', children: ['Permit-Required Spaces', 'Ventilation Protocols', 'Rescue Plans'] },
1065
+ { parent: 'Chemical Safety', children: ['Chemical Labeling', 'Exposure Limits', 'Emergency Showers'] },
1066
+ ];
1067
+ childCategories.forEach(({ parent, children }) => {
1068
+ const parentId = categories.find((c) => c.title === parent)?.id;
1069
+ if (parentId) {
1070
+ children.forEach((title) => {
1071
+ categories.push({ id: AXPDataGenerator.uuid(), title, parentId });
1072
+ });
1073
+ }
1074
+ });
1075
+ return categories;
1076
+ }
1077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormTemplateCategoryDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1078
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormTemplateCategoryDataSeeder }); }
1079
+ }
1080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormTemplateCategoryDataSeeder, decorators: [{
1081
+ type: Injectable
1082
+ }] });
1083
+
591
1084
  class AXPMockWidgetDataSourceProvider {
592
1085
  async items() {
593
1086
  return [
@@ -635,33 +1128,6 @@ class AXPMockWidgetDataSourceProvider {
635
1128
  }
636
1129
  }
637
1130
 
638
- class AXPFormTemplateCategoryDataSeeder {
639
- constructor() {
640
- this.storageService = inject(AXPDexieEntityStorageService);
641
- }
642
- async seed() {
643
- await this.storageService.initial(`${RootConfig.module.name}.${RootConfig.entities.category.name}`, [
644
- {
645
- id: AXPDataGenerator.uuid(),
646
- title: 'Risk Assessment'
647
- },
648
- {
649
- id: AXPDataGenerator.uuid(),
650
- title: 'Servicing'
651
- },
652
- {
653
- id: AXPDataGenerator.uuid(),
654
- title: 'Checklists'
655
- }
656
- ]);
657
- }
658
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormTemplateCategoryDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
659
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormTemplateCategoryDataSeeder }); }
660
- }
661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormTemplateCategoryDataSeeder, decorators: [{
662
- type: Injectable
663
- }] });
664
-
665
1131
  class AXCFormTemplateManagementMockModule {
666
1132
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCFormTemplateManagementMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
667
1133
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXCFormTemplateManagementMockModule }); }
@@ -700,11 +1166,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
700
1166
  }] });
701
1167
 
702
1168
  class MOCKStrategy {
703
- constructor() { }
1169
+ constructor() {
1170
+ this.entityRegistery = inject(AXPEntityDefinitionRegistryService);
1171
+ }
704
1172
  get name() {
705
1173
  return 'user-pass';
706
1174
  }
707
1175
  async signin(credentials) {
1176
+ const entityRef = await this.entityRegistery.resolve(RootConfig$2.module.name, RootConfig$2.entities.users.name);
1177
+ const accessToken = 'access_token';
1178
+ const refreshToken = 'refresh_token';
708
1179
  try {
709
1180
  if (credentials.username == 'root' && credentials.password == '123') {
710
1181
  const user = {
@@ -713,8 +1184,6 @@ class MOCKStrategy {
713
1184
  title: 'Root User',
714
1185
  avatar: 'https://avatar.iran.liara.run/public/29',
715
1186
  };
716
- const accessToken = 'access_token';
717
- const refreshToken = 'refresh_token';
718
1187
  return {
719
1188
  succeed: true,
720
1189
  data: { user, accessToken, refreshToken },
@@ -727,8 +1196,6 @@ class MOCKStrategy {
727
1196
  title: 'Admin User',
728
1197
  avatar: 'https://avatar.iran.liara.run/public/47',
729
1198
  };
730
- const accessToken = 'access_token';
731
- const refreshToken = 'refresh_token';
732
1199
  return {
733
1200
  succeed: true,
734
1201
  data: { user, accessToken, refreshToken },
@@ -748,6 +1215,25 @@ class MOCKStrategy {
748
1215
  data: { user, accessToken, refreshToken },
749
1216
  };
750
1217
  }
1218
+ else {
1219
+ const func = entityRef?.queries.list?.execute;
1220
+ const users = await func({
1221
+ skip: 0,
1222
+ take: 1000,
1223
+ });
1224
+ const currentUser = users.items.find((u) => u.username === credentials.username && u.password === credentials.password);
1225
+ if (currentUser) {
1226
+ const user = {
1227
+ id: currentUser.id,
1228
+ name: currentUser.username,
1229
+ title: `${currentUser.firstname} ${currentUser.lastname}`,
1230
+ };
1231
+ return {
1232
+ succeed: true,
1233
+ data: { user, accessToken, refreshToken },
1234
+ };
1235
+ }
1236
+ }
751
1237
  return {
752
1238
  succeed: false,
753
1239
  };
@@ -866,7 +1352,7 @@ class AXCNotificationTemplateDataSeeder {
866
1352
  this.storageService = inject(AXPDexieEntityStorageService);
867
1353
  }
868
1354
  async seed() {
869
- await this.storageService.initial(`${RootConfig$1.module.name}.${RootConfig$1.entities.template.name}`, NOTIFICATION_TEMPLATES);
1355
+ await this.storageService.initial(`${RootConfig$3.module.name}.${RootConfig$3.entities.template.name}`, NOTIFICATION_TEMPLATES);
870
1356
  }
871
1357
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCNotificationTemplateDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
872
1358
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCNotificationTemplateDataSeeder }); }
@@ -894,7 +1380,7 @@ const SOFTWARE_COMPANY_ORGANIZATION = {
894
1380
  parentId: '1',
895
1381
  entity: {
896
1382
  id: 'US',
897
- source: "Country"
1383
+ source: 'Country',
898
1384
  },
899
1385
  isExpanded: true,
900
1386
  children: [
@@ -936,11 +1422,27 @@ const SOFTWARE_COMPANY_ORGANIZATION = {
936
1422
  type: AXMOrganizationNodeType.Position, // Updated type here
937
1423
  parentId: '5',
938
1424
  children: [
939
- { id: '6-1', title: 'Jane Smith', subtitle: 'Backend Developer', description: 'Expert in Node.js and database architecture.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '6' },
940
- { id: '6-2', title: 'Michael Johnson', subtitle: 'Backend Developer', description: 'Specializes in API development and microservices.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '6' }
941
- ]
942
- }
943
- ]
1425
+ {
1426
+ id: '6-1',
1427
+ title: 'Jane Smith',
1428
+ subtitle: 'Backend Developer',
1429
+ description: 'Expert in Node.js and database architecture.',
1430
+ icon: 'fa-user',
1431
+ type: AXMOrganizationNodeType.Employee,
1432
+ parentId: '6',
1433
+ },
1434
+ {
1435
+ id: '6-2',
1436
+ title: 'Michael Johnson',
1437
+ subtitle: 'Backend Developer',
1438
+ description: 'Specializes in API development and microservices.',
1439
+ icon: 'fa-user',
1440
+ type: AXMOrganizationNodeType.Employee,
1441
+ parentId: '6',
1442
+ },
1443
+ ],
1444
+ },
1445
+ ],
944
1446
  },
945
1447
  {
946
1448
  id: '8',
@@ -960,14 +1462,22 @@ const SOFTWARE_COMPANY_ORGANIZATION = {
960
1462
  type: AXMOrganizationNodeType.Position, // Updated type here
961
1463
  parentId: '8',
962
1464
  children: [
963
- { id: '9-1', title: 'Emma Davis', subtitle: 'Frontend Developer', description: 'Expert in React and modern UI frameworks.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '9' }
964
- ]
965
- }
966
- ]
967
- }
968
- ]
969
- }
970
- ]
1465
+ {
1466
+ id: '9-1',
1467
+ title: 'Emma Davis',
1468
+ subtitle: 'Frontend Developer',
1469
+ description: 'Expert in React and modern UI frameworks.',
1470
+ icon: 'fa-user',
1471
+ type: AXMOrganizationNodeType.Employee,
1472
+ parentId: '9',
1473
+ },
1474
+ ],
1475
+ },
1476
+ ],
1477
+ },
1478
+ ],
1479
+ },
1480
+ ],
971
1481
  },
972
1482
  {
973
1483
  id: '10',
@@ -981,88 +1491,413 @@ const SOFTWARE_COMPANY_ORGANIZATION = {
981
1491
  children: [
982
1492
  {
983
1493
  id: '12',
984
- title: 'Sales Division',
985
- subtitle: 'Business Growth and Partnerships',
986
- description: 'Responsible for client acquisitions and revenue growth.',
1494
+ title: 'Sales Division',
1495
+ subtitle: 'Business Growth and Partnerships',
1496
+ description: 'Responsible for client acquisitions and revenue growth.',
1497
+ icon: 'fa-handshake',
1498
+ type: AXMOrganizationNodeType.Division, // Updated type here
1499
+ parentId: '10',
1500
+ children: [
1501
+ {
1502
+ id: '13',
1503
+ title: 'Sales Manager',
1504
+ subtitle: 'Leads the sales team',
1505
+ description: 'Manages key partnerships and sales strategies.',
1506
+ icon: 'fa-chart-line',
1507
+ type: AXMOrganizationNodeType.Position, // Updated type here
1508
+ parentId: '12',
1509
+ children: [
1510
+ {
1511
+ id: '13-1',
1512
+ title: 'Robert Wilson',
1513
+ subtitle: 'Senior Sales Executive',
1514
+ description: 'Focuses on enterprise client relationships.',
1515
+ icon: 'fa-user',
1516
+ type: AXMOrganizationNodeType.Employee,
1517
+ parentId: '13',
1518
+ },
1519
+ {
1520
+ id: '13-2',
1521
+ title: 'Lisa Brown',
1522
+ subtitle: 'Sales Representative',
1523
+ description: 'Handles client negotiations and sales leads.',
1524
+ icon: 'fa-user',
1525
+ type: AXMOrganizationNodeType.Employee,
1526
+ parentId: '13',
1527
+ },
1528
+ ],
1529
+ },
1530
+ ],
1531
+ },
1532
+ ],
1533
+ },
1534
+ ],
1535
+ },
1536
+ {
1537
+ id: '14',
1538
+ title: 'India',
1539
+ subtitle: 'Regional Office',
1540
+ description: 'Call Center & Customer Support Operations.',
1541
+ icon: 'fa-flag',
1542
+ type: AXMOrganizationNodeType.Country, // Updated type here
1543
+ parentId: '1',
1544
+ entity: {
1545
+ id: 'IN',
1546
+ source: 'Country',
1547
+ },
1548
+ isExpanded: true,
1549
+ children: [
1550
+ {
1551
+ id: '15',
1552
+ title: 'Bangalore Office',
1553
+ subtitle: 'Support & Call Center Hub',
1554
+ description: 'Handles customer support and service inquiries.',
1555
+ icon: 'fa-phone',
1556
+ type: AXMOrganizationNodeType.City, // Updated type here
1557
+ parentId: '14',
1558
+ isExpanded: true,
1559
+ children: [
1560
+ {
1561
+ id: '16',
1562
+ title: 'Customer Support Division',
1563
+ subtitle: 'Technical Support',
1564
+ description: 'Responsible for customer service and tech support.',
1565
+ icon: 'fa-headset',
1566
+ type: AXMOrganizationNodeType.Division, // Updated type here
1567
+ parentId: '15',
1568
+ children: [
1569
+ {
1570
+ id: '17',
1571
+ title: 'Call Center Representative',
1572
+ subtitle: 'Support Agent',
1573
+ description: 'Answers customer questions and resolves issues.',
1574
+ icon: 'fa-user-headset',
1575
+ type: AXMOrganizationNodeType.Position, // Updated type here
1576
+ parentId: '16',
1577
+ children: [
1578
+ {
1579
+ id: '17-1',
1580
+ title: 'Rahul Sharma',
1581
+ subtitle: 'Call Center Representative',
1582
+ description: 'Provides top-notch customer support.',
1583
+ icon: 'fa-user',
1584
+ type: AXMOrganizationNodeType.Employee,
1585
+ parentId: '17',
1586
+ },
1587
+ {
1588
+ id: '17-2',
1589
+ title: 'Priya Kapoor',
1590
+ subtitle: 'Call Center Representative',
1591
+ description: 'Handles inquiries and customer escalations.',
1592
+ icon: 'fa-user',
1593
+ type: AXMOrganizationNodeType.Employee,
1594
+ parentId: '17',
1595
+ },
1596
+ {
1597
+ id: '17-3',
1598
+ title: 'Amit Verma',
1599
+ subtitle: 'Call Center Supervisor',
1600
+ description: 'Manages a team of call center representatives.',
1601
+ icon: 'fa-user-tie',
1602
+ type: AXMOrganizationNodeType.Employee,
1603
+ parentId: '17',
1604
+ },
1605
+ {
1606
+ id: '17-4',
1607
+ title: 'Neha Mehta',
1608
+ subtitle: 'Quality Analyst',
1609
+ description: 'Monitors and evaluates customer interactions.',
1610
+ icon: 'fa-user-check',
1611
+ type: AXMOrganizationNodeType.Employee,
1612
+ parentId: '17',
1613
+ },
1614
+ {
1615
+ id: '17-5',
1616
+ title: 'Vikram Singh',
1617
+ subtitle: 'Technical Support Specialist',
1618
+ description: 'Provides assistance with technical issues.',
1619
+ icon: 'fa-user-cog',
1620
+ type: AXMOrganizationNodeType.Employee,
1621
+ parentId: '17',
1622
+ },
1623
+ ],
1624
+ },
1625
+ ],
1626
+ },
1627
+ ],
1628
+ },
1629
+ ],
1630
+ },
1631
+ ],
1632
+ };
1633
+ const PERSIAN_COMPANY_ORGANIZATION = {
1634
+ id: '1',
1635
+ title: 'شرکت فناوری اطلاعات نوآوران',
1636
+ subtitle: 'شرکت توسعه نرم‌افزار',
1637
+ description: 'یک شرکت پیشرو در زمینه ارائه راه‌حل‌های نرم‌افزاری SaaS.',
1638
+ icon: 'fa-building',
1639
+ type: AXMOrganizationNodeType.Company,
1640
+ isExpanded: true,
1641
+ children: [
1642
+ {
1643
+ id: '2',
1644
+ title: 'ایران',
1645
+ subtitle: 'دفتر مرکزی',
1646
+ description: 'دفتر اصلی شرکت در ایران.',
1647
+ icon: 'fa-flag',
1648
+ type: AXMOrganizationNodeType.Country,
1649
+ parentId: '1',
1650
+ entity: {
1651
+ id: 'IR',
1652
+ source: 'Country',
1653
+ },
1654
+ isExpanded: true,
1655
+ children: [
1656
+ {
1657
+ id: '3',
1658
+ title: 'دفتر تهران',
1659
+ subtitle: 'مرکز توسعه و مدیریت',
1660
+ description: 'دفتر اصلی توسعه و مدیریت شرکت.',
1661
+ icon: 'fa-city',
1662
+ type: AXMOrganizationNodeType.City,
1663
+ parentId: '2',
1664
+ isExpanded: true,
1665
+ children: [
1666
+ {
1667
+ id: '4',
1668
+ title: 'تیم مهندسی',
1669
+ subtitle: 'توسعه نرم‌افزار',
1670
+ description: 'مسئول توسعه محصولات نرم‌افزاری.',
1671
+ icon: 'fa-code',
1672
+ type: AXMOrganizationNodeType.Division,
1673
+ parentId: '3',
1674
+ isExpanded: true,
1675
+ children: [
1676
+ {
1677
+ id: '5',
1678
+ title: 'تیم بک‌اند',
1679
+ subtitle: 'مدیریت سیستم‌های بک‌اند',
1680
+ description: 'توسعه API و معماری پایگاه داده.',
1681
+ icon: 'fa-database',
1682
+ type: AXMOrganizationNodeType.Department,
1683
+ parentId: '4',
1684
+ children: [
1685
+ {
1686
+ id: '6',
1687
+ title: 'توسعه‌دهنده بک‌اند',
1688
+ subtitle: 'مهندس نرم‌افزار',
1689
+ description: 'ساخت و نگهداری سرویس‌های بک‌اند.',
1690
+ icon: 'fa-server',
1691
+ type: AXMOrganizationNodeType.Position,
1692
+ parentId: '5',
1693
+ children: [
1694
+ {
1695
+ id: '6-1',
1696
+ title: 'علی رضایی',
1697
+ subtitle: 'توسعه‌دهنده بک‌اند',
1698
+ description: 'متخصص در Node.js و معماری پایگاه داده.',
1699
+ icon: 'fa-user',
1700
+ type: AXMOrganizationNodeType.Employee,
1701
+ parentId: '6',
1702
+ },
1703
+ {
1704
+ id: '6-2',
1705
+ title: 'سارا محمدی',
1706
+ subtitle: 'توسعه‌دهنده بک‌اند',
1707
+ description: 'متخصص در توسعه API و میکروسرویس‌ها.',
1708
+ icon: 'fa-user',
1709
+ type: AXMOrganizationNodeType.Employee,
1710
+ parentId: '6',
1711
+ },
1712
+ ],
1713
+ },
1714
+ ],
1715
+ },
1716
+ {
1717
+ id: '8',
1718
+ title: 'تیم فرانت‌اند',
1719
+ subtitle: 'توسعه رابط کاربری',
1720
+ description: 'توسعه UI/UX برای وب و اپلیکیشن‌های موبایل.',
1721
+ icon: 'fa-paint-brush',
1722
+ type: AXMOrganizationNodeType.Department,
1723
+ parentId: '4',
1724
+ children: [
1725
+ {
1726
+ id: '9',
1727
+ title: 'توسعه‌دهنده فرانت‌اند',
1728
+ subtitle: 'مهندس نرم‌افزار',
1729
+ description: 'کار بر روی رابط کاربری و منطق فرانت‌اند.',
1730
+ icon: 'fa-laptop-code',
1731
+ type: AXMOrganizationNodeType.Position,
1732
+ parentId: '8',
1733
+ children: [
1734
+ {
1735
+ id: '9-1',
1736
+ title: 'نازنین کریمی',
1737
+ subtitle: 'توسعه‌دهنده فرانت‌اند',
1738
+ description: 'متخصص در React و فریم‌ورک‌های مدرن UI.',
1739
+ icon: 'fa-user',
1740
+ type: AXMOrganizationNodeType.Employee,
1741
+ parentId: '9',
1742
+ },
1743
+ ],
1744
+ },
1745
+ ],
1746
+ },
1747
+ ],
1748
+ },
1749
+ ],
1750
+ },
1751
+ {
1752
+ id: '10',
1753
+ title: 'دفتر اصفهان',
1754
+ subtitle: 'تیم فروش و پشتیبانی',
1755
+ description: 'مسئول توسعه کسب‌وکار و فروش.',
1756
+ icon: 'fa-city',
1757
+ type: AXMOrganizationNodeType.City,
1758
+ parentId: '2',
1759
+ isExpanded: true,
1760
+ children: [
1761
+ {
1762
+ id: '12',
1763
+ title: 'تیم فروش',
1764
+ subtitle: 'توسعه کسب‌وکار و شراکت‌ها',
1765
+ description: 'مسئول جذب مشتری و رشد درآمد.',
987
1766
  icon: 'fa-handshake',
988
- type: AXMOrganizationNodeType.Division, // Updated type here
1767
+ type: AXMOrganizationNodeType.Division,
989
1768
  parentId: '10',
990
1769
  children: [
991
1770
  {
992
1771
  id: '13',
993
- title: 'Sales Manager',
994
- subtitle: 'Leads the sales team',
995
- description: 'Manages key partnerships and sales strategies.',
1772
+ title: 'مدیر فروش',
1773
+ subtitle: 'رهبری تیم فروش',
1774
+ description: 'مدیریت شراکت‌های کلیدی و استراتژی‌های فروش.',
996
1775
  icon: 'fa-chart-line',
997
- type: AXMOrganizationNodeType.Position, // Updated type here
1776
+ type: AXMOrganizationNodeType.Position,
998
1777
  parentId: '12',
999
1778
  children: [
1000
- { id: '13-1', title: 'Robert Wilson', subtitle: 'Senior Sales Executive', description: 'Focuses on enterprise client relationships.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '13' },
1001
- { id: '13-2', title: 'Lisa Brown', subtitle: 'Sales Representative', description: 'Handles client negotiations and sales leads.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '13' }
1002
- ]
1003
- }
1004
- ]
1005
- }
1006
- ]
1007
- }
1008
- ]
1779
+ {
1780
+ id: '13-1',
1781
+ title: 'محمد حسینی',
1782
+ subtitle: 'مدیر ارشد فروش',
1783
+ description: 'متمرکز بر روابط با مشتریان سازمانی.',
1784
+ icon: 'fa-user',
1785
+ type: AXMOrganizationNodeType.Employee,
1786
+ parentId: '13',
1787
+ },
1788
+ {
1789
+ id: '13-2',
1790
+ title: 'زهرا علی‌زاده',
1791
+ subtitle: 'نماینده فروش',
1792
+ description: 'مدیریت مذاکرات و سرنخ‌های فروش.',
1793
+ icon: 'fa-user',
1794
+ type: AXMOrganizationNodeType.Employee,
1795
+ parentId: '13',
1796
+ },
1797
+ ],
1798
+ },
1799
+ ],
1800
+ },
1801
+ ],
1802
+ },
1803
+ ],
1009
1804
  },
1010
1805
  {
1011
1806
  id: '14',
1012
- title: 'India',
1013
- subtitle: 'Regional Office',
1014
- description: 'Call Center & Customer Support Operations.',
1807
+ title: 'ترکیه',
1808
+ subtitle: 'دفتر منطقه‌ای',
1809
+ description: 'مرکز تماس و پشتیبانی مشتریان.',
1015
1810
  icon: 'fa-flag',
1016
- type: AXMOrganizationNodeType.Country, // Updated type here
1811
+ type: AXMOrganizationNodeType.Country,
1017
1812
  parentId: '1',
1018
1813
  entity: {
1019
- id: 'IN',
1020
- source: "Country"
1814
+ id: 'TR',
1815
+ source: 'Country',
1021
1816
  },
1022
1817
  isExpanded: true,
1023
1818
  children: [
1024
1819
  {
1025
1820
  id: '15',
1026
- title: 'Bangalore Office',
1027
- subtitle: 'Support & Call Center Hub',
1028
- description: 'Handles customer support and service inquiries.',
1821
+ title: 'دفتر استانبول',
1822
+ subtitle: 'مرکز پشتیبانی و تماس',
1823
+ description: 'مسئول پشتیبانی و پاسخ به درخواست‌های مشتریان.',
1029
1824
  icon: 'fa-phone',
1030
- type: AXMOrganizationNodeType.City, // Updated type here
1825
+ type: AXMOrganizationNodeType.City,
1031
1826
  parentId: '14',
1032
1827
  isExpanded: true,
1033
1828
  children: [
1034
1829
  {
1035
1830
  id: '16',
1036
- title: 'Customer Support Division',
1037
- subtitle: 'Technical Support',
1038
- description: 'Responsible for customer service and tech support.',
1831
+ title: 'تیم پشتیبانی مشتریان',
1832
+ subtitle: 'پشتیبانی فنی',
1833
+ description: 'مسئول خدمات مشتری و پشتیبانی فنی.',
1039
1834
  icon: 'fa-headset',
1040
- type: AXMOrganizationNodeType.Division, // Updated type here
1835
+ type: AXMOrganizationNodeType.Division,
1041
1836
  parentId: '15',
1042
1837
  children: [
1043
1838
  {
1044
1839
  id: '17',
1045
- title: 'Call Center Representative',
1046
- subtitle: 'Support Agent',
1047
- description: 'Answers customer questions and resolves issues.',
1840
+ title: 'نماینده مرکز تماس',
1841
+ subtitle: 'کارشناس پشتیبانی',
1842
+ description: 'پاسخ به سوالات و حل مشکلات مشتریان.',
1048
1843
  icon: 'fa-user-headset',
1049
- type: AXMOrganizationNodeType.Position, // Updated type here
1844
+ type: AXMOrganizationNodeType.Position,
1050
1845
  parentId: '16',
1051
1846
  children: [
1052
- { id: '17-1', title: 'Rahul Sharma', subtitle: 'Call Center Representative', description: 'Provides top-notch customer support.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '17' },
1053
- { id: '17-2', title: 'Priya Kapoor', subtitle: 'Call Center Representative', description: 'Handles inquiries and customer escalations.', icon: 'fa-user', type: AXMOrganizationNodeType.Employee, parentId: '17' },
1054
- { id: '17-3', title: 'Amit Verma', subtitle: 'Call Center Supervisor', description: 'Manages a team of call center representatives.', icon: 'fa-user-tie', type: AXMOrganizationNodeType.Employee, parentId: '17' },
1055
- { id: '17-4', title: 'Neha Mehta', subtitle: 'Quality Analyst', description: 'Monitors and evaluates customer interactions.', icon: 'fa-user-check', type: AXMOrganizationNodeType.Employee, parentId: '17' },
1056
- { id: '17-5', title: 'Vikram Singh', subtitle: 'Technical Support Specialist', description: 'Provides assistance with technical issues.', icon: 'fa-user-cog', type: AXMOrganizationNodeType.Employee, parentId: '17' }
1057
- ]
1058
- }
1059
- ]
1060
- }
1061
- ]
1062
- }
1063
- ]
1064
- }
1065
- ]
1847
+ {
1848
+ id: '17-1',
1849
+ title: 'مریم یلماز',
1850
+ subtitle: 'نماینده مرکز تماس',
1851
+ description: 'ارائه پشتیبانی عالی به مشتریان.',
1852
+ icon: 'fa-user',
1853
+ type: AXMOrganizationNodeType.Employee,
1854
+ parentId: '17',
1855
+ },
1856
+ {
1857
+ id: '17-2',
1858
+ title: 'احمد دمیر',
1859
+ subtitle: 'نماینده مرکز تماس',
1860
+ description: 'مدیریت درخواست‌ها و پیگیری‌های مشتریان.',
1861
+ icon: 'fa-user',
1862
+ type: AXMOrganizationNodeType.Employee,
1863
+ parentId: '17',
1864
+ },
1865
+ {
1866
+ id: '17-3',
1867
+ title: 'فاطمه آکین',
1868
+ subtitle: 'سرپرست مرکز تماس',
1869
+ description: 'مدیریت تیم نمایندگان مرکز تماس.',
1870
+ icon: 'fa-user-tie',
1871
+ type: AXMOrganizationNodeType.Employee,
1872
+ parentId: '17',
1873
+ },
1874
+ {
1875
+ id: '17-4',
1876
+ title: 'علی کایا',
1877
+ subtitle: 'تحلیلگر کیفیت',
1878
+ description: 'نظارت و ارزیابی تعاملات مشتریان.',
1879
+ icon: 'fa-user-check',
1880
+ type: AXMOrganizationNodeType.Employee,
1881
+ parentId: '17',
1882
+ },
1883
+ {
1884
+ id: '17-5',
1885
+ title: 'زینب ارسلان',
1886
+ subtitle: 'کارشناس پشتیبانی فنی',
1887
+ description: 'ارائه کمک‌های فنی به مشتریان.',
1888
+ icon: 'fa-user-cog',
1889
+ type: AXMOrganizationNodeType.Employee,
1890
+ parentId: '17',
1891
+ },
1892
+ ],
1893
+ },
1894
+ ],
1895
+ },
1896
+ ],
1897
+ },
1898
+ ],
1899
+ },
1900
+ ],
1066
1901
  };
1067
1902
 
1068
1903
  class AXCOrganizationManagementDataSeeder {
@@ -1072,7 +1907,7 @@ class AXCOrganizationManagementDataSeeder {
1072
1907
  async seed() {
1073
1908
  const uuid = AXPDataGenerator.uuid;
1074
1909
  // Departments
1075
- await this.storageService.initial(RootConfig$2.entities.department.source, [
1910
+ await this.storageService.initial(RootConfig$4.entities.department.source, [
1076
1911
  {
1077
1912
  id: uuid(),
1078
1913
  title: 'Engineering Division',
@@ -1090,7 +1925,7 @@ class AXCOrganizationManagementDataSeeder {
1090
1925
  },
1091
1926
  ]);
1092
1927
  // Divisions
1093
- await this.storageService.initial(RootConfig$2.entities.division.source, [
1928
+ await this.storageService.initial(RootConfig$4.entities.division.source, [
1094
1929
  {
1095
1930
  id: uuid(),
1096
1931
  title: 'Software Development',
@@ -1108,7 +1943,7 @@ class AXCOrganizationManagementDataSeeder {
1108
1943
  },
1109
1944
  ]);
1110
1945
  // Branches
1111
- await this.storageService.initial(RootConfig$2.entities.branch.source, [
1946
+ await this.storageService.initial(RootConfig$4.entities.branch.source, [
1112
1947
  {
1113
1948
  id: uuid(),
1114
1949
  title: 'San Francisco Office',
@@ -1126,7 +1961,7 @@ class AXCOrganizationManagementDataSeeder {
1126
1961
  },
1127
1962
  ]);
1128
1963
  // Positions
1129
- await this.storageService.initial(RootConfig$2.entities.position.source, [
1964
+ await this.storageService.initial(RootConfig$4.entities.position.source, [
1130
1965
  {
1131
1966
  id: uuid(),
1132
1967
  title: 'Backend Developer',
@@ -1159,7 +1994,7 @@ class AXCOrganizationManagementDataSeeder {
1159
1994
  },
1160
1995
  ]);
1161
1996
  // Employment Types
1162
- await this.storageService.initial(RootConfig$2.entities.employmentType.source, [
1997
+ await this.storageService.initial(RootConfig$4.entities.employmentType.source, [
1163
1998
  {
1164
1999
  id: uuid(),
1165
2000
  title: 'Full-Time',
@@ -1187,11 +2022,23 @@ class AXCOrganizationManagementDataSeeder {
1187
2022
  },
1188
2023
  ]);
1189
2024
  // Employees
1190
- await this.storageService.initial(RootConfig$2.entities.employee.source, [
2025
+ await this.storageService.initial(RootConfig$4.entities.employee.source, [
1191
2026
  { id: uuid(), firstname: 'Jane', lastname: 'Smith', birthDate: new Date('1985-02-15'), employeeID: 'EMP002' },
1192
- { id: uuid(), firstname: 'Michael', lastname: 'Johnson', birthDate: new Date('1978-03-22'), employeeID: 'EMP003' },
2027
+ {
2028
+ id: uuid(),
2029
+ firstname: 'Michael',
2030
+ lastname: 'Johnson',
2031
+ birthDate: new Date('1978-03-22'),
2032
+ employeeID: 'EMP003',
2033
+ },
1193
2034
  { id: uuid(), firstname: 'Emma', lastname: 'Davis', birthDate: new Date('1992-04-10'), employeeID: 'EMP004' },
1194
- { id: uuid(), firstname: 'Robert', lastname: 'Wilson', birthDate: new Date('1980-09-18'), employeeID: 'EMP009' },
2035
+ {
2036
+ id: uuid(),
2037
+ firstname: 'Robert',
2038
+ lastname: 'Wilson',
2039
+ birthDate: new Date('1980-09-18'),
2040
+ employeeID: 'EMP009',
2041
+ },
1195
2042
  { id: uuid(), firstname: 'Lisa', lastname: 'Brown', birthDate: new Date('1987-10-29'), employeeID: 'EMP010' },
1196
2043
  { id: uuid(), firstname: 'Rahul', lastname: 'Sharma', birthDate: new Date('1982-07-14'), employeeID: 'EMP007' },
1197
2044
  { id: uuid(), firstname: 'Priya', lastname: 'Kapoor', birthDate: new Date('1982-07-14'), employeeID: 'EMP007' },
@@ -1199,7 +2046,7 @@ class AXCOrganizationManagementDataSeeder {
1199
2046
  { id: uuid(), firstname: 'Vikram', lastname: 'Singh', birthDate: new Date('1982-07-14'), employeeID: 'EMP007' },
1200
2047
  ]);
1201
2048
  // Store Chart Data
1202
- await this.storageService.initial(RootConfig$2.entities.chart.source, [
2049
+ await this.storageService.initial(RootConfig$4.entities.chart.source, [
1203
2050
  {
1204
2051
  id: uuid(),
1205
2052
  version: '1.0',
@@ -1325,7 +2172,7 @@ class AXCAppTermDataSeeder {
1325
2172
  this.storageService = inject(AXPDexieEntityStorageService);
1326
2173
  }
1327
2174
  async seed() {
1328
- await this.storageService.initial(`${RootConfig$3.module.name}.${RootConfig$3.entities.appTerm.name}`, APP_TERMS);
2175
+ await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.appTerm.name}`, APP_TERMS);
1329
2176
  }
1330
2177
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAppTermDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1331
2178
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAppTermDataSeeder }); }
@@ -1336,7 +2183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1336
2183
 
1337
2184
  const changeLog = [];
1338
2185
  for (let i = 0; i < 10; i++) {
1339
- changeLog.push(`This is a detailed description of the changes made in version 1.5.3${i}.
2186
+ changeLog.push(`This is a detailed description of the changes made in version 1.6.0${i}.
1340
2187
  It includes various updates, bug fixes, and improvements.
1341
2188
  The changes are extensive and cover multiple aspects of the application,
1342
2189
  ensuring better performance, enhanced security, and a more user-friendly interface.
@@ -1348,7 +2195,7 @@ const APP_VERSIONS = Array.from({ length: 10 }).map((element, i) => {
1348
2195
  publishDate.setDate(publishDate.getDate() - i * 7); // Subtract i weeks from the current date
1349
2196
  return {
1350
2197
  id: AXPDataGenerator.uuid(),
1351
- versionNumber: `1.5.3${i}`,
2198
+ versionNumber: `1.6.0${i}`,
1352
2199
  changeLog: changeLog[i],
1353
2200
  publishDate: publishDate.toString(),
1354
2201
  showFirstTimePopup: true,
@@ -1360,7 +2207,7 @@ class AXCAppVersionDataSeeder {
1360
2207
  this.storageService = inject(AXPDexieEntityStorageService);
1361
2208
  }
1362
2209
  async seed() {
1363
- await this.storageService.initial(`${RootConfig$3.module.name}.${RootConfig$3.entities.appVersion.name}`, APP_VERSIONS);
2210
+ await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.appVersion.name}`, APP_VERSIONS);
1364
2211
  }
1365
2212
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAppVersionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1366
2213
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAppVersionDataSeeder }); }
@@ -1391,7 +2238,7 @@ class AXCGlobalVariablesDataSeeder {
1391
2238
  this.storageService = inject(AXPDexieEntityStorageService);
1392
2239
  }
1393
2240
  async seed() {
1394
- await this.storageService.initial(`${RootConfig$3.module.name}.${RootConfig$3.entities.globalVariable.name}`, GLOBAL_VARIABLES);
2241
+ await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.globalVariable.name}`, GLOBAL_VARIABLES);
1395
2242
  }
1396
2243
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCGlobalVariablesDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1397
2244
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCGlobalVariablesDataSeeder }); }
@@ -1420,11 +2267,11 @@ class AXCRegionalServiceImpl extends AXPRegionalService {
1420
2267
  }
1421
2268
  });
1422
2269
  }
1423
- async getProvinces(countryCode) {
2270
+ async getProvinces(countryId) {
1424
2271
  const lang = await firstValueFrom(this.languageService.langChanges$);
1425
2272
  const country = await this.getCountries();
1426
2273
  const data = country
1427
- .filter((c) => !countryCode || c.code === countryCode)
2274
+ .filter((c) => !countryId || c.code === countryId)
1428
2275
  .flatMap((c) => c.provinces?.map((province) => {
1429
2276
  if (lang == c.regional) {
1430
2277
  return {
@@ -1620,6 +2467,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1620
2467
  type: Injectable
1621
2468
  }], ctorParameters: () => [] });
1622
2469
 
2470
+ const checkbox = '{"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"}';
2471
+ 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"}';
2472
+ const METADATA_MOCK = [
2473
+ {
2474
+ id: AXPDataGenerator$1.uuid(),
2475
+ name: 'checkbox',
2476
+ title: 'Checkbox',
2477
+ defaultValue: false,
2478
+ interface: checkbox,
2479
+ },
2480
+ {
2481
+ id: AXPDataGenerator$1.uuid(),
2482
+ name: 'color',
2483
+ title: 'Color',
2484
+ defaultValue: '#000000',
2485
+ interface: color,
2486
+ },
2487
+ ];
2488
+
2489
+ class AXCMetaDataDefinitionDataSeeder {
2490
+ constructor() {
2491
+ this.storageService = inject(AXPDexieEntityStorageService);
2492
+ }
2493
+ async seed() {
2494
+ await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.metaDataDefinition.name}`, METADATA_MOCK);
2495
+ }
2496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCMetaDataDefinitionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2497
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCMetaDataDefinitionDataSeeder }); }
2498
+ }
2499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCMetaDataDefinitionDataSeeder, decorators: [{
2500
+ type: Injectable
2501
+ }] });
2502
+
1623
2503
  const SCHEDULER_JOB = [
1624
2504
  {
1625
2505
  id: AXPDataGenerator.uuid(),
@@ -1642,7 +2522,7 @@ class AXCSchedulerJobDataSeeder {
1642
2522
  this.storageService = inject(AXPDexieEntityStorageService);
1643
2523
  }
1644
2524
  async seed() {
1645
- await this.storageService.initial(`${RootConfig$4.module.name}.${RootConfig$4.entities.schedulerJob.name}`, SCHEDULER_JOB);
2525
+ await this.storageService.initial(`${RootConfig$6.module.name}.${RootConfig$6.entities.schedulerJob.name}`, SCHEDULER_JOB);
1646
2526
  }
1647
2527
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCSchedulerJobDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1648
2528
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCSchedulerJobDataSeeder }); }
@@ -1651,6 +2531,359 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1651
2531
  type: Injectable
1652
2532
  }] });
1653
2533
 
2534
+ class AXPSecurityManagementMockWidgetDataSourceProvider {
2535
+ async items() {
2536
+ return [
2537
+ {
2538
+ name: 'mock.securityUsers',
2539
+ title: 'Security Users',
2540
+ valueField: 'id',
2541
+ textField: 'displayName',
2542
+ columns: [
2543
+ {
2544
+ name: 'id',
2545
+ title: 'Id',
2546
+ },
2547
+ {
2548
+ name: 'username',
2549
+ title: 'Username',
2550
+ },
2551
+ {
2552
+ name: 'displayName',
2553
+ title: 'Display Name',
2554
+ },
2555
+ ],
2556
+ samples: [
2557
+ {
2558
+ id: '1',
2559
+ username: 'johndoe',
2560
+ displayName: 'John Doe',
2561
+ },
2562
+ {
2563
+ id: '2',
2564
+ username: 'janesmith',
2565
+ displayName: 'Jane Smith',
2566
+ },
2567
+ ],
2568
+ source: () => convertArrayToDataSource([
2569
+ {
2570
+ id: '1',
2571
+ username: 'johndoe',
2572
+ displayName: 'John Doe',
2573
+ },
2574
+ {
2575
+ id: '2',
2576
+ username: 'janesmith',
2577
+ displayName: 'Jane Smith',
2578
+ },
2579
+ {
2580
+ id: '3',
2581
+ username: 'mikeross',
2582
+ displayName: 'Mike Ross',
2583
+ },
2584
+ ]),
2585
+ },
2586
+ {
2587
+ name: 'mock.securityRoles',
2588
+ title: 'Security Roles',
2589
+ valueField: 'id',
2590
+ textField: 'title',
2591
+ columns: [
2592
+ {
2593
+ name: 'id',
2594
+ title: 'Id',
2595
+ },
2596
+ {
2597
+ name: 'title',
2598
+ title: 'Title',
2599
+ },
2600
+ ],
2601
+ samples: [
2602
+ {
2603
+ id: 'admin',
2604
+ title: 'Administrator',
2605
+ },
2606
+ {
2607
+ id: 'user',
2608
+ title: 'Regular User',
2609
+ },
2610
+ ],
2611
+ source: () => convertArrayToDataSource([
2612
+ {
2613
+ id: 'admin',
2614
+ title: 'Administrator',
2615
+ },
2616
+ {
2617
+ id: 'manager',
2618
+ title: 'Manager',
2619
+ },
2620
+ {
2621
+ id: 'user',
2622
+ title: 'Regular User',
2623
+ },
2624
+ ]),
2625
+ },
2626
+ ];
2627
+ }
2628
+ }
2629
+
2630
+ // Now we only define role structure without permissions
2631
+ const mockRoleDefinitions = [
2632
+ {
2633
+ id: '1001',
2634
+ name: 'admin',
2635
+ title: 'Administrator',
2636
+ description: 'Full system access with all administrative privileges',
2637
+ permissions: [], // Will be filled dynamically
2638
+ },
2639
+ {
2640
+ id: '1002',
2641
+ name: 'manager',
2642
+ title: 'Manager',
2643
+ description: 'Manages users and has access to most system features',
2644
+ permissions: [],
2645
+ },
2646
+ {
2647
+ id: '1003',
2648
+ name: 'user',
2649
+ title: 'Regular User',
2650
+ description: 'Standard user with basic system access',
2651
+ permissions: [],
2652
+ },
2653
+ {
2654
+ id: '1004',
2655
+ name: 'readonly',
2656
+ title: 'Read Only',
2657
+ description: 'View-only access to specific system areas',
2658
+ permissions: [],
2659
+ },
2660
+ {
2661
+ id: '1005',
2662
+ name: 'support',
2663
+ title: 'Support Staff',
2664
+ description: 'Customer support and ticket management access',
2665
+ permissions: [],
2666
+ },
2667
+ {
2668
+ id: '1006',
2669
+ name: 'hr',
2670
+ title: 'Human Resources',
2671
+ description: 'Access to HR-related features and user management',
2672
+ permissions: [],
2673
+ },
2674
+ {
2675
+ id: '1007',
2676
+ name: 'finance',
2677
+ title: 'Finance',
2678
+ description: 'Access to financial reports and invoicing features',
2679
+ permissions: [],
2680
+ },
2681
+ {
2682
+ id: '1008',
2683
+ name: 'dev',
2684
+ title: 'Developer',
2685
+ description: 'Technical access to development and debugging features',
2686
+ permissions: [],
2687
+ },
2688
+ ];
2689
+ const mockUsers = [
2690
+ {
2691
+ username: 'johndoe',
2692
+ firstname: 'John',
2693
+ lastname: 'Doe',
2694
+ nationalCode: '1234567890',
2695
+ mobile: '555-123-4567',
2696
+ roleIds: [
2697
+ { id: '1001', title: 'Administrator' },
2698
+ { id: '1002', title: 'Manager' },
2699
+ ],
2700
+ },
2701
+ {
2702
+ username: 'janesmith',
2703
+ firstname: 'Jane',
2704
+ lastname: 'Smith',
2705
+ nationalCode: '0987654321',
2706
+ mobile: '555-987-6543',
2707
+ roleIds: [
2708
+ { id: '1002', title: 'Manager' },
2709
+ { id: '1006', title: 'Human Resources' },
2710
+ ],
2711
+ },
2712
+ {
2713
+ username: 'mikeross',
2714
+ firstname: 'Mike',
2715
+ lastname: 'Ross',
2716
+ nationalCode: '2468135790',
2717
+ mobile: '555-246-8135',
2718
+ roleIds: [
2719
+ { id: '1008', title: 'Developer' },
2720
+ { id: '1005', title: 'Support Staff' },
2721
+ ],
2722
+ },
2723
+ {
2724
+ username: 'emilyparker',
2725
+ firstname: 'Emily',
2726
+ lastname: 'Parker',
2727
+ nationalCode: '1357924680',
2728
+ mobile: '555-135-7924',
2729
+ roleIds: [{ id: '1003', title: 'Regular User' }],
2730
+ },
2731
+ {
2732
+ username: 'robertjohnson',
2733
+ firstname: 'Robert',
2734
+ lastname: 'Johnson',
2735
+ nationalCode: '9876543210',
2736
+ mobile: '555-987-6542',
2737
+ roleIds: [{ id: '1007', title: 'Finance' }],
2738
+ },
2739
+ {
2740
+ username: 'sarahwilliams',
2741
+ firstname: 'Sarah',
2742
+ lastname: 'Williams',
2743
+ nationalCode: '5678901234',
2744
+ mobile: '555-567-8901',
2745
+ roleIds: [{ id: '1004', title: 'Read Only' }],
2746
+ },
2747
+ {
2748
+ username: 'davidbrown',
2749
+ firstname: 'David',
2750
+ lastname: 'Brown',
2751
+ nationalCode: '3456789012',
2752
+ mobile: '555-345-6789',
2753
+ roleIds: [
2754
+ { id: '1003', title: 'Regular User' },
2755
+ { id: '1005', title: 'Support Staff' },
2756
+ ],
2757
+ },
2758
+ {
2759
+ username: 'lisadavis',
2760
+ firstname: 'Lisa',
2761
+ lastname: 'Davis',
2762
+ nationalCode: '7890123456',
2763
+ mobile: '555-789-0123',
2764
+ roleIds: [{ id: '1006', title: 'Human Resources' }],
2765
+ },
2766
+ {
2767
+ username: 'michaelwilson',
2768
+ firstname: 'Michael',
2769
+ lastname: 'Wilson',
2770
+ nationalCode: '6789012345',
2771
+ mobile: '555-678-9012',
2772
+ roleIds: [
2773
+ { id: '1002', title: 'Manager' },
2774
+ { id: '1007', title: 'Finance' },
2775
+ ],
2776
+ },
2777
+ {
2778
+ username: 'amandamiller',
2779
+ firstname: 'Amanda',
2780
+ lastname: 'Miller',
2781
+ nationalCode: '4567890123',
2782
+ mobile: '555-456-7890',
2783
+ roleIds: [{ id: '1008', title: 'Developer' }],
2784
+ },
2785
+ ];
2786
+
2787
+ class AXPSecurityManagementRoleDataSeeder {
2788
+ constructor() {
2789
+ this.storageService = inject(AXPDexieEntityStorageService);
2790
+ this.permissionService = inject(AXPPermissionProviderService);
2791
+ }
2792
+ async seed() {
2793
+ const permissions = await this.permissionService.permissions();
2794
+ const permissionKeys = permissions.map((p) => p.name);
2795
+ // Generate roles with random permissions from the actual permission list
2796
+ const roles = mockRoleDefinitions.map((role) => ({
2797
+ ...role,
2798
+ permissions: this.getRandomPermissions(permissionKeys, 2, 5), // Get 2-5 random permissions
2799
+ }));
2800
+ await this.storageService.initial(`${RootConfig$2.module.name}.${RootConfig$2.entities.roles.name}`, roles);
2801
+ }
2802
+ getRandomPermissions(permissions, min, max) {
2803
+ const count = Math.floor(Math.random() * (max - min + 1)) + min;
2804
+ const shuffled = [...permissions].sort(() => 0.5 - Math.random());
2805
+ return shuffled.slice(0, count);
2806
+ }
2807
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSecurityManagementRoleDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2808
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSecurityManagementRoleDataSeeder }); }
2809
+ }
2810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSecurityManagementRoleDataSeeder, decorators: [{
2811
+ type: Injectable
2812
+ }] });
2813
+
2814
+ class AXPSecurityManagementUserDataSeeder {
2815
+ constructor() {
2816
+ this.storageService = inject(AXPDexieEntityStorageService);
2817
+ }
2818
+ async seed() {
2819
+ await this.storageService.initial(`${RootConfig$2.module.name}.${RootConfig$2.entities.users.name}`, this.generateUsers());
2820
+ }
2821
+ generateUsers() {
2822
+ return mockUsers.map((user) => ({
2823
+ id: AXPDataGenerator.uuid(),
2824
+ username: user.username,
2825
+ firstname: user.firstname,
2826
+ lastname: user.lastname,
2827
+ nationalCode: user.nationalCode,
2828
+ mobile: user.mobile,
2829
+ password: '123',
2830
+ roles: user.roleIds,
2831
+ }));
2832
+ }
2833
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSecurityManagementUserDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2834
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSecurityManagementUserDataSeeder }); }
2835
+ }
2836
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSecurityManagementUserDataSeeder, decorators: [{
2837
+ type: Injectable
2838
+ }] });
2839
+
2840
+ class AXCSecurityManagementMockModule {
2841
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCSecurityManagementMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2842
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXCSecurityManagementMockModule }); }
2843
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCSecurityManagementMockModule, providers: [
2844
+ {
2845
+ provide: AXP_WIDGET_DATASOURCE_PROVIDER,
2846
+ useClass: AXPSecurityManagementMockWidgetDataSourceProvider,
2847
+ multi: true,
2848
+ },
2849
+ {
2850
+ provide: AXP_DATA_SEEDER_TOKEN,
2851
+ useClass: AXPSecurityManagementUserDataSeeder,
2852
+ multi: true,
2853
+ },
2854
+ {
2855
+ provide: AXP_DATA_SEEDER_TOKEN,
2856
+ useClass: AXPSecurityManagementRoleDataSeeder,
2857
+ multi: true,
2858
+ },
2859
+ ] }); }
2860
+ }
2861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCSecurityManagementMockModule, decorators: [{
2862
+ type: NgModule,
2863
+ args: [{
2864
+ imports: [],
2865
+ exports: [],
2866
+ declarations: [],
2867
+ providers: [
2868
+ {
2869
+ provide: AXP_WIDGET_DATASOURCE_PROVIDER,
2870
+ useClass: AXPSecurityManagementMockWidgetDataSourceProvider,
2871
+ multi: true,
2872
+ },
2873
+ {
2874
+ provide: AXP_DATA_SEEDER_TOKEN,
2875
+ useClass: AXPSecurityManagementUserDataSeeder,
2876
+ multi: true,
2877
+ },
2878
+ {
2879
+ provide: AXP_DATA_SEEDER_TOKEN,
2880
+ useClass: AXPSecurityManagementRoleDataSeeder,
2881
+ multi: true,
2882
+ },
2883
+ ],
2884
+ }]
2885
+ }] });
2886
+
1654
2887
  const TEXT_TEMPLATE_CATEGORY = [
1655
2888
  {
1656
2889
  id: AXPDataGenerator.uuid(),
@@ -1773,7 +3006,7 @@ class AXCTextTemplateCategoryDataSeeder {
1773
3006
  this.storageService = inject(AXPDexieEntityStorageService);
1774
3007
  }
1775
3008
  async seed() {
1776
- await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.category.name}`, TEXT_TEMPLATE_CATEGORY);
3009
+ await this.storageService.initial(`${RootConfig$7.module.name}.${RootConfig$7.entities.category.name}`, TEXT_TEMPLATE_CATEGORY);
1777
3010
  }
1778
3011
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCTextTemplateCategoryDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1779
3012
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCTextTemplateCategoryDataSeeder }); }
@@ -1787,7 +3020,7 @@ class AXCTextTemplateDataSeeder {
1787
3020
  this.storageService = inject(AXPDexieEntityStorageService);
1788
3021
  }
1789
3022
  async seed() {
1790
- await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.template.name}`, TEXT_TEMPLATES);
3023
+ await this.storageService.initial(`${RootConfig$7.module.name}.${RootConfig$7.entities.template.name}`, TEXT_TEMPLATES);
1791
3024
  }
1792
3025
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCTextTemplateDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1793
3026
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCTextTemplateDataSeeder }); }
@@ -1800,7 +3033,8 @@ class AXCMockModule {
1800
3033
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1801
3034
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXCMockModule, imports: [i1$1.AXPAuthModule, AXCFormTemplateManagementMockModule,
1802
3035
  AXCFOrganizationManagementMockModule,
1803
- AXCConversationMockModule] }); }
3036
+ AXCConversationMockModule,
3037
+ AXCSecurityManagementMockModule] }); }
1804
3038
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCMockModule, providers: [
1805
3039
  AXPDexieEntityStorageService,
1806
3040
  {
@@ -1851,11 +3085,26 @@ class AXCMockModule {
1851
3085
  useClass: AXCAppTermDataSeeder,
1852
3086
  multi: true,
1853
3087
  },
3088
+ {
3089
+ provide: AXP_DATA_SEEDER_TOKEN,
3090
+ useClass: AXCMetaDataDefinitionDataSeeder,
3091
+ multi: true,
3092
+ },
1854
3093
  {
1855
3094
  provide: AXP_DATA_SEEDER_TOKEN,
1856
3095
  useClass: AXCAppTermDataSeeder,
1857
3096
  multi: true,
1858
3097
  },
3098
+ {
3099
+ provide: AXP_DATA_SEEDER_TOKEN,
3100
+ useClass: AXCFolderDataSeeder,
3101
+ multi: true,
3102
+ },
3103
+ {
3104
+ provide: AXP_DATA_SEEDER_TOKEN,
3105
+ useClass: AXCDocumentTypeDataSeeder,
3106
+ multi: true,
3107
+ },
1859
3108
  {
1860
3109
  provide: AXPModuleDesignerService,
1861
3110
  useClass: AXCModuleDesignerService,
@@ -1868,6 +3117,10 @@ class AXCMockModule {
1868
3117
  provide: AXPRegionalService,
1869
3118
  useClass: AXCRegionalServiceImpl,
1870
3119
  },
3120
+ {
3121
+ provide: AXMFolderService,
3122
+ useClass: AXMFolderMockService,
3123
+ },
1871
3124
  {
1872
3125
  provide: AXP_SEARCH_PROVIDER,
1873
3126
  useClass: EntitySearchProvider,
@@ -1878,7 +3131,8 @@ class AXCMockModule {
1878
3131
  }),
1879
3132
  AXCFormTemplateManagementMockModule,
1880
3133
  AXCFOrganizationManagementMockModule,
1881
- AXCConversationMockModule] }); }
3134
+ AXCConversationMockModule,
3135
+ AXCSecurityManagementMockModule] }); }
1882
3136
  }
1883
3137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCMockModule, decorators: [{
1884
3138
  type: NgModule,
@@ -1890,6 +3144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1890
3144
  AXCFormTemplateManagementMockModule,
1891
3145
  AXCFOrganizationManagementMockModule,
1892
3146
  AXCConversationMockModule,
3147
+ AXCSecurityManagementMockModule,
1893
3148
  ],
1894
3149
  exports: [],
1895
3150
  declarations: [],
@@ -1943,11 +3198,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1943
3198
  useClass: AXCAppTermDataSeeder,
1944
3199
  multi: true,
1945
3200
  },
3201
+ {
3202
+ provide: AXP_DATA_SEEDER_TOKEN,
3203
+ useClass: AXCMetaDataDefinitionDataSeeder,
3204
+ multi: true,
3205
+ },
1946
3206
  {
1947
3207
  provide: AXP_DATA_SEEDER_TOKEN,
1948
3208
  useClass: AXCAppTermDataSeeder,
1949
3209
  multi: true,
1950
3210
  },
3211
+ {
3212
+ provide: AXP_DATA_SEEDER_TOKEN,
3213
+ useClass: AXCFolderDataSeeder,
3214
+ multi: true,
3215
+ },
3216
+ {
3217
+ provide: AXP_DATA_SEEDER_TOKEN,
3218
+ useClass: AXCDocumentTypeDataSeeder,
3219
+ multi: true,
3220
+ },
1951
3221
  {
1952
3222
  provide: AXPModuleDesignerService,
1953
3223
  useClass: AXCModuleDesignerService,
@@ -1960,6 +3230,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1960
3230
  provide: AXPRegionalService,
1961
3231
  useClass: AXCRegionalServiceImpl,
1962
3232
  },
3233
+ {
3234
+ provide: AXMFolderService,
3235
+ useClass: AXMFolderMockService,
3236
+ },
1963
3237
  {
1964
3238
  provide: AXP_SEARCH_PROVIDER,
1965
3239
  useClass: EntitySearchProvider,