@acorex-platform/module-risk-management-client 0.0.37 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood-scale.mjs +361 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood-scale.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix.mjs +364 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating-scale.mjs +388 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating-scale.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity-scale.mjs +361 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity-scale.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-acorex-platform-module-risk-management-client-contracts-entity-catalog-D6WaBLYS.mjs +72 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-acorex-platform-module-risk-management-client-contracts-entity-catalog-D6WaBLYS.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood-scale.entity-CVdw2sfd.mjs +311 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood-scale.entity-CVdw2sfd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-matrix-cell.entity-b97tbRDA.mjs → acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-matrix.entity-Chp-843O.mjs} +131 -115
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-matrix.entity-Chp-843O.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating-scale.entity-Cjg7aGMl.mjs +338 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating-scale.entity-Cjg7aGMl.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity-scale.entity-Cgti6Xeo.mjs +311 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity-scale.entity-Cgti6Xeo.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts.mjs +233 -49
- package/fesm2022/acorex-platform-module-risk-management-client-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-risk-management-client-local-entities.mjs +4 -4
- package/fesm2022/acorex-platform-module-risk-management-client-local-entities.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-risk-management-client-preview-risk-matrix-cell.command-CTGIFUIa.mjs → acorex-platform-module-risk-management-client-preview-risk-matrix.command-gVKnE3c0.mjs} +14 -12
- package/fesm2022/acorex-platform-module-risk-management-client-preview-risk-matrix.command-gVKnE3c0.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-risk-management-client.mjs +439 -230
- package/fesm2022/acorex-platform-module-risk-management-client.mjs.map +1 -1
- package/package.json +13 -13
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood-scale.d.ts +5 -0
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix.d.ts +5 -0
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-rating-scale.d.ts +5 -0
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-severity-scale.d.ts +5 -0
- package/types/acorex-platform-module-risk-management-client-contracts.d.ts +157 -65
- package/types/acorex-platform-module-risk-management-client.d.ts +77 -31
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood.mjs +0 -222
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix-cell.mjs +0 -348
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix-cell.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating.mjs +0 -227
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity.mjs +0 -222
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-acorex-platform-module-risk-management-client-contracts-entity-catalog-Dc6Me3H6.mjs +0 -72
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-acorex-platform-module-risk-management-client-contracts-entity-catalog-Dc6Me3H6.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood.entity-DzwLi3Ga.mjs +0 -172
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood.entity-DzwLi3Ga.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-matrix-cell.entity-b97tbRDA.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating.entity-CreMsiCu.mjs +0 -177
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating.entity-CreMsiCu.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity.entity-bEyLH8dE.mjs +0 -172
- package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity.entity-bEyLH8dE.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-risk-management-client-preview-risk-matrix-cell.command-CTGIFUIa.mjs.map +0 -1
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood.d.ts +0 -5
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix-cell.d.ts +0 -5
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-rating.d.ts +0 -5
- package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-severity.d.ts +0 -5
|
@@ -5,10 +5,10 @@ const RISK_CATALOG_SCOPE_PPE_ITEMS = 'risk-management.ppe-items';
|
|
|
5
5
|
|
|
6
6
|
const AXMRiskManagementMenuKeys = {
|
|
7
7
|
Root: 'RiskManagement:Menu:Root',
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
RiskLikelihoodScales: 'RiskManagement:Menu:RiskLikelihoodScales',
|
|
9
|
+
RiskSeverityScales: 'RiskManagement:Menu:RiskSeverityScales',
|
|
10
|
+
RiskRatingScales: 'RiskManagement:Menu:RiskRatingScales',
|
|
11
|
+
RiskMatrices: 'RiskManagement:Menu:RiskMatrices',
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -30,28 +30,28 @@ const AXPSafetyRiskPermissionKeys = {
|
|
|
30
30
|
const AXMRiskManagementPermissionKeys = {
|
|
31
31
|
RiskManagement: {
|
|
32
32
|
Management: AXPSafetyRiskPermissionKeys.MaintainRisk,
|
|
33
|
-
|
|
33
|
+
RiskLikelihoodScale: {
|
|
34
34
|
Management: AXPSafetyRiskPermissionKeys.Setup,
|
|
35
35
|
View: AXPSafetyRiskPermissionKeys.Setup,
|
|
36
36
|
Create: AXPSafetyRiskPermissionKeys.Setup,
|
|
37
37
|
Update: AXPSafetyRiskPermissionKeys.Setup,
|
|
38
38
|
Delete: AXPSafetyRiskPermissionKeys.Setup,
|
|
39
39
|
},
|
|
40
|
-
|
|
40
|
+
RiskSeverityScale: {
|
|
41
41
|
Management: AXPSafetyRiskPermissionKeys.Setup,
|
|
42
42
|
View: AXPSafetyRiskPermissionKeys.Setup,
|
|
43
43
|
Create: AXPSafetyRiskPermissionKeys.Setup,
|
|
44
44
|
Update: AXPSafetyRiskPermissionKeys.Setup,
|
|
45
45
|
Delete: AXPSafetyRiskPermissionKeys.Setup,
|
|
46
46
|
},
|
|
47
|
-
|
|
47
|
+
RiskRatingScale: {
|
|
48
48
|
Management: AXPSafetyRiskPermissionKeys.Setup,
|
|
49
49
|
View: AXPSafetyRiskPermissionKeys.Setup,
|
|
50
50
|
Create: AXPSafetyRiskPermissionKeys.Setup,
|
|
51
51
|
Update: AXPSafetyRiskPermissionKeys.Setup,
|
|
52
52
|
Delete: AXPSafetyRiskPermissionKeys.Setup,
|
|
53
53
|
},
|
|
54
|
-
|
|
54
|
+
RiskMatrix: {
|
|
55
55
|
Management: AXPSafetyRiskPermissionKeys.MaintainRisk,
|
|
56
56
|
View: AXPSafetyRiskPermissionKeys.MaintainRisk,
|
|
57
57
|
Create: AXPSafetyRiskPermissionKeys.MaintainRisk,
|
|
@@ -61,9 +61,9 @@ const AXMRiskManagementPermissionKeys = {
|
|
|
61
61
|
},
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
//#region
|
|
64
|
+
//#region ----- Types -----
|
|
65
65
|
//#endregion
|
|
66
|
-
//#region
|
|
66
|
+
//#region ----- Constants -----
|
|
67
67
|
const RISK_MATRIX_AXIS_PROPERTIES = [
|
|
68
68
|
'likelihoodId',
|
|
69
69
|
'severityId',
|
|
@@ -74,34 +74,22 @@ const DEFAULT_RISK_MATRIX_AXIS_MAPPING = {
|
|
|
74
74
|
columnProperty: 'severityId',
|
|
75
75
|
depthProperty: 'riskRatingId',
|
|
76
76
|
};
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
id: 'likelihoodId',
|
|
80
|
-
title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.likelihood-id.title',
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
id: 'severityId',
|
|
84
|
-
title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.severity-id.title',
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: 'riskRatingId',
|
|
88
|
-
title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.risk-rating-id.title',
|
|
89
|
-
},
|
|
90
|
-
];
|
|
77
|
+
const I18N_RISK_MATRIX_ENTITY = '@risk-management:risk-matrices.entities.risk-matrix';
|
|
78
|
+
const I18N_RISK_MATRIX_COMPONENT = '@risk-management:risk-matrices.components.risk-matrix';
|
|
91
79
|
const DEFAULT_RISK_MATRIX_ORIENTATION = 'likelihood-rows';
|
|
92
80
|
const RISK_MATRIX_ORIENTATION_OPTIONS = [
|
|
93
81
|
{
|
|
94
82
|
id: 'likelihood-rows',
|
|
95
|
-
title:
|
|
83
|
+
title: `${I18N_RISK_MATRIX_ENTITY}.fields.matrix-orientation.options.likelihood-rows`,
|
|
96
84
|
},
|
|
97
85
|
{
|
|
98
86
|
id: 'severity-rows',
|
|
99
|
-
title:
|
|
87
|
+
title: `${I18N_RISK_MATRIX_ENTITY}.fields.matrix-orientation.options.severity-rows`,
|
|
100
88
|
},
|
|
101
89
|
];
|
|
102
90
|
const RISK_MATRIX_ORIENTATION_TITLE_KEYS = {
|
|
103
|
-
'likelihood-rows':
|
|
104
|
-
'severity-rows':
|
|
91
|
+
'likelihood-rows': `${I18N_RISK_MATRIX_COMPONENT}.titles.likelihood-rows`,
|
|
92
|
+
'severity-rows': `${I18N_RISK_MATRIX_COMPONENT}.titles.severity-rows`,
|
|
105
93
|
};
|
|
106
94
|
//#endregion
|
|
107
95
|
|
|
@@ -120,44 +108,240 @@ const RootConfig = {
|
|
|
120
108
|
icon: 'fa-light fa-chart-line',
|
|
121
109
|
},
|
|
122
110
|
entities: {
|
|
123
|
-
|
|
124
|
-
name: '
|
|
125
|
-
source: `${config.module}.
|
|
126
|
-
title: '@risk-management:risk-
|
|
127
|
-
titlePlural: '@risk-management:risk-
|
|
111
|
+
riskLikelihoodScale: {
|
|
112
|
+
name: 'RiskLikelihoodScale',
|
|
113
|
+
source: `${config.module}.RiskLikelihoodScale`,
|
|
114
|
+
title: '@risk-management:risk-likelihood-scales.entities.risk-likelihood-scale.title',
|
|
115
|
+
titlePlural: '@risk-management:risk-likelihood-scales.entities.risk-likelihood-scale.plural',
|
|
128
116
|
icon: 'fa-light fa-signal',
|
|
129
117
|
},
|
|
130
|
-
|
|
131
|
-
name: '
|
|
132
|
-
source: `${config.module}.
|
|
133
|
-
title: '@risk-management:risk-
|
|
134
|
-
titlePlural: '@risk-management:risk-
|
|
118
|
+
riskSeverityScale: {
|
|
119
|
+
name: 'RiskSeverityScale',
|
|
120
|
+
source: `${config.module}.RiskSeverityScale`,
|
|
121
|
+
title: '@risk-management:risk-severity-scales.entities.risk-severity-scale.title',
|
|
122
|
+
titlePlural: '@risk-management:risk-severity-scales.entities.risk-severity-scale.plural',
|
|
135
123
|
icon: 'fa-light fa-gauge-high',
|
|
136
124
|
},
|
|
137
|
-
|
|
138
|
-
name: '
|
|
139
|
-
source: `${config.module}.
|
|
140
|
-
title: '@risk-management:risk-
|
|
141
|
-
titlePlural: '@risk-management:risk-
|
|
125
|
+
riskRatingScale: {
|
|
126
|
+
name: 'RiskRatingScale',
|
|
127
|
+
source: `${config.module}.RiskRatingScale`,
|
|
128
|
+
title: '@risk-management:risk-rating-scales.entities.risk-rating-scale.title',
|
|
129
|
+
titlePlural: '@risk-management:risk-rating-scales.entities.risk-rating-scale.plural',
|
|
142
130
|
icon: 'fa-light fa-ranking-star',
|
|
143
131
|
},
|
|
144
|
-
|
|
145
|
-
name: '
|
|
146
|
-
source: `${config.module}.
|
|
147
|
-
title: '@risk-management:risk-
|
|
148
|
-
titlePlural: '@risk-management:risk-
|
|
132
|
+
riskMatrix: {
|
|
133
|
+
name: 'RiskMatrix',
|
|
134
|
+
source: `${config.module}.RiskMatrix`,
|
|
135
|
+
title: '@risk-management:risk-matrices.entities.risk-matrix.title',
|
|
136
|
+
titlePlural: '@risk-management:risk-matrices.entities.risk-matrix.plural',
|
|
149
137
|
icon: 'fa-light fa-table-cells',
|
|
150
138
|
},
|
|
151
139
|
},
|
|
152
140
|
};
|
|
153
141
|
//#endregion
|
|
154
142
|
|
|
143
|
+
//#region ---- Imports ----
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region ---- Manifest Definition ----
|
|
146
|
+
/**
|
|
147
|
+
* Risk Management module manifest.
|
|
148
|
+
*/
|
|
149
|
+
const RiskManagementManifest = {
|
|
150
|
+
name: RootConfig.module.name,
|
|
151
|
+
version: '1.0.0',
|
|
152
|
+
title: RootConfig.module.title,
|
|
153
|
+
icon: RootConfig.module.icon,
|
|
154
|
+
i18n: RootConfig.config.i18n,
|
|
155
|
+
type: 'domain',
|
|
156
|
+
domain: 'workplace-safety',
|
|
157
|
+
required: false,
|
|
158
|
+
};
|
|
159
|
+
//#endregion
|
|
160
|
+
|
|
161
|
+
//#region ----- Types -----
|
|
162
|
+
//#endregion
|
|
163
|
+
//#region ----- Helpers -----
|
|
164
|
+
/** Sorts levels by explicit `order`, then `score`, then array index. */
|
|
165
|
+
function sortRiskScaleLevels(levels) {
|
|
166
|
+
if (!Array.isArray(levels) || levels.length === 0) {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
return levels
|
|
170
|
+
.map((level, index) => ({ level, index }))
|
|
171
|
+
.sort((a, b) => {
|
|
172
|
+
const orderA = a.level.order ?? Number.POSITIVE_INFINITY;
|
|
173
|
+
const orderB = b.level.order ?? Number.POSITIVE_INFINITY;
|
|
174
|
+
if (orderA !== orderB) {
|
|
175
|
+
return orderA - orderB;
|
|
176
|
+
}
|
|
177
|
+
const valueA = a.level.score ?? Number.POSITIVE_INFINITY;
|
|
178
|
+
const valueB = b.level.score ?? Number.POSITIVE_INFINITY;
|
|
179
|
+
if (valueA !== valueB) {
|
|
180
|
+
return valueA - valueB;
|
|
181
|
+
}
|
|
182
|
+
return a.index - b.index;
|
|
183
|
+
})
|
|
184
|
+
.map(({ level }) => level);
|
|
185
|
+
}
|
|
186
|
+
/** Returns level codes in display order (skips items without code). */
|
|
187
|
+
function resolveRiskScaleLevelCodes(levels) {
|
|
188
|
+
return sortRiskScaleLevels(levels)
|
|
189
|
+
.map((level) => (level.code != null ? String(level.code).trim() : ''))
|
|
190
|
+
.filter((code) => code.length > 0);
|
|
191
|
+
}
|
|
192
|
+
//#endregion
|
|
193
|
+
|
|
194
|
+
//#region ----- Imports -----
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region ----- Level helpers -----
|
|
197
|
+
/** Sorts levels by explicit `order`, then `score`, then array index. */
|
|
198
|
+
function sortRiskLikelihoodLevels(levels) {
|
|
199
|
+
return sortRiskScaleLevels(levels);
|
|
200
|
+
}
|
|
201
|
+
/** Returns level codes in display order (skips items without code). */
|
|
202
|
+
function resolveRiskLikelihoodLevelCodes(levels) {
|
|
203
|
+
return resolveRiskScaleLevelCodes(levels);
|
|
204
|
+
}
|
|
205
|
+
//#endregion
|
|
206
|
+
|
|
207
|
+
//#region ---- Imports ----
|
|
208
|
+
//#endregion
|
|
209
|
+
|
|
210
|
+
//#region ---- Imports ----
|
|
211
|
+
//#endregion
|
|
212
|
+
//#region ---- Cell helpers ----
|
|
213
|
+
function normalizeLevelCode(value) {
|
|
214
|
+
return typeof value === 'string' ? value.trim() : value != null ? String(value).trim() : '';
|
|
215
|
+
}
|
|
216
|
+
function isRiskMatrixCellValueObject(value) {
|
|
217
|
+
if (value == null || typeof value !== 'object') {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
const cell = value;
|
|
221
|
+
return (normalizeLevelCode(cell['likelihoodLevelCode']).length > 0 &&
|
|
222
|
+
normalizeLevelCode(cell['severityLevelCode']).length > 0 &&
|
|
223
|
+
normalizeLevelCode(cell['ratingLevelCode']).length > 0);
|
|
224
|
+
}
|
|
225
|
+
function normalizeRiskMatrixCellValueObject(value) {
|
|
226
|
+
if (!isRiskMatrixCellValueObject(value)) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
likelihoodLevelCode: normalizeLevelCode(value.likelihoodLevelCode),
|
|
231
|
+
severityLevelCode: normalizeLevelCode(value.severityLevelCode),
|
|
232
|
+
ratingLevelCode: normalizeLevelCode(value.ratingLevelCode),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** Converts persisted cells into the spreadsheet shape used by the matrix widget. */
|
|
236
|
+
function toRiskMatrixSpreadsheetData(cells) {
|
|
237
|
+
const matrix = {};
|
|
238
|
+
(cells ?? []).forEach((cell) => {
|
|
239
|
+
const normalized = normalizeRiskMatrixCellValueObject(cell);
|
|
240
|
+
if (!normalized) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
matrix[normalized.likelihoodLevelCode] ??= {};
|
|
244
|
+
matrix[normalized.likelihoodLevelCode][normalized.severityLevelCode] = normalized.ratingLevelCode;
|
|
245
|
+
});
|
|
246
|
+
return matrix;
|
|
247
|
+
}
|
|
248
|
+
/** Converts spreadsheet values (likelihood × severity → rating) into cell value objects. */
|
|
249
|
+
function fromRiskMatrixSpreadsheetData(matrix) {
|
|
250
|
+
const cells = [];
|
|
251
|
+
Object.entries(matrix ?? {}).forEach(([likelihoodLevelCode, severityMap]) => {
|
|
252
|
+
const likelihoodCode = normalizeLevelCode(likelihoodLevelCode);
|
|
253
|
+
if (!likelihoodCode || severityMap == null) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
Object.entries(severityMap).forEach(([severityLevelCode, ratingLevelCode]) => {
|
|
257
|
+
const severityCode = normalizeLevelCode(severityLevelCode);
|
|
258
|
+
const ratingCode = normalizeLevelCode(ratingLevelCode);
|
|
259
|
+
if (!severityCode || !ratingCode) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
cells.push({
|
|
263
|
+
likelihoodLevelCode: likelihoodCode,
|
|
264
|
+
severityLevelCode: severityCode,
|
|
265
|
+
ratingLevelCode: ratingCode,
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
return cells;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Accepts persisted `cells` or a legacy nested spreadsheet object and returns cell value objects.
|
|
273
|
+
*/
|
|
274
|
+
function resolveRiskMatrixCells(value) {
|
|
275
|
+
if (Array.isArray(value)) {
|
|
276
|
+
return value
|
|
277
|
+
.map((cell) => normalizeRiskMatrixCellValueObject(cell))
|
|
278
|
+
.filter((cell) => cell != null);
|
|
279
|
+
}
|
|
280
|
+
if (value != null && typeof value === 'object') {
|
|
281
|
+
return fromRiskMatrixSpreadsheetData(value);
|
|
282
|
+
}
|
|
283
|
+
return [];
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Drops cells whose level codes are no longer on the selected scales.
|
|
287
|
+
* Persisted shape stays likelihood × severity → rating.
|
|
288
|
+
*/
|
|
289
|
+
function pruneRiskMatrixCells(cells, likelihoodCodes, severityCodes, ratingCodes) {
|
|
290
|
+
const likelihoodSet = likelihoodCodes.length > 0 ? new Set(likelihoodCodes) : null;
|
|
291
|
+
const severitySet = severityCodes.length > 0 ? new Set(severityCodes) : null;
|
|
292
|
+
const ratingSet = ratingCodes != null && ratingCodes.length > 0 ? new Set(ratingCodes) : null;
|
|
293
|
+
return (cells ?? []).filter((cell) => {
|
|
294
|
+
const normalized = normalizeRiskMatrixCellValueObject(cell);
|
|
295
|
+
if (!normalized) {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
if (likelihoodSet && !likelihoodSet.has(normalized.likelihoodLevelCode)) {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
if (severitySet && !severitySet.has(normalized.severityLevelCode)) {
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
if (ratingSet && !ratingSet.has(normalized.ratingLevelCode)) {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
return true;
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
//#endregion
|
|
311
|
+
|
|
312
|
+
//#region ---- Imports ----
|
|
155
313
|
//#endregion
|
|
156
314
|
|
|
315
|
+
//#region ----- Imports -----
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region ----- Level helpers -----
|
|
318
|
+
/** Sorts levels by explicit `order`, then `score`, then array index. */
|
|
319
|
+
function sortRiskRatingLevels(levels) {
|
|
320
|
+
return sortRiskScaleLevels(levels);
|
|
321
|
+
}
|
|
322
|
+
/** Returns level codes in display order (skips items without code). */
|
|
323
|
+
function resolveRiskRatingLevelCodes(levels) {
|
|
324
|
+
return resolveRiskScaleLevelCodes(levels);
|
|
325
|
+
}
|
|
326
|
+
//#endregion
|
|
327
|
+
|
|
328
|
+
//#region ---- Imports ----
|
|
157
329
|
//#endregion
|
|
158
330
|
|
|
331
|
+
//#region ----- Imports -----
|
|
332
|
+
//#endregion
|
|
333
|
+
//#region ----- Level helpers -----
|
|
334
|
+
/** Sorts levels by explicit `order`, then `score`, then array index. */
|
|
335
|
+
function sortRiskSeverityLevels(levels) {
|
|
336
|
+
return sortRiskScaleLevels(levels);
|
|
337
|
+
}
|
|
338
|
+
/** Returns level codes in display order (skips items without code). */
|
|
339
|
+
function resolveRiskSeverityLevelCodes(levels) {
|
|
340
|
+
return resolveRiskScaleLevelCodes(levels);
|
|
341
|
+
}
|
|
159
342
|
//#endregion
|
|
160
343
|
|
|
344
|
+
//#region ---- Imports ----
|
|
161
345
|
//#endregion
|
|
162
346
|
|
|
163
347
|
//#region ---- Contracts barrel ----
|
|
@@ -166,5 +350,5 @@ const RootConfig = {
|
|
|
166
350
|
* Generated bundle index. Do not edit.
|
|
167
351
|
*/
|
|
168
352
|
|
|
169
|
-
export { AXMRiskManagementMenuKeys, AXMRiskManagementPermissionKeys, AXPSafetyRiskPermissionKeys, DEFAULT_RISK_MATRIX_AXIS_MAPPING, DEFAULT_RISK_MATRIX_ORIENTATION, RISK_CATALOG_SCOPE_HAZARD, RISK_CATALOG_SCOPE_PPE_ITEMS, RISK_MATRIX_AXIS_PROPERTIES,
|
|
353
|
+
export { AXMRiskManagementMenuKeys, AXMRiskManagementPermissionKeys, AXPSafetyRiskPermissionKeys, DEFAULT_RISK_MATRIX_AXIS_MAPPING, DEFAULT_RISK_MATRIX_ORIENTATION, RISK_CATALOG_SCOPE_HAZARD, RISK_CATALOG_SCOPE_PPE_ITEMS, RISK_MATRIX_AXIS_PROPERTIES, RISK_MATRIX_ORIENTATION_OPTIONS, RISK_MATRIX_ORIENTATION_TITLE_KEYS, RiskManagementManifest, RootConfig, fromRiskMatrixSpreadsheetData, isRiskMatrixCellValueObject, normalizeRiskMatrixCellValueObject, pruneRiskMatrixCells, resolveRiskLikelihoodLevelCodes, resolveRiskMatrixCells, resolveRiskRatingLevelCodes, resolveRiskSeverityLevelCodes, sortRiskLikelihoodLevels, sortRiskRatingLevels, sortRiskSeverityLevels, toRiskMatrixSpreadsheetData };
|
|
170
354
|
//# sourceMappingURL=acorex-platform-module-risk-management-client-contracts.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-risk-management-client-contracts.mjs","sources":["../../../../libs/modules/risk-management/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/risk-management/contracts/src/menu.keys.ts","../../../../libs/modules/risk-management/contracts/src/permission.keys.ts","../../../../libs/modules/risk-management/contracts/src/risk-matrix-axis-mapping.ts","../../../../libs/modules/risk-management/contracts/src/root-config.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-likelihood/risk-likelihood.types.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-matrix-cell/risk-matrix-cell.types.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-rating/risk-rating.types.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-severity/risk-severity.types.ts","../../../../libs/modules/risk-management/contracts/src/index.ts","../../../../libs/modules/risk-management/contracts/src/acorex-platform-module-risk-management-client-contracts.ts"],"sourcesContent":["/** Hazard catalog scope for environmental and operational risk matrix records. */\nexport const RISK_CATALOG_SCOPE_HAZARD = 'risk-management.hazard';\n\n/** PPE items catalog scope for personal protective equipment risk matrices. */\nexport const RISK_CATALOG_SCOPE_PPE_ITEMS = 'risk-management.ppe-items';\n","export const AXMRiskManagementMenuKeys = {\n Root: 'RiskManagement:Menu:Root',\n RiskLikelihoods: 'RiskManagement:Menu:RiskLikelihoods',\n RiskSeverities: 'RiskManagement:Menu:RiskSeverities',\n RiskRatings: 'RiskManagement:Menu:RiskRatings',\n RiskMatrixCells: 'RiskManagement:Menu:RiskMatrixCells',\n} as const;\n","/**\n * Safety & Risk capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPSafetyRiskPermissionKeys = {\n Access: 'SafetyRisk:Permission:Access',\n MaintainSafety: 'SafetyRisk:Permission:MaintainSafety',\n MaintainRisk: 'SafetyRisk:Permission:MaintainRisk',\n MaintainHealth: 'SafetyRisk:Permission:MaintainHealth',\n MaintainAssessments: 'SafetyRisk:Permission:MaintainAssessments',\n Setup: 'SafetyRisk:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPSafetyRiskPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMRiskManagementPermissionKeys = {\n RiskManagement: {\n Management: AXPSafetyRiskPermissionKeys.MaintainRisk,\n\n RiskLikelihood: {\n Management: AXPSafetyRiskPermissionKeys.Setup,\n View: AXPSafetyRiskPermissionKeys.Setup,\n Create: AXPSafetyRiskPermissionKeys.Setup,\n Update: AXPSafetyRiskPermissionKeys.Setup,\n Delete: AXPSafetyRiskPermissionKeys.Setup,\n },\n RiskSeverity: {\n Management: AXPSafetyRiskPermissionKeys.Setup,\n View: AXPSafetyRiskPermissionKeys.Setup,\n Create: AXPSafetyRiskPermissionKeys.Setup,\n Update: AXPSafetyRiskPermissionKeys.Setup,\n Delete: AXPSafetyRiskPermissionKeys.Setup,\n },\n RiskRating: {\n Management: AXPSafetyRiskPermissionKeys.Setup,\n View: AXPSafetyRiskPermissionKeys.Setup,\n Create: AXPSafetyRiskPermissionKeys.Setup,\n Update: AXPSafetyRiskPermissionKeys.Setup,\n Delete: AXPSafetyRiskPermissionKeys.Setup,\n },\n RiskMatrixCell: {\n Management: AXPSafetyRiskPermissionKeys.MaintainRisk,\n View: AXPSafetyRiskPermissionKeys.MaintainRisk,\n Create: AXPSafetyRiskPermissionKeys.MaintainRisk,\n Update: AXPSafetyRiskPermissionKeys.MaintainRisk,\n Delete: AXPSafetyRiskPermissionKeys.MaintainRisk,\n },\n },\n} as const;\n","//#region ---- Types ----\n\n/** Lookup properties on RiskMatrixCell that can be assigned to matrix axes. */\nexport type AXMRiskMatrixAxisProperty = 'likelihoodId' | 'severityId' | 'riskRatingId';\n\nexport interface AXMRiskMatrixAxisMapping {\n rowProperty: AXMRiskMatrixAxisProperty;\n columnProperty: AXMRiskMatrixAxisProperty;\n depthProperty: AXMRiskMatrixAxisProperty;\n}\n\nexport type AXMRiskMatrixOrientation = 'likelihood-rows' | 'severity-rows';\n\n//#endregion\n\n//#region ---- Constants ----\n\nexport const RISK_MATRIX_AXIS_PROPERTIES: readonly AXMRiskMatrixAxisProperty[] = [\n 'likelihoodId',\n 'severityId',\n 'riskRatingId',\n] as const;\n\nexport const DEFAULT_RISK_MATRIX_AXIS_MAPPING: AXMRiskMatrixAxisMapping = {\n rowProperty: 'likelihoodId',\n columnProperty: 'severityId',\n depthProperty: 'riskRatingId',\n};\n\nexport const RISK_MATRIX_AXIS_PROPERTY_SELECT_OPTIONS = [\n {\n id: 'likelihoodId',\n title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.likelihood-id.title',\n },\n {\n id: 'severityId',\n title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.severity-id.title',\n },\n {\n id: 'riskRatingId',\n title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.risk-rating-id.title',\n },\n] as const;\n\nexport const DEFAULT_RISK_MATRIX_ORIENTATION: AXMRiskMatrixOrientation = 'likelihood-rows';\n\nexport const RISK_MATRIX_ORIENTATION_OPTIONS: Array<{ id: AXMRiskMatrixOrientation; title: string }> = [\n {\n id: 'likelihood-rows',\n title:\n '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.matrix-orientation.options.likelihood-rows',\n },\n {\n id: 'severity-rows',\n title:\n '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.matrix-orientation.options.severity-rows',\n },\n];\n\nexport const RISK_MATRIX_ORIENTATION_TITLE_KEYS: Record<AXMRiskMatrixOrientation, string> = {\n 'likelihood-rows': '@risk-management:risk-matrix-cells.components.risk-matrix.titles.likelihood-rows',\n 'severity-rows': '@risk-management:risk-matrix-cells.components.risk-matrix.titles.severity-rows',\n};\n\n//#endregion\n","//#region ---- Root Configuration ----\n\nconst config = {\n i18n: 'risk-management',\n module: 'RiskManagement',\n route: 'risk-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: config.route,\n name: config.module,\n title: '@risk-management:module.title',\n icon: 'fa-light fa-chart-line',\n },\n entities: {\n riskLikelihood: {\n name: 'RiskLikelihood',\n source: `${config.module}.RiskLikelihood`,\n title: '@risk-management:risk-likelihoods.entities.risk-likelihood.title',\n titlePlural: '@risk-management:risk-likelihoods.entities.risk-likelihood.plural',\n icon: 'fa-light fa-signal',\n },\n riskSeverity: {\n name: 'RiskSeverity',\n source: `${config.module}.RiskSeverity`,\n title: '@risk-management:risk-severities.entities.risk-severity.title',\n titlePlural: '@risk-management:risk-severities.entities.risk-severity.plural',\n icon: 'fa-light fa-gauge-high',\n },\n riskRating: {\n name: 'RiskRating',\n source: `${config.module}.RiskRating`,\n title: '@risk-management:risk-ratings.entities.risk-rating.title',\n titlePlural: '@risk-management:risk-ratings.entities.risk-rating.plural',\n icon: 'fa-light fa-ranking-star',\n },\n riskMatrixCell: {\n name: 'RiskMatrixCell',\n source: `${config.module}.RiskMatrixCell`,\n title: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.title',\n titlePlural: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.plural',\n icon: 'fa-light fa-table-cells',\n },\n },\n};\n\n//#endregion\n","import { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskLikelihoodEntityModel extends AXPEntityModel<string> {\n code: string;\n title: string;\n description?: string;\n levelValue: number;\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","import { AXPCategoryListItem, AXPMultiLanguageString, type AXPSpreadsheetData, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskMatrixCellEntityModel extends AXPEntityModel<string> {\n /** Business code from identifier rule `risk-matrix-cell-code` (`RMC-{date:YYYY}-{seq:4}`). */\n code: string;\n title: string;\n likelihoodIds: string[];\n likelihoodList?: Array<{ id: string; title?: string; code?: string }>;\n /** @deprecated Use `likelihoodIds`. Kept so existing documents still resolve in widgets. */\n likelihoodId?: string[];\n severityIds: string[];\n severityList?: Array<{ id: string; title?: string; code?: string }>;\n /** @deprecated Use `severityIds`. Kept so existing documents still resolve in widgets. */\n severityId?: string[];\n /** Likelihood rows × severity columns mapped to risk rating ids. */\n matrix?: AXPSpreadsheetData;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n /** Registered catalog scope keys (module providers). */\n catalogScopeKeys?: string[];\n /** Resolved scope labels for list display (enriched by catalog-scope resolver middleware). */\n catalogScopes?: Array<{ name: string; title: AXPMultiLanguageString | string; cssClass?: string }>;\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","import { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskRatingEntityModel extends AXPEntityModel<string> {\n /** Business code from identifier rule `risk-rating-code` (`RR-{date:YYYY}-{seq:4}`). */\n code: string;\n title: string;\n description?: string;\n levelValue: number;\n /** Surface CSS class from `color-chooser` (`success-lighter-surface` or `axp-hex-4caf50`). */\n color?: string;\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","import { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskSeverityEntityModel extends AXPEntityModel<string> {\n code: string;\n title: string;\n description?: string;\n levelValue: number;\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './risk-matrix-axis-mapping';\nexport * from './root-config';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-risk-management-client-contracts.mjs","sources":["../../../../libs/modules/risk-management/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/risk-management/contracts/src/menu.keys.ts","../../../../libs/modules/risk-management/contracts/src/permission.keys.ts","../../../../libs/modules/risk-management/contracts/src/risk-matrix-axis-mapping.ts","../../../../libs/modules/risk-management/contracts/src/root-config.ts","../../../../libs/modules/risk-management/contracts/src/manifest.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-scale-level.util.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-likelihood-scale/risk-likelihood-level.util.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-likelihood-scale/risk-likelihood-scale.types.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-matrix/risk-matrix-cells.util.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-matrix/risk-matrix.types.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-rating-scale/risk-rating-level.util.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-rating-scale/risk-rating-scale.types.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-severity-scale/risk-severity-level.util.ts","../../../../libs/modules/risk-management/contracts/src/entities/risk-severity-scale/risk-severity-scale.types.ts","../../../../libs/modules/risk-management/contracts/src/index.ts","../../../../libs/modules/risk-management/contracts/src/acorex-platform-module-risk-management-client-contracts.ts"],"sourcesContent":["/** Hazard catalog scope for environmental and operational risk matrix records. */\nexport const RISK_CATALOG_SCOPE_HAZARD = 'risk-management.hazard';\n\n/** PPE items catalog scope for personal protective equipment risk matrices. */\nexport const RISK_CATALOG_SCOPE_PPE_ITEMS = 'risk-management.ppe-items';\n","export const AXMRiskManagementMenuKeys = {\n Root: 'RiskManagement:Menu:Root',\n RiskLikelihoodScales: 'RiskManagement:Menu:RiskLikelihoodScales',\n RiskSeverityScales: 'RiskManagement:Menu:RiskSeverityScales',\n RiskRatingScales: 'RiskManagement:Menu:RiskRatingScales',\n RiskMatrices: 'RiskManagement:Menu:RiskMatrices',\n} as const;\n","/**\n * Safety & Risk capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPSafetyRiskPermissionKeys = {\n Access: 'SafetyRisk:Permission:Access',\n MaintainSafety: 'SafetyRisk:Permission:MaintainSafety',\n MaintainRisk: 'SafetyRisk:Permission:MaintainRisk',\n MaintainHealth: 'SafetyRisk:Permission:MaintainHealth',\n MaintainAssessments: 'SafetyRisk:Permission:MaintainAssessments',\n Setup: 'SafetyRisk:Permission:Setup',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPSafetyRiskPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMRiskManagementPermissionKeys = {\n RiskManagement: {\n Management: AXPSafetyRiskPermissionKeys.MaintainRisk,\n\n RiskLikelihoodScale: {\n Management: AXPSafetyRiskPermissionKeys.Setup,\n View: AXPSafetyRiskPermissionKeys.Setup,\n Create: AXPSafetyRiskPermissionKeys.Setup,\n Update: AXPSafetyRiskPermissionKeys.Setup,\n Delete: AXPSafetyRiskPermissionKeys.Setup,\n },\n RiskSeverityScale: {\n Management: AXPSafetyRiskPermissionKeys.Setup,\n View: AXPSafetyRiskPermissionKeys.Setup,\n Create: AXPSafetyRiskPermissionKeys.Setup,\n Update: AXPSafetyRiskPermissionKeys.Setup,\n Delete: AXPSafetyRiskPermissionKeys.Setup,\n },\n RiskRatingScale: {\n Management: AXPSafetyRiskPermissionKeys.Setup,\n View: AXPSafetyRiskPermissionKeys.Setup,\n Create: AXPSafetyRiskPermissionKeys.Setup,\n Update: AXPSafetyRiskPermissionKeys.Setup,\n Delete: AXPSafetyRiskPermissionKeys.Setup,\n },\n RiskMatrix: {\n Management: AXPSafetyRiskPermissionKeys.MaintainRisk,\n View: AXPSafetyRiskPermissionKeys.MaintainRisk,\n Create: AXPSafetyRiskPermissionKeys.MaintainRisk,\n Update: AXPSafetyRiskPermissionKeys.MaintainRisk,\n Delete: AXPSafetyRiskPermissionKeys.MaintainRisk,\n },\n },\n} as const;\n","//#region ----- Types -----\n\n/** Spreadsheet axis slots. Values are display keys, not RiskMatrix FK field names. */\nexport type AXMRiskMatrixAxisProperty = 'likelihoodId' | 'severityId' | 'riskRatingId';\n\nexport interface AXMRiskMatrixAxisMapping {\n rowProperty: AXMRiskMatrixAxisProperty;\n columnProperty: AXMRiskMatrixAxisProperty;\n depthProperty: AXMRiskMatrixAxisProperty;\n}\n\nexport type AXMRiskMatrixOrientation = 'likelihood-rows' | 'severity-rows';\n\n//#endregion\n\n//#region ----- Constants -----\n\nexport const RISK_MATRIX_AXIS_PROPERTIES: readonly AXMRiskMatrixAxisProperty[] = [\n 'likelihoodId',\n 'severityId',\n 'riskRatingId',\n] as const;\n\nexport const DEFAULT_RISK_MATRIX_AXIS_MAPPING: AXMRiskMatrixAxisMapping = {\n rowProperty: 'likelihoodId',\n columnProperty: 'severityId',\n depthProperty: 'riskRatingId',\n};\n\nconst I18N_RISK_MATRIX_ENTITY = '@risk-management:risk-matrices.entities.risk-matrix';\nconst I18N_RISK_MATRIX_COMPONENT = '@risk-management:risk-matrices.components.risk-matrix';\n\nexport const DEFAULT_RISK_MATRIX_ORIENTATION: AXMRiskMatrixOrientation = 'likelihood-rows';\n\nexport const RISK_MATRIX_ORIENTATION_OPTIONS: Array<{ id: AXMRiskMatrixOrientation; title: string }> = [\n {\n id: 'likelihood-rows',\n title: `${I18N_RISK_MATRIX_ENTITY}.fields.matrix-orientation.options.likelihood-rows`,\n },\n {\n id: 'severity-rows',\n title: `${I18N_RISK_MATRIX_ENTITY}.fields.matrix-orientation.options.severity-rows`,\n },\n];\n\nexport const RISK_MATRIX_ORIENTATION_TITLE_KEYS: Record<AXMRiskMatrixOrientation, string> = {\n 'likelihood-rows': `${I18N_RISK_MATRIX_COMPONENT}.titles.likelihood-rows`,\n 'severity-rows': `${I18N_RISK_MATRIX_COMPONENT}.titles.severity-rows`,\n};\n\n//#endregion\n","//#region ---- Root Configuration ----\n\nconst config = {\n i18n: 'risk-management',\n module: 'RiskManagement',\n route: 'risk-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: config.route,\n name: config.module,\n title: '@risk-management:module.title',\n icon: 'fa-light fa-chart-line',\n },\n entities: {\n riskLikelihoodScale: {\n name: 'RiskLikelihoodScale',\n source: `${config.module}.RiskLikelihoodScale`,\n title: '@risk-management:risk-likelihood-scales.entities.risk-likelihood-scale.title',\n titlePlural: '@risk-management:risk-likelihood-scales.entities.risk-likelihood-scale.plural',\n icon: 'fa-light fa-signal',\n },\n riskSeverityScale: {\n name: 'RiskSeverityScale',\n source: `${config.module}.RiskSeverityScale`,\n title: '@risk-management:risk-severity-scales.entities.risk-severity-scale.title',\n titlePlural: '@risk-management:risk-severity-scales.entities.risk-severity-scale.plural',\n icon: 'fa-light fa-gauge-high',\n },\n riskRatingScale: {\n name: 'RiskRatingScale',\n source: `${config.module}.RiskRatingScale`,\n title: '@risk-management:risk-rating-scales.entities.risk-rating-scale.title',\n titlePlural: '@risk-management:risk-rating-scales.entities.risk-rating-scale.plural',\n icon: 'fa-light fa-ranking-star',\n },\n riskMatrix: {\n name: 'RiskMatrix',\n source: `${config.module}.RiskMatrix`,\n title: '@risk-management:risk-matrices.entities.risk-matrix.title',\n titlePlural: '@risk-management:risk-matrices.entities.risk-matrix.plural',\n icon: 'fa-light fa-table-cells',\n },\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Risk Management module manifest.\n */\nexport const RiskManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'domain',\n domain: 'workplace-safety',\n required: false,\n};\n\n//#endregion\n","//#region ----- Types -----\n\n/** Shared sortable fields present on likelihood, severity, and rating scale levels. */\nexport interface AXMRiskScaleLevelSortable {\n id?: string;\n code?: string;\n score?: number;\n order?: number;\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\n/** Sorts levels by explicit `order`, then `score`, then array index. */\nexport function sortRiskScaleLevels<T extends AXMRiskScaleLevelSortable>(\n levels: T[] | null | undefined,\n): T[] {\n if (!Array.isArray(levels) || levels.length === 0) {\n return [];\n }\n\n return levels\n .map((level, index) => ({ level, index }))\n .sort((a, b) => {\n const orderA = a.level.order ?? Number.POSITIVE_INFINITY;\n const orderB = b.level.order ?? Number.POSITIVE_INFINITY;\n if (orderA !== orderB) {\n return orderA - orderB;\n }\n\n const valueA = a.level.score ?? Number.POSITIVE_INFINITY;\n const valueB = b.level.score ?? Number.POSITIVE_INFINITY;\n if (valueA !== valueB) {\n return valueA - valueB;\n }\n\n return a.index - b.index;\n })\n .map(({ level }) => level);\n}\n\n/** Returns level codes in display order (skips items without code). */\nexport function resolveRiskScaleLevelCodes<T extends AXMRiskScaleLevelSortable>(\n levels: T[] | null | undefined,\n): string[] {\n return sortRiskScaleLevels(levels)\n .map((level) => (level.code != null ? String(level.code).trim() : ''))\n .filter((code) => code.length > 0);\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { resolveRiskScaleLevelCodes, sortRiskScaleLevels } from '../risk-scale-level.util';\nimport type { AXMRiskLikelihoodLevelItemModel } from './risk-likelihood-scale.types';\n\n//#endregion\n\n//#region ----- Level helpers -----\n\n/** Sorts levels by explicit `order`, then `score`, then array index. */\nexport function sortRiskLikelihoodLevels(\n levels: AXMRiskLikelihoodLevelItemModel[] | null | undefined,\n): AXMRiskLikelihoodLevelItemModel[] {\n return sortRiskScaleLevels(levels);\n}\n\n/** Returns level codes in display order (skips items without code). */\nexport function resolveRiskLikelihoodLevelCodes(\n levels: AXMRiskLikelihoodLevelItemModel[] | null | undefined,\n): string[] {\n return resolveRiskScaleLevelCodes(levels);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ---- Level item model ----\n\n/**\n * Likelihood scale level managed via repeater on {@link AXMRiskManagementRiskLikelihoodScaleEntityModel}.\n * Stable `id` values remain on levels for other lookups; matrix cells key by `code`.\n */\nexport interface AXMRiskLikelihoodLevelItemModel {\n id?: string;\n /** Level code used as the risk-matrix axis / cell key. */\n code?: string;\n title: string;\n score: number;\n /**\n * Optional explicit order. When omitted, repeater array index defines order\n * (`RepeaterLayout` + `allowReorder`).\n */\n order?: number;\n}\n\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskLikelihoodScaleEntityModel extends AXPEntityModel<string> {\n /** Business code from identifier rule `risk-likelihood-scale-code` (`RLS-{date:YYYY}-{seq:4}`). */\n code: string;\n title: string;\n description?: string;\n /** Likelihood levels managed via repeater. */\n levels: AXMRiskLikelihoodLevelItemModel[];\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXPSpreadsheetData } from '@acorex-platform/framework-shared/core';\n\nimport type { AXMRiskMatrixCellValueObject } from './risk-matrix.types';\n\n//#endregion\n\n//#region ---- Cell helpers ----\n\nfunction normalizeLevelCode(value: unknown): string {\n return typeof value === 'string' ? value.trim() : value != null ? String(value).trim() : '';\n}\n\nexport function isRiskMatrixCellValueObject(value: unknown): value is AXMRiskMatrixCellValueObject {\n if (value == null || typeof value !== 'object') {\n return false;\n }\n\n const cell = value as Record<string, unknown>;\n return (\n normalizeLevelCode(cell['likelihoodLevelCode']).length > 0 &&\n normalizeLevelCode(cell['severityLevelCode']).length > 0 &&\n normalizeLevelCode(cell['ratingLevelCode']).length > 0\n );\n}\n\nexport function normalizeRiskMatrixCellValueObject(\n value: unknown,\n): AXMRiskMatrixCellValueObject | null {\n if (!isRiskMatrixCellValueObject(value)) {\n return null;\n }\n\n return {\n likelihoodLevelCode: normalizeLevelCode(value.likelihoodLevelCode),\n severityLevelCode: normalizeLevelCode(value.severityLevelCode),\n ratingLevelCode: normalizeLevelCode(value.ratingLevelCode),\n };\n}\n\n/** Converts persisted cells into the spreadsheet shape used by the matrix widget. */\nexport function toRiskMatrixSpreadsheetData(\n cells: AXMRiskMatrixCellValueObject[] | null | undefined,\n): AXPSpreadsheetData {\n const matrix: AXPSpreadsheetData = {};\n\n (cells ?? []).forEach((cell) => {\n const normalized = normalizeRiskMatrixCellValueObject(cell);\n if (!normalized) {\n return;\n }\n\n matrix[normalized.likelihoodLevelCode] ??= {};\n matrix[normalized.likelihoodLevelCode][normalized.severityLevelCode] = normalized.ratingLevelCode;\n });\n\n return matrix;\n}\n\n/** Converts spreadsheet values (likelihood × severity → rating) into cell value objects. */\nexport function fromRiskMatrixSpreadsheetData(\n matrix: AXPSpreadsheetData | null | undefined,\n): AXMRiskMatrixCellValueObject[] {\n const cells: AXMRiskMatrixCellValueObject[] = [];\n\n Object.entries(matrix ?? {}).forEach(([likelihoodLevelCode, severityMap]) => {\n const likelihoodCode = normalizeLevelCode(likelihoodLevelCode);\n if (!likelihoodCode || severityMap == null) {\n return;\n }\n\n Object.entries(severityMap).forEach(([severityLevelCode, ratingLevelCode]) => {\n const severityCode = normalizeLevelCode(severityLevelCode);\n const ratingCode = normalizeLevelCode(ratingLevelCode);\n if (!severityCode || !ratingCode) {\n return;\n }\n\n cells.push({\n likelihoodLevelCode: likelihoodCode,\n severityLevelCode: severityCode,\n ratingLevelCode: ratingCode,\n });\n });\n });\n\n return cells;\n}\n\n/**\n * Accepts persisted `cells` or a legacy nested spreadsheet object and returns cell value objects.\n */\nexport function resolveRiskMatrixCells(value: unknown): AXMRiskMatrixCellValueObject[] {\n if (Array.isArray(value)) {\n return value\n .map((cell) => normalizeRiskMatrixCellValueObject(cell))\n .filter((cell): cell is AXMRiskMatrixCellValueObject => cell != null);\n }\n\n if (value != null && typeof value === 'object') {\n return fromRiskMatrixSpreadsheetData(value as AXPSpreadsheetData);\n }\n\n return [];\n}\n\n/**\n * Drops cells whose level codes are no longer on the selected scales.\n * Persisted shape stays likelihood × severity → rating.\n */\nexport function pruneRiskMatrixCells(\n cells: AXMRiskMatrixCellValueObject[] | null | undefined,\n likelihoodCodes: string[],\n severityCodes: string[],\n ratingCodes?: string[],\n): AXMRiskMatrixCellValueObject[] {\n const likelihoodSet = likelihoodCodes.length > 0 ? new Set(likelihoodCodes) : null;\n const severitySet = severityCodes.length > 0 ? new Set(severityCodes) : null;\n const ratingSet = ratingCodes != null && ratingCodes.length > 0 ? new Set(ratingCodes) : null;\n\n return (cells ?? []).filter((cell) => {\n const normalized = normalizeRiskMatrixCellValueObject(cell);\n if (!normalized) {\n return false;\n }\n\n if (likelihoodSet && !likelihoodSet.has(normalized.likelihoodLevelCode)) {\n return false;\n }\n if (severitySet && !severitySet.has(normalized.severityLevelCode)) {\n return false;\n }\n if (ratingSet && !ratingSet.has(normalized.ratingLevelCode)) {\n return false;\n }\n\n return true;\n });\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCategoryListItem, AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\nimport type { AXMRiskMatrixOrientation } from '../../risk-matrix-axis-mapping';\nimport type { AXMRiskLikelihoodLevelItemModel } from '../risk-likelihood-scale/risk-likelihood-scale.types';\nimport type { AXMRiskRatingLevelItemModel } from '../risk-rating-scale/risk-rating-scale.types';\nimport type { AXMRiskSeverityLevelItemModel } from '../risk-severity-scale/risk-severity-scale.types';\n\n//#endregion\n\n//#region ---- Nested lookup snapshots ----\n\n/** Lookup expose snapshot for a selected scale (`levels` drive matrix axes). */\nexport interface AXMRiskMatrixScaleRef<TLevel> {\n id?: string;\n title?: string;\n code?: string;\n levels?: TLevel[];\n}\n\n//#endregion\n\n//#region ---- Cell value object ----\n\n/**\n * One matrix cell keyed by selected-scale **level codes** (not scale entities or level ids).\n */\nexport interface AXMRiskMatrixCellValueObject {\n likelihoodLevelCode: string;\n severityLevelCode: string;\n ratingLevelCode: string;\n}\n\n/** Alias matching the design name {@link AXMRiskMatrixCellValueObject}. */\nexport type RiskMatrixCellValueObject = AXMRiskMatrixCellValueObject;\n\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskMatrixEntityModel extends AXPEntityModel<string> {\n /** Business code from identifier rule `risk-matrix-code` (`RMC-{date:YYYY}-{seq:4}`). */\n code: string;\n title: string;\n description?: string;\n /** Controls spreadsheet row/column layout only. Persisted `cells` stay likelihood × severity. */\n matrixOrientation?: AXMRiskMatrixOrientation;\n /** Selected likelihood scale that supplies axis levels. */\n likelihoodScaleId: string;\n likelihoodScale?: AXMRiskMatrixScaleRef<AXMRiskLikelihoodLevelItemModel>;\n /** Selected severity scale that supplies axis levels. */\n severityScaleId: string;\n severityScale?: AXMRiskMatrixScaleRef<AXMRiskSeverityLevelItemModel>;\n /** Selected rating scale that supplies cell-value levels. */\n ratingScaleId: string;\n ratingScale?: AXMRiskMatrixScaleRef<AXMRiskRatingLevelItemModel>;\n /** Likelihood × severity combinations mapped to rating level codes. */\n cells: AXMRiskMatrixCellValueObject[];\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n /** Registered catalog scope keys (module providers). */\n catalogScopeKeys?: string[];\n /** Resolved scope labels for list display (enriched by catalog-scope resolver middleware). */\n catalogScopes?: Array<{ name: string; title: AXPMultiLanguageString | string; cssClass?: string }>;\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { resolveRiskScaleLevelCodes, sortRiskScaleLevels } from '../risk-scale-level.util';\nimport type { AXMRiskRatingLevelItemModel } from './risk-rating-scale.types';\n\n//#endregion\n\n//#region ----- Level helpers -----\n\n/** Sorts levels by explicit `order`, then `score`, then array index. */\nexport function sortRiskRatingLevels(\n levels: AXMRiskRatingLevelItemModel[] | null | undefined,\n): AXMRiskRatingLevelItemModel[] {\n return sortRiskScaleLevels(levels);\n}\n\n/** Returns level codes in display order (skips items without code). */\nexport function resolveRiskRatingLevelCodes(\n levels: AXMRiskRatingLevelItemModel[] | null | undefined,\n): string[] {\n return resolveRiskScaleLevelCodes(levels);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ---- Level item model ----\n\n/**\n * Rating scale level managed via repeater on {@link AXMRiskManagementRiskRatingScaleEntityModel}.\n * Stable `id` values remain on levels for other lookups; matrix cells key by `code`.\n */\nexport interface AXMRiskRatingLevelItemModel {\n id?: string;\n /** Level code used as the risk-matrix cell rating value. */\n code?: string;\n title: string;\n score: number;\n /** Surface CSS class from `color-chooser` (`success-lighter-surface` or `axp-hex-4caf50`). */\n color?: string;\n /**\n * Optional explicit order. When omitted, repeater array index defines order\n * (`RepeaterLayout` + `allowReorder`).\n */\n order?: number;\n}\n\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskRatingScaleEntityModel extends AXPEntityModel<string> {\n /** Business code from identifier rule `risk-rating-scale-code` (`RRS-{date:YYYY}-{seq:4}`). */\n code: string;\n title: string;\n description?: string;\n /** Rating levels managed via repeater. */\n levels: AXMRiskRatingLevelItemModel[];\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { resolveRiskScaleLevelCodes, sortRiskScaleLevels } from '../risk-scale-level.util';\nimport type { AXMRiskSeverityLevelItemModel } from './risk-severity-scale.types';\n\n//#endregion\n\n//#region ----- Level helpers -----\n\n/** Sorts levels by explicit `order`, then `score`, then array index. */\nexport function sortRiskSeverityLevels(\n levels: AXMRiskSeverityLevelItemModel[] | null | undefined,\n): AXMRiskSeverityLevelItemModel[] {\n return sortRiskScaleLevels(levels);\n}\n\n/** Returns level codes in display order (skips items without code). */\nexport function resolveRiskSeverityLevelCodes(\n levels: AXMRiskSeverityLevelItemModel[] | null | undefined,\n): string[] {\n return resolveRiskScaleLevelCodes(levels);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#endregion\n\n//#region ---- Level item model ----\n\n/**\n * Severity scale level managed via repeater on {@link AXMRiskManagementRiskSeverityScaleEntityModel}.\n * Stable `id` values remain on levels for other lookups; matrix cells key by `code`.\n */\nexport interface AXMRiskSeverityLevelItemModel {\n id?: string;\n /** Level code used as the risk-matrix axis / cell key. */\n code?: string;\n title: string;\n score: number;\n /**\n * Optional explicit order. When omitted, repeater array index defines order\n * (`RepeaterLayout` + `allowReorder`).\n */\n order?: number;\n}\n\n//#endregion\n\n//#region ---- Entity model ----\n\nexport interface AXMRiskManagementRiskSeverityScaleEntityModel extends AXPEntityModel<string> {\n /** Business code from identifier rule `risk-severity-scale-code` (`RSS-{date:YYYY}-{seq:4}`). */\n code: string;\n title: string;\n description?: string;\n /** Severity levels managed via repeater. */\n levels: AXMRiskSeverityLevelItemModel[];\n isArchived?: boolean;\n archivedAt?: Date | string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './risk-matrix-axis-mapping';\nexport * from './root-config';\nexport * from './manifest';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,10 @@ function provideRiskManagementLocalEntities() {
|
|
|
15
15
|
return provideLocalEntityCatalog({
|
|
16
16
|
moduleName: RootConfig.module.name,
|
|
17
17
|
loaders: {
|
|
18
|
-
[RootConfig.entities.
|
|
19
|
-
[RootConfig.entities.
|
|
20
|
-
[RootConfig.entities.
|
|
21
|
-
[RootConfig.entities.
|
|
18
|
+
[RootConfig.entities.riskLikelihoodScale.name]: () => import('@acorex-platform/module-risk-management-client/contracts/entities/risk-likelihood-scale').then((m) => m.factoryRiskLikelihoodScale()),
|
|
19
|
+
[RootConfig.entities.riskMatrix.name]: () => import('@acorex-platform/module-risk-management-client/contracts/entities/risk-matrix').then((m) => m.factoryRiskMatrix()),
|
|
20
|
+
[RootConfig.entities.riskRatingScale.name]: () => import('@acorex-platform/module-risk-management-client/contracts/entities/risk-rating-scale').then((m) => m.factoryRiskRatingScale()),
|
|
21
|
+
[RootConfig.entities.riskSeverityScale.name]: () => import('@acorex-platform/module-risk-management-client/contracts/entities/risk-severity-scale').then((m) => m.factoryRiskSeverityScale()),
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-risk-management-client-local-entities.mjs","sources":["../../../../libs/modules/risk-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/risk-management/client/src/lib/acorex-platform-module-risk-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers risk-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideRiskManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-risk-management-client-local-entities.mjs","sources":["../../../../libs/modules/risk-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/risk-management/client/src/lib/acorex-platform-module-risk-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers risk-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideRiskManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.riskLikelihoodScale.name]: () =>\n import('@acorex-platform/module-risk-management-client/contracts/entities/risk-likelihood-scale').then(\n (m) => m.factoryRiskLikelihoodScale(),\n ),\n [RootConfig.entities.riskMatrix.name]: () =>\n import('@acorex-platform/module-risk-management-client/contracts/entities/risk-matrix').then((m) => m.factoryRiskMatrix()),\n [RootConfig.entities.riskRatingScale.name]: () =>\n import('@acorex-platform/module-risk-management-client/contracts/entities/risk-rating-scale').then(\n (m) => m.factoryRiskRatingScale(),\n ),\n [RootConfig.entities.riskSeverityScale.name]: () =>\n import('@acorex-platform/module-risk-management-client/contracts/entities/risk-severity-scale').then(\n (m) => m.factoryRiskSeverityScale(),\n ),\n },\n });\n}\n\nexport { riskManagementLocalEntityCatalog } from '@acorex-platform/module-risk-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,kCAAkC,GAAA;AAChD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,GAAG,MAC9C,OAAO,yFAAyF,CAAC,CAAC,IAAI,CACpG,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CACtC;AACH,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,MACrC,OAAO,+EAA+E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;AAC5H,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAC1C,OAAO,qFAAqF,CAAC,CAAC,IAAI,CAChG,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAClC;AACH,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,MAC5C,OAAO,uFAAuF,CAAC,CAAC,IAAI,CAClG,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,CACpC;AACJ,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;ACvCA;;AAEG;;"}
|
|
@@ -8,7 +8,7 @@ import { AXMRiskMatrixViewerService } from './acorex-platform-module-risk-manage
|
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region ---- Command ----
|
|
11
|
-
class
|
|
11
|
+
class AXMPreviewRiskMatrixCommand {
|
|
12
12
|
constructor() {
|
|
13
13
|
//#region ---- Services & Dependencies ----
|
|
14
14
|
this.entityService = inject(AXPEntityService);
|
|
@@ -19,8 +19,8 @@ class AXMPreviewRiskMatrixCellCommand {
|
|
|
19
19
|
//#region ---- Command Implementation ----
|
|
20
20
|
async execute(input) {
|
|
21
21
|
try {
|
|
22
|
-
const
|
|
23
|
-
if (!
|
|
22
|
+
const riskMatrixId = this.resolveRiskMatrixId(input);
|
|
23
|
+
if (!riskMatrixId) {
|
|
24
24
|
return {
|
|
25
25
|
success: false,
|
|
26
26
|
message: {
|
|
@@ -29,9 +29,9 @@ class AXMPreviewRiskMatrixCellCommand {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
const matrixRecord = await this.entityService
|
|
32
|
-
.withEntity(RootConfig.module.name, RootConfig.entities.
|
|
32
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.riskMatrix.name)
|
|
33
33
|
.data()
|
|
34
|
-
.byKey(
|
|
34
|
+
.byKey(riskMatrixId);
|
|
35
35
|
if (!matrixRecord) {
|
|
36
36
|
return {
|
|
37
37
|
success: false,
|
|
@@ -63,16 +63,18 @@ class AXMPreviewRiskMatrixCellCommand {
|
|
|
63
63
|
}
|
|
64
64
|
//#endregion
|
|
65
65
|
//#region ---- Utility Methods ----
|
|
66
|
-
|
|
66
|
+
resolveRiskMatrixId(input) {
|
|
67
67
|
const ctxOpts = input.options;
|
|
68
68
|
const ctxData = input.data;
|
|
69
69
|
const candidates = [
|
|
70
|
+
input.riskMatrixId,
|
|
70
71
|
input.riskMatrixCellId,
|
|
71
72
|
input.id,
|
|
73
|
+
ctxOpts?.riskMatrixId,
|
|
72
74
|
ctxOpts?.riskMatrixCellId,
|
|
73
75
|
ctxOpts?.id,
|
|
74
|
-
ctxData?.['riskMatrixCellId'],
|
|
75
76
|
ctxData?.['riskMatrixId'],
|
|
77
|
+
ctxData?.['riskMatrixCellId'],
|
|
76
78
|
ctxData?.['id'],
|
|
77
79
|
];
|
|
78
80
|
for (const candidate of candidates) {
|
|
@@ -92,12 +94,12 @@ class AXMPreviewRiskMatrixCellCommand {
|
|
|
92
94
|
const recordTitle = resolveMultiLanguageString(matrixRecord.title, locale).trim();
|
|
93
95
|
return recordTitle ? `${previewLabel}: ${recordTitle}` : previewLabel;
|
|
94
96
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type:
|
|
96
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type:
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreviewRiskMatrixCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
98
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreviewRiskMatrixCommand }); }
|
|
97
99
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type:
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreviewRiskMatrixCommand, decorators: [{
|
|
99
101
|
type: Injectable
|
|
100
102
|
}] });
|
|
101
103
|
|
|
102
|
-
export {
|
|
103
|
-
//# sourceMappingURL=acorex-platform-module-risk-management-client-preview-risk-matrix
|
|
104
|
+
export { AXMPreviewRiskMatrixCommand };
|
|
105
|
+
//# sourceMappingURL=acorex-platform-module-risk-management-client-preview-risk-matrix.command-gVKnE3c0.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-risk-management-client-preview-risk-matrix.command-gVKnE3c0.mjs","sources":["../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/commands/preview-risk-matrix.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, get, isEmpty, isString } from 'lodash';\n\nimport { RootConfig, type AXMRiskManagementRiskMatrixEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport { AXMRiskMatrixViewerService } from '../risk-matrix-viewer.service';\n\n//#endregion\n\n//#region ---- Command Types ----\n\nexport interface AXMPreviewRiskMatrixCommandInput {\n riskMatrixId?: string;\n /** @deprecated Prefer `riskMatrixId`. */\n riskMatrixCellId?: string;\n id?: string;\n title?: string;\n data?: Record<string, unknown>;\n options?: Partial<AXMPreviewRiskMatrixCommandInput>;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable()\nexport class AXMPreviewRiskMatrixCommand implements AXPCommand<AXMPreviewRiskMatrixCommandInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly riskMatrixViewer = inject(AXMRiskMatrixViewerService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: AXMPreviewRiskMatrixCommandInput): AXPCommandExecuteResultPromise<void> {\n try {\n const riskMatrixId = this.resolveRiskMatrixId(input);\n if (!riskMatrixId) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const matrixRecord = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskMatrix.name)\n .data<string, AXMRiskManagementRiskMatrixEntityModel>()\n .byKey(riskMatrixId);\n\n if (!matrixRecord) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.not-found'),\n },\n };\n }\n\n const dialogTitle = await this.resolveDialogTitle(input, matrixRecord);\n\n await this.riskMatrixViewer.open({\n context: { ...matrixRecord },\n title: dialogTitle,\n });\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n } catch {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.generic.error.description'),\n },\n };\n }\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private resolveRiskMatrixId(input: AXMPreviewRiskMatrixCommandInput): string | undefined {\n const ctxOpts = input.options;\n const ctxData = input.data;\n\n const candidates = [\n input.riskMatrixId,\n input.riskMatrixCellId,\n input.id,\n ctxOpts?.riskMatrixId,\n ctxOpts?.riskMatrixCellId,\n ctxOpts?.id,\n ctxData?.['riskMatrixId'],\n ctxData?.['riskMatrixCellId'],\n ctxData?.['id'],\n ];\n\n for (const candidate of candidates) {\n if (isString(candidate) && !isEmpty(candidate)) {\n return candidate;\n }\n }\n\n return undefined;\n }\n\n private async resolveDialogTitle(\n input: AXMPreviewRiskMatrixCommandInput,\n matrixRecord: AXMRiskManagementRiskMatrixEntityModel,\n ): Promise<string> {\n const previewLabel =\n (await this.translationService.translateAsync('@general:actions.preview.title')) || 'Preview';\n const locale = this.translationService.getActiveLang?.() ?? 'en-US';\n\n const explicitTitle = defaultTo(input.title, get(input, 'options.title'));\n if (isString(explicitTitle) && !isEmpty(explicitTitle)) {\n return `${previewLabel}: ${resolveMultiLanguageString(explicitTitle, locale).trim()}`;\n }\n\n const recordTitle = resolveMultiLanguageString(matrixRecord.title, locale).trim();\n return recordTitle ? `${previewLabel}: ${recordTitle}` : previewLabel;\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|