@acorex/connectivity 20.0.4 → 20.0.6

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.
@@ -10,23 +10,25 @@ import { inject, Injectable, NgModule } from '@angular/core';
10
10
  import { AXPLockService, AXPRegionalService, AXPFileStorageStatus, AXPFileStorageService, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
11
11
  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';
12
12
  import { RootConfig as RootConfig$2, AXMFolderServiceImpl, AXMDocumentServiceImpl, AXMFolderService, AXMDocumentService } from '@acorex/modules/document-management';
13
- import { AXPMyNotificationDashboardWidget, RootConfig as RootConfig$7, AXMNotificationEntityService } from '@acorex/modules/notification-management';
14
- import { RootConfig as RootConfig$6, AXMDeviceSessionsServiceImpl, AXMSessionStatusTypes, AXMDeviceSessionsService } from '@acorex/modules/security-management';
13
+ import { AXPMyNotificationDashboardWidget, RootConfig as RootConfig$8, AXMNotificationEntityService } from '@acorex/modules/notification-management';
14
+ import { RootConfig as RootConfig$7, AXMDeviceSessionsServiceImpl, AXMSessionStatusTypes, AXMDeviceSessionsService } from '@acorex/modules/security-management';
15
15
  import { of, delay, firstValueFrom } from 'rxjs';
16
16
  import { AXMPermissionsKeys, AXMFormTemplateTypes, RootConfig as RootConfig$3 } from '@acorex/modules/form-template-management';
17
17
  import { RootConfig } from '@acorex/modules/conversation';
18
18
  import { AXPBarChartWidget, AXPAnalogClockWidget, AXPMinimalWeatherWidget, AXPAdvancedWeatherWidget, AXPStickyNoteWidget, AXPDonutChartWidget, AXPGaugeChartWidget, AXPLineChartWidget, AXPTaskListWidget, RootConfig as RootConfig$1 } from '@acorex/modules/dashboard-management';
19
19
  import { RootConfig as RootConfig$4 } from '@acorex/modules/issue-management';
20
- import { RootConfig as RootConfig$5 } from '@acorex/modules/log-management';
21
- import { AXMOrganizationNodeType, RootConfig as RootConfig$8 } from '@acorex/modules/organization-management';
22
- import { RootConfig as RootConfig$9, AXMMetaDataDefinitionCategoryServiceImpl, AXMMetaDataDefinitionService, AXMMetaDataDefinitionCategoryService } from '@acorex/modules/platform-management';
20
+ import { RootConfig as RootConfig$5 } from '@acorex/modules/report-management';
21
+ import { AXPWidgetsList } from '@acorex/modules/common';
22
+ import { RootConfig as RootConfig$6 } from '@acorex/modules/log-management';
23
+ import { AXMOrganizationNodeType, RootConfig as RootConfig$9 } from '@acorex/modules/organization-management';
24
+ import { RootConfig as RootConfig$a, AXMMetaDataDefinitionCategoryServiceImpl, AXMMetaDataDefinitionService, AXMMetaDataDefinitionCategoryService } from '@acorex/modules/platform-management';
23
25
  import { AXTranslationService } from '@acorex/core/translation';
24
26
  import { AXFileService } from '@acorex/core/file';
25
- import { RootConfig as RootConfig$a } from '@acorex/modules/project-management';
26
- import { RootConfig as RootConfig$b } from '@acorex/modules/scheduler-job-management';
27
+ import { RootConfig as RootConfig$b } from '@acorex/modules/project-management';
28
+ import { RootConfig as RootConfig$c } from '@acorex/modules/scheduler-job-management';
27
29
  import { convertArrayToDataSource } from '@acorex/cdk/common';
28
- import { RootConfig as RootConfig$c } from '@acorex/modules/text-template-management';
29
- import { RootConfig as RootConfig$d } from '@acorex/modules/training-management';
30
+ import { RootConfig as RootConfig$d } from '@acorex/modules/text-template-management';
31
+ import { RootConfig as RootConfig$e } from '@acorex/modules/training-management';
30
32
  import { AXSafePipe } from '@acorex/core/pipes';
31
33
 
32
34
  class AXPDexieEntityStorageService extends Dexie {
@@ -50,7 +52,7 @@ class AXPDexieEntityStorageService extends Dexie {
50
52
  const oldArray = Array.isArray(oldObj[key]) ? oldObj[key] : [];
51
53
  const newArray = Array.isArray(value) ? value : [];
52
54
  // Check if array items have id property
53
- const hasId = newArray.length > 0 && 'id' in newArray[0];
55
+ const hasId = newArray.length > 0 && typeof newArray[0] === 'object' && newArray[0] !== null && 'id' in newArray[0];
54
56
  if (hasId) {
55
57
  // Compare by id for objects with id
56
58
  const added = newArray.filter(item => !oldArray.some(oldItem => oldItem.id === item.id));
@@ -512,11 +514,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
512
514
  class MockFeatureLoader {
513
515
  constructor() {
514
516
  this.list = [
515
- {
516
- name: 'entity-comment',
517
- title: 'Feature Title',
518
- value: true,
519
- },
517
+ // {
518
+ // name: 'entity-comment',
519
+ // title: 'Feature Title',
520
+ // value: true,
521
+ // },
520
522
  {
521
523
  name: 'axp-entity-list-advance-filter',
522
524
  title: 'Filters',
@@ -789,7 +791,7 @@ function getUserByIndex(index) {
789
791
  };
790
792
  }
791
793
  // Generate an array of rooms
792
- const ROOMS = Array.from({ length: 15 }).map((_, index) => {
794
+ const ROOMS = Array.from({ length: 3 }).map((_, index) => {
793
795
  const roomTypes = ['personal', 'group', 'channel', 'support'];
794
796
  const roomNames = [
795
797
  'General Discussion',
@@ -2685,7 +2687,7 @@ class EntitySearchProvider {
2685
2687
  }
2686
2688
  }
2687
2689
 
2688
- function generateCategories() {
2690
+ function generateCategories$1() {
2689
2691
  const categories = [];
2690
2692
  const rootCategories = [
2691
2693
  'Risk Assessment',
@@ -2749,7 +2751,7 @@ function generateCategories() {
2749
2751
  });
2750
2752
  return categories;
2751
2753
  }
2752
- const TEMPLATE_CATEGORIES = generateCategories();
2754
+ const TEMPLATE_CATEGORIES = generateCategories$1();
2753
2755
  function generateTemplates() {
2754
2756
  const templates = [];
2755
2757
  AXPDataGenerator.pick(TEMPLATE_CATEGORIES, 5).forEach((category) => {
@@ -2908,6 +2910,1237 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
2908
2910
  type: Injectable
2909
2911
  }] });
2910
2912
 
2913
+ //#region ---- Mock Categories ----
2914
+ function generateCategories() {
2915
+ const categories = [];
2916
+ // Root categories
2917
+ const rootCategories = [
2918
+ { title: 'Financial Reports', description: 'Financial analysis and accounting reports', hasChild: true, hasReport: false },
2919
+ { title: 'Operations Reports', description: 'Operational metrics and performance reports', hasChild: true, hasReport: false },
2920
+ { title: 'Human Resources', description: 'HR analytics and employee reports', hasChild: true, hasReport: false },
2921
+ { title: 'Sales & Marketing', description: 'Sales performance and marketing analytics', hasChild: true, hasReport: false },
2922
+ { title: 'Quality Assurance', description: 'Quality control and compliance reports', hasChild: false, hasReport: true },
2923
+ { title: 'Custom Reports', description: 'User-defined custom report templates', hasChild: true, hasReport: false },
2924
+ { title: 'Workplace Health and Safety', description: 'Workplace Health & Safety', hasChild: true, hasReport: false },
2925
+ { title: 'Occupational Health and Safety', description: 'Occupational Health & Safety', hasChild: true, hasReport: false },
2926
+ { title: 'Environmental Health and Safety', description: 'Environmental Health & Safety', hasChild: true, hasReport: false },
2927
+ { title: 'Human Resource Safety', description: 'Human Resource Safety', hasChild: true, hasReport: false },
2928
+ ];
2929
+ rootCategories.forEach(({ title, description, hasChild, hasReport }) => {
2930
+ const categoryId = AXPDataGenerator.uuid();
2931
+ categories.push({
2932
+ id: categoryId,
2933
+ title,
2934
+ description,
2935
+ parentId: undefined,
2936
+ hasChild,
2937
+ hasReport
2938
+ });
2939
+ });
2940
+ // Child categories
2941
+ const childCategories = [
2942
+ {
2943
+ parent: 'Financial Reports',
2944
+ children: [
2945
+ { title: 'Balance Sheet', description: 'Asset, liability, and equity reports', hasChild: false, hasReport: true },
2946
+ { title: 'Income Statement', description: 'Revenue and expense analysis', hasChild: false, hasReport: true },
2947
+ { title: 'Cash Flow', description: 'Cash flow analysis and forecasting', hasChild: false, hasReport: true },
2948
+ { title: 'Budget Analysis', description: 'Budget vs actual performance', hasChild: false, hasReport: true },
2949
+ ],
2950
+ },
2951
+ {
2952
+ parent: 'Operations Reports',
2953
+ children: [
2954
+ { title: 'Production Metrics', description: 'Manufacturing and production KPIs', hasChild: false, hasReport: true },
2955
+ { title: 'Inventory Management', description: 'Stock levels and inventory turnover', hasChild: false, hasReport: true },
2956
+ { title: 'Supply Chain', description: 'Supplier performance and logistics', hasChild: false, hasReport: true },
2957
+ { title: 'Quality Control', description: 'Quality metrics and defect analysis', hasChild: false, hasReport: true },
2958
+ ],
2959
+ },
2960
+ {
2961
+ parent: 'Human Resources',
2962
+ children: [
2963
+ { title: 'Employee Performance', description: 'Performance reviews and ratings', hasChild: false, hasReport: true },
2964
+ { title: 'Attendance & Leave', description: 'Time tracking and leave management', hasChild: false, hasReport: true },
2965
+ { title: 'Payroll Reports', description: 'Salary, benefits, and compensation', hasChild: false, hasReport: true },
2966
+ { title: 'Training & Development', description: 'Learning progress and skill development', hasChild: false, hasReport: true },
2967
+ ],
2968
+ },
2969
+ {
2970
+ parent: 'Sales & Marketing',
2971
+ children: [
2972
+ { title: 'Sales Performance', description: 'Revenue, targets, and conversion rates', hasChild: false, hasReport: true },
2973
+ { title: 'Customer Analytics', description: 'Customer behavior and satisfaction', hasChild: false, hasReport: true },
2974
+ { title: 'Marketing Campaigns', description: 'Campaign performance and ROI', hasChild: false, hasReport: true },
2975
+ { title: 'Lead Generation', description: 'Lead quality and conversion funnel', hasChild: false, hasReport: true },
2976
+ ],
2977
+ },
2978
+ {
2979
+ parent: 'Custom Reports',
2980
+ children: [
2981
+ { title: 'Executive Dashboard', description: 'High-level KPIs for management', hasChild: false, hasReport: true },
2982
+ { title: 'Compliance Reports', description: 'Regulatory and audit reports', hasChild: false, hasReport: true },
2983
+ { title: 'Risk Assessment', description: 'Risk analysis and mitigation reports', hasChild: false, hasReport: true },
2984
+ ],
2985
+ },
2986
+ {
2987
+ parent: 'Workplace Health and Safety',
2988
+ children: [
2989
+ { title: 'Incident Management', description: 'Manage and report workplace incidents', hasChild: false, hasReport: true },
2990
+ { title: 'Risk Assessment', description: 'Assess and mitigate workplace risks', hasChild: false, hasReport: true },
2991
+ { title: 'Safety Audits', description: 'Conduct and review safety audits', hasChild: false, hasReport: true },
2992
+ ],
2993
+ },
2994
+ {
2995
+ parent: 'Occupational Health and Safety',
2996
+ children: [
2997
+ { title: 'Compliance Reports', description: 'Track OHS compliance', hasChild: false, hasReport: true },
2998
+ { title: 'Training Records', description: 'Manage safety training records', hasChild: false, hasReport: true },
2999
+ { title: 'Hazard Identification', description: 'Identify and report hazards', hasChild: false, hasReport: true },
3000
+ ],
3001
+ },
3002
+ {
3003
+ parent: 'Environmental Health and Safety',
3004
+ children: [
3005
+ { title: 'Environmental Monitoring', description: 'Monitor environmental factors', hasChild: false, hasReport: true },
3006
+ { title: 'Waste Management', description: 'Track and manage waste', hasChild: false, hasReport: true },
3007
+ { title: 'Sustainability Metrics', description: 'Report on sustainability KPIs', hasChild: false, hasReport: true },
3008
+ ],
3009
+ },
3010
+ {
3011
+ parent: 'Human Resource Safety',
3012
+ children: [
3013
+ { title: 'Employee Health Records', description: 'Manage employee health data', hasChild: false, hasReport: true },
3014
+ { title: 'Wellness Programs', description: 'Track wellness initiatives', hasChild: false, hasReport: true },
3015
+ { title: 'Ergonomics Assessments', description: 'Assess workplace ergonomics', hasChild: false, hasReport: true },
3016
+ ],
3017
+ },
3018
+ ];
3019
+ childCategories.forEach(({ parent, children }) => {
3020
+ const parentCat = categories.find((c) => c.title === parent);
3021
+ if (parentCat) {
3022
+ children.forEach(({ title, description, hasChild, hasReport }) => {
3023
+ categories.push({
3024
+ id: AXPDataGenerator.uuid(),
3025
+ title,
3026
+ description,
3027
+ parentId: parentCat.id,
3028
+ hasChild,
3029
+ hasReport
3030
+ });
3031
+ });
3032
+ }
3033
+ });
3034
+ return categories;
3035
+ }
3036
+ const REPORT_CATEGORIES = generateCategories();
3037
+ //#endregion
3038
+ //#region ---- Mock Parameter Groups ----
3039
+ const commonParameterGroups = [
3040
+ {
3041
+ name: 'dateRange',
3042
+ title: 'Date Range',
3043
+ description: 'Select the reporting period',
3044
+ parameters: [
3045
+ {
3046
+ path: 'startDate',
3047
+ title: 'Start Date',
3048
+ description: 'Beginning of the reporting period',
3049
+ widget: {
3050
+ type: AXPWidgetsList.Editors.DateTimeBox,
3051
+ options: {
3052
+ showTime: false,
3053
+ format: 'yyyy-MM-dd'
3054
+ }
3055
+ },
3056
+ },
3057
+ {
3058
+ path: 'endDate',
3059
+ title: 'End Date',
3060
+ description: 'End of the reporting period',
3061
+ widget: {
3062
+ type: AXPWidgetsList.Editors.DateTimeBox,
3063
+ options: {
3064
+ showTime: false,
3065
+ format: 'yyyy-MM-dd'
3066
+ }
3067
+ },
3068
+ },
3069
+ ],
3070
+ },
3071
+ {
3072
+ name: 'filters',
3073
+ title: 'Filters',
3074
+ description: 'Additional filtering options',
3075
+ parameters: [
3076
+ {
3077
+ path: 'department',
3078
+ title: 'Department',
3079
+ description: 'Filter by specific department',
3080
+ widget: {
3081
+ type: AXPWidgetsList.Editors.SelectBox,
3082
+ options: {
3083
+ dataSource: [
3084
+ 'All Departments',
3085
+ 'Finance',
3086
+ 'Operations',
3087
+ 'Human Resources',
3088
+ 'Sales',
3089
+ 'Marketing',
3090
+ 'IT',
3091
+ 'Legal'
3092
+ ]
3093
+ },
3094
+ },
3095
+ },
3096
+ {
3097
+ path: 'status',
3098
+ title: 'Status',
3099
+ description: 'Filter by status',
3100
+ widget: {
3101
+ type: AXPWidgetsList.Editors.SelectBox,
3102
+ options: {
3103
+ dataSource: ['All', 'Active', 'Inactive', 'Pending', 'Completed']
3104
+ },
3105
+ },
3106
+ },
3107
+ ],
3108
+ },
3109
+ ];
3110
+ const financialParameterGroups = [
3111
+ {
3112
+ name: 'financial',
3113
+ title: 'Financial Parameters',
3114
+ description: 'Financial reporting specific options',
3115
+ parameters: [
3116
+ {
3117
+ path: 'currency',
3118
+ title: 'Currency',
3119
+ description: 'Report currency',
3120
+ widget: {
3121
+ type: AXPWidgetsList.Editors.SelectBox,
3122
+ options: {
3123
+ dataSource: ['USD', 'EUR', 'GBP', 'JPY', 'CAD', 'AUD', 'IRR']
3124
+ },
3125
+ },
3126
+ },
3127
+ {
3128
+ path: 'consolidation',
3129
+ title: 'Consolidation Level',
3130
+ description: 'Level of financial consolidation',
3131
+ widget: {
3132
+ type: AXPWidgetsList.Editors.SelectBox,
3133
+ options: {
3134
+ dataSource: ['Company', 'Division', 'Department', 'Cost Center']
3135
+ },
3136
+ },
3137
+ },
3138
+ {
3139
+ path: 'includeAdjustments',
3140
+ title: 'Include Adjustments',
3141
+ description: 'Include manual journal adjustments',
3142
+ widget: {
3143
+ type: AXPWidgetsList.Editors.ToggleSwitch,
3144
+ },
3145
+ },
3146
+ ],
3147
+ },
3148
+ ];
3149
+ const hrParameterGroups = [
3150
+ {
3151
+ name: 'employee',
3152
+ title: 'Employee Parameters',
3153
+ description: 'Employee-specific filtering options',
3154
+ parameters: [
3155
+ {
3156
+ path: 'employeeType',
3157
+ title: 'Employee Type',
3158
+ description: 'Type of employment',
3159
+ widget: {
3160
+ type: AXPWidgetsList.Editors.SelectBox,
3161
+ options: {
3162
+ dataSource: ['All', 'Full-time', 'Part-time', 'Contract', 'Intern']
3163
+ },
3164
+ },
3165
+ },
3166
+ {
3167
+ path: 'location',
3168
+ title: 'Office Location',
3169
+ description: 'Physical office location',
3170
+ widget: {
3171
+ type: AXPWidgetsList.Editors.SelectBox,
3172
+ options: {
3173
+ dataSource: ['All Locations', 'New York', 'London', 'Tokyo', 'Sydney', 'Toronto', 'Tehran']
3174
+ },
3175
+ },
3176
+ },
3177
+ {
3178
+ path: 'includeTerminated',
3179
+ title: 'Include Terminated',
3180
+ description: 'Include terminated employees in the period',
3181
+ widget: {
3182
+ type: AXPWidgetsList.Editors.ToggleSwitch,
3183
+ },
3184
+ },
3185
+ ],
3186
+ },
3187
+ ];
3188
+ const whsIncidentParameterGroups = [
3189
+ {
3190
+ name: 'incidentDetails',
3191
+ title: 'Incident Details',
3192
+ description: 'Specify details about the incident',
3193
+ parameters: [
3194
+ {
3195
+ path: 'incidentType',
3196
+ title: 'Incident Type',
3197
+ description: 'Type of incident',
3198
+ widget: {
3199
+ type: AXPWidgetsList.Editors.SelectBox,
3200
+ options: {
3201
+ dataSource: ['All', 'Injury', 'Near Miss', 'Property Damage', 'Environmental', 'Fire', 'Chemical Spill', 'Other']
3202
+ }
3203
+ }
3204
+ },
3205
+ {
3206
+ path: 'incidentDate',
3207
+ title: 'Incident Date Range',
3208
+ description: 'Date range for incidents',
3209
+ widget: {
3210
+ type: AXPWidgetsList.Editors.DateTimeBox,
3211
+ options: {
3212
+ showTime: false,
3213
+ format: 'yyyy-MM-dd'
3214
+ }
3215
+ }
3216
+ },
3217
+ {
3218
+ path: 'reportedBy',
3219
+ title: 'Reported By',
3220
+ description: 'Name of the person reporting',
3221
+ widget: {
3222
+ type: AXPWidgetsList.Editors.TextBox,
3223
+ options: {
3224
+ placeholder: 'Enter reporter name'
3225
+ }
3226
+ }
3227
+ },
3228
+ {
3229
+ path: 'departmentsInvolved',
3230
+ title: 'Departments Involved',
3231
+ description: 'Departments involved in the incident',
3232
+ widget: {
3233
+ type: AXPWidgetsList.Editors.SelectBox,
3234
+ options: {
3235
+ dataSource: ['Production', 'Maintenance', 'Logistics', 'HR', 'IT', 'Security', 'Quality Control'],
3236
+ multiple: true
3237
+ }
3238
+ }
3239
+ },
3240
+ {
3241
+ path: 'severityLevel',
3242
+ title: 'Severity Level',
3243
+ description: 'Minimum severity level to include',
3244
+ widget: {
3245
+ type: AXPWidgetsList.Editors.SelectBox,
3246
+ options: {
3247
+ dataSource: ['All', 'Low', 'Medium', 'High', 'Critical']
3248
+ }
3249
+ }
3250
+ },
3251
+ {
3252
+ path: 'includeClosedCases',
3253
+ title: 'Include Closed Cases',
3254
+ description: 'Include incidents that are already closed',
3255
+ widget: {
3256
+ type: AXPWidgetsList.Editors.ToggleSwitch
3257
+ }
3258
+ }
3259
+ ]
3260
+ }
3261
+ ];
3262
+ const riskAssessmentParameterGroups = [
3263
+ {
3264
+ name: 'riskCriteria',
3265
+ title: 'Risk Criteria',
3266
+ description: 'Define risk assessment parameters',
3267
+ parameters: [
3268
+ {
3269
+ path: 'riskCategory',
3270
+ title: 'Risk Category',
3271
+ description: 'Category of risk to assess',
3272
+ widget: {
3273
+ type: AXPWidgetsList.Editors.SelectBox,
3274
+ options: {
3275
+ dataSource: ['All', 'Physical', 'Chemical', 'Biological', 'Ergonomic', 'Psychosocial', 'Environmental']
3276
+ }
3277
+ }
3278
+ },
3279
+ {
3280
+ path: 'riskLevel',
3281
+ title: 'Risk Level',
3282
+ description: 'Minimum risk level to include',
3283
+ widget: {
3284
+ type: AXPWidgetsList.Editors.SelectBox,
3285
+ options: {
3286
+ dataSource: ['All', 'Very Low', 'Low', 'Medium', 'High', 'Very High']
3287
+ }
3288
+ }
3289
+ },
3290
+ {
3291
+ path: 'assessedBy',
3292
+ title: 'Assessed By',
3293
+ description: 'Person who conducted the assessment',
3294
+ widget: {
3295
+ type: AXPWidgetsList.Editors.TextBox,
3296
+ options: {
3297
+ placeholder: 'Enter assessor name'
3298
+ }
3299
+ }
3300
+ },
3301
+ {
3302
+ path: 'controlMeasures',
3303
+ title: 'Control Measures Status',
3304
+ description: 'Status of control measures',
3305
+ widget: {
3306
+ type: AXPWidgetsList.Editors.SelectBox,
3307
+ options: {
3308
+ dataSource: ['All', 'Not Started', 'In Progress', 'Completed', 'Overdue']
3309
+ }
3310
+ }
3311
+ },
3312
+ {
3313
+ path: 'includeReviewDue',
3314
+ title: 'Include Reviews Due',
3315
+ description: 'Include assessments due for review',
3316
+ widget: {
3317
+ type: AXPWidgetsList.Editors.ToggleSwitch
3318
+ }
3319
+ }
3320
+ ]
3321
+ }
3322
+ ];
3323
+ const auditParameterGroups = [
3324
+ {
3325
+ name: 'auditDetails',
3326
+ title: 'Audit Details',
3327
+ description: 'Specify audit parameters',
3328
+ parameters: [
3329
+ {
3330
+ path: 'auditType',
3331
+ title: 'Audit Type',
3332
+ description: 'Type of safety audit',
3333
+ widget: {
3334
+ type: AXPWidgetsList.Editors.SelectBox,
3335
+ options: {
3336
+ dataSource: ['All', 'Internal', 'External', 'Regulatory', 'Management Review', 'Compliance']
3337
+ }
3338
+ }
3339
+ },
3340
+ {
3341
+ path: 'auditor',
3342
+ title: 'Auditor',
3343
+ description: 'Person conducting the audit',
3344
+ widget: {
3345
+ type: AXPWidgetsList.Editors.TextBox,
3346
+ options: {
3347
+ placeholder: 'Enter auditor name'
3348
+ }
3349
+ }
3350
+ },
3351
+ {
3352
+ path: 'findingsCount',
3353
+ title: 'Minimum Findings Count',
3354
+ description: 'Minimum number of findings to include',
3355
+ widget: {
3356
+ type: AXPWidgetsList.Editors.NumberBox,
3357
+ options: {
3358
+ minValue: 0,
3359
+ maxValue: 100
3360
+ }
3361
+ }
3362
+ },
3363
+ {
3364
+ path: 'correctiveActions',
3365
+ title: 'Corrective Actions Status',
3366
+ description: 'Status of corrective actions',
3367
+ widget: {
3368
+ type: AXPWidgetsList.Editors.SelectBox,
3369
+ options: {
3370
+ dataSource: ['All', 'Open', 'In Progress', 'Completed', 'Overdue']
3371
+ }
3372
+ }
3373
+ },
3374
+ {
3375
+ path: 'attachAuditReport',
3376
+ title: 'Attach Audit Report',
3377
+ description: 'Upload audit documentation',
3378
+ widget: {
3379
+ type: AXPWidgetsList.Editors.DocumentAttachment,
3380
+ options: {
3381
+ accept: ['.pdf', '.doc', '.docx'],
3382
+ maxSize: 10 * 1024 * 1024,
3383
+ multiple: true
3384
+ }
3385
+ }
3386
+ }
3387
+ ]
3388
+ }
3389
+ ];
3390
+ const complianceParameterGroups = [
3391
+ {
3392
+ name: 'complianceDetails',
3393
+ title: 'Compliance Details',
3394
+ description: 'Compliance reporting parameters',
3395
+ parameters: [
3396
+ {
3397
+ path: 'regulatoryFramework',
3398
+ title: 'Regulatory Framework',
3399
+ description: 'Applicable regulatory framework',
3400
+ widget: {
3401
+ type: AXPWidgetsList.Editors.SelectBox,
3402
+ options: {
3403
+ dataSource: ['All', 'OSHA', 'ISO 45001', 'ISO 14001', 'Local Regulations', 'Industry Standards']
3404
+ }
3405
+ }
3406
+ },
3407
+ {
3408
+ path: 'complianceStatus',
3409
+ title: 'Compliance Status',
3410
+ description: 'Current compliance status',
3411
+ widget: {
3412
+ type: AXPWidgetsList.Editors.SelectBox,
3413
+ options: {
3414
+ dataSource: ['All', 'Compliant', 'Non-Compliant', 'Partially Compliant', 'Under Review']
3415
+ }
3416
+ }
3417
+ },
3418
+ {
3419
+ path: 'inspectionDate',
3420
+ title: 'Last Inspection Date',
3421
+ description: 'Date of last compliance inspection',
3422
+ widget: {
3423
+ type: AXPWidgetsList.Editors.DateTimeBox,
3424
+ options: {
3425
+ showTime: false,
3426
+ format: 'yyyy-MM-dd'
3427
+ }
3428
+ }
3429
+ },
3430
+ {
3431
+ path: 'certificationsExpiring',
3432
+ title: 'Include Expiring Certifications',
3433
+ description: 'Include certifications expiring within the period',
3434
+ widget: {
3435
+ type: AXPWidgetsList.Editors.ToggleSwitch
3436
+ }
3437
+ }
3438
+ ]
3439
+ }
3440
+ ];
3441
+ const trainingParameterGroups = [
3442
+ {
3443
+ name: 'trainingDetails',
3444
+ title: 'Training Details',
3445
+ description: 'Safety training parameters',
3446
+ parameters: [
3447
+ {
3448
+ path: 'trainingType',
3449
+ title: 'Training Type',
3450
+ description: 'Type of safety training',
3451
+ widget: {
3452
+ type: AXPWidgetsList.Editors.SelectBox,
3453
+ options: {
3454
+ dataSource: ['All', 'Induction', 'Refresher', 'Specialized', 'Emergency Response', 'Equipment Specific'],
3455
+ multiple: true
3456
+ }
3457
+ }
3458
+ },
3459
+ {
3460
+ path: 'trainingStatus',
3461
+ title: 'Training Status',
3462
+ description: 'Completion status of training',
3463
+ widget: {
3464
+ type: AXPWidgetsList.Editors.SelectBox,
3465
+ options: {
3466
+ dataSource: ['All', 'Completed', 'In Progress', 'Not Started', 'Expired', 'Overdue']
3467
+ }
3468
+ }
3469
+ },
3470
+ {
3471
+ path: 'instructor',
3472
+ title: 'Instructor',
3473
+ description: 'Training instructor name',
3474
+ widget: {
3475
+ type: AXPWidgetsList.Editors.TextBox,
3476
+ options: {
3477
+ placeholder: 'Enter instructor name'
3478
+ }
3479
+ }
3480
+ },
3481
+ {
3482
+ path: 'passingScore',
3483
+ title: 'Minimum Passing Score',
3484
+ description: 'Minimum score to consider as passed',
3485
+ widget: {
3486
+ type: AXPWidgetsList.Editors.NumberBox,
3487
+ options: {
3488
+ minValue: 0,
3489
+ maxValue: 100,
3490
+ step: 5
3491
+ }
3492
+ }
3493
+ },
3494
+ {
3495
+ path: 'includeRetakes',
3496
+ title: 'Include Retakes',
3497
+ description: 'Include training retakes in the report',
3498
+ widget: {
3499
+ type: AXPWidgetsList.Editors.ToggleSwitch
3500
+ }
3501
+ }
3502
+ ]
3503
+ }
3504
+ ];
3505
+ const environmentalParameterGroups = [
3506
+ {
3507
+ name: 'environmentalDetails',
3508
+ title: 'Environmental Details',
3509
+ description: 'Environmental monitoring parameters',
3510
+ parameters: [
3511
+ {
3512
+ path: 'monitoringType',
3513
+ title: 'Monitoring Type',
3514
+ description: 'Type of environmental monitoring',
3515
+ widget: {
3516
+ type: AXPWidgetsList.Editors.SelectBox,
3517
+ options: {
3518
+ dataSource: ['All', 'Air Quality', 'Water Quality', 'Noise Levels', 'Soil Contamination', 'Emissions', 'Waste Discharge']
3519
+ }
3520
+ }
3521
+ },
3522
+ {
3523
+ path: 'measurementLocation',
3524
+ title: 'Measurement Location',
3525
+ description: 'Location where measurements were taken',
3526
+ widget: {
3527
+ type: AXPWidgetsList.Editors.TextBox,
3528
+ options: {
3529
+ placeholder: 'Enter location'
3530
+ }
3531
+ }
3532
+ },
3533
+ {
3534
+ path: 'exceedanceThreshold',
3535
+ title: 'Exceedance Threshold',
3536
+ description: 'Threshold value for regulatory limits',
3537
+ widget: {
3538
+ type: AXPWidgetsList.Editors.NumberBox,
3539
+ options: {
3540
+ minValue: 0,
3541
+ step: 0.1
3542
+ }
3543
+ }
3544
+ },
3545
+ {
3546
+ path: 'includeExceedances',
3547
+ title: 'Include Exceedances Only',
3548
+ description: 'Show only measurements exceeding limits',
3549
+ widget: {
3550
+ type: AXPWidgetsList.Editors.ToggleSwitch
3551
+ }
3552
+ },
3553
+ {
3554
+ path: 'calibrationStatus',
3555
+ title: 'Equipment Calibration Status',
3556
+ description: 'Calibration status of monitoring equipment',
3557
+ widget: {
3558
+ type: AXPWidgetsList.Editors.SelectBox,
3559
+ options: {
3560
+ dataSource: ['All', 'Calibrated', 'Due for Calibration', 'Overdue', 'Out of Service']
3561
+ }
3562
+ }
3563
+ }
3564
+ ]
3565
+ }
3566
+ ];
3567
+ const wasteManagementParameterGroups = [
3568
+ {
3569
+ name: 'wasteDetails',
3570
+ title: 'Waste Management Details',
3571
+ description: 'Waste management parameters',
3572
+ parameters: [
3573
+ {
3574
+ path: 'wasteType',
3575
+ title: 'Waste Type',
3576
+ description: 'Type of waste',
3577
+ widget: {
3578
+ type: AXPWidgetsList.Editors.SelectBox,
3579
+ options: {
3580
+ dataSource: ['All', 'Hazardous', 'Non-Hazardous', 'Recyclable', 'Electronic', 'Medical', 'Chemical'],
3581
+ multiple: true
3582
+ }
3583
+ }
3584
+ },
3585
+ {
3586
+ path: 'disposalMethod',
3587
+ title: 'Disposal Method',
3588
+ description: 'Method of waste disposal',
3589
+ widget: {
3590
+ type: AXPWidgetsList.Editors.SelectBox,
3591
+ options: {
3592
+ dataSource: ['All', 'Landfill', 'Incineration', 'Recycling', 'Treatment', 'Recovery', 'Reuse']
3593
+ }
3594
+ }
3595
+ },
3596
+ {
3597
+ path: 'wasteQuantity',
3598
+ title: 'Minimum Waste Quantity (kg)',
3599
+ description: 'Minimum quantity of waste to include',
3600
+ widget: {
3601
+ type: AXPWidgetsList.Editors.NumberBox,
3602
+ options: {
3603
+ minValue: 0,
3604
+ step: 0.1
3605
+ }
3606
+ }
3607
+ },
3608
+ {
3609
+ path: 'contractor',
3610
+ title: 'Waste Contractor',
3611
+ description: 'Waste management contractor',
3612
+ widget: {
3613
+ type: AXPWidgetsList.Editors.TextBox,
3614
+ options: {
3615
+ placeholder: 'Enter contractor name'
3616
+ }
3617
+ }
3618
+ },
3619
+ {
3620
+ path: 'includeManifests',
3621
+ title: 'Include Waste Manifests',
3622
+ description: 'Include waste manifests in the report',
3623
+ widget: {
3624
+ type: AXPWidgetsList.Editors.ToggleSwitch
3625
+ }
3626
+ }
3627
+ ]
3628
+ }
3629
+ ];
3630
+ const healthParameterGroups = [
3631
+ {
3632
+ name: 'healthDetails',
3633
+ title: 'Employee Health Details',
3634
+ description: 'Employee health parameters',
3635
+ parameters: [
3636
+ {
3637
+ path: 'healthScreeningType',
3638
+ title: 'Health Screening Type',
3639
+ description: 'Type of health screening',
3640
+ widget: {
3641
+ type: AXPWidgetsList.Editors.SelectBox,
3642
+ options: {
3643
+ dataSource: ['All', 'Pre-employment', 'Annual', 'Post-incident', 'Return-to-work', 'Fitness for duty']
3644
+ }
3645
+ }
3646
+ },
3647
+ {
3648
+ path: 'healthProvider',
3649
+ title: 'Health Provider',
3650
+ description: 'Healthcare provider conducting screening',
3651
+ widget: {
3652
+ type: AXPWidgetsList.Editors.TextBox,
3653
+ options: {
3654
+ placeholder: 'Enter provider name'
3655
+ }
3656
+ }
3657
+ },
3658
+ {
3659
+ path: 'ageRange',
3660
+ title: 'Age Range',
3661
+ description: 'Employee age range',
3662
+ widget: {
3663
+ type: AXPWidgetsList.Editors.SelectBox,
3664
+ options: {
3665
+ dataSource: ['All', '18-25', '26-35', '36-45', '46-55', '56-65', '65+']
3666
+ }
3667
+ }
3668
+ },
3669
+ {
3670
+ path: 'includeAbsenteeism',
3671
+ title: 'Include Absenteeism Data',
3672
+ description: 'Include health-related absenteeism',
3673
+ widget: {
3674
+ type: AXPWidgetsList.Editors.ToggleSwitch
3675
+ }
3676
+ },
3677
+ {
3678
+ path: 'confidentialityLevel',
3679
+ title: 'Confidentiality Level',
3680
+ description: 'Level of data confidentiality',
3681
+ widget: {
3682
+ type: AXPWidgetsList.Editors.SelectBox,
3683
+ options: {
3684
+ dataSource: ['Aggregated Only', 'Department Level', 'Individual (Authorized Only)']
3685
+ }
3686
+ }
3687
+ }
3688
+ ]
3689
+ }
3690
+ ];
3691
+ const ergonomicsParameterGroups = [
3692
+ {
3693
+ name: 'ergonomicsDetails',
3694
+ title: 'Ergonomics Assessment Details',
3695
+ description: 'Ergonomics assessment parameters',
3696
+ parameters: [
3697
+ {
3698
+ path: 'assessmentMethod',
3699
+ title: 'Assessment Method',
3700
+ description: 'Ergonomics assessment methodology',
3701
+ widget: {
3702
+ type: AXPWidgetsList.Editors.SelectBox,
3703
+ options: {
3704
+ dataSource: ['All', 'RULA', 'REBA', 'NIOSH', 'HAL', 'Custom Checklist']
3705
+ }
3706
+ }
3707
+ },
3708
+ {
3709
+ path: 'workstationType',
3710
+ title: 'Workstation Type',
3711
+ description: 'Type of workstation assessed',
3712
+ widget: {
3713
+ type: AXPWidgetsList.Editors.SelectBox,
3714
+ options: {
3715
+ dataSource: ['All', 'Office Desk', 'Production Line', 'Laboratory', 'Warehouse', 'Vehicle', 'Mobile']
3716
+ }
3717
+ }
3718
+ },
3719
+ {
3720
+ path: 'riskScore',
3721
+ title: 'Minimum Risk Score',
3722
+ description: 'Minimum ergonomic risk score to include',
3723
+ widget: {
3724
+ type: AXPWidgetsList.Editors.NumberBox,
3725
+ options: {
3726
+ minValue: 1,
3727
+ maxValue: 10
3728
+ }
3729
+ }
3730
+ },
3731
+ {
3732
+ path: 'interventionsRequired',
3733
+ title: 'Interventions Required',
3734
+ description: 'Level of interventions needed',
3735
+ widget: {
3736
+ type: AXPWidgetsList.Editors.SelectBox,
3737
+ options: {
3738
+ dataSource: ['All', 'None', 'Low Priority', 'Medium Priority', 'High Priority', 'Immediate']
3739
+ }
3740
+ }
3741
+ },
3742
+ {
3743
+ path: 'includeRecommendations',
3744
+ title: 'Include Recommendations',
3745
+ description: 'Include ergonomic recommendations in report',
3746
+ widget: {
3747
+ type: AXPWidgetsList.Editors.ToggleSwitch
3748
+ }
3749
+ }
3750
+ ]
3751
+ }
3752
+ ];
3753
+ //#endregion
3754
+ //#region ---- Mock Report Definitions ----
3755
+ function generateReportDefinitions() {
3756
+ const reports = [];
3757
+ // Get categories that have reports
3758
+ const categoriesWithReports = REPORT_CATEGORIES.filter(cat => cat.hasReport);
3759
+ categoriesWithReports.forEach((category) => {
3760
+ let reportsForCategory = [];
3761
+ switch (category.title) {
3762
+ case 'Balance Sheet':
3763
+ reportsForCategory = [
3764
+ {
3765
+ title: 'Consolidated Balance Sheet',
3766
+ description: 'Complete balance sheet with all assets, liabilities, and equity',
3767
+ parameterGroups: [...commonParameterGroups, ...financialParameterGroups],
3768
+ },
3769
+ {
3770
+ title: 'Comparative Balance Sheet',
3771
+ description: 'Year-over-year balance sheet comparison',
3772
+ parameterGroups: [...commonParameterGroups, ...financialParameterGroups],
3773
+ },
3774
+ ];
3775
+ break;
3776
+ case 'Income Statement':
3777
+ reportsForCategory = [
3778
+ {
3779
+ title: 'Profit & Loss Statement',
3780
+ description: 'Detailed income statement with revenue and expenses',
3781
+ parameterGroups: [...commonParameterGroups, ...financialParameterGroups],
3782
+ },
3783
+ {
3784
+ title: 'Monthly Income Trends',
3785
+ description: 'Monthly trending of income and expenses',
3786
+ parameterGroups: [...commonParameterGroups, ...financialParameterGroups],
3787
+ },
3788
+ ];
3789
+ break;
3790
+ case 'Cash Flow':
3791
+ reportsForCategory = [
3792
+ {
3793
+ title: 'Cash Flow Statement',
3794
+ description: 'Operating, investing, and financing cash flows',
3795
+ parameterGroups: [...commonParameterGroups, ...financialParameterGroups],
3796
+ },
3797
+ ];
3798
+ break;
3799
+ case 'Budget Analysis':
3800
+ reportsForCategory = [
3801
+ {
3802
+ title: 'Budget vs Actual',
3803
+ description: 'Comparison of budgeted vs actual performance',
3804
+ parameterGroups: [...commonParameterGroups, ...financialParameterGroups],
3805
+ },
3806
+ ];
3807
+ break;
3808
+ case 'Employee Performance':
3809
+ reportsForCategory = [
3810
+ {
3811
+ title: 'Performance Review Summary',
3812
+ description: 'Employee performance ratings and feedback',
3813
+ parameterGroups: [...commonParameterGroups, ...hrParameterGroups],
3814
+ },
3815
+ {
3816
+ title: 'Goal Achievement Report',
3817
+ description: 'Employee goal completion and progress tracking',
3818
+ parameterGroups: [...commonParameterGroups, ...hrParameterGroups],
3819
+ },
3820
+ ];
3821
+ break;
3822
+ case 'Attendance & Leave':
3823
+ reportsForCategory = [
3824
+ {
3825
+ title: 'Attendance Summary',
3826
+ description: 'Employee attendance patterns and statistics',
3827
+ parameterGroups: [...commonParameterGroups, ...hrParameterGroups],
3828
+ },
3829
+ {
3830
+ title: 'Leave Balance Report',
3831
+ description: 'Current leave balances and usage',
3832
+ parameterGroups: [...commonParameterGroups, ...hrParameterGroups],
3833
+ },
3834
+ ];
3835
+ break;
3836
+ case 'Sales Performance':
3837
+ reportsForCategory = [
3838
+ {
3839
+ title: 'Sales Revenue Report',
3840
+ description: 'Revenue by sales rep, region, and product',
3841
+ parameterGroups: [...commonParameterGroups, {
3842
+ name: 'sales',
3843
+ title: 'Sales Parameters',
3844
+ parameters: [
3845
+ {
3846
+ path: 'salesRep',
3847
+ title: 'Sales Representative',
3848
+ widget: { type: AXPWidgetsList.Editors.SelectBox, options: { dataSource: ['All', 'John Smith', 'Sarah Johnson', 'Mike Wilson'] } },
3849
+ },
3850
+ {
3851
+ path: 'region',
3852
+ title: 'Sales Region',
3853
+ widget: { type: AXPWidgetsList.Editors.SelectBox, options: { dataSource: ['All', 'North', 'South', 'East', 'West'] } },
3854
+ },
3855
+ ],
3856
+ }],
3857
+ },
3858
+ {
3859
+ title: 'Sales Pipeline Report',
3860
+ description: 'Current sales opportunities and pipeline health',
3861
+ parameterGroups: [...commonParameterGroups],
3862
+ },
3863
+ ];
3864
+ break;
3865
+ case 'Quality Assurance':
3866
+ reportsForCategory = [
3867
+ {
3868
+ title: 'Quality Metrics Dashboard',
3869
+ description: 'Overall quality KPIs and trends',
3870
+ parameterGroups: [...commonParameterGroups, {
3871
+ name: 'quality',
3872
+ title: 'Quality Parameters',
3873
+ parameters: [
3874
+ {
3875
+ path: 'productLine',
3876
+ title: 'Product Line',
3877
+ widget: { type: AXPWidgetsList.Editors.SelectBox, options: { dataSource: ['All', 'Product A', 'Product B', 'Product C'] } },
3878
+ },
3879
+ {
3880
+ path: 'severity',
3881
+ title: 'Issue Severity',
3882
+ widget: { type: AXPWidgetsList.Editors.SelectBox, options: { dataSource: ['All', 'Critical', 'High', 'Medium', 'Low'] } },
3883
+ },
3884
+ ],
3885
+ }],
3886
+ },
3887
+ {
3888
+ title: 'Defect Analysis Report',
3889
+ description: 'Detailed analysis of product defects and root causes',
3890
+ parameterGroups: [...commonParameterGroups],
3891
+ },
3892
+ ];
3893
+ break;
3894
+ case 'Incident Management':
3895
+ reportsForCategory = [
3896
+ {
3897
+ title: 'Incident Summary Report',
3898
+ description: 'Summary of all reported workplace incidents',
3899
+ parameterGroups: [...commonParameterGroups, ...whsIncidentParameterGroups],
3900
+ },
3901
+ {
3902
+ title: 'Lost Time Injury Report',
3903
+ description: 'Analysis of lost time injuries in the workplace',
3904
+ parameterGroups: [...commonParameterGroups, ...whsIncidentParameterGroups],
3905
+ },
3906
+ ];
3907
+ break;
3908
+ case 'Risk Assessment':
3909
+ reportsForCategory = [
3910
+ {
3911
+ title: 'Risk Register Report',
3912
+ description: 'Comprehensive risk register and mitigation actions',
3913
+ parameterGroups: [...commonParameterGroups, ...riskAssessmentParameterGroups],
3914
+ },
3915
+ {
3916
+ title: 'Risk Assessment Matrix',
3917
+ description: 'Matrix of identified risks and their severity',
3918
+ parameterGroups: [...commonParameterGroups, ...riskAssessmentParameterGroups],
3919
+ },
3920
+ ];
3921
+ break;
3922
+ case 'Safety Audits':
3923
+ reportsForCategory = [
3924
+ {
3925
+ title: 'Safety Audit Findings',
3926
+ description: 'Summary of safety audit findings and recommendations',
3927
+ parameterGroups: [...commonParameterGroups, ...auditParameterGroups],
3928
+ },
3929
+ {
3930
+ title: 'Audit Compliance Report',
3931
+ description: 'Compliance status based on recent safety audits',
3932
+ parameterGroups: [...commonParameterGroups, ...auditParameterGroups],
3933
+ },
3934
+ ];
3935
+ break;
3936
+ case 'Compliance Reports':
3937
+ reportsForCategory = [
3938
+ {
3939
+ title: 'Regulatory Compliance Checklist',
3940
+ description: 'Checklist of OHS regulatory compliance items',
3941
+ parameterGroups: [...commonParameterGroups, ...complianceParameterGroups],
3942
+ },
3943
+ {
3944
+ title: 'PPE Usage Report',
3945
+ description: 'Report on personal protective equipment usage',
3946
+ parameterGroups: [...commonParameterGroups, ...complianceParameterGroups],
3947
+ },
3948
+ ];
3949
+ break;
3950
+ case 'Training Records':
3951
+ reportsForCategory = [
3952
+ {
3953
+ title: 'Training Completion Report',
3954
+ description: 'Summary of completed safety trainings',
3955
+ parameterGroups: [...commonParameterGroups, ...trainingParameterGroups],
3956
+ },
3957
+ {
3958
+ title: 'Training Expiry Report',
3959
+ description: 'Upcoming and expired safety training records',
3960
+ parameterGroups: [...commonParameterGroups, ...trainingParameterGroups],
3961
+ },
3962
+ ];
3963
+ break;
3964
+ case 'Hazard Identification':
3965
+ reportsForCategory = [
3966
+ {
3967
+ title: 'Hazard Register',
3968
+ description: 'Register of identified workplace hazards',
3969
+ parameterGroups: [...commonParameterGroups, ...riskAssessmentParameterGroups],
3970
+ },
3971
+ {
3972
+ title: 'Hazard Trend Analysis',
3973
+ description: 'Analysis of hazard trends over time',
3974
+ parameterGroups: [...commonParameterGroups, ...riskAssessmentParameterGroups],
3975
+ },
3976
+ ];
3977
+ break;
3978
+ case 'Environmental Monitoring':
3979
+ reportsForCategory = [
3980
+ {
3981
+ title: 'Air Quality Monitoring Report',
3982
+ description: 'Report on workplace air quality measurements',
3983
+ parameterGroups: [...commonParameterGroups, ...environmentalParameterGroups],
3984
+ },
3985
+ {
3986
+ title: 'Emissions Summary',
3987
+ description: 'Summary of environmental emissions data',
3988
+ parameterGroups: [...commonParameterGroups, ...environmentalParameterGroups],
3989
+ },
3990
+ ];
3991
+ break;
3992
+ case 'Waste Management':
3993
+ reportsForCategory = [
3994
+ {
3995
+ title: 'Waste Disposal Report',
3996
+ description: 'Details of waste disposal and recycling activities',
3997
+ parameterGroups: [...commonParameterGroups, ...wasteManagementParameterGroups],
3998
+ },
3999
+ {
4000
+ title: 'Hazardous Waste Tracking',
4001
+ description: 'Tracking of hazardous waste generation and disposal',
4002
+ parameterGroups: [...commonParameterGroups, ...wasteManagementParameterGroups],
4003
+ },
4004
+ ];
4005
+ break;
4006
+ case 'Sustainability Metrics':
4007
+ reportsForCategory = [
4008
+ {
4009
+ title: 'Sustainability KPI Report',
4010
+ description: 'Key performance indicators for sustainability initiatives',
4011
+ parameterGroups: [...commonParameterGroups, ...environmentalParameterGroups],
4012
+ },
4013
+ {
4014
+ title: 'Resource Consumption Analysis',
4015
+ description: 'Analysis of resource consumption and efficiency',
4016
+ parameterGroups: [...commonParameterGroups, ...environmentalParameterGroups],
4017
+ },
4018
+ ];
4019
+ break;
4020
+ case 'Employee Health Records':
4021
+ reportsForCategory = [
4022
+ {
4023
+ title: 'Health Screening Summary',
4024
+ description: 'Summary of employee health screenings and results',
4025
+ parameterGroups: [...commonParameterGroups, ...healthParameterGroups],
4026
+ },
4027
+ {
4028
+ title: 'Absenteeism Analysis',
4029
+ description: 'Analysis of employee absenteeism due to health reasons',
4030
+ parameterGroups: [...commonParameterGroups, ...healthParameterGroups],
4031
+ },
4032
+ ];
4033
+ break;
4034
+ case 'Wellness Programs':
4035
+ reportsForCategory = [
4036
+ {
4037
+ title: 'Wellness Program Participation',
4038
+ description: 'Participation rates in wellness programs',
4039
+ parameterGroups: [...commonParameterGroups, ...healthParameterGroups],
4040
+ },
4041
+ {
4042
+ title: 'Wellness Outcomes Report',
4043
+ description: 'Outcomes and effectiveness of wellness initiatives',
4044
+ parameterGroups: [...commonParameterGroups, ...healthParameterGroups],
4045
+ },
4046
+ ];
4047
+ break;
4048
+ case 'Ergonomics Assessments':
4049
+ reportsForCategory = [
4050
+ {
4051
+ title: 'Ergonomics Assessment Results',
4052
+ description: 'Results of workplace ergonomics assessments',
4053
+ parameterGroups: [...commonParameterGroups, ...ergonomicsParameterGroups],
4054
+ },
4055
+ {
4056
+ title: 'Ergonomics Improvement Tracking',
4057
+ description: 'Tracking of ergonomics-related improvements',
4058
+ parameterGroups: [...commonParameterGroups, ...ergonomicsParameterGroups],
4059
+ },
4060
+ ];
4061
+ break;
4062
+ default:
4063
+ // Generate generic reports for other categories
4064
+ reportsForCategory = [
4065
+ {
4066
+ title: `${category.title} Summary`,
4067
+ description: `Comprehensive ${category.title.toLowerCase()} report with key metrics`,
4068
+ parameterGroups: commonParameterGroups,
4069
+ },
4070
+ ];
4071
+ break;
4072
+ }
4073
+ reportsForCategory.forEach((report) => {
4074
+ reports.push({
4075
+ id: AXPDataGenerator.uuid(),
4076
+ title: report.title,
4077
+ description: report.description,
4078
+ categoryIds: [category.id],
4079
+ parameterGroups: report.parameterGroups,
4080
+ });
4081
+ });
4082
+ });
4083
+ return reports;
4084
+ }
4085
+ const REPORT_DEFINITIONS = generateReportDefinitions();
4086
+ //#endregion
4087
+ //#region ---- Category-Report Mapping ----
4088
+ // Create a mapping of categories to their reports for easy lookup
4089
+ const CATEGORY_REPORT_MAPPING = new Map();
4090
+ REPORT_CATEGORIES.filter(cat => cat.hasReport).forEach(category => {
4091
+ const categoryReports = REPORT_DEFINITIONS.filter(report => {
4092
+ // Simple matching based on category title and report title
4093
+ return report.title.toLowerCase().includes(category.title.toLowerCase()) ||
4094
+ report.description?.toLowerCase().includes(category.title.toLowerCase());
4095
+ });
4096
+ CATEGORY_REPORT_MAPPING.set(category.id, categoryReports);
4097
+ });
4098
+ //#endregion
4099
+
4100
+ class AXPReportManagementDataSeeder {
4101
+ constructor() {
4102
+ this.storageService = inject(AXPEntityStorageService);
4103
+ }
4104
+ async seed() {
4105
+ // Seed report categories
4106
+ await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.category.name}`, REPORT_CATEGORIES);
4107
+ // Seed report definitions
4108
+ await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.report.name}`, REPORT_DEFINITIONS);
4109
+ }
4110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPReportManagementDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPReportManagementDataSeeder }); }
4112
+ }
4113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPReportManagementDataSeeder, decorators: [{
4114
+ type: Injectable
4115
+ }] });
4116
+
4117
+ class AXCReportManagementMockModule {
4118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCReportManagementMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4119
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: AXCReportManagementMockModule }); }
4120
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCReportManagementMockModule, providers: [
4121
+ {
4122
+ provide: AXP_DATA_SEEDER_TOKEN,
4123
+ useClass: AXPReportManagementDataSeeder,
4124
+ multi: true,
4125
+ },
4126
+ ] }); }
4127
+ }
4128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCReportManagementMockModule, decorators: [{
4129
+ type: NgModule,
4130
+ args: [{
4131
+ imports: [],
4132
+ exports: [],
4133
+ declarations: [],
4134
+ providers: [
4135
+ {
4136
+ provide: AXP_DATA_SEEDER_TOKEN,
4137
+ useClass: AXPReportManagementDataSeeder,
4138
+ multi: true,
4139
+ },
4140
+ ],
4141
+ }]
4142
+ }] });
4143
+
2911
4144
  const projectMock$1 = [
2912
4145
  {
2913
4146
  id: AXPDataGenerator.uuid(),
@@ -2974,7 +4207,7 @@ class AXMLogDataSeeder {
2974
4207
  this.storageService = inject(AXPEntityStorageService);
2975
4208
  }
2976
4209
  async seed() {
2977
- await this.storageService.initial(`${RootConfig$5.module.name}.${RootConfig$5.entities.axpLog.name}`, projectMock$1);
4210
+ await this.storageService.initial(`${RootConfig$6.module.name}.${RootConfig$6.entities.axpLog.name}`, projectMock$1);
2978
4211
  }
2979
4212
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXMLogDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2980
4213
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXMLogDataSeeder }); }
@@ -2991,7 +4224,7 @@ class MOCKStrategy {
2991
4224
  return 'user-pass';
2992
4225
  }
2993
4226
  async signin(credentials) {
2994
- const entityRef = await this.entityRegistery.resolve(RootConfig$6.module.name, RootConfig$6.entities.users.name);
4227
+ const entityRef = await this.entityRegistery.resolve(RootConfig$7.module.name, RootConfig$7.entities.users.name);
2995
4228
  const accessToken = 'access_token';
2996
4229
  const refreshToken = 'refresh_token';
2997
4230
  try {
@@ -3160,7 +4393,7 @@ class AXCNotificationTemplateDataSeeder {
3160
4393
  this.storageService = inject(AXPEntityStorageService);
3161
4394
  }
3162
4395
  async seed() {
3163
- await this.storageService.initial(`${RootConfig$7.module.name}.${RootConfig$7.entities.template.name}`, NOTIFICATION_TEMPLATES);
4396
+ await this.storageService.initial(`${RootConfig$8.module.name}.${RootConfig$8.entities.template.name}`, NOTIFICATION_TEMPLATES);
3164
4397
  }
3165
4398
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCNotificationTemplateDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3166
4399
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCNotificationTemplateDataSeeder }); }
@@ -4316,7 +5549,7 @@ class AXCOrganizationManagementDataSeeder {
4316
5549
  async seed() {
4317
5550
  const uuid = AXPDataGenerator.uuid;
4318
5551
  // Departments
4319
- await this.storageService.initial(RootConfig$8.entities.department.source, [
5552
+ await this.storageService.initial(RootConfig$9.entities.department.source, [
4320
5553
  {
4321
5554
  id: uuid(),
4322
5555
  title: 'Software Development',
@@ -4375,7 +5608,7 @@ class AXCOrganizationManagementDataSeeder {
4375
5608
  },
4376
5609
  ]);
4377
5610
  // Divisions
4378
- await this.storageService.initial(RootConfig$8.entities.division.source, [
5611
+ await this.storageService.initial(RootConfig$9.entities.division.source, [
4379
5612
  {
4380
5613
  id: uuid(),
4381
5614
  title: 'Technology Division',
@@ -4420,7 +5653,7 @@ class AXCOrganizationManagementDataSeeder {
4420
5653
  },
4421
5654
  ]);
4422
5655
  // Branches
4423
- await this.storageService.initial(RootConfig$8.entities.branch.source, [
5656
+ await this.storageService.initial(RootConfig$9.entities.branch.source, [
4424
5657
  {
4425
5658
  id: uuid(),
4426
5659
  title: 'Headquarters',
@@ -4468,15 +5701,15 @@ class AXCOrganizationManagementDataSeeder {
4468
5701
  },
4469
5702
  ]);
4470
5703
  // Positions Category
4471
- await this.storageService.initial(RootConfig$8.entities.positionCategory.source, POSITIONS_CATEGORY_MOCK);
5704
+ await this.storageService.initial(RootConfig$9.entities.positionCategory.source, POSITIONS_CATEGORY_MOCK);
4472
5705
  // Positions
4473
- await this.storageService.initial(RootConfig$8.entities.position.source, POSITIONS_MOCK);
5706
+ await this.storageService.initial(RootConfig$9.entities.position.source, POSITIONS_MOCK);
4474
5707
  // Role Category
4475
- await this.storageService.initial(RootConfig$8.entities.roleCategory.source, ROLES_CATEGORY_MOCK);
5708
+ await this.storageService.initial(RootConfig$9.entities.roleCategory.source, ROLES_CATEGORY_MOCK);
4476
5709
  // Role
4477
- await this.storageService.initial(RootConfig$8.entities.role.source, ROLES_MOCK);
5710
+ await this.storageService.initial(RootConfig$9.entities.role.source, ROLES_MOCK);
4478
5711
  // Employment Types
4479
- await this.storageService.initial(RootConfig$8.entities.employmentType.source, [
5712
+ await this.storageService.initial(RootConfig$9.entities.employmentType.source, [
4480
5713
  {
4481
5714
  id: uuid(),
4482
5715
  title: 'Full-Time',
@@ -4504,7 +5737,7 @@ class AXCOrganizationManagementDataSeeder {
4504
5737
  },
4505
5738
  ]);
4506
5739
  // Teams
4507
- await this.storageService.initial(RootConfig$8.entities.team.source, [
5740
+ await this.storageService.initial(RootConfig$9.entities.team.source, [
4508
5741
  {
4509
5742
  id: uuid(),
4510
5743
  title: 'Backend Development Team',
@@ -4551,7 +5784,7 @@ class AXCOrganizationManagementDataSeeder {
4551
5784
  },
4552
5785
  ]);
4553
5786
  // Employees
4554
- await this.storageService.initial(RootConfig$8.entities.employee.source, [
5787
+ await this.storageService.initial(RootConfig$9.entities.employee.source, [
4555
5788
  {
4556
5789
  id: uuid(),
4557
5790
  firstname: 'Jane',
@@ -4674,7 +5907,7 @@ class AXCOrganizationManagementDataSeeder {
4674
5907
  },
4675
5908
  ]);
4676
5909
  // Store Chart Data
4677
- await this.storageService.initial(RootConfig$8.entities.chart.source, [
5910
+ await this.storageService.initial(RootConfig$9.entities.chart.source, [
4678
5911
  {
4679
5912
  id: uuid(),
4680
5913
  version: '1.0',
@@ -4682,13 +5915,13 @@ class AXCOrganizationManagementDataSeeder {
4682
5915
  },
4683
5916
  ]);
4684
5917
  // Skill Category
4685
- await this.storageService.initial(RootConfig$8.entities.skillCategory.source, SKILLS_CATEGORY_MOCK);
5918
+ await this.storageService.initial(RootConfig$9.entities.skillCategory.source, SKILLS_CATEGORY_MOCK);
4686
5919
  // Skill
4687
- await this.storageService.initial(RootConfig$8.entities.skill.source, SKILLS_MOCK);
5920
+ await this.storageService.initial(RootConfig$9.entities.skill.source, SKILLS_MOCK);
4688
5921
  // Responsibility Category
4689
- await this.storageService.initial(RootConfig$8.entities.responsibilityCategory.source, RESPONSIBILITIES_CATEGORY_MOCK);
5922
+ await this.storageService.initial(RootConfig$9.entities.responsibilityCategory.source, RESPONSIBILITIES_CATEGORY_MOCK);
4690
5923
  // Responsibility
4691
- await this.storageService.initial(RootConfig$8.entities.responsibility.source, RESPONSIBILITIES_MOCK);
5924
+ await this.storageService.initial(RootConfig$9.entities.responsibility.source, RESPONSIBILITIES_MOCK);
4692
5925
  }
4693
5926
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCOrganizationManagementDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4694
5927
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCOrganizationManagementDataSeeder }); }
@@ -4764,7 +5997,7 @@ class AXCAppTermDataSeeder {
4764
5997
  this.storageService = inject(AXPEntityStorageService);
4765
5998
  }
4766
5999
  async seed() {
4767
- await this.storageService.initial(`${RootConfig$9.module.name}.${RootConfig$9.entities.appTerm.name}`, APP_TERMS);
6000
+ await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.appTerm.name}`, APP_TERMS);
4768
6001
  }
4769
6002
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCAppTermDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4770
6003
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCAppTermDataSeeder }); }
@@ -4799,7 +6032,7 @@ class AXCAppVersionDataSeeder {
4799
6032
  this.storageService = inject(AXPEntityStorageService);
4800
6033
  }
4801
6034
  async seed() {
4802
- await this.storageService.initial(`${RootConfig$9.module.name}.${RootConfig$9.entities.appVersion.name}`, APP_VERSIONS);
6035
+ await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.appVersion.name}`, APP_VERSIONS);
4803
6036
  }
4804
6037
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCAppVersionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4805
6038
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCAppVersionDataSeeder }); }
@@ -4830,7 +6063,7 @@ class AXCGlobalVariablesDataSeeder {
4830
6063
  this.storageService = inject(AXPEntityStorageService);
4831
6064
  }
4832
6065
  async seed() {
4833
- await this.storageService.initial(`${RootConfig$9.module.name}.${RootConfig$9.entities.globalVariable.name}`, GLOBAL_VARIABLES);
6066
+ await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.globalVariable.name}`, GLOBAL_VARIABLES);
4834
6067
  }
4835
6068
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCGlobalVariablesDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4836
6069
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCGlobalVariablesDataSeeder }); }
@@ -5164,8 +6397,8 @@ class AXCMetaDataDefinitionDataSeeder {
5164
6397
  this.storageService = inject(AXPEntityStorageService);
5165
6398
  }
5166
6399
  async seed() {
5167
- await this.storageService.initial(`${RootConfig$9.module.name}.${RootConfig$9.entities.metaDataDefinitionCategory.name}`, METADATA_CATEGORY_MOCK);
5168
- await this.storageService.initial(`${RootConfig$9.module.name}.${RootConfig$9.entities.metaDataDefinition.name}`, METADATA_MOCK);
6400
+ await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.metaDataDefinitionCategory.name}`, METADATA_CATEGORY_MOCK);
6401
+ await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.metaDataDefinition.name}`, METADATA_MOCK);
5169
6402
  }
5170
6403
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCMetaDataDefinitionDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5171
6404
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCMetaDataDefinitionDataSeeder }); }
@@ -5203,7 +6436,7 @@ class AXCProjectclientDataSeeder {
5203
6436
  this.storageService = inject(AXPEntityStorageService);
5204
6437
  }
5205
6438
  async seed() {
5206
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.client.name}`, ClientMock);
6439
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.client.name}`, ClientMock);
5207
6440
  }
5208
6441
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectclientDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5209
6442
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectclientDataSeeder }); }
@@ -5305,7 +6538,7 @@ class AXCProjectMemberDataSeeder {
5305
6538
  this.storageService = inject(AXPEntityStorageService);
5306
6539
  }
5307
6540
  async seed() {
5308
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.projectMemeber.name}`, projectMemberMock);
6541
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.projectMemeber.name}`, projectMemberMock);
5309
6542
  }
5310
6543
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectMemberDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5311
6544
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectMemberDataSeeder }); }
@@ -5319,8 +6552,8 @@ class AXCProjectRoleMemberDataSeeder {
5319
6552
  this.storageService = inject(AXPEntityStorageService);
5320
6553
  }
5321
6554
  async seed() {
5322
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.projectType.name}`, projectTypeMock);
5323
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.projectRoleMember.name}`, projectRoleMemberMock);
6555
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.projectType.name}`, projectTypeMock);
6556
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.projectRoleMember.name}`, projectRoleMemberMock);
5324
6557
  }
5325
6558
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectRoleMemberDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5326
6559
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectRoleMemberDataSeeder }); }
@@ -5334,7 +6567,7 @@ class AXCProjectDataSeeder {
5334
6567
  this.storageService = inject(AXPEntityStorageService);
5335
6568
  }
5336
6569
  async seed() {
5337
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.project.name}`, projectMock);
6570
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.project.name}`, projectMock);
5338
6571
  }
5339
6572
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5340
6573
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCProjectDataSeeder }); }
@@ -5378,7 +6611,7 @@ class AXCsprintDataSeeder {
5378
6611
  this.storageService = inject(AXPEntityStorageService);
5379
6612
  }
5380
6613
  async seed() {
5381
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.sprint.name}`, sprintMock);
6614
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.sprint.name}`, sprintMock);
5382
6615
  }
5383
6616
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCsprintDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5384
6617
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCsprintDataSeeder }); }
@@ -5416,7 +6649,7 @@ class AXCTaskTypeDataSeeder {
5416
6649
  this.storageService = inject(AXPEntityStorageService);
5417
6650
  }
5418
6651
  async seed() {
5419
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.taskType.name}`, taskTypeMock);
6652
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.taskType.name}`, taskTypeMock);
5420
6653
  }
5421
6654
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTaskTypeDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5422
6655
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTaskTypeDataSeeder }); }
@@ -5485,7 +6718,7 @@ class AXCTaskDataSeeder {
5485
6718
  this.storageService = inject(AXPEntityStorageService);
5486
6719
  }
5487
6720
  async seed() {
5488
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.task.name}`, taskMock);
6721
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.task.name}`, taskMock);
5489
6722
  }
5490
6723
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTaskDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5491
6724
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTaskDataSeeder }); }
@@ -5499,7 +6732,7 @@ class AXCWorkSiteSeeder {
5499
6732
  this.storageService = inject(AXPEntityStorageService);
5500
6733
  }
5501
6734
  async seed() {
5502
- await this.storageService.initial(`${RootConfig$a.module.name}.${RootConfig$a.entities.workSite.name}`, workSiteMock);
6735
+ await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.workSite.name}`, workSiteMock);
5503
6736
  }
5504
6737
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCWorkSiteSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5505
6738
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCWorkSiteSeeder }); }
@@ -5530,7 +6763,7 @@ class AXCSchedulerJobDataSeeder {
5530
6763
  this.storageService = inject(AXPEntityStorageService);
5531
6764
  }
5532
6765
  async seed() {
5533
- await this.storageService.initial(`${RootConfig$b.module.name}.${RootConfig$b.entities.schedulerJob.name}`, SCHEDULER_JOB);
6766
+ await this.storageService.initial(`${RootConfig$c.module.name}.${RootConfig$c.entities.schedulerJob.name}`, SCHEDULER_JOB);
5534
6767
  }
5535
6768
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCSchedulerJobDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5536
6769
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCSchedulerJobDataSeeder }); }
@@ -5648,7 +6881,7 @@ class AXPSecurityManagementRoleDataSeeder {
5648
6881
  ...role,
5649
6882
  // permissions: this.getRandomPermissions(permissionKeys, 2, 5), // Get 2-5 random permissions
5650
6883
  }));
5651
- await this.storageService.initial(`${RootConfig$6.module.name}.${RootConfig$6.entities.roles.name}`, roles);
6884
+ await this.storageService.initial(`${RootConfig$7.module.name}.${RootConfig$7.entities.roles.name}`, roles);
5652
6885
  }
5653
6886
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPSecurityManagementRoleDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5654
6887
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPSecurityManagementRoleDataSeeder }); }
@@ -5662,7 +6895,7 @@ class AXPSecurityManagementUserDataSeeder {
5662
6895
  this.storageService = inject(AXPEntityStorageService);
5663
6896
  }
5664
6897
  async seed() {
5665
- await this.storageService.initial(`${RootConfig$6.module.name}.${RootConfig$6.entities.users.name}`, this.generateUsers());
6898
+ await this.storageService.initial(`${RootConfig$7.module.name}.${RootConfig$7.entities.users.name}`, this.generateUsers());
5666
6899
  }
5667
6900
  generateUsers() {
5668
6901
  return mockUsers.map((user) => ({
@@ -5711,7 +6944,7 @@ class AXPSecurityManagementDeviceSessionDataSeeder {
5711
6944
  this.sessionService = inject(AXPSessionService);
5712
6945
  }
5713
6946
  async seed() {
5714
- await this.storageService.initial(`${RootConfig$6.module.name}.${RootConfig$6.entities.deviceSessions.name}`, this.generateDeviceSessions());
6947
+ await this.storageService.initial(`${RootConfig$7.module.name}.${RootConfig$7.entities.deviceSessions.name}`, this.generateDeviceSessions());
5715
6948
  }
5716
6949
  generateDeviceSessions() {
5717
6950
  const deviceSessions = [];
@@ -5932,7 +7165,7 @@ class AXCTextTemplateCategoryDataSeeder {
5932
7165
  this.storageService = inject(AXPEntityStorageService);
5933
7166
  }
5934
7167
  async seed() {
5935
- await this.storageService.initial(`${RootConfig$c.module.name}.${RootConfig$c.entities.category.name}`, TEXT_TEMPLATE_CATEGORY);
7168
+ await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.category.name}`, TEXT_TEMPLATE_CATEGORY);
5936
7169
  }
5937
7170
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTextTemplateCategoryDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5938
7171
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTextTemplateCategoryDataSeeder }); }
@@ -5946,7 +7179,7 @@ class AXCTextTemplateDataSeeder {
5946
7179
  this.storageService = inject(AXPEntityStorageService);
5947
7180
  }
5948
7181
  async seed() {
5949
- await this.storageService.initial(`${RootConfig$c.module.name}.${RootConfig$c.entities.template.name}`, TEXT_TEMPLATES);
7182
+ await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.template.name}`, TEXT_TEMPLATES);
5950
7183
  }
5951
7184
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTextTemplateDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5952
7185
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTextTemplateDataSeeder }); }
@@ -6038,7 +7271,7 @@ class AXCCertificateDataSeeder {
6038
7271
  this.storageService = inject(AXPEntityStorageService);
6039
7272
  }
6040
7273
  async seed() {
6041
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.certificate.name}`, certificateMock);
7274
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.certificate.name}`, certificateMock);
6042
7275
  }
6043
7276
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCCertificateDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6044
7277
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCCertificateDataSeeder }); }
@@ -6205,10 +7438,10 @@ class AXCCourseDataSeeder {
6205
7438
  this.storageService = inject(AXPEntityStorageService);
6206
7439
  }
6207
7440
  async seed() {
6208
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.courseType.name}`, courseTypeMock);
6209
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.course.name}`, courseMock);
6210
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.courseLocation.name}`, courseLocationMock);
6211
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.coursePeriod.name}`, coursePeriodMockData);
7441
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.courseType.name}`, courseTypeMock);
7442
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.course.name}`, courseMock);
7443
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.courseLocation.name}`, courseLocationMock);
7444
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.coursePeriod.name}`, coursePeriodMockData);
6212
7445
  }
6213
7446
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCCourseDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6214
7447
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCCourseDataSeeder }); }
@@ -6222,7 +7455,7 @@ class AXCLocationDataSeeder {
6222
7455
  this.storageService = inject(AXPEntityStorageService);
6223
7456
  }
6224
7457
  async seed() {
6225
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.location.name}`, locationMockData);
7458
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.location.name}`, locationMockData);
6226
7459
  }
6227
7460
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCLocationDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6228
7461
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCLocationDataSeeder }); }
@@ -6236,7 +7469,7 @@ class AXCPeriodDataSeeder {
6236
7469
  this.storageService = inject(AXPEntityStorageService);
6237
7470
  }
6238
7471
  async seed() {
6239
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.period.name}`, periodMock);
7472
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.period.name}`, periodMock);
6240
7473
  }
6241
7474
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCPeriodDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6242
7475
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCPeriodDataSeeder }); }
@@ -6303,7 +7536,7 @@ class AXCTrainingFacilitatorDataSeeder {
6303
7536
  this.storageService = inject(AXPEntityStorageService);
6304
7537
  }
6305
7538
  async seed() {
6306
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.trainingFacilitator.name}`, trainingFacilitatorMock);
7539
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.trainingFacilitator.name}`, trainingFacilitatorMock);
6307
7540
  }
6308
7541
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainingFacilitatorDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6309
7542
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainingFacilitatorDataSeeder }); }
@@ -6336,7 +7569,7 @@ class AXCTrainingParticipantDataSeeder {
6336
7569
  this.storageService = inject(AXPEntityStorageService);
6337
7570
  }
6338
7571
  async seed() {
6339
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.trainingParticipant.name}`, trainingParticipantMockData);
7572
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.trainingParticipant.name}`, trainingParticipantMockData);
6340
7573
  }
6341
7574
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainingParticipantDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6342
7575
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainingParticipantDataSeeder }); }
@@ -6350,7 +7583,7 @@ class AXCTrainigTypeDataSeeder {
6350
7583
  this.storageService = inject(AXPEntityStorageService);
6351
7584
  }
6352
7585
  async seed() {
6353
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.trainingType.name}`, trainingTypeMockData);
7586
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.trainingType.name}`, trainingTypeMockData);
6354
7587
  }
6355
7588
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainigTypeDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6356
7589
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainigTypeDataSeeder }); }
@@ -6364,7 +7597,7 @@ class AXCTrainingDataSeeder {
6364
7597
  this.storageService = inject(AXPEntityStorageService);
6365
7598
  }
6366
7599
  async seed() {
6367
- await this.storageService.initial(`${RootConfig$d.module.name}.${RootConfig$d.entities.training.name}`, trainingMock);
7600
+ await this.storageService.initial(`${RootConfig$e.module.name}.${RootConfig$e.entities.training.name}`, trainingMock);
6368
7601
  }
6369
7602
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainingDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6370
7603
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCTrainingDataSeeder }); }
@@ -6665,7 +7898,8 @@ class AXCMockModule {
6665
7898
  }
6666
7899
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCMockModule, deps: [{ token: i1.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
6667
7900
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: AXCMockModule, imports: [i2.AXPAuthModule, AXCFormTemplateManagementMockModule,
6668
- AXCFOrganizationManagementMockModule] }); }
7901
+ AXCFOrganizationManagementMockModule,
7902
+ AXCReportManagementMockModule] }); }
6669
7903
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCMockModule, providers: [
6670
7904
  {
6671
7905
  provide: AXMNotificationEntityService,
@@ -6913,7 +8147,8 @@ class AXCMockModule {
6913
8147
  strategies: [MOCKStrategy],
6914
8148
  }),
6915
8149
  AXCFormTemplateManagementMockModule,
6916
- AXCFOrganizationManagementMockModule] }); }
8150
+ AXCFOrganizationManagementMockModule,
8151
+ AXCReportManagementMockModule] }); }
6917
8152
  }
6918
8153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCMockModule, decorators: [{
6919
8154
  type: NgModule,
@@ -6924,6 +8159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
6924
8159
  }),
6925
8160
  AXCFormTemplateManagementMockModule,
6926
8161
  AXCFOrganizationManagementMockModule,
8162
+ AXCReportManagementMockModule,
6927
8163
  ],
6928
8164
  exports: [],
6929
8165
  declarations: [],