@acorex-platform/module-risk-management-client 0.0.38 → 0.0.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood-scale.mjs +361 -0
  2. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood-scale.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix.mjs +364 -0
  4. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating-scale.mjs +388 -0
  6. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating-scale.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity-scale.mjs +361 -0
  8. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity-scale.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-acorex-platform-module-risk-management-client-contracts-entity-catalog-D6WaBLYS.mjs +72 -0
  10. 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
  11. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood-scale.entity-CVdw2sfd.mjs +311 -0
  12. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood-scale.entity-CVdw2sfd.mjs.map +1 -0
  13. 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
  14. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-matrix.entity-Chp-843O.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating-scale.entity-Cjg7aGMl.mjs +338 -0
  16. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating-scale.entity-Cjg7aGMl.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity-scale.entity-Cgti6Xeo.mjs +311 -0
  18. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity-scale.entity-Cgti6Xeo.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog.mjs +1 -1
  20. package/fesm2022/acorex-platform-module-risk-management-client-contracts.mjs +233 -49
  21. package/fesm2022/acorex-platform-module-risk-management-client-contracts.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-module-risk-management-client-local-entities.mjs +4 -4
  23. package/fesm2022/acorex-platform-module-risk-management-client-local-entities.mjs.map +1 -1
  24. 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
  25. package/fesm2022/acorex-platform-module-risk-management-client-preview-risk-matrix.command-gVKnE3c0.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-module-risk-management-client.mjs +439 -230
  27. package/fesm2022/acorex-platform-module-risk-management-client.mjs.map +1 -1
  28. package/package.json +13 -13
  29. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood-scale.d.ts +5 -0
  30. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix.d.ts +5 -0
  31. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-rating-scale.d.ts +5 -0
  32. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-severity-scale.d.ts +5 -0
  33. package/types/acorex-platform-module-risk-management-client-contracts.d.ts +157 -65
  34. package/types/acorex-platform-module-risk-management-client.d.ts +77 -31
  35. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood.mjs +0 -222
  36. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood.mjs.map +0 -1
  37. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix-cell.mjs +0 -348
  38. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix-cell.mjs.map +0 -1
  39. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating.mjs +0 -227
  40. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-rating.mjs.map +0 -1
  41. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity.mjs +0 -222
  42. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entities-risk-severity.mjs.map +0 -1
  43. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-acorex-platform-module-risk-management-client-contracts-entity-catalog-Dc6Me3H6.mjs +0 -72
  44. 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
  45. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood.entity-DzwLi3Ga.mjs +0 -172
  46. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-likelihood.entity-DzwLi3Ga.mjs.map +0 -1
  47. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-matrix-cell.entity-b97tbRDA.mjs.map +0 -1
  48. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating.entity-CreMsiCu.mjs +0 -177
  49. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-rating.entity-CreMsiCu.mjs.map +0 -1
  50. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity.entity-bEyLH8dE.mjs +0 -172
  51. package/fesm2022/acorex-platform-module-risk-management-client-contracts-entity-catalog-risk-severity.entity-bEyLH8dE.mjs.map +0 -1
  52. package/fesm2022/acorex-platform-module-risk-management-client-preview-risk-matrix-cell.command-CTGIFUIa.mjs.map +0 -1
  53. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-likelihood.d.ts +0 -5
  54. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-matrix-cell.d.ts +0 -5
  55. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-rating.d.ts +0 -5
  56. package/types/acorex-platform-module-risk-management-client-contracts-entities-risk-severity.d.ts +0 -5
@@ -1,5 +1,5 @@
1
+ import { AXPModuleManifest, AXPCategoryListItem, AXPMultiLanguageString, AXPSpreadsheetData } from '@acorex-platform/framework-shared/core';
1
2
  import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
- import { AXPSpreadsheetData, AXPCategoryListItem, AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';
3
3
 
4
4
  /** Hazard catalog scope for environmental and operational risk matrix records. */
5
5
  declare const RISK_CATALOG_SCOPE_HAZARD = "risk-management.hazard";
@@ -8,10 +8,10 @@ declare const RISK_CATALOG_SCOPE_PPE_ITEMS = "risk-management.ppe-items";
8
8
 
9
9
  declare const AXMRiskManagementMenuKeys: {
10
10
  readonly Root: "RiskManagement:Menu:Root";
11
- readonly RiskLikelihoods: "RiskManagement:Menu:RiskLikelihoods";
12
- readonly RiskSeverities: "RiskManagement:Menu:RiskSeverities";
13
- readonly RiskRatings: "RiskManagement:Menu:RiskRatings";
14
- readonly RiskMatrixCells: "RiskManagement:Menu:RiskMatrixCells";
11
+ readonly RiskLikelihoodScales: "RiskManagement:Menu:RiskLikelihoodScales";
12
+ readonly RiskSeverityScales: "RiskManagement:Menu:RiskSeverityScales";
13
+ readonly RiskRatingScales: "RiskManagement:Menu:RiskRatingScales";
14
+ readonly RiskMatrices: "RiskManagement:Menu:RiskMatrices";
15
15
  };
16
16
 
17
17
  /**
@@ -33,28 +33,28 @@ declare const AXPSafetyRiskPermissionKeys: {
33
33
  declare const AXMRiskManagementPermissionKeys: {
34
34
  readonly RiskManagement: {
35
35
  readonly Management: "SafetyRisk:Permission:MaintainRisk";
36
- readonly RiskLikelihood: {
36
+ readonly RiskLikelihoodScale: {
37
37
  readonly Management: "SafetyRisk:Permission:Setup";
38
38
  readonly View: "SafetyRisk:Permission:Setup";
39
39
  readonly Create: "SafetyRisk:Permission:Setup";
40
40
  readonly Update: "SafetyRisk:Permission:Setup";
41
41
  readonly Delete: "SafetyRisk:Permission:Setup";
42
42
  };
43
- readonly RiskSeverity: {
43
+ readonly RiskSeverityScale: {
44
44
  readonly Management: "SafetyRisk:Permission:Setup";
45
45
  readonly View: "SafetyRisk:Permission:Setup";
46
46
  readonly Create: "SafetyRisk:Permission:Setup";
47
47
  readonly Update: "SafetyRisk:Permission:Setup";
48
48
  readonly Delete: "SafetyRisk:Permission:Setup";
49
49
  };
50
- readonly RiskRating: {
50
+ readonly RiskRatingScale: {
51
51
  readonly Management: "SafetyRisk:Permission:Setup";
52
52
  readonly View: "SafetyRisk:Permission:Setup";
53
53
  readonly Create: "SafetyRisk:Permission:Setup";
54
54
  readonly Update: "SafetyRisk:Permission:Setup";
55
55
  readonly Delete: "SafetyRisk:Permission:Setup";
56
56
  };
57
- readonly RiskMatrixCell: {
57
+ readonly RiskMatrix: {
58
58
  readonly Management: "SafetyRisk:Permission:MaintainRisk";
59
59
  readonly View: "SafetyRisk:Permission:MaintainRisk";
60
60
  readonly Create: "SafetyRisk:Permission:MaintainRisk";
@@ -64,7 +64,7 @@ declare const AXMRiskManagementPermissionKeys: {
64
64
  };
65
65
  };
66
66
 
67
- /** Lookup properties on RiskMatrixCell that can be assigned to matrix axes. */
67
+ /** Spreadsheet axis slots. Values are display keys, not RiskMatrix FK field names. */
68
68
  type AXMRiskMatrixAxisProperty = 'likelihoodId' | 'severityId' | 'riskRatingId';
69
69
  interface AXMRiskMatrixAxisMapping {
70
70
  rowProperty: AXMRiskMatrixAxisProperty;
@@ -74,16 +74,6 @@ interface AXMRiskMatrixAxisMapping {
74
74
  type AXMRiskMatrixOrientation = 'likelihood-rows' | 'severity-rows';
75
75
  declare const RISK_MATRIX_AXIS_PROPERTIES: readonly AXMRiskMatrixAxisProperty[];
76
76
  declare const DEFAULT_RISK_MATRIX_AXIS_MAPPING: AXMRiskMatrixAxisMapping;
77
- declare const RISK_MATRIX_AXIS_PROPERTY_SELECT_OPTIONS: readonly [{
78
- readonly id: "likelihoodId";
79
- readonly title: "@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.likelihood-id.title";
80
- }, {
81
- readonly id: "severityId";
82
- readonly title: "@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.severity-id.title";
83
- }, {
84
- readonly id: "riskRatingId";
85
- readonly title: "@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.risk-rating-id.title";
86
- }];
87
77
  declare const DEFAULT_RISK_MATRIX_ORIENTATION: AXMRiskMatrixOrientation;
88
78
  declare const RISK_MATRIX_ORIENTATION_OPTIONS: Array<{
89
79
  id: AXMRiskMatrixOrientation;
@@ -104,28 +94,28 @@ declare const RootConfig: {
104
94
  icon: string;
105
95
  };
106
96
  entities: {
107
- riskLikelihood: {
97
+ riskLikelihoodScale: {
108
98
  name: string;
109
99
  source: string;
110
100
  title: string;
111
101
  titlePlural: string;
112
102
  icon: string;
113
103
  };
114
- riskSeverity: {
104
+ riskSeverityScale: {
115
105
  name: string;
116
106
  source: string;
117
107
  title: string;
118
108
  titlePlural: string;
119
109
  icon: string;
120
110
  };
121
- riskRating: {
111
+ riskRatingScale: {
122
112
  name: string;
123
113
  source: string;
124
114
  title: string;
125
115
  titlePlural: string;
126
116
  icon: string;
127
117
  };
128
- riskMatrixCell: {
118
+ riskMatrix: {
129
119
  name: string;
130
120
  source: string;
131
121
  title: string;
@@ -135,71 +125,173 @@ declare const RootConfig: {
135
125
  };
136
126
  };
137
127
 
138
- interface AXMRiskManagementRiskLikelihoodEntityModel extends AXPEntityModel<string> {
128
+ /**
129
+ * Risk Management module manifest.
130
+ */
131
+ declare const RiskManagementManifest: AXPModuleManifest;
132
+
133
+ /**
134
+ * Likelihood scale level managed via repeater on {@link AXMRiskManagementRiskLikelihoodScaleEntityModel}.
135
+ * Stable `id` values remain on levels for other lookups; matrix cells key by `code`.
136
+ */
137
+ interface AXMRiskLikelihoodLevelItemModel {
138
+ id?: string;
139
+ /** Level code used as the risk-matrix axis / cell key. */
140
+ code?: string;
141
+ title: string;
142
+ score: number;
143
+ /**
144
+ * Optional explicit order. When omitted, repeater array index defines order
145
+ * (`RepeaterLayout` + `allowReorder`).
146
+ */
147
+ order?: number;
148
+ }
149
+ interface AXMRiskManagementRiskLikelihoodScaleEntityModel extends AXPEntityModel<string> {
150
+ /** Business code from identifier rule `risk-likelihood-scale-code` (`RLS-{date:YYYY}-{seq:4}`). */
139
151
  code: string;
140
152
  title: string;
141
153
  description?: string;
142
- levelValue: number;
154
+ /** Likelihood levels managed via repeater. */
155
+ levels: AXMRiskLikelihoodLevelItemModel[];
143
156
  isArchived?: boolean;
144
157
  archivedAt?: Date | string;
145
158
  }
146
159
 
147
- interface AXMRiskManagementRiskMatrixCellEntityModel extends AXPEntityModel<string> {
148
- /** Business code from identifier rule `risk-matrix-cell-code` (`RMC-{date:YYYY}-{seq:4}`). */
160
+ /** Sorts levels by explicit `order`, then `score`, then array index. */
161
+ declare function sortRiskLikelihoodLevels(levels: AXMRiskLikelihoodLevelItemModel[] | null | undefined): AXMRiskLikelihoodLevelItemModel[];
162
+ /** Returns level codes in display order (skips items without code). */
163
+ declare function resolveRiskLikelihoodLevelCodes(levels: AXMRiskLikelihoodLevelItemModel[] | null | undefined): string[];
164
+
165
+ /**
166
+ * Rating scale level managed via repeater on {@link AXMRiskManagementRiskRatingScaleEntityModel}.
167
+ * Stable `id` values remain on levels for other lookups; matrix cells key by `code`.
168
+ */
169
+ interface AXMRiskRatingLevelItemModel {
170
+ id?: string;
171
+ /** Level code used as the risk-matrix cell rating value. */
172
+ code?: string;
173
+ title: string;
174
+ score: number;
175
+ /** Surface CSS class from `color-chooser` (`success-lighter-surface` or `axp-hex-4caf50`). */
176
+ color?: string;
177
+ /**
178
+ * Optional explicit order. When omitted, repeater array index defines order
179
+ * (`RepeaterLayout` + `allowReorder`).
180
+ */
181
+ order?: number;
182
+ }
183
+ interface AXMRiskManagementRiskRatingScaleEntityModel extends AXPEntityModel<string> {
184
+ /** Business code from identifier rule `risk-rating-scale-code` (`RRS-{date:YYYY}-{seq:4}`). */
149
185
  code: string;
150
186
  title: string;
151
- likelihoodIds: string[];
152
- likelihoodList?: Array<{
153
- id: string;
154
- title?: string;
155
- code?: string;
156
- }>;
157
- /** @deprecated Use `likelihoodIds`. Kept so existing documents still resolve in widgets. */
158
- likelihoodId?: string[];
159
- severityIds: string[];
160
- severityList?: Array<{
161
- id: string;
162
- title?: string;
163
- code?: string;
164
- }>;
165
- /** @deprecated Use `severityIds`. Kept so existing documents still resolve in widgets. */
166
- severityId?: string[];
167
- /** Likelihood rows × severity columns mapped to risk rating ids. */
168
- matrix?: AXPSpreadsheetData;
169
- categoryIds?: string[];
170
- categories?: AXPCategoryListItem[];
171
- /** Registered catalog scope keys (module providers). */
172
- catalogScopeKeys?: string[];
173
- /** Resolved scope labels for list display (enriched by catalog-scope resolver middleware). */
174
- catalogScopes?: Array<{
175
- name: string;
176
- title: AXPMultiLanguageString | string;
177
- cssClass?: string;
178
- }>;
187
+ description?: string;
188
+ /** Rating levels managed via repeater. */
189
+ levels: AXMRiskRatingLevelItemModel[];
179
190
  isArchived?: boolean;
180
191
  archivedAt?: Date | string;
181
192
  }
182
193
 
183
- interface AXMRiskManagementRiskRatingEntityModel extends AXPEntityModel<string> {
184
- /** Business code from identifier rule `risk-rating-code` (`RR-{date:YYYY}-{seq:4}`). */
194
+ /**
195
+ * Severity scale level managed via repeater on {@link AXMRiskManagementRiskSeverityScaleEntityModel}.
196
+ * Stable `id` values remain on levels for other lookups; matrix cells key by `code`.
197
+ */
198
+ interface AXMRiskSeverityLevelItemModel {
199
+ id?: string;
200
+ /** Level code used as the risk-matrix axis / cell key. */
201
+ code?: string;
202
+ title: string;
203
+ score: number;
204
+ /**
205
+ * Optional explicit order. When omitted, repeater array index defines order
206
+ * (`RepeaterLayout` + `allowReorder`).
207
+ */
208
+ order?: number;
209
+ }
210
+ interface AXMRiskManagementRiskSeverityScaleEntityModel extends AXPEntityModel<string> {
211
+ /** Business code from identifier rule `risk-severity-scale-code` (`RSS-{date:YYYY}-{seq:4}`). */
185
212
  code: string;
186
213
  title: string;
187
214
  description?: string;
188
- levelValue: number;
189
- /** Surface CSS class from `color-chooser` (`success-lighter-surface` or `axp-hex-4caf50`). */
190
- color?: string;
215
+ /** Severity levels managed via repeater. */
216
+ levels: AXMRiskSeverityLevelItemModel[];
191
217
  isArchived?: boolean;
192
218
  archivedAt?: Date | string;
193
219
  }
194
220
 
195
- interface AXMRiskManagementRiskSeverityEntityModel extends AXPEntityModel<string> {
221
+ /** Lookup expose snapshot for a selected scale (`levels` drive matrix axes). */
222
+ interface AXMRiskMatrixScaleRef<TLevel> {
223
+ id?: string;
224
+ title?: string;
225
+ code?: string;
226
+ levels?: TLevel[];
227
+ }
228
+ /**
229
+ * One matrix cell keyed by selected-scale **level codes** (not scale entities or level ids).
230
+ */
231
+ interface AXMRiskMatrixCellValueObject {
232
+ likelihoodLevelCode: string;
233
+ severityLevelCode: string;
234
+ ratingLevelCode: string;
235
+ }
236
+ /** Alias matching the design name {@link AXMRiskMatrixCellValueObject}. */
237
+ type RiskMatrixCellValueObject = AXMRiskMatrixCellValueObject;
238
+ interface AXMRiskManagementRiskMatrixEntityModel extends AXPEntityModel<string> {
239
+ /** Business code from identifier rule `risk-matrix-code` (`RMC-{date:YYYY}-{seq:4}`). */
196
240
  code: string;
197
241
  title: string;
198
242
  description?: string;
199
- levelValue: number;
243
+ /** Controls spreadsheet row/column layout only. Persisted `cells` stay likelihood × severity. */
244
+ matrixOrientation?: AXMRiskMatrixOrientation;
245
+ /** Selected likelihood scale that supplies axis levels. */
246
+ likelihoodScaleId: string;
247
+ likelihoodScale?: AXMRiskMatrixScaleRef<AXMRiskLikelihoodLevelItemModel>;
248
+ /** Selected severity scale that supplies axis levels. */
249
+ severityScaleId: string;
250
+ severityScale?: AXMRiskMatrixScaleRef<AXMRiskSeverityLevelItemModel>;
251
+ /** Selected rating scale that supplies cell-value levels. */
252
+ ratingScaleId: string;
253
+ ratingScale?: AXMRiskMatrixScaleRef<AXMRiskRatingLevelItemModel>;
254
+ /** Likelihood × severity combinations mapped to rating level codes. */
255
+ cells: AXMRiskMatrixCellValueObject[];
256
+ categoryIds?: string[];
257
+ categories?: AXPCategoryListItem[];
258
+ /** Registered catalog scope keys (module providers). */
259
+ catalogScopeKeys?: string[];
260
+ /** Resolved scope labels for list display (enriched by catalog-scope resolver middleware). */
261
+ catalogScopes?: Array<{
262
+ name: string;
263
+ title: AXPMultiLanguageString | string;
264
+ cssClass?: string;
265
+ }>;
200
266
  isArchived?: boolean;
201
267
  archivedAt?: Date | string;
202
268
  }
203
269
 
204
- 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_AXIS_PROPERTY_SELECT_OPTIONS, RISK_MATRIX_ORIENTATION_OPTIONS, RISK_MATRIX_ORIENTATION_TITLE_KEYS, RootConfig };
205
- export type { AXMRiskManagementRiskLikelihoodEntityModel, AXMRiskManagementRiskMatrixCellEntityModel, AXMRiskManagementRiskRatingEntityModel, AXMRiskManagementRiskSeverityEntityModel, AXMRiskMatrixAxisMapping, AXMRiskMatrixAxisProperty, AXMRiskMatrixOrientation };
270
+ declare function isRiskMatrixCellValueObject(value: unknown): value is AXMRiskMatrixCellValueObject;
271
+ declare function normalizeRiskMatrixCellValueObject(value: unknown): AXMRiskMatrixCellValueObject | null;
272
+ /** Converts persisted cells into the spreadsheet shape used by the matrix widget. */
273
+ declare function toRiskMatrixSpreadsheetData(cells: AXMRiskMatrixCellValueObject[] | null | undefined): AXPSpreadsheetData;
274
+ /** Converts spreadsheet values (likelihood × severity → rating) into cell value objects. */
275
+ declare function fromRiskMatrixSpreadsheetData(matrix: AXPSpreadsheetData | null | undefined): AXMRiskMatrixCellValueObject[];
276
+ /**
277
+ * Accepts persisted `cells` or a legacy nested spreadsheet object and returns cell value objects.
278
+ */
279
+ declare function resolveRiskMatrixCells(value: unknown): AXMRiskMatrixCellValueObject[];
280
+ /**
281
+ * Drops cells whose level codes are no longer on the selected scales.
282
+ * Persisted shape stays likelihood × severity → rating.
283
+ */
284
+ declare function pruneRiskMatrixCells(cells: AXMRiskMatrixCellValueObject[] | null | undefined, likelihoodCodes: string[], severityCodes: string[], ratingCodes?: string[]): AXMRiskMatrixCellValueObject[];
285
+
286
+ /** Sorts levels by explicit `order`, then `score`, then array index. */
287
+ declare function sortRiskRatingLevels(levels: AXMRiskRatingLevelItemModel[] | null | undefined): AXMRiskRatingLevelItemModel[];
288
+ /** Returns level codes in display order (skips items without code). */
289
+ declare function resolveRiskRatingLevelCodes(levels: AXMRiskRatingLevelItemModel[] | null | undefined): string[];
290
+
291
+ /** Sorts levels by explicit `order`, then `score`, then array index. */
292
+ declare function sortRiskSeverityLevels(levels: AXMRiskSeverityLevelItemModel[] | null | undefined): AXMRiskSeverityLevelItemModel[];
293
+ /** Returns level codes in display order (skips items without code). */
294
+ declare function resolveRiskSeverityLevelCodes(levels: AXMRiskSeverityLevelItemModel[] | null | undefined): string[];
295
+
296
+ 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 };
297
+ export type { AXMRiskLikelihoodLevelItemModel, AXMRiskManagementRiskLikelihoodScaleEntityModel, AXMRiskManagementRiskMatrixEntityModel, AXMRiskManagementRiskRatingScaleEntityModel, AXMRiskManagementRiskSeverityScaleEntityModel, AXMRiskMatrixAxisMapping, AXMRiskMatrixAxisProperty, AXMRiskMatrixCellValueObject, AXMRiskMatrixOrientation, AXMRiskMatrixScaleRef, AXMRiskRatingLevelItemModel, AXMRiskSeverityLevelItemModel, RiskMatrixCellValueObject };
@@ -4,8 +4,10 @@ import * as _angular_core from '@angular/core';
4
4
  import * as i1 from '@acorex-platform/framework-client/layout/widget-core';
5
5
  import { AXPColumnWidgetComponent, AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
6
6
  import * as _acorex_platform_module_risk_management_client_contracts from '@acorex-platform/module-risk-management-client/contracts';
7
- import { AXMRiskMatrixAxisMapping, AXMRiskMatrixAxisProperty, AXMRiskMatrixOrientation } from '@acorex-platform/module-risk-management-client/contracts';
7
+ import { AXMRiskMatrixAxisMapping, AXMRiskLikelihoodLevelItemModel, AXMRiskSeverityLevelItemModel, AXMRiskRatingLevelItemModel, AXMRiskMatrixCellValueObject, AXMRiskMatrixAxisProperty, AXMRiskMatrixOrientation } from '@acorex-platform/module-risk-management-client/contracts';
8
8
  import { AXPSpreadsheetData, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetItem, AXPSpreadsheetColumn } from '@acorex-platform/framework-client/layout/components';
9
+ import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
10
+ import { AXPSpreadsheetData as AXPSpreadsheetData$1 } from '@acorex-platform/framework-shared/core';
9
11
 
10
12
  declare class AXMRiskManagementMenuProvider implements AXPMenuProvider {
11
13
  private readonly entityService;
@@ -29,18 +31,23 @@ declare class AXMRiskManagementModule {
29
31
 
30
32
  declare class AXMRiskManagementRiskMatrixComponent {
31
33
  private readonly entityService;
32
- private readonly likelihoodDataAccessor;
33
- private readonly severityDataAccessor;
34
- private readonly riskRatingDataAccessor;
34
+ private readonly likelihoodScaleDataAccessor;
35
+ private readonly severityScaleDataAccessor;
36
+ private readonly riskRatingScaleDataAccessor;
35
37
  private readonly multiLanguageResolver;
36
38
  /** Axis mapping. Defaults to likelihood × severity → risk rating. */
37
39
  axisMapping: _angular_core.InputSignal<Partial<AXMRiskMatrixAxisMapping>>;
38
- /** Selected axis item ids from the parent matrix record. */
39
- likelihoodIds: _angular_core.InputSignal<string[] | null | undefined>;
40
- severityIds: _angular_core.InputSignal<string[] | null | undefined>;
41
- /** Controls row/column layout only; persisted matrix stays likelihood × severity. */
40
+ /** Selected scale ids from the parent matrix record. Axes load from that scale's levels. */
41
+ likelihoodScaleId: _angular_core.InputSignal<string | null | undefined>;
42
+ severityScaleId: _angular_core.InputSignal<string | null | undefined>;
43
+ ratingScaleId: _angular_core.InputSignal<string | null | undefined>;
44
+ /** Lookup expose snapshots — used in create before (or instead of) byKey. */
45
+ likelihoodScaleLevels: _angular_core.InputSignal<AXMRiskLikelihoodLevelItemModel[] | null | undefined>;
46
+ severityScaleLevels: _angular_core.InputSignal<AXMRiskSeverityLevelItemModel[] | null | undefined>;
47
+ ratingScaleLevels: _angular_core.InputSignal<AXMRiskRatingLevelItemModel[] | null | undefined>;
48
+ /** Controls row/column layout only; persisted cells stay likelihood × severity. */
42
49
  matrixOrientation: _angular_core.InputSignal<string | null | undefined>;
43
- /** Matrix data: { [likelihoodId]: { [severityId]: riskRatingId } } */
50
+ /** Spreadsheet data keyed by **level codes**: { [likelihoodCode]: { [severityCode]: ratingCode } } */
44
51
  value: _angular_core.InputSignal<AXPSpreadsheetData>;
45
52
  readonly: _angular_core.InputSignal<boolean>;
46
53
  valueChange: _angular_core.OutputEmitterRef<AXPSpreadsheetData>;
@@ -48,11 +55,14 @@ declare class AXMRiskManagementRiskMatrixComponent {
48
55
  private readonly likelihoodItems;
49
56
  private readonly severityItems;
50
57
  private readonly depthItems;
51
- private readonly hasLoadedAxesOnce;
52
- protected readonly isLoading: _angular_core.WritableSignal<boolean>;
58
+ /** Drops overlapping create-mode loads so an earlier request cannot wipe later rating levels. */
59
+ private loadAxesRequestId;
53
60
  protected readonly resolvedMatrixOrientation: _angular_core.Signal<_acorex_platform_module_risk_management_client_contracts.AXMRiskMatrixOrientation>;
54
61
  protected readonly resolvedAxisMapping: _angular_core.Signal<AXMRiskMatrixAxisMapping>;
55
62
  protected readonly displayMatrix: _angular_core.Signal<AXPSpreadsheetData>;
63
+ protected readonly spreadsheetIdentity: _angular_core.Signal<string>;
64
+ /** Create mode: do not open empty cell editors before rating levels are loaded. */
65
+ protected readonly cellSelectLocked: _angular_core.Signal<boolean>;
56
66
  protected readonly matrixTitleKey: _angular_core.Signal<string>;
57
67
  protected readonly verticalTitles: _angular_core.Signal<AXPSpreadsheetItem[]>;
58
68
  protected readonly horizontalTitles: _angular_core.Signal<AXPSpreadsheetItem[]>;
@@ -63,14 +73,22 @@ declare class AXMRiskManagementRiskMatrixComponent {
63
73
  protected readonly spreadsheetRows: _angular_core.Signal<Record<string, unknown>[]>;
64
74
  constructor();
65
75
  private loadMatrixAxes;
76
+ private applyAxisItems;
66
77
  private queryAxisItems;
67
- private getAxisDataAccessor;
78
+ private readScaleLevels;
79
+ private mapLikelihoodLevels;
80
+ private mapSeverityLevels;
81
+ private mapRatingLevels;
82
+ private mapAxisLevels;
83
+ private toAxisLevelKey;
84
+ private loadScaleWithLevels;
85
+ private queryScaleById;
68
86
  private toSpreadsheetItems;
69
87
  private convertSpreadsheetRowsToMatrixData;
70
88
  protected handleSpreadsheetChange(rows: Record<string, unknown>[]): void;
71
89
  protected handleCellChange(event: AXPSpreadsheetCellChangeEvent): void;
72
90
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMRiskManagementRiskMatrixComponent, never>;
73
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskManagementRiskMatrixComponent, "axm-risk-matrix", never, { "axisMapping": { "alias": "axisMapping"; "required": false; "isSignal": true; }; "likelihoodIds": { "alias": "likelihoodIds"; "required": false; "isSignal": true; }; "severityIds": { "alias": "severityIds"; "required": false; "isSignal": true; }; "matrixOrientation": { "alias": "matrixOrientation"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "cellChange": "cellChange"; }, never, never, true, never>;
91
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskManagementRiskMatrixComponent, "axm-risk-matrix", never, { "axisMapping": { "alias": "axisMapping"; "required": false; "isSignal": true; }; "likelihoodScaleId": { "alias": "likelihoodScaleId"; "required": false; "isSignal": true; }; "severityScaleId": { "alias": "severityScaleId"; "required": false; "isSignal": true; }; "ratingScaleId": { "alias": "ratingScaleId"; "required": false; "isSignal": true; }; "likelihoodScaleLevels": { "alias": "likelihoodScaleLevels"; "required": false; "isSignal": true; }; "severityScaleLevels": { "alias": "severityScaleLevels"; "required": false; "isSignal": true; }; "ratingScaleLevels": { "alias": "ratingScaleLevels"; "required": false; "isSignal": true; }; "matrixOrientation": { "alias": "matrixOrientation"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "cellChange": "cellChange"; }, never, never, true, never>;
74
92
  }
75
93
 
76
94
  interface AXMRiskMatrixViewerOpenOptions {
@@ -100,29 +118,46 @@ declare class AXMRiskMatrixWidgetColumnComponent extends AXPColumnWidgetComponen
100
118
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskMatrixWidgetColumnComponent, "axm-risk-matrix-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
101
119
  }
102
120
 
103
- declare class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {
121
+ declare class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent<AXMRiskMatrixCellValueObject[]> {
104
122
  constructor();
105
123
  protected readonly: _angular_core.Signal<boolean>;
106
124
  protected axisMapping: _angular_core.Signal<AXMRiskMatrixAxisMapping>;
107
125
  protected matrixOrientation: _angular_core.Signal<_acorex_platform_module_risk_management_client_contracts.AXMRiskMatrixOrientation>;
108
- protected likelihoodIds: _angular_core.Signal<string[]>;
109
- protected severityIds: _angular_core.Signal<string[]>;
110
- protected matrixValue: _angular_core.Signal<AXPSpreadsheetData>;
111
- protected handleValueChange(data: AXPSpreadsheetData): void;
126
+ protected likelihoodScaleId: _angular_core.Signal<string | undefined>;
127
+ protected severityScaleId: _angular_core.Signal<string | undefined>;
128
+ protected ratingScaleId: _angular_core.Signal<string | undefined>;
129
+ protected likelihoodScaleLevels: _angular_core.Signal<AXMRiskLikelihoodLevelItemModel[] | undefined>;
130
+ protected severityScaleLevels: _angular_core.Signal<AXMRiskSeverityLevelItemModel[] | undefined>;
131
+ protected ratingScaleLevels: _angular_core.Signal<AXMRiskRatingLevelItemModel[] | undefined>;
132
+ protected likelihoodCodes: _angular_core.Signal<string[]>;
133
+ protected severityCodes: _angular_core.Signal<string[]>;
134
+ protected ratingCodes: _angular_core.Signal<string[]>;
135
+ protected matrixValue: _angular_core.Signal<AXPSpreadsheetData$1>;
136
+ protected handleValueChange(data: AXPSpreadsheetData$1): void;
137
+ private resolveScaleId;
138
+ private resolveScaleLevels;
112
139
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMRiskMatrixWidgetEditComponent, never>;
113
140
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskMatrixWidgetEditComponent, "axm-risk-matrix-widget-edit", never, {}, {}, never, never, true, never>;
114
141
  }
115
142
 
116
- declare class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {
143
+ declare class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent<AXMRiskMatrixCellValueObject[]> {
117
144
  protected axisMapping: _angular_core.Signal<AXMRiskMatrixAxisMapping>;
118
145
  protected matrixOrientation: _angular_core.Signal<_acorex_platform_module_risk_management_client_contracts.AXMRiskMatrixOrientation>;
119
- protected likelihoodIds: _angular_core.Signal<string[]>;
120
- protected severityIds: _angular_core.Signal<string[]>;
121
- protected matrixValue: _angular_core.Signal<AXPSpreadsheetData>;
146
+ protected likelihoodScaleId: _angular_core.Signal<string | undefined>;
147
+ protected severityScaleId: _angular_core.Signal<string | undefined>;
148
+ protected ratingScaleId: _angular_core.Signal<string | undefined>;
149
+ protected likelihoodScaleLevels: _angular_core.Signal<AXMRiskLikelihoodLevelItemModel[] | undefined>;
150
+ protected severityScaleLevels: _angular_core.Signal<AXMRiskSeverityLevelItemModel[] | undefined>;
151
+ protected ratingScaleLevels: _angular_core.Signal<AXMRiskRatingLevelItemModel[] | undefined>;
152
+ protected matrixValue: _angular_core.Signal<_acorex_platform_framework_shared_core.AXPSpreadsheetData>;
153
+ private resolveScaleId;
154
+ private resolveScaleLevels;
122
155
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMRiskMatrixWidgetViewComponent, never>;
123
156
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskMatrixWidgetViewComponent, "axm-risk-matrix-widget-view", never, {}, {}, never, never, true, never>;
124
157
  }
125
158
 
159
+ type RiskMatrixScaleIdField = 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId';
160
+ type RiskMatrixScaleSnapshotField = 'likelihoodScale' | 'severityScale' | 'ratingScale';
126
161
  declare function isRiskMatrixAxisProperty(value: unknown): value is AXMRiskMatrixAxisProperty;
127
162
  declare function resolveRiskMatrixAxisMapping(mapping?: Partial<AXMRiskMatrixAxisMapping> | null): AXMRiskMatrixAxisMapping;
128
163
  declare function isRiskMatrixOrientation(value: unknown): value is AXMRiskMatrixOrientation;
@@ -141,18 +176,29 @@ declare function toDisplayMatrixData(canonical: AXPSpreadsheetData, orientation?
141
176
  /** Converts display-oriented matrix data back to canonical likelihood × severity storage. */
142
177
  declare function toCanonicalMatrixData(display: AXPSpreadsheetData, orientation?: unknown): AXPSpreadsheetData;
143
178
  /**
144
- * Reads selected axis ids from a risk-matrix-cell record.
145
- * Prefers `*Ids` (multi-lookup convention), then legacy `*Id`, then joined `*List`.
179
+ * Reads selected axis **level codes** from a risk-matrix record.
180
+ * Codes come from the selected scale snapshot (`*.scale.levels`), never from scale entity ids.
146
181
  */
147
- declare function resolveRiskMatrixCellAxisIds(data: unknown, axis: 'likelihood' | 'severity'): string[];
148
- /** Normalizes lookup axis values (ids or `{ id }` rows) to string ids. */
149
- declare function normalizeRiskMatrixAxisIds(value: unknown): string[];
182
+ declare function resolveRiskMatrixAxisCodes(data: unknown, axis: 'likelihood' | 'severity' | 'rating'): string[];
183
+ /** Resolves a lookup uuid that may be stored as a string or `{ id }` row. */
184
+ declare function resolveRiskMatrixScaleId(value: unknown): string | undefined;
150
185
  /**
151
- * Drops matrix entries for axes no longer selected on the record.
152
- * Persisted shape stays likelihood × severity → risk rating.
186
+ * Create mode may have the snapshot (`ratingScale.id`) before `ratingScaleId` is committed.
187
+ * Edit mode has both after GET join.
153
188
  */
154
- declare function pruneMatrixToAxes(matrix: AXPSpreadsheetData, likelihoodIds: string[], severityIds: string[]): AXPSpreadsheetData;
189
+ declare function resolveRiskMatrixScaleIdFromRecord(data: unknown, idField: RiskMatrixScaleIdField, snapshotField: RiskMatrixScaleSnapshotField): string | undefined;
190
+ /**
191
+ * Widget-context scale id: path `getValue` first, then the full record snapshot.
192
+ */
193
+ declare function resolveRiskMatrixWidgetScaleId(getValue: (path: string) => unknown, data: unknown, idField: RiskMatrixScaleIdField, snapshotField: RiskMatrixScaleSnapshotField): string | undefined;
194
+ /**
195
+ * Nested `levels` from a lookup expose snapshot (`likelihoodScale.levels`, …).
196
+ * Empty arrays are treated as missing so create-mode can still fetch by id.
197
+ */
198
+ declare function resolveRiskMatrixScaleLevels<T>(data: unknown, snapshotField: RiskMatrixScaleSnapshotField, levelsFromPath?: unknown): T[] | undefined;
199
+ /** Widget-context scale levels: nested path, then snapshot on the record. */
200
+ declare function resolveRiskMatrixWidgetScaleLevels<T>(getValue: (path: string) => unknown, data: unknown, snapshotField: RiskMatrixScaleSnapshotField): T[] | undefined;
155
201
  declare function validateRiskMatrixAxisMapping(mapping: Partial<AXMRiskMatrixAxisMapping>): boolean;
156
202
 
157
- export { AXMRiskManagementMenuProvider, AXMRiskManagementModule, AXMRiskManagementPermissionDefinitionProvider, AXMRiskManagementRiskMatrixComponent, AXMRiskMatrixViewerService, AXMRiskMatrixWidgetColumnComponent, AXMRiskMatrixWidgetEditComponent, AXMRiskMatrixWidgetViewComponent, isRiskMatrixAxisProperty, isRiskMatrixOrientation, normalizeRiskMatrixAxisIds, pruneMatrixToAxes, resolveRiskMatrixAxisMapping, resolveRiskMatrixAxisMappingFromOrientation, resolveRiskMatrixCellAxisIds, resolveRiskMatrixOrientation, resolveRiskMatrixTitleKey, toCanonicalMatrixData, toDisplayMatrixData, validateRiskMatrixAxisMapping };
203
+ export { AXMRiskManagementMenuProvider, AXMRiskManagementModule, AXMRiskManagementPermissionDefinitionProvider, AXMRiskManagementRiskMatrixComponent, AXMRiskMatrixViewerService, AXMRiskMatrixWidgetColumnComponent, AXMRiskMatrixWidgetEditComponent, AXMRiskMatrixWidgetViewComponent, isRiskMatrixAxisProperty, isRiskMatrixOrientation, resolveRiskMatrixAxisCodes, resolveRiskMatrixAxisMapping, resolveRiskMatrixAxisMappingFromOrientation, resolveRiskMatrixOrientation, resolveRiskMatrixScaleId, resolveRiskMatrixScaleIdFromRecord, resolveRiskMatrixScaleLevels, resolveRiskMatrixTitleKey, resolveRiskMatrixWidgetScaleId, resolveRiskMatrixWidgetScaleLevels, toCanonicalMatrixData, toDisplayMatrixData, validateRiskMatrixAxisMapping };
158
204
  export type { AXMRiskMatrixViewerOpenOptions };