@acorex-platform/module-risk-management-client 0.0.30 → 0.0.32
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.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-risk-management-client.mjs +36 -37
- package/fesm2022/acorex-platform-module-risk-management-client.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-module-risk-management-client-contracts.d.ts +9 -5
- package/types/acorex-platform-module-risk-management-client.d.ts +6 -3
|
@@ -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 likelihoodId: string[];\n likelihood?: Array<{ id: string; title?: string; code?: string }>;\n severityId: string[];\n severity?: Array<{ id: string; title?: string; code?: 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 /** Color from `material-design` palette (`color` plugin, free mode). */\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/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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"}
|
|
@@ -5,18 +5,18 @@ import { inject, Injectable, NgModule, input, output, signal, computed, effect,
|
|
|
5
5
|
import { RootConfig, AXPSafetyRiskPermissionKeys, AXMRiskManagementMenuKeys, RISK_CATALOG_SCOPE_HAZARD, RISK_CATALOG_SCOPE_PPE_ITEMS, RISK_MATRIX_AXIS_PROPERTIES, DEFAULT_RISK_MATRIX_AXIS_MAPPING, DEFAULT_RISK_MATRIX_ORIENTATION, RISK_MATRIX_ORIENTATION_TITLE_KEYS } from '@acorex-platform/module-risk-management-client/contracts';
|
|
6
6
|
import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
|
|
7
7
|
import { AXP_MENU_PROVIDER, resolveEntityRowDisplayText, resolveEntityRowDisplayTitle } from '@acorex-platform/framework-client/common';
|
|
8
|
-
import { AXP_MODULE_MANIFEST_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';
|
|
8
|
+
import { AXP_MODULE_MANIFEST_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, provideLazyProvider, ensureRuntimeSurfaceClass } from '@acorex-platform/framework-client/core';
|
|
9
9
|
import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER, AXPColumnWidgetComponent, AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
10
10
|
import { provideCommandSetups } from '@acorex-platform/framework-client/runtime';
|
|
11
11
|
import { AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';
|
|
12
12
|
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_LABEL_PROPERTY, AXP_READONLY_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';
|
|
13
13
|
import * as i2 from '@acorex/core/translation';
|
|
14
14
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
|
15
|
-
import { extractValue, AXPWidgetsList } from '@acorex-platform/framework-shared/core';
|
|
15
|
+
import { extractValue, resolveToSurfaceClass, AXPWidgetsList } from '@acorex-platform/framework-shared/core';
|
|
16
16
|
import { AXPSpreadsheetComponent } from '@acorex-platform/framework-client/layout/components';
|
|
17
17
|
import * as i1 from '@angular/common';
|
|
18
18
|
import { CommonModule } from '@angular/common';
|
|
19
|
-
import { isEmpty, defaultTo, get, isEqual
|
|
19
|
+
import { isEmpty, defaultTo, get, isEqual } from 'lodash';
|
|
20
20
|
import { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';
|
|
21
21
|
import * as i1$1 from '@acorex/components/button';
|
|
22
22
|
import { AXButtonModule } from '@acorex/components/button';
|
|
@@ -394,6 +394,20 @@ function toCanonicalMatrixData(display, orientation) {
|
|
|
394
394
|
});
|
|
395
395
|
return canonical;
|
|
396
396
|
}
|
|
397
|
+
/**
|
|
398
|
+
* Reads selected axis ids from a risk-matrix-cell record.
|
|
399
|
+
* Prefers `*Ids` (multi-lookup convention), then legacy `*Id`, then joined `*List`.
|
|
400
|
+
*/
|
|
401
|
+
function resolveRiskMatrixCellAxisIds(data, axis) {
|
|
402
|
+
if (data == null || typeof data !== 'object') {
|
|
403
|
+
return [];
|
|
404
|
+
}
|
|
405
|
+
const record = data;
|
|
406
|
+
const idsField = axis === 'likelihood' ? 'likelihoodIds' : 'severityIds';
|
|
407
|
+
const legacyField = axis === 'likelihood' ? 'likelihoodId' : 'severityId';
|
|
408
|
+
const listField = axis === 'likelihood' ? 'likelihoodList' : 'severityList';
|
|
409
|
+
return normalizeRiskMatrixAxisIds(record[idsField] ?? record[legacyField] ?? record[listField]);
|
|
410
|
+
}
|
|
397
411
|
/** Normalizes lookup axis values (ids or `{ id }` rows) to string ids. */
|
|
398
412
|
function normalizeRiskMatrixAxisIds(value) {
|
|
399
413
|
const items = Array.isArray(value) ? value : value != null ? [value] : [];
|
|
@@ -448,19 +462,21 @@ function validateRiskMatrixAxisMapping(mapping) {
|
|
|
448
462
|
}
|
|
449
463
|
//#endregion
|
|
450
464
|
|
|
451
|
-
//#region
|
|
452
|
-
|
|
465
|
+
//#region ----- Imports -----
|
|
466
|
+
//#endregion
|
|
467
|
+
//#region ----- Constants -----
|
|
468
|
+
/** Default matrix badge surfaces when {@link color} is not set on a risk rating record. */
|
|
453
469
|
const DEFAULT_RISK_RATING_BADGE_COLORS = {
|
|
454
|
-
low: '
|
|
455
|
-
medium: '
|
|
470
|
+
low: 'success-lighter-surface',
|
|
471
|
+
medium: 'warning-lighter-surface',
|
|
456
472
|
high: 'danger-lighter-surface',
|
|
457
473
|
};
|
|
458
474
|
//#endregion
|
|
459
|
-
//#region
|
|
475
|
+
//#region ----- Helpers -----
|
|
460
476
|
function resolveRiskRatingBadgeColor(rating) {
|
|
461
|
-
const
|
|
462
|
-
if (
|
|
463
|
-
return
|
|
477
|
+
const fromColor = resolveToSurfaceClass(rating.color);
|
|
478
|
+
if (fromColor) {
|
|
479
|
+
return fromColor;
|
|
464
480
|
}
|
|
465
481
|
const code = rating.code?.trim().toUpperCase();
|
|
466
482
|
if (code?.endsWith('0001')) {
|
|
@@ -664,7 +680,7 @@ class AXMRiskManagementRiskMatrixComponent {
|
|
|
664
680
|
return base;
|
|
665
681
|
}
|
|
666
682
|
const rating = item;
|
|
667
|
-
const color = resolveRiskRatingBadgeColor(rating);
|
|
683
|
+
const color = ensureRuntimeSurfaceClass(resolveRiskRatingBadgeColor(rating));
|
|
668
684
|
return color ? { ...base, color } : base;
|
|
669
685
|
});
|
|
670
686
|
if (isEmpty(selectedIds)) {
|
|
@@ -719,13 +735,13 @@ class AXMRiskManagementRiskMatrixComponent {
|
|
|
719
735
|
this.cellChange.emit(event);
|
|
720
736
|
}
|
|
721
737
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRiskManagementRiskMatrixComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
722
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMRiskManagementRiskMatrixComponent, isStandalone: true, selector: "axm-risk-matrix", inputs: { axisMapping: { classPropertyName: "axisMapping", publicName: "axisMapping", isSignal: true, isRequired: false, transformFunction: null }, likelihoodIds: { classPropertyName: "likelihoodIds", publicName: "likelihoodIds", isSignal: true, isRequired: false, transformFunction: null }, severityIds: { classPropertyName: "severityIds", publicName: "severityIds", isSignal: true, isRequired: false, transformFunction: null }, matrixOrientation: { classPropertyName: "matrixOrientation", publicName: "matrixOrientation", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", cellChange: "cellChange" }, host: { classAttribute: "axm-risk-matrix" }, ngImport: i0, template: "<div class=\"__container\">\n <div class=\"__matrix-section\">\n @if (isLoading()) {\n <div class=\"__loading\">\n <span>{{ '@risk-management:risk-matrix-cells.components.risk-matrix.messages.loading' | translate | async }}</span>\n </div>\n } @else {\n @for (_ of [resolvedMatrixOrientation()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\n }\n }\n </div>\n</div>\n", styles: [".risk-matrix{display:block;height:100%;width:100%}.risk-matrix .__container,.risk-matrix .__matrix-section{display:flex;flex-direction:column}.risk-matrix .__loading,.risk-matrix .__empty-state{display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 8);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-
|
|
738
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMRiskManagementRiskMatrixComponent, isStandalone: true, selector: "axm-risk-matrix", inputs: { axisMapping: { classPropertyName: "axisMapping", publicName: "axisMapping", isSignal: true, isRequired: false, transformFunction: null }, likelihoodIds: { classPropertyName: "likelihoodIds", publicName: "likelihoodIds", isSignal: true, isRequired: false, transformFunction: null }, severityIds: { classPropertyName: "severityIds", publicName: "severityIds", isSignal: true, isRequired: false, transformFunction: null }, matrixOrientation: { classPropertyName: "matrixOrientation", publicName: "matrixOrientation", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", cellChange: "cellChange" }, host: { classAttribute: "axm-risk-matrix" }, ngImport: i0, template: "<div class=\"__container\">\n <div class=\"__matrix-section\">\n @if (isLoading()) {\n <div class=\"__loading\">\n <span>{{ '@risk-management:risk-matrix-cells.components.risk-matrix.messages.loading' | translate | async }}</span>\n </div>\n } @else {\n @for (_ of [resolvedMatrixOrientation()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\n }\n }\n </div>\n</div>\n", styles: [".axm-risk-matrix{--axm-risk-matrix-line: rgb(var(--ax-sys-color-border-surface));display:block;height:100%;width:100%}.axm-risk-matrix .__container,.axm-risk-matrix .__matrix-section{display:flex;flex-direction:column}.axm-risk-matrix .__loading,.axm-risk-matrix .__empty-state{display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 8);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-lightest-surface))}.axm-risk-matrix .axp-spreadsheet .__spreadsheet-container{border:1px solid var(--axm-risk-matrix-line)}.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__corner-cell,.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__column-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__row-header{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface))}.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__corner-cell,.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__column-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__row-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell{border:0;border-inline-end:1px solid var(--axm-risk-matrix-line);border-bottom:1px solid var(--axm-risk-matrix-line)}.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__column-header:last-child,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:last-child{border-inline-end:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody tr.__row:last-of-type .__row-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody tr.__row:last-of-type .__cell{border-bottom:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing){padding:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing):before{z-index:1}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value{display:block;height:100%;min-height:100%;padding:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value>*{display:block;height:100%;min-height:100%}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value [class*=-surface],.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value [class*=axp-hex-]{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;width:auto;height:auto;margin:0;border-width:0;border-radius:0;padding:.5rem .75rem;font-size:.875rem;font-weight:500}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXPSpreadsheetComponent, selector: "axp-spreadsheet", inputs: ["title", "columns", "rowMode", "rowsInput", "rowsModel", "readonly", "emptyCellPlaceholder", "rowTitlePath", "rowDescriptionPath", "allowAddRows", "allowRemoveRows"], outputs: ["rowsModelChange", "cellChange", "rowChange", "spreadsheetChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
723
739
|
}
|
|
724
740
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRiskManagementRiskMatrixComponent, decorators: [{
|
|
725
741
|
type: Component,
|
|
726
742
|
args: [{ selector: 'axm-risk-matrix', standalone: true, imports: [CommonModule, AXPSpreadsheetComponent, AXTranslationModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
727
743
|
class: 'axm-risk-matrix',
|
|
728
|
-
}, template: "<div class=\"__container\">\n <div class=\"__matrix-section\">\n @if (isLoading()) {\n <div class=\"__loading\">\n <span>{{ '@risk-management:risk-matrix-cells.components.risk-matrix.messages.loading' | translate | async }}</span>\n </div>\n } @else {\n @for (_ of [resolvedMatrixOrientation()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\n }\n }\n </div>\n</div>\n", styles: [".risk-matrix{display:block;height:100%;width:100%}.risk-matrix .__container,.risk-matrix .__matrix-section{display:flex;flex-direction:column}.risk-matrix .__loading,.risk-matrix .__empty-state{display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 8);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-
|
|
744
|
+
}, template: "<div class=\"__container\">\n <div class=\"__matrix-section\">\n @if (isLoading()) {\n <div class=\"__loading\">\n <span>{{ '@risk-management:risk-matrix-cells.components.risk-matrix.messages.loading' | translate | async }}</span>\n </div>\n } @else {\n @for (_ of [resolvedMatrixOrientation()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\n }\n }\n </div>\n</div>\n", styles: [".axm-risk-matrix{--axm-risk-matrix-line: rgb(var(--ax-sys-color-border-surface));display:block;height:100%;width:100%}.axm-risk-matrix .__container,.axm-risk-matrix .__matrix-section{display:flex;flex-direction:column}.axm-risk-matrix .__loading,.axm-risk-matrix .__empty-state{display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing, .25rem) * 8);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-lightest-surface))}.axm-risk-matrix .axp-spreadsheet .__spreadsheet-container{border:1px solid var(--axm-risk-matrix-line)}.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__corner-cell,.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__column-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__row-header{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface))}.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__corner-cell,.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__column-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__row-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell{border:0;border-inline-end:1px solid var(--axm-risk-matrix-line);border-bottom:1px solid var(--axm-risk-matrix-line)}.axm-risk-matrix .axp-spreadsheet .__table .__thead .__header-row .__column-header:last-child,.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:last-child{border-inline-end:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody tr.__row:last-of-type .__row-header,.axm-risk-matrix .axp-spreadsheet .__table .__tbody tr.__row:last-of-type .__cell{border-bottom:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing){padding:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing):before{z-index:1}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value{display:block;height:100%;min-height:100%;padding:0}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value>*{display:block;height:100%;min-height:100%}.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value [class*=-surface],.axm-risk-matrix .axp-spreadsheet .__table .__tbody .__row .__cell:not(.__cell--editing) .__cell-value [class*=axp-hex-]{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;width:auto;height:auto;margin:0;border-width:0;border-radius:0;padding:.5rem .75rem;font-size:.875rem;font-weight:500}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
729
745
|
}], ctorParameters: () => [], propDecorators: { axisMapping: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisMapping", required: false }] }], likelihoodIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "likelihoodIds", required: false }] }], severityIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "severityIds", required: false }] }], matrixOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "matrixOrientation", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], cellChange: [{ type: i0.Output, args: ["cellChange"] }] } });
|
|
730
746
|
|
|
731
747
|
//#region ---- Imports ----
|
|
@@ -748,7 +764,7 @@ class AXMRiskMatrixViewerService {
|
|
|
748
764
|
if (isEmpty(matrixValue)) {
|
|
749
765
|
return;
|
|
750
766
|
}
|
|
751
|
-
|
|
767
|
+
await this.layoutBuilder
|
|
752
768
|
.create()
|
|
753
769
|
.dialog((dialog) => {
|
|
754
770
|
dialog
|
|
@@ -766,13 +782,9 @@ class AXMRiskMatrixViewerService {
|
|
|
766
782
|
.customWidget(AXPWidgetsList.Editors.RiskMatrix, { readonly: true });
|
|
767
783
|
});
|
|
768
784
|
});
|
|
769
|
-
})
|
|
770
|
-
.setActions((actions) => {
|
|
771
|
-
actions.cancel('@general:actions.close.title');
|
|
772
785
|
});
|
|
773
786
|
})
|
|
774
787
|
.show();
|
|
775
|
-
ref.close();
|
|
776
788
|
}
|
|
777
789
|
//#endregion
|
|
778
790
|
//#region ---- Utility Methods ----
|
|
@@ -918,12 +930,12 @@ class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
918
930
|
...(ngDevMode ? [{ debugName: "matrixOrientation" }] : /* istanbul ignore next */ []));
|
|
919
931
|
this.likelihoodIds = computed(() => {
|
|
920
932
|
this.contextService.changeEvent();
|
|
921
|
-
return
|
|
933
|
+
return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'likelihood');
|
|
922
934
|
}, /* @ts-ignore */
|
|
923
935
|
...(ngDevMode ? [{ debugName: "likelihoodIds" }] : /* istanbul ignore next */ []));
|
|
924
936
|
this.severityIds = computed(() => {
|
|
925
937
|
this.contextService.changeEvent();
|
|
926
|
-
return
|
|
938
|
+
return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'severity');
|
|
927
939
|
}, /* @ts-ignore */
|
|
928
940
|
...(ngDevMode ? [{ debugName: "severityIds" }] : /* istanbul ignore next */ []));
|
|
929
941
|
this.matrixValue = computed(() => {
|
|
@@ -947,9 +959,6 @@ class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
947
959
|
this.setValue(data);
|
|
948
960
|
}
|
|
949
961
|
}
|
|
950
|
-
normalizeAxisIds(value) {
|
|
951
|
-
return normalizeRiskMatrixAxisIds(value);
|
|
952
|
-
}
|
|
953
962
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRiskMatrixWidgetEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
954
963
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXMRiskMatrixWidgetEditComponent, isStandalone: true, selector: "axm-risk-matrix-widget-edit", host: { classAttribute: "block w-full" }, usesInheritance: true, ngImport: i0, template: `
|
|
955
964
|
<axm-risk-matrix
|
|
@@ -1017,12 +1026,12 @@ class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
1017
1026
|
...(ngDevMode ? [{ debugName: "matrixOrientation" }] : /* istanbul ignore next */ []));
|
|
1018
1027
|
this.likelihoodIds = computed(() => {
|
|
1019
1028
|
this.contextService.changeEvent();
|
|
1020
|
-
return
|
|
1029
|
+
return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'likelihood');
|
|
1021
1030
|
}, /* @ts-ignore */
|
|
1022
1031
|
...(ngDevMode ? [{ debugName: "likelihoodIds" }] : /* istanbul ignore next */ []));
|
|
1023
1032
|
this.severityIds = computed(() => {
|
|
1024
1033
|
this.contextService.changeEvent();
|
|
1025
|
-
return
|
|
1034
|
+
return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'severity');
|
|
1026
1035
|
}, /* @ts-ignore */
|
|
1027
1036
|
...(ngDevMode ? [{ debugName: "severityIds" }] : /* istanbul ignore next */ []));
|
|
1028
1037
|
this.matrixValue = computed(() => {
|
|
@@ -1030,16 +1039,6 @@ class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
1030
1039
|
}, /* @ts-ignore */
|
|
1031
1040
|
...(ngDevMode ? [{ debugName: "matrixValue" }] : /* istanbul ignore next */ []));
|
|
1032
1041
|
}
|
|
1033
|
-
normalizeAxisIds(value) {
|
|
1034
|
-
return castArray(value)
|
|
1035
|
-
.map((item) => {
|
|
1036
|
-
if (item != null && typeof item === 'object' && 'id' in item) {
|
|
1037
|
-
return String(item.id);
|
|
1038
|
-
}
|
|
1039
|
-
return item != null ? String(item) : '';
|
|
1040
|
-
})
|
|
1041
|
-
.filter((id) => id.length > 0);
|
|
1042
|
-
}
|
|
1043
1042
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRiskMatrixWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1044
1043
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXMRiskMatrixWidgetViewComponent, isStandalone: true, selector: "axm-risk-matrix-widget-view", host: { classAttribute: "block w-full" }, usesInheritance: true, ngImport: i0, template: `
|
|
1045
1044
|
<axm-risk-matrix
|
|
@@ -1085,5 +1084,5 @@ var riskMatrixWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
1085
1084
|
* Generated bundle index. Do not edit.
|
|
1086
1085
|
*/
|
|
1087
1086
|
|
|
1088
|
-
export { AXMRiskManagementMenuProvider, AXMRiskManagementModule, AXMRiskManagementPermissionDefinitionProvider, AXMRiskManagementRiskMatrixComponent, AXMRiskMatrixViewerService, AXMRiskMatrixWidgetColumnComponent, AXMRiskMatrixWidgetEditComponent, AXMRiskMatrixWidgetViewComponent, isRiskMatrixAxisProperty, isRiskMatrixOrientation, normalizeRiskMatrixAxisIds, pruneMatrixToAxes, resolveRiskMatrixAxisMapping, resolveRiskMatrixAxisMappingFromOrientation, resolveRiskMatrixOrientation, resolveRiskMatrixTitleKey, toCanonicalMatrixData, toDisplayMatrixData, validateRiskMatrixAxisMapping };
|
|
1087
|
+
export { AXMRiskManagementMenuProvider, AXMRiskManagementModule, AXMRiskManagementPermissionDefinitionProvider, AXMRiskManagementRiskMatrixComponent, AXMRiskMatrixViewerService, AXMRiskMatrixWidgetColumnComponent, AXMRiskMatrixWidgetEditComponent, AXMRiskMatrixWidgetViewComponent, isRiskMatrixAxisProperty, isRiskMatrixOrientation, normalizeRiskMatrixAxisIds, pruneMatrixToAxes, resolveRiskMatrixAxisMapping, resolveRiskMatrixAxisMappingFromOrientation, resolveRiskMatrixCellAxisIds, resolveRiskMatrixOrientation, resolveRiskMatrixTitleKey, toCanonicalMatrixData, toDisplayMatrixData, validateRiskMatrixAxisMapping };
|
|
1089
1088
|
//# sourceMappingURL=acorex-platform-module-risk-management-client.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-risk-management-client.mjs","sources":["../../../../libs/modules/risk-management/client/src/lib/menu.provider.ts","../../../../libs/modules/risk-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/risk-management/client/src/lib/manifest.ts","../../../../libs/modules/risk-management/client/src/lib/catalog-scope-definition.provider.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget.config.ts","../../../../libs/modules/risk-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/risk-management/client/src/lib/risk-management.module.ts","../../../../libs/modules/risk-management/client/src/lib/features/shared/risk-matrix-axis-mapping.ts","../../../../libs/modules/risk-management/client/src/lib/features/shared/risk-rating-badge-color.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix.component.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix.component.html","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-viewer.service.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-viewer-open.util.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget-column.component.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget-edit.component.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget-view.component.ts","../../../../libs/modules/risk-management/client/src/acorex-platform-module-risk-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport {\n RootConfig,\n AXPSafetyRiskPermissionKeys\n} from '@acorex-platform/module-risk-management-client/contracts';\nimport { AXMRiskManagementMenuKeys } from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu provider ----\n\nexport class AXMRiskManagementMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const entities = RootConfig.entities;\n const keys = AXPSafetyRiskPermissionKeys;\n\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXMRiskManagementMenuKeys.Root,\n priority: 8950,\n text: `@${RootConfig.config.i18n}:module.menus.risk`,\n icon: module.icon,\n type: 'menu',\n policy: {\n features: [module.name],\n },\n children: [\n {\n name: AXMRiskManagementMenuKeys.RiskMatrixCells,\n text: entities.riskMatrixCell.titlePlural,\n icon: entities.riskMatrixCell.icon,\n priority: 1,\n path: this.entityService.createPath(module.name, entities.riskMatrixCell.name),\n policy: {\n permissions: [keys.MaintainRisk],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskLikelihoods,\n text: entities.riskLikelihood.titlePlural,\n icon: entities.riskLikelihood.icon,\n priority: 2,\n path: this.entityService.createPath(module.name, entities.riskLikelihood.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskSeverities,\n text: entities.riskSeverity.titlePlural,\n icon: entities.riskSeverity.icon,\n priority: 3,\n path: this.entityService.createPath(module.name, entities.riskSeverity.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskRatings,\n text: entities.riskRating.titlePlural,\n icon: entities.riskRating.icon,\n priority: 4,\n path: this.entityService.createPath(module.name, entities.riskRating.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n ],\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\r\n\r\nimport {\r\n AXPPermissionDefinitionProvider,\r\n AXPPermissionDefinitionProviderContext,\r\n} from '@acorex-platform/framework-client/auth';\r\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPSafetyRiskPermissionKeys\n} from '@acorex-platform/module-risk-management-client/contracts';\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n//#endregion\r\n\r\n//#region ---- Permission Definition Provider ----\r\n\r\n/**\r\n * Registers risk capabilities into the shared Safety & Risk group.\r\n */\r\n@Injectable()\r\nexport class AXMRiskManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\r\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\r\n const keys = AXPSafetyRiskPermissionKeys;\r\n const groups = AXPCommonPermissionGroupKeys;\r\n const P = '@common:safety-risk.permissions';\r\n const G = '@common:permission-groups';\r\n\r\n context.addGroup(groups.SafetyRisk.Root, `${G}.safety-risk.title`, `${G}.safety-risk.description`, { order: 30 });\n\n context\n .addGroup(\n groups.SafetyRisk.Risk,\n `${G}.safety-risk-risk.title`,\n `${G}.safety-risk-risk.description`,\n { parent: groups.SafetyRisk.Root, order: 20 },\n )\n .addPermission(keys.MaintainRisk, `${P}.maintain-risk.title`, `${P}.maintain-risk.description`)\r\n .endPermission()\r\r\n .endGroup();\r\n }\r\n}\r\n\r\n//#endregion\r\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\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 ---- Imports ----\n\nimport type {\n AXPCatalogScopeDefinition,\n AXPCatalogScopeDefinitionProvider,\n} from '@acorex-platform/framework-client/core';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\nimport { RISK_CATALOG_SCOPE_HAZARD, RISK_CATALOG_SCOPE_PPE_ITEMS } from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst RISK_MATRIX_CELL = `${RootConfig.module.name}.${RootConfig.entities.riskMatrixCell.name}`;\n\nconst RISK_MATRIX_CELL_CATALOG_TARGETS = [RISK_MATRIX_CELL] as const;\n\n//#endregion\n\n//#region ---- Provider ----\n\n@Injectable()\nexport class AXMRiskManagementCatalogScopeDefinitionProvider implements AXPCatalogScopeDefinitionProvider {\n async items(): Promise<AXPCatalogScopeDefinition[]> {\n return [\n {\n name: RISK_CATALOG_SCOPE_HAZARD,\n title: '@risk-management:catalog-scopes.hazard.title',\n description: '@risk-management:catalog-scopes.hazard.description',\n targets: [...RISK_MATRIX_CELL_CATALOG_TARGETS],\n icon: 'fa-light fa-triangle-exclamation',\n cssClass: 'warning-lighter-surface',\n order: 20,\n },\n {\n name: RISK_CATALOG_SCOPE_PPE_ITEMS,\n title: '@risk-management:catalog-scopes.ppe-items.title',\n description: '@risk-management:catalog-scopes.ppe-items.description',\n targets: [...RISK_MATRIX_CELL_CATALOG_TARGETS],\n icon: 'fa-light fa-helmet-safety',\n cssClass: 'info-lighter-surface',\n order: 21,\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_LABEL_PROPERTY,\n AXP_NAME_PROPERTY,\n AXP_READONLY_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\n//#endregion\n\n//#region ---- Widget Config ----\n\nexport const AXMRiskMatrixWidget: AXPWidgetConfig<AXMRiskMatrixWidgetConfigType> = {\n name: 'risk-matrix-editor',\n title: 'Risk Matrix',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n groups: [AXPWidgetGroupEnum.UtilityWidget],\n description: 'Matrix widget for mapping likelihood and severity combinations to risk ratings',\n icon: 'fa-light fa-table-cells',\n type: 'editor',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n AXP_LABEL_PROPERTY,\n AXP_READONLY_PROPERTY,\n AXP_DISABLED_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./risk-matrix-widget-view.component').then((c) => c.AXMRiskMatrixWidgetViewComponent),\n },\n edit: {\n component: () => import('./risk-matrix-widget-edit.component').then((c) => c.AXMRiskMatrixWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./risk-matrix-widget-column.component').then((c) => c.AXMRiskMatrixWidgetColumnComponent),\n },\n },\n};\n\nexport type AXMRiskMatrixWidgetConfigType = {\n type: 'editor';\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMRiskMatrixWidget } from './features/risk-matrix/risk-matrix-widget.config';\n\n//#endregion\n\n//#region ---- Risk Management Widgets Provider ----\n\n@Injectable()\nexport class AXMRiskManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMRiskMatrixWidget];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER } from '@acorex-platform/framework-client/common';\nimport {\n AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n AXP_MODULE_MANIFEST_PROVIDER,\n provideLazyProvider,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\n\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\n\nimport { RiskManagementManifest } from './manifest';\nimport { AXMRiskManagementCatalogScopeDefinitionProvider } from './catalog-scope-definition.provider';\nimport { AXMRiskManagementWidgetsProvider } from './widget-definition.provider';\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n ],\n providers: [\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: RiskManagementManifest,\n multi: true,\n },\n\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () =>\n import('./permission-definition.provider').then((m) => m.AXMRiskManagementPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () =>\n import('./menu.provider').then((m) => m.AXMRiskManagementMenuProvider),\n ),\n \n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMRiskManagementWidgetsProvider,\n multi: true,\n },\n {\n provide: AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n useClass: AXMRiskManagementCatalogScopeDefinitionProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.riskMatrixCell.name}:Preview`,\n command: () =>\n import('./features/risk-matrix/commands/preview-risk-matrix-cell.command').then(\n (c) => c.AXMPreviewRiskMatrixCellCommand,\n ),\n },\n ]),\n ],\n})\nexport class AXMRiskManagementModule {}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { extractValue } from '@acorex-platform/framework-shared/core';\nimport type { AXPSpreadsheetData } from '@acorex-platform/framework-client/layout/components';\nimport {\n DEFAULT_RISK_MATRIX_AXIS_MAPPING,\n DEFAULT_RISK_MATRIX_ORIENTATION,\n RISK_MATRIX_AXIS_PROPERTIES,\n RISK_MATRIX_ORIENTATION_TITLE_KEYS,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixAxisProperty,\n type AXMRiskMatrixOrientation,\n} from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nexport function isRiskMatrixAxisProperty(value: unknown): value is AXMRiskMatrixAxisProperty {\n return typeof value === 'string' && (RISK_MATRIX_AXIS_PROPERTIES as readonly string[]).includes(value);\n}\n\nexport function resolveRiskMatrixAxisMapping(\n mapping?: Partial<AXMRiskMatrixAxisMapping> | null,\n): AXMRiskMatrixAxisMapping {\n const rowProperty = isRiskMatrixAxisProperty(mapping?.rowProperty)\n ? mapping.rowProperty\n : DEFAULT_RISK_MATRIX_AXIS_MAPPING.rowProperty;\n const columnProperty = isRiskMatrixAxisProperty(mapping?.columnProperty)\n ? mapping.columnProperty\n : DEFAULT_RISK_MATRIX_AXIS_MAPPING.columnProperty;\n const depthProperty = isRiskMatrixAxisProperty(mapping?.depthProperty)\n ? mapping.depthProperty\n : DEFAULT_RISK_MATRIX_AXIS_MAPPING.depthProperty;\n\n if (validateRiskMatrixAxisMapping({ rowProperty, columnProperty, depthProperty })) {\n return { rowProperty, columnProperty, depthProperty };\n }\n\n return { ...DEFAULT_RISK_MATRIX_AXIS_MAPPING };\n}\n\nexport function isRiskMatrixOrientation(value: unknown): value is AXMRiskMatrixOrientation {\n return value === 'likelihood-rows' || value === 'severity-rows';\n}\n\n/**\n * Normalizes orientation from persisted strings or SelectionList row objects (`{ id }`).\n */\nexport function resolveRiskMatrixOrientation(value: unknown): AXMRiskMatrixOrientation {\n const candidate = extractValue(value, 'id') ?? value;\n\n return isRiskMatrixOrientation(candidate) ? candidate : DEFAULT_RISK_MATRIX_ORIENTATION;\n}\n\n/** Translation key for the spreadsheet corner title (`row axis / column axis`). */\nexport function resolveRiskMatrixTitleKey(orientation?: unknown): string {\n return RISK_MATRIX_ORIENTATION_TITLE_KEYS[resolveRiskMatrixOrientation(orientation)];\n}\n\nfunction pickDefinedAxisMapping(\n mapping?: Partial<AXMRiskMatrixAxisMapping> | null,\n): Partial<AXMRiskMatrixAxisMapping> {\n if (!mapping) {\n return {};\n }\n\n const picked: Partial<AXMRiskMatrixAxisMapping> = {};\n\n if (isRiskMatrixAxisProperty(mapping.rowProperty)) {\n picked.rowProperty = mapping.rowProperty;\n }\n if (isRiskMatrixAxisProperty(mapping.columnProperty)) {\n picked.columnProperty = mapping.columnProperty;\n }\n if (isRiskMatrixAxisProperty(mapping.depthProperty)) {\n picked.depthProperty = mapping.depthProperty;\n }\n\n return picked;\n}\n\nexport function resolveRiskMatrixAxisMappingFromOrientation(\n orientation?: unknown,\n mapping?: Partial<AXMRiskMatrixAxisMapping> | null,\n): AXMRiskMatrixAxisMapping {\n const resolvedOrientation = resolveRiskMatrixOrientation(orientation);\n\n const orientationMapping: AXMRiskMatrixAxisMapping =\n resolvedOrientation === 'severity-rows'\n ? { rowProperty: 'severityId', columnProperty: 'likelihoodId', depthProperty: 'riskRatingId' }\n : { rowProperty: 'likelihoodId', columnProperty: 'severityId', depthProperty: 'riskRatingId' };\n\n return resolveRiskMatrixAxisMapping({\n ...pickDefinedAxisMapping(mapping),\n ...orientationMapping,\n });\n}\n\n/**\n * Persisted matrix shape is always likelihood × severity → risk rating.\n * Transpose only for display when severity is shown as rows.\n */\nexport function toDisplayMatrixData(\n canonical: AXPSpreadsheetData,\n orientation?: unknown,\n): AXPSpreadsheetData {\n if (resolveRiskMatrixOrientation(orientation) === 'likelihood-rows') {\n return canonical;\n }\n\n const display: AXPSpreadsheetData = {};\n\n Object.entries(canonical).forEach(([likelihoodId, severityMap]) => {\n if (!severityMap) {\n return;\n }\n\n Object.entries(severityMap).forEach(([severityId, ratingId]) => {\n display[severityId] ??= {};\n display[severityId][likelihoodId] = ratingId;\n });\n });\n\n return display;\n}\n\n/** Converts display-oriented matrix data back to canonical likelihood × severity storage. */\nexport function toCanonicalMatrixData(\n display: AXPSpreadsheetData,\n orientation?: unknown,\n): AXPSpreadsheetData {\n if (resolveRiskMatrixOrientation(orientation) === 'likelihood-rows') {\n return display;\n }\n\n const canonical: AXPSpreadsheetData = {};\n\n Object.entries(display).forEach(([severityId, likelihoodMap]) => {\n if (!likelihoodMap) {\n return;\n }\n\n Object.entries(likelihoodMap).forEach(([likelihoodId, ratingId]) => {\n canonical[likelihoodId] ??= {};\n canonical[likelihoodId][severityId] = ratingId;\n });\n });\n\n return canonical;\n}\n\n/** Normalizes lookup axis values (ids or `{ id }` rows) to string ids. */\nexport function normalizeRiskMatrixAxisIds(value: unknown): string[] {\n const items = Array.isArray(value) ? value : value != null ? [value] : [];\n\n return items\n .map((item) => {\n if (item != null && typeof item === 'object' && 'id' in item) {\n return String((item as { id: unknown }).id);\n }\n return item != null ? String(item) : '';\n })\n .filter((id) => id.length > 0);\n}\n\n/**\n * Drops matrix entries for axes no longer selected on the record.\n * Persisted shape stays likelihood × severity → risk rating.\n */\nexport function pruneMatrixToAxes(\n matrix: AXPSpreadsheetData,\n likelihoodIds: string[],\n severityIds: string[],\n): AXPSpreadsheetData {\n const likelihoodSet = new Set(likelihoodIds);\n const severitySet = new Set(severityIds);\n const pruned: AXPSpreadsheetData = {};\n\n Object.entries(matrix ?? {}).forEach(([likelihoodId, severityMap]) => {\n if (!likelihoodSet.has(likelihoodId) || severityMap == null) {\n return;\n }\n\n const row: Record<string, string | null> = {};\n Object.entries(severityMap).forEach(([severityId, ratingId]) => {\n if (severitySet.has(severityId)) {\n row[severityId] = ratingId;\n }\n });\n\n if (Object.keys(row).length > 0) {\n pruned[likelihoodId] = row;\n }\n });\n\n return pruned;\n}\n\nexport function validateRiskMatrixAxisMapping(mapping: Partial<AXMRiskMatrixAxisMapping>): boolean {\n const rowProperty = mapping.rowProperty;\n const columnProperty = mapping.columnProperty;\n const depthProperty = mapping.depthProperty;\n\n if (!isRiskMatrixAxisProperty(rowProperty)) {\n return false;\n }\n if (!isRiskMatrixAxisProperty(columnProperty)) {\n return false;\n }\n if (!isRiskMatrixAxisProperty(depthProperty)) {\n return false;\n }\n\n const values = [rowProperty, columnProperty, depthProperty];\n return new Set(values).size === values.length;\n}\n\n//#endregion\n","//#region ---- Constants ----\n\n/** Default matrix badge colors when {@link color} is not set on a risk rating record. */\nexport const DEFAULT_RISK_RATING_BADGE_COLORS = {\n low: 'warning-lighter-surface',\n medium: 'success-lighter-surface',\n high: 'danger-lighter-surface',\n} as const;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nexport function resolveRiskRatingBadgeColor(rating: {\n code?: string;\n title?: string;\n color?: string | null;\n}): string | undefined {\n const color = rating.color?.trim();\n if (color) {\n return color;\n }\n\n const code = rating.code?.trim().toUpperCase();\n if (code?.endsWith('0001')) {\n return DEFAULT_RISK_RATING_BADGE_COLORS.low;\n }\n if (code?.endsWith('0002')) {\n return DEFAULT_RISK_RATING_BADGE_COLORS.medium;\n }\n if (code?.endsWith('0003')) {\n return DEFAULT_RISK_RATING_BADGE_COLORS.high;\n }\n\n const title = rating.title?.trim().toLowerCase();\n if (title === 'low') {\n return DEFAULT_RISK_RATING_BADGE_COLORS.low;\n }\n if (title === 'medium') {\n return DEFAULT_RISK_RATING_BADGE_COLORS.medium;\n }\n if (title === 'high') {\n return DEFAULT_RISK_RATING_BADGE_COLORS.high;\n }\n\n return undefined;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { type AXPWidgetNode, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPSpreadsheetCellChangeEvent,\n AXPSpreadsheetColumn,\n AXPSpreadsheetComponent,\n AXPSpreadsheetData,\n AXPSpreadsheetItem,\n} from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { type AXMRiskMatrixAxisMapping, type AXMRiskMatrixAxisProperty, RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\nimport type { AXMRiskManagementRiskLikelihoodEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport type { AXMRiskManagementRiskRatingEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport type { AXMRiskManagementRiskSeverityEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n resolveRiskMatrixTitleKey,\n toCanonicalMatrixData,\n toDisplayMatrixData,\n} from '../shared/risk-matrix-axis-mapping';\nimport { resolveRiskRatingBadgeColor } from '../shared/risk-rating-badge-color';\n\n//#endregion\n\n//#region ---- Types ----\n\ntype AxisEntityModel = {\n id: string;\n title: string;\n description?: string;\n color?: string;\n};\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix',\n standalone: true,\n imports: [CommonModule, AXPSpreadsheetComponent, AXTranslationModule],\n templateUrl: './risk-matrix.component.html',\n styleUrl: './risk-matrix.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'axm-risk-matrix',\n },\n})\nexport class AXMRiskManagementRiskMatrixComponent {\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly likelihoodDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskLikelihood.name)\n .data<string, AXMRiskManagementRiskLikelihoodEntityModel>();\n private readonly severityDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskSeverity.name)\n .data<string, AXMRiskManagementRiskSeverityEntityModel>();\n private readonly riskRatingDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskRating.name)\n .data<string, AXMRiskManagementRiskRatingEntityModel>();\n private readonly multiLanguageResolver = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Inputs ----\n\n /** Axis mapping. Defaults to likelihood × severity → risk rating. */\n axisMapping = input<Partial<AXMRiskMatrixAxisMapping>>({});\n\n /** Selected axis item ids from the parent matrix record. */\n likelihoodIds = input<string[] | null | undefined>(null);\n severityIds = input<string[] | null | undefined>(null);\n\n /** Controls row/column layout only; persisted matrix stays likelihood × severity. */\n matrixOrientation = input<string | null | undefined>(null);\n\n /** Matrix data: { [likelihoodId]: { [severityId]: riskRatingId } } */\n value = input<AXPSpreadsheetData>({});\n\n readonly = input<boolean>(false);\n\n //#endregion\n\n //#region ---- Outputs ----\n\n valueChange = output<AXPSpreadsheetData>();\n cellChange = output<AXPSpreadsheetCellChangeEvent>();\n\n //#endregion\n\n //#region ---- Class Properties ----\n\n private readonly likelihoodItems = signal<AxisEntityModel[]>([]);\n private readonly severityItems = signal<AxisEntityModel[]>([]);\n private readonly depthItems = signal<AxisEntityModel[]>([]);\n private readonly hasLoadedAxesOnce = signal<boolean>(false);\n protected readonly isLoading = signal<boolean>(false);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected readonly resolvedMatrixOrientation = computed(() =>\n resolveRiskMatrixOrientation(this.matrixOrientation()),\n );\n\n protected readonly resolvedAxisMapping = computed(() =>\n resolveRiskMatrixAxisMappingFromOrientation(this.resolvedMatrixOrientation(), this.axisMapping()),\n );\n\n protected readonly displayMatrix = computed(() =>\n toDisplayMatrixData(this.value(), this.resolvedMatrixOrientation()),\n );\n\n protected readonly matrixTitleKey = computed(() => resolveRiskMatrixTitleKey(this.resolvedMatrixOrientation()));\n\n protected readonly verticalTitles = computed<AXPSpreadsheetItem[]>(() =>\n this.toSpreadsheetItems(this.resolvedRowItems()),\n );\n\n protected readonly horizontalTitles = computed<AXPSpreadsheetItem[]>(() =>\n this.toSpreadsheetItems(this.resolvedColumnItems()),\n );\n\n protected readonly cellOptions = computed<AXPSpreadsheetItem[]>(() => this.toSpreadsheetItems(this.depthItems()));\n\n private readonly resolvedRowItems = computed(() => {\n const mapping = this.resolvedAxisMapping();\n return mapping.rowProperty === 'likelihoodId' ? this.likelihoodItems() : this.severityItems();\n });\n\n private readonly resolvedColumnItems = computed(() => {\n const mapping = this.resolvedAxisMapping();\n return mapping.columnProperty === 'likelihoodId' ? this.likelihoodItems() : this.severityItems();\n });\n\n protected readonly spreadsheetColumns = computed<AXPSpreadsheetColumn[]>(() => {\n const horizontalTitles = this.horizontalTitles();\n const ratingItems = this.depthItems();\n const cellOptions = this.toSpreadsheetItems(ratingItems);\n\n const selectBoxWidget: AXPWidgetNode = {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'id',\n textField: 'title',\n cssClassField: 'color',\n dataSource: cellOptions.map((option, index) => ({\n id: option.id,\n title: option.title,\n description: option.description,\n color: ratingItems[index]?.color,\n })),\n },\n };\n\n return horizontalTitles.map((title) => ({\n name: title.id,\n title: title.title,\n description: title.description,\n path: title.id,\n widget: selectBoxWidget,\n }));\n });\n\n protected readonly spreadsheetRows = computed<Record<string, unknown>[]>(() => {\n const verticalTitles = this.verticalTitles();\n const horizontalTitles = this.horizontalTitles();\n const matrixData = this.displayMatrix();\n\n return verticalTitles.map((row) => {\n const rowData: Record<string, unknown> = {\n name: row.id,\n _rowTitle: row.title,\n _rowDescription: row.description,\n };\n\n horizontalTitles.forEach((column) => {\n rowData[column.id] = matrixData[row.id]?.[column.id] ?? null;\n });\n\n return rowData;\n });\n });\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n constructor() {\n effect(() => {\n const likelihoodIds = this.likelihoodIds();\n const severityIds = this.severityIds();\n void this.loadMatrixAxes(likelihoodIds, severityIds);\n });\n }\n\n //#endregion\n\n //#region ---- Data Loading Methods ----\n\n private async loadMatrixAxes(\n likelihoodIds: string[] | null | undefined,\n severityIds: string[] | null | undefined,\n ): Promise<void> {\n const isInitialLoad = !this.hasLoadedAxesOnce();\n\n try {\n if (isInitialLoad) {\n this.isLoading.set(true);\n }\n\n const query = {\n skip: 0,\n take: 1000,\n sort: [{ field: 'levelValue', dir: 'asc' as const }],\n };\n\n const [likelihoodResult, severityResult, depthResult] = await Promise.all([\n this.queryAxisItems('likelihoodId', query, likelihoodIds),\n this.queryAxisItems('severityId', query, severityIds),\n this.queryAxisItems('riskRatingId', query),\n ]);\n\n this.likelihoodItems.set(likelihoodResult);\n this.severityItems.set(severityResult);\n this.depthItems.set(depthResult);\n this.hasLoadedAxesOnce.set(true);\n } catch (error) {\n console.error('Error loading risk matrix axes:', error);\n this.likelihoodItems.set([]);\n this.severityItems.set([]);\n this.depthItems.set([]);\n } finally {\n if (isInitialLoad) {\n this.isLoading.set(false);\n }\n }\n }\n\n private async queryAxisItems(\n property: AXMRiskMatrixAxisProperty,\n query: {\n skip: number;\n take: number;\n sort: { field: string; dir: 'asc' }[];\n },\n selectedIds?: string[] | null,\n ): Promise<AxisEntityModel[]> {\n const accessor = this.getAxisDataAccessor(property);\n const result = await accessor.query(query);\n const items = (result.items ?? []).map((item) => {\n const base = {\n id: item.id,\n title: item.title,\n description: item.description,\n };\n\n if (property !== 'riskRatingId') {\n return base;\n }\n\n const rating = item as AXMRiskManagementRiskRatingEntityModel;\n const color = resolveRiskRatingBadgeColor(rating);\n return color ? { ...base, color } : base;\n });\n\n if (isEmpty(selectedIds)) {\n return items;\n }\n\n const selectedIdSet = new Set(selectedIds);\n return items.filter((item) => selectedIdSet.has(item.id));\n }\n\n private getAxisDataAccessor(property: AXMRiskMatrixAxisProperty) {\n switch (property) {\n case 'severityId':\n return this.severityDataAccessor;\n case 'riskRatingId':\n return this.riskRatingDataAccessor;\n case 'likelihoodId':\n default:\n return this.likelihoodDataAccessor;\n }\n }\n\n //#endregion\n\n //#region ---- Data Transformation Methods ----\n\n private toSpreadsheetItems(items: AxisEntityModel[]): AXPSpreadsheetItem[] {\n const resolve = (v: unknown) => this.multiLanguageResolver.resolve(v as never);\n return items.map((item) => ({\n id: item.id,\n title: resolve(item.title),\n description: item.description ? resolve(item.description) : undefined,\n }));\n }\n\n private convertSpreadsheetRowsToMatrixData(rows: Record<string, unknown>[]): AXPSpreadsheetData {\n const horizontalTitles = this.horizontalTitles();\n const matrixData: AXPSpreadsheetData = {};\n\n rows.forEach((row) => {\n const rowId = row['name'] as string | undefined;\n if (!rowId) {\n return;\n }\n\n matrixData[rowId] = {};\n horizontalTitles.forEach((column) => {\n matrixData[rowId][column.id] = (row[column.id] as string | null) ?? null;\n });\n });\n\n return matrixData;\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleSpreadsheetChange(rows: Record<string, unknown>[]): void {\n const displayMatrix = this.convertSpreadsheetRowsToMatrixData(rows);\n this.valueChange.emit(toCanonicalMatrixData(displayMatrix, this.resolvedMatrixOrientation()));\n }\n\n protected handleCellChange(event: AXPSpreadsheetCellChangeEvent): void {\n this.cellChange.emit(event);\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"__container\">\n <div class=\"__matrix-section\">\n @if (isLoading()) {\n <div class=\"__loading\">\n <span>{{ '@risk-management:risk-matrix-cells.components.risk-matrix.messages.loading' | translate | async }}</span>\n </div>\n } @else {\n @for (_ of [resolvedMatrixOrientation()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\n }\n }\n </div>\n</div>\n","//#region ---- Imports ----\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isEmpty } from 'lodash';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMRiskMatrixViewerOpenOptions {\n context: Record<string, unknown>;\n matrixPath?: string;\n title?: string;\n}\n\n//#endregion\n\n//#region ---- Risk Matrix Viewer Service ----\n\n/**\n * Opens a read-only risk matrix preview dialog from row or record context.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMRiskMatrixViewerService {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Public API ----\n\n async open(options: AXMRiskMatrixViewerOpenOptions): Promise<void> {\n const matrixPath = defaultTo(options.matrixPath, 'matrix');\n const matrixValue = get(options.context, matrixPath);\n\n if (isEmpty(matrixValue)) {\n return;\n }\n\n const ref = await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(this.resolveDialogTitle(options.title))\n .setSize('lg')\n .setCloseButton(true)\n .setContext({ ...options.context })\n .content((layout) => {\n layout.flex((flex) => {\n flex.setDirection('column');\n flex.formField('', (field) => {\n field\n .path(matrixPath)\n .setShowLabel(false)\n .customWidget(AXPWidgetsList.Editors.RiskMatrix, { readonly: true });\n });\n });\n })\n .setActions((actions) => {\n actions.cancel('@general:actions.close.title');\n });\n })\n .show();\n\n ref.close();\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private resolveDialogTitle(title: string | undefined): string {\n const resolved = resolveEntityRowDisplayText(title, this.translation.getActiveLang());\n return resolved || 'Risk Matrix';\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { resolveEntityRowDisplayTitle } from '@acorex-platform/framework-client/common';\n\nimport { AXMRiskMatrixViewerOpenOptions, AXMRiskMatrixViewerService } from './risk-matrix-viewer.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMRiskMatrixViewerOpenParams {\n context: Record<string, unknown>;\n matrixPath?: string;\n widgetOptions?: Record<string, unknown>;\n formatService: AXFormatService;\n activeLang: string;\n data?: Record<string, unknown>;\n entity?: AXPEntity | null;\n fallbackTitleKey?: string;\n}\n\n//#endregion\n\n//#region ---- Viewer Open Helper ----\n\nexport function buildRiskMatrixViewerOpenOptions(\n params: AXMRiskMatrixViewerOpenParams,\n): AXMRiskMatrixViewerOpenOptions {\n const matrixPath = params.matrixPath ?? 'matrix';\n const title = params.data\n ? resolveEntityRowDisplayTitle({\n data: params.data,\n widgetOptions: params.widgetOptions,\n formatService: params.formatService,\n activeLang: params.activeLang,\n entity: params.entity,\n })\n : '';\n\n return {\n context: params.context,\n matrixPath,\n title: title || params.fallbackTitleKey,\n };\n}\n\nexport async function openRiskMatrixViewer(\n viewer: AXMRiskMatrixViewerService,\n params: AXMRiskMatrixViewerOpenParams,\n): Promise<void> {\n await viewer.open(buildRiskMatrixViewerOpenOptions(params));\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\n\nimport { openRiskMatrixViewer } from './risk-matrix-viewer-open.util';\nimport { AXMRiskMatrixViewerService } from './risk-matrix-viewer.service';\n\n//#endregion\n\n//#region ---- Component: Risk Matrix Widget Column ----\n\n@Component({\n selector: 'axm-risk-matrix-widget-column',\n imports: [AXButtonModule, AXDecoratorModule],\n template: `\n <div class=\"flex items-center gap-2\">\n @if (hasMatrix()) {\n <ax-button class=\"ax-sm\" look=\"twotone\" color=\"default\" (click)=\"showPopup()\">\n <ax-icon>\n <i class=\"fa-light fa-table-cells\"></i>\n </ax-icon>\n </ax-button>\n } @else {\n <span>-</span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXMRiskMatrixWidgetColumnComponent extends AXPColumnWidgetComponent<Record<string, unknown>> {\n //#region ---- Services & Dependencies ----\n\n private readonly riskMatrixViewer = inject(AXMRiskMatrixViewerService);\n private readonly formatService = inject(AXFormatService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n hasMatrix(): boolean {\n return !isEmpty(this.rawValue);\n }\n\n async showPopup(): Promise<void> {\n const rowData = this.rowData as Record<string, unknown> | undefined;\n if (!rowData || isEmpty(this.rawValue)) {\n return;\n }\n\n await openRiskMatrixViewer(this.riskMatrixViewer, {\n context: rowData,\n matrixPath: this.path,\n data: rowData,\n widgetOptions: { ...(this.options as Record<string, unknown>) },\n formatService: this.formatService,\n activeLang: this.translation.getActiveLang(),\n fallbackTitleKey: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.matrix.title',\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSpreadsheetData } from '@acorex-platform/framework-client/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, ViewEncapsulation } from '@angular/core';\nimport { get, isEqual } from 'lodash';\nimport { type AXMRiskMatrixAxisMapping } from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n normalizeRiskMatrixAxisIds,\n pruneMatrixToAxes,\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n} from '../shared/risk-matrix-axis-mapping';\nimport { AXMRiskManagementRiskMatrixComponent } from './risk-matrix.component';\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix-widget-edit',\n standalone: true,\n imports: [AXMRiskManagementRiskMatrixComponent],\n template: `\n <axm-risk-matrix\n [axisMapping]=\"axisMapping()\"\n [matrixOrientation]=\"matrixOrientation()\"\n [likelihoodIds]=\"likelihoodIds()\"\n [severityIds]=\"severityIds()\"\n [value]=\"matrixValue()\"\n [readonly]=\"readonly()\"\n (valueChange)=\"handleValueChange($any($event))\"\n ></axm-risk-matrix>\n `,\n host: {\n class: 'block w-full',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {\n //#region ---- Lifecycle Methods ----\n\n constructor() {\n super();\n\n effect(() => {\n const likelihoodIds = this.likelihoodIds();\n const severityIds = this.severityIds();\n const matrix = (this.getValue() as AXPSpreadsheetData) ?? {};\n const prunedMatrix = pruneMatrixToAxes(matrix, likelihoodIds, severityIds);\n\n if (!isEqual(matrix, prunedMatrix)) {\n this.setValue(prunedMatrix);\n }\n });\n }\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected readonly = computed<boolean>(() => {\n const options = this.options();\n return options?.['readonly'] ?? false;\n });\n\n protected axisMapping = computed<AXMRiskMatrixAxisMapping>(() => {\n this.contextService.changeEvent();\n const options = this.options();\n const orientation = get(this.contextService.data(), 'matrixOrientation') as string | null | undefined;\n\n return resolveRiskMatrixAxisMappingFromOrientation(orientation, {\n rowProperty: options?.['rowProperty'],\n columnProperty: options?.['columnProperty'],\n depthProperty: options?.['depthProperty'],\n });\n });\n\n protected matrixOrientation = computed(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixOrientation(get(this.contextService.data(), 'matrixOrientation'));\n });\n\n protected likelihoodIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return this.normalizeAxisIds(get(this.contextService.data(), 'likelihoodId'));\n });\n\n protected severityIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return this.normalizeAxisIds(get(this.contextService.data(), 'severityId'));\n });\n\n protected matrixValue = computed<AXPSpreadsheetData>(() => {\n return (this.getValue() as AXPSpreadsheetData) || {};\n });\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleValueChange(data: AXPSpreadsheetData): void {\n if (data) {\n this.setValue(data);\n }\n }\n\n private normalizeAxisIds(value: unknown): string[] {\n return normalizeRiskMatrixAxisIds(value);\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSpreadsheetData } from '@acorex-platform/framework-client/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { castArray, get } from 'lodash';\nimport { type AXMRiskMatrixAxisMapping } from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n} from '../shared/risk-matrix-axis-mapping';\nimport { AXMRiskManagementRiskMatrixComponent } from './risk-matrix.component';\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix-widget-view',\n standalone: true,\n imports: [AXMRiskManagementRiskMatrixComponent],\n template: `\n <axm-risk-matrix\n [axisMapping]=\"axisMapping()\"\n [matrixOrientation]=\"matrixOrientation()\"\n [likelihoodIds]=\"likelihoodIds()\"\n [severityIds]=\"severityIds()\"\n [value]=\"matrixValue()\"\n [readonly]=\"true\"\n ></axm-risk-matrix>\n `,\n host: {\n class: 'block w-full',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {\n //#region ---- Computed Properties ----\n\n protected axisMapping = computed<AXMRiskMatrixAxisMapping>(() => {\n this.contextService.changeEvent();\n const options = this.options();\n const orientation = get(this.contextService.data(), 'matrixOrientation') as string | null | undefined;\n\n return resolveRiskMatrixAxisMappingFromOrientation(orientation, {\n rowProperty: options?.['rowProperty'],\n columnProperty: options?.['columnProperty'],\n depthProperty: options?.['depthProperty'],\n });\n });\n\n protected matrixOrientation = computed(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixOrientation(get(this.contextService.data(), 'matrixOrientation'));\n });\n\n protected likelihoodIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return this.normalizeAxisIds(get(this.contextService.data(), 'likelihoodId'));\n });\n\n protected severityIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return this.normalizeAxisIds(get(this.contextService.data(), 'severityId'));\n });\n\n protected matrixValue = computed<AXPSpreadsheetData>(() => {\n return (this.getValue() as AXPSpreadsheetData) || {};\n });\n\n private normalizeAxisIds(value: unknown): string[] {\n return castArray(value)\n .map((item) => {\n if (item != null && typeof item === 'object' && 'id' in item) {\n return String((item as { id: unknown }).id);\n }\n return item != null ? String(item) : '';\n })\n .filter((id) => id.length > 0);\n }\n\n //#endregion\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAcA;AAEA;MAEa,6BAA6B,CAAA;AAA1C,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;IA8D3D;IA5DE,MAAM,OAAO,CAAC,OAA+B,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AAChC,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ;QACpC,MAAM,IAAI,GAAG,2BAA2B;QAExC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC;AACrD,YAAA;gBACE,IAAI,EAAE,yBAAyB,CAAC,IAAI;AACpC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,IAAI,EAAE,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,kBAAA,CAAoB;gBACpD,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,eAAe;AAC/C,wBAAA,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW;AACzC,wBAAA,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI;AAClC,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;AAC9E,wBAAA,MAAM,EAAE;AACN,4BAAA,WAAW,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,yBAAA;AACF,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,eAAe;AAC/C,wBAAA,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW;AACzC,wBAAA,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI;AAClC,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;AAC9E,wBAAA,MAAM,EAAE;AACN,4BAAA,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,cAAc;AAC9C,wBAAA,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,WAAW;AACvC,wBAAA,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI;AAChC,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;AAC5E,wBAAA,MAAM,EAAE;AACN,4BAAA,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,WAAW;AAC3C,wBAAA,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW;AACrC,wBAAA,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI;AAC9B,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;AAC1E,wBAAA,MAAM,EAAE;AACN,4BAAA,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;IACJ;AACD;AAED;;;;;;;ACpEA;AAEA;AAEA;;AAEG;MAEU,6CAA6C,CAAA;IACxD,MAAM,MAAM,CAAC,OAA+C,EAAA;QAC1D,MAAM,IAAI,GAAG,2BAA2B;QACxC,MAAM,MAAM,GAAG,4BAA4B;QAC3C,MAAM,CAAC,GAAG,iCAAiC;QAC3C,MAAM,CAAC,GAAG,2BAA2B;QAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA,EAAG,CAAC,oBAAoB,EAAE,CAAA,EAAG,CAAC,CAAA,wBAAA,CAA0B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAEjH;AACG,aAAA,QAAQ,CACP,MAAM,CAAC,UAAU,CAAC,IAAI,EACtB,CAAA,EAAG,CAAC,CAAA,uBAAA,CAAyB,EAC7B,CAAA,EAAG,CAAC,CAAA,6BAAA,CAA+B,EACnC,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AAE9C,aAAA,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA,EAAG,CAAC,CAAA,oBAAA,CAAsB,EAAE,CAAA,EAAG,CAAC,CAAA,0BAAA,CAA4B;AAC7F,aAAA,aAAa;AAEb,aAAA,QAAQ,EAAE;IACf;8GApBW,6CAA6C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA7C,6CAA6C,EAAA,CAAA,CAAA;;2FAA7C,6CAA6C,EAAA,UAAA,EAAA,CAAA;kBADzD;;;;;;;;ACtBD;AAKA;AAEA;AAEA;;AAEG;AACI,MAAM,sBAAsB,GAAsB;AACvD,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK;AAC9B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,kBAAkB;AAC1B,IAAA,QAAQ,EAAE,KAAK;CAChB;AAED;;ACbA;AAEA;AAEA,MAAM,gBAAgB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE;AAE/F,MAAM,gCAAgC,GAAG,CAAC,gBAAgB,CAAU;AAEpE;AAEA;MAGa,+CAA+C,CAAA;AAC1D,IAAA,MAAM,KAAK,GAAA;QACT,OAAO;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,yBAAyB;AAC/B,gBAAA,KAAK,EAAE,8CAA8C;AACrD,gBAAA,WAAW,EAAE,oDAAoD;AACjE,gBAAA,OAAO,EAAE,CAAC,GAAG,gCAAgC,CAAC;AAC9C,gBAAA,IAAI,EAAE,kCAAkC;AACxC,gBAAA,QAAQ,EAAE,yBAAyB;AACnC,gBAAA,KAAK,EAAE,EAAE;AACV,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,4BAA4B;AAClC,gBAAA,KAAK,EAAE,iDAAiD;AACxD,gBAAA,WAAW,EAAE,uDAAuD;AACpE,gBAAA,OAAO,EAAE,CAAC,GAAG,gCAAgC,CAAC;AAC9C,gBAAA,IAAI,EAAE,2BAA2B;AACjC,gBAAA,QAAQ,EAAE,sBAAsB;AAChC,gBAAA,KAAK,EAAE,EAAE;AACV,aAAA;SACF;IACH;8GAtBW,+CAA+C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/C,+CAA+C,EAAA,CAAA,CAAA;;2FAA/C,+CAA+C,EAAA,UAAA,EAAA,CAAA;kBAD3D;;;ACtBD;AAYA;AAEA;AAEO,MAAM,mBAAmB,GAAmD;AACjF,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,UAAU,EAAE,2BAA2B;AACvC,IAAA,MAAM,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC;AAC1C,IAAA,WAAW,EAAE,gFAAgF;AAC7F,IAAA,IAAI,EAAE,yBAAyB;AAC/B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACD,IAAA,UAAU,EAAE;QACV,iBAAiB;QACjB,sBAAsB;QACtB,kBAAkB;QAClB,qBAAqB;QACrB,qBAAqB;AACtB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,MAAM,8EAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AAC/G,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE,MAAM,8EAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AAC/G,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,MACT,gFAA+C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC;AACpG,SAAA;AACF,KAAA;CACF;AAMD;;AC9CA;AAEA;MAGa,gCAAgC,CAAA;IAC3C,UAAU,GAAA;QACR,OAAO,CAAC,mBAAmB,CAAC;IAC9B;8GAHW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhC,gCAAgC,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C;;;ACVD;AAkBA;AAEA;MAyCa,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YArChC,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAqCV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,SAAA,EAnCvB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,QAAQ,EAAE,sBAAsB;AAChC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;YAED,mBAAmB,CAAC,kCAAkC,EAAE,MACtD,6EAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6CAA6C,CAAC,CACxG;YACD,mBAAmB,CAAC,iBAAiB,EAAE,MACrC,6DAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC,CACvE;AAED,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,gCAAgC;AAC1C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qCAAqC;AAC9C,gBAAA,QAAQ,EAAE,+CAA+C;AACzD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,oBAAoB,CAAC;AACnB,gBAAA;AACE,oBAAA,GAAG,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAA,QAAA,CAAU;AACnF,oBAAA,OAAO,EAAE,MACP,OAAO,+FAAkE,CAAC,CAAC,IAAI,CAC7E,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,iBAAA;aACF,CAAC;AACH,SAAA,EAAA,OAAA,EAAA,CAnCC,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAqCV,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAvCnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,QAAQ,EAAE,sBAAsB;AAChC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;wBAED,mBAAmB,CAAC,kCAAkC,EAAE,MACtD,6EAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6CAA6C,CAAC,CACxG;wBACD,mBAAmB,CAAC,iBAAiB,EAAE,MACrC,6DAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC,CACvE;AAED,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,QAAQ,EAAE,gCAAgC;AAC1C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qCAAqC;AAC9C,4BAAA,QAAQ,EAAE,+CAA+C;AACzD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA,oBAAoB,CAAC;AACnB,4BAAA;AACE,gCAAA,GAAG,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAA,QAAA,CAAU;AACnF,gCAAA,OAAO,EAAE,MACP,OAAO,+FAAkE,CAAC,CAAC,IAAI,CAC7E,CAAC,CAAC,KAAK,CAAC,CAAC,+BAA+B,CACzC;AACJ,6BAAA;yBACF,CAAC;AACH,qBAAA;AACF,iBAAA;;;AC5DD;AAcA;AAEA;AAEM,SAAU,wBAAwB,CAAC,KAAc,EAAA;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,2BAAiD,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxG;AAEM,SAAU,4BAA4B,CAC1C,OAAkD,EAAA;AAElD,IAAA,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,WAAW;UAC7D,OAAO,CAAC;AACV,UAAE,gCAAgC,CAAC,WAAW;AAChD,IAAA,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc;UACnE,OAAO,CAAC;AACV,UAAE,gCAAgC,CAAC,cAAc;AACnD,IAAA,MAAM,aAAa,GAAG,wBAAwB,CAAC,OAAO,EAAE,aAAa;UACjE,OAAO,CAAC;AACV,UAAE,gCAAgC,CAAC,aAAa;IAElD,IAAI,6BAA6B,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE;AACjF,QAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE;IACvD;AAEA,IAAA,OAAO,EAAE,GAAG,gCAAgC,EAAE;AAChD;AAEM,SAAU,uBAAuB,CAAC,KAAc,EAAA;AACpD,IAAA,OAAO,KAAK,KAAK,iBAAiB,IAAI,KAAK,KAAK,eAAe;AACjE;AAEA;;AAEG;AACG,SAAU,4BAA4B,CAAC,KAAc,EAAA;IACzD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK;AAEpD,IAAA,OAAO,uBAAuB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,+BAA+B;AACzF;AAEA;AACM,SAAU,yBAAyB,CAAC,WAAqB,EAAA;AAC7D,IAAA,OAAO,kCAAkC,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;AACtF;AAEA,SAAS,sBAAsB,CAC7B,OAAkD,EAAA;IAElD,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAsC,EAAE;AAEpD,IAAA,IAAI,wBAAwB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACjD,QAAA,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;IAC1C;AACA,IAAA,IAAI,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACpD,QAAA,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;IAChD;AACA,IAAA,IAAI,wBAAwB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACnD,QAAA,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;IAC9C;AAEA,IAAA,OAAO,MAAM;AACf;AAEM,SAAU,2CAA2C,CACzD,WAAqB,EACrB,OAAkD,EAAA;AAElD,IAAA,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,WAAW,CAAC;AAErE,IAAA,MAAM,kBAAkB,GACtB,mBAAmB,KAAK;AACtB,UAAE,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc;AAC5F,UAAE,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE;AAElG,IAAA,OAAO,4BAA4B,CAAC;QAClC,GAAG,sBAAsB,CAAC,OAAO,CAAC;AAClC,QAAA,GAAG,kBAAkB;AACtB,KAAA,CAAC;AACJ;AAEA;;;AAGG;AACG,SAAU,mBAAmB,CACjC,SAA6B,EAC7B,WAAqB,EAAA;AAErB,IAAA,IAAI,4BAA4B,CAAC,WAAW,CAAC,KAAK,iBAAiB,EAAE;AACnE,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,OAAO,GAAuB,EAAE;AAEtC,IAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,KAAI;QAChE,IAAI,CAAC,WAAW,EAAE;YAChB;QACF;AAEA,QAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAI;AAC7D,YAAA,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;YAC1B,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ;AAC9C,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,OAAO;AAChB;AAEA;AACM,SAAU,qBAAqB,CACnC,OAA2B,EAC3B,WAAqB,EAAA;AAErB,IAAA,IAAI,4BAA4B,CAAC,WAAW,CAAC,KAAK,iBAAiB,EAAE;AACnE,QAAA,OAAO,OAAO;IAChB;IAEA,MAAM,SAAS,GAAuB,EAAE;AAExC,IAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,KAAI;QAC9D,IAAI,CAAC,aAAa,EAAE;YAClB;QACF;AAEA,QAAA,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAI;AACjE,YAAA,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE;YAC9B,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ;AAChD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,SAAS;AAClB;AAEA;AACM,SAAU,0BAA0B,CAAC,KAAc,EAAA;AACvD,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AAEzE,IAAA,OAAO;AACJ,SAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACZ,QAAA,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;AAC5D,YAAA,OAAO,MAAM,CAAE,IAAwB,CAAC,EAAE,CAAC;QAC7C;AACA,QAAA,OAAO,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;AACzC,IAAA,CAAC;AACA,SAAA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC;AAEA;;;AAGG;SACa,iBAAiB,CAC/B,MAA0B,EAC1B,aAAuB,EACvB,WAAqB,EAAA;AAErB,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;AAC5C,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC;IACxC,MAAM,MAAM,GAAuB,EAAE;AAErC,IAAA,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,KAAI;AACnE,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,IAAI,IAAI,EAAE;YAC3D;QACF;QAEA,MAAM,GAAG,GAAkC,EAAE;AAC7C,QAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAI;AAC7D,YAAA,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC/B,gBAAA,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ;YAC5B;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG;QAC5B;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;AAEM,SAAU,6BAA6B,CAAC,OAA0C,EAAA;AACtF,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;AACvC,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc;AAC7C,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa;AAE3C,IAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE;AAC1C,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE;AAC7C,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE;AAC5C,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC;IAC3D,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM;AAC/C;AAEA;;AC1NA;AAEA;AACO,MAAM,gCAAgC,GAAG;AAC9C,IAAA,GAAG,EAAE,yBAAyB;AAC9B,IAAA,MAAM,EAAE,yBAAyB;AACjC,IAAA,IAAI,EAAE,wBAAwB;CACtB;AAEV;AAEA;AAEM,SAAU,2BAA2B,CAAC,MAI3C,EAAA;IACC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;IAClC,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AAC9C,IAAA,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,gCAAgC,CAAC,GAAG;IAC7C;AACA,IAAA,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,gCAAgC,CAAC,MAAM;IAChD;AACA,IAAA,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,gCAAgC,CAAC,IAAI;IAC9C;IAEA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AAChD,IAAA,IAAI,KAAK,KAAK,KAAK,EAAE;QACnB,OAAO,gCAAgC,CAAC,GAAG;IAC7C;AACA,IAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;QACtB,OAAO,gCAAgC,CAAC,MAAM;IAChD;AACA,IAAA,IAAI,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,gCAAgC,CAAC,IAAI;IAC9C;AAEA,IAAA,OAAO,SAAS;AAClB;AAEA;;AChDA;AAiDA;AAEA;MAca,oCAAoC,CAAA;;;AAgJ/C,IAAA,WAAA,GAAA;;;AA3IiB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC;AAC5C,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI;AAC1E,aAAA,IAAI,EAAsD;QAC5C,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC;AAC1C,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AACxE,aAAA,IAAI,EAAoD;QAC1C,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC;AAC5C,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;AACtE,aAAA,IAAI,EAAkD;AACxC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;;;;QAOrE,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoC,EAAE;wFAAC;;QAG1D,IAAA,CAAA,aAAa,GAAG,KAAK,CAA8B,IAAI;0FAAC;QACxD,IAAA,CAAA,WAAW,GAAG,KAAK,CAA8B,IAAI;wFAAC;;QAGtD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA4B,IAAI;8FAAC;;QAG1D,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,EAAE;kFAAC;QAErC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK;qFAAC;;;QAMhC,IAAA,CAAA,WAAW,GAAG,MAAM,EAAsB;QAC1C,IAAA,CAAA,UAAU,GAAG,MAAM,EAAiC;;;QAMnC,IAAA,CAAA,eAAe,GAAG,MAAM,CAAoB,EAAE;4FAAC;QAC/C,IAAA,CAAA,aAAa,GAAG,MAAM,CAAoB,EAAE;0FAAC;QAC7C,IAAA,CAAA,UAAU,GAAG,MAAM,CAAoB,EAAE;uFAAC;QAC1C,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAU,KAAK;8FAAC;QACxC,IAAA,CAAA,SAAS,GAAG,MAAM,CAAU,KAAK;sFAAC;;;AAMlC,QAAA,IAAA,CAAA,yBAAyB,GAAG,QAAQ,CAAC,MACtD,4BAA4B,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;sGACvD;AAEkB,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAChD,2CAA2C,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gGAClG;AAEkB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAC1C,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC;0FACpE;AAEkB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,yBAAyB,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;2FAAC;AAE5F,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAuB,MACjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;2FACjD;AAEkB,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAuB,MACnE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;6FACpD;AAEkB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAuB,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wFAAC;AAEhG,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAChD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC1C,YAAA,OAAO,OAAO,CAAC,WAAW,KAAK,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QAC/F,CAAC;6FAAC;AAEe,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AACnD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC1C,YAAA,OAAO,OAAO,CAAC,cAAc,KAAK,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QAClG,CAAC;gGAAC;AAEiB,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAyB,MAAK;AAC5E,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAExD,YAAA,MAAM,eAAe,GAAkB;AACrC,gBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;AACtC,gBAAA,OAAO,EAAE;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,OAAO;AAClB,oBAAA,aAAa,EAAE,OAAO;AACtB,oBAAA,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM;wBAC9C,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,wBAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK;AACjC,qBAAA,CAAC,CAAC;AACJ,iBAAA;aACF;YAED,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;gBACtC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACd,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,KAAK,CAAC,EAAE;AACd,gBAAA,MAAM,EAAE,eAAe;AACxB,aAAA,CAAC,CAAC;QACL,CAAC;+FAAC;AAEiB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAA4B,MAAK;AAC5E,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AAEvC,YAAA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAChC,gBAAA,MAAM,OAAO,GAA4B;oBACvC,IAAI,EAAE,GAAG,CAAC,EAAE;oBACZ,SAAS,EAAE,GAAG,CAAC,KAAK;oBACpB,eAAe,EAAE,GAAG,CAAC,WAAW;iBACjC;AAED,gBAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;oBAClC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI;AAC9D,gBAAA,CAAC,CAAC;AAEF,gBAAA,OAAO,OAAO;AAChB,YAAA,CAAC,CAAC;QACJ,CAAC;4FAAC;QAOA,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC;AACtD,QAAA,CAAC,CAAC;IACJ;;;AAMQ,IAAA,MAAM,cAAc,CAC1B,aAA0C,EAC1C,WAAwC,EAAA;AAExC,QAAA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAE/C,QAAA,IAAI;YACF,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1B;AAEA,YAAA,MAAM,KAAK,GAAG;AACZ,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,KAAc,EAAE,CAAC;aACrD;AAED,YAAA,MAAM,CAAC,gBAAgB,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxE,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,aAAa,CAAC;gBACzD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC;AACrD,gBAAA,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC;AAC3C,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;AAChC,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAClC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB;gBAAU;YACR,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B;QACF;IACF;AAEQ,IAAA,MAAM,cAAc,CAC1B,QAAmC,EACnC,KAIC,EACD,WAA6B,EAAA;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,KAAI;AAC9C,YAAA,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B;AAED,YAAA,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,MAAM,GAAG,IAA8C;AAC7D,YAAA,MAAM,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC;AACjD,YAAA,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI;AAC1C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC;AAC1C,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D;AAEQ,IAAA,mBAAmB,CAAC,QAAmC,EAAA;QAC7D,QAAQ,QAAQ;AACd,YAAA,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,oBAAoB;AAClC,YAAA,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,sBAAsB;AACpC,YAAA,KAAK,cAAc;AACnB,YAAA;gBACE,OAAO,IAAI,CAAC,sBAAsB;;IAExC;;;AAMQ,IAAA,kBAAkB,CAAC,KAAwB,EAAA;AACjD,QAAA,MAAM,OAAO,GAAG,CAAC,CAAU,KAAK,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAU,CAAC;QAC9E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;YAC1B,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS;AACtE,SAAA,CAAC,CAAC;IACL;AAEQ,IAAA,kCAAkC,CAAC,IAA+B,EAAA;AACxE,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAChD,MAAM,UAAU,GAAuB,EAAE;AAEzC,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACnB,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAuB;YAC/C,IAAI,CAAC,KAAK,EAAE;gBACV;YACF;AAEA,YAAA,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;AACtB,YAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAClC,gBAAA,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAmB,IAAI,IAAI;AAC1E,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,UAAU;IACnB;;;AAMU,IAAA,uBAAuB,CAAC,IAA+B,EAAA;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC;AACnE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAC/F;AAEU,IAAA,gBAAgB,CAAC,KAAoC,EAAA;AAC7D,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;8GA7RW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,ggCCjEjD,g5BAwBA,EAAA,MAAA,EAAA,CAAA,ygBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDgCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,yTAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FASzD,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAZhD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,EAAA,aAAA,EAGtD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,iBAAiB;AACzB,qBAAA,EAAA,QAAA,EAAA,g5BAAA,EAAA,MAAA,EAAA,CAAA,ygBAAA,CAAA,EAAA;;;AE/DH;AAmBA;AAEA;AAEA;;AAEG;MAEU,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAoD5D,IAAA;;;IA9CC,MAAM,IAAI,CAAC,OAAuC,EAAA;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;QAC1D,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;AAEpD,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;YACxB;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;AACpB,aAAA,MAAM;AACN,aAAA,MAAM,CAAC,CAAC,MAAM,KAAI;YACjB;iBACG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC/C,OAAO,CAAC,IAAI;iBACZ,cAAc,CAAC,IAAI;AACnB,iBAAA,UAAU,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;AACjC,iBAAA,OAAO,CAAC,CAAC,MAAM,KAAI;AAClB,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACnB,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;oBAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,KAAI;wBAC3B;6BACG,IAAI,CAAC,UAAU;6BACf,YAAY,CAAC,KAAK;AAClB,6BAAA,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxE,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AACA,iBAAA,UAAU,CAAC,CAAC,OAAO,KAAI;AACtB,gBAAA,OAAO,CAAC,MAAM,CAAC,8BAA8B,CAAC;AAChD,YAAA,CAAC,CAAC;AACN,QAAA,CAAC;AACA,aAAA,IAAI,EAAE;QAET,GAAG,CAAC,KAAK,EAAE;IACb;;;AAMQ,IAAA,kBAAkB,CAAC,KAAyB,EAAA;AAClD,QAAA,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACrF,OAAO,QAAQ,IAAI,aAAa;IAClC;8GArDW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AC1BlC;AAuBA;AAEA;AAEM,SAAU,gCAAgC,CAC9C,MAAqC,EAAA;AAErC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ;AAChD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC;UACjB,4BAA4B,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;UACD,EAAE;IAEN,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU;AACV,QAAA,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,gBAAgB;KACxC;AACH;AAEO,eAAe,oBAAoB,CACxC,MAAkC,EAClC,MAAqC,EAAA;IAErC,MAAM,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;AAC7D;AAEA;;ACvDA;AAaA;AAEA;AAqBM,MAAO,kCAAmC,SAAQ,wBAAiD,CAAA;AAnBzG,IAAA,WAAA,GAAA;;;AAsBmB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;AA4B5D,IAAA;;;IAtBC,SAAS,GAAA;AACP,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChC;AAEA,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAA8C;QACnE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACtC;QACF;AAEA,QAAA,MAAM,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAChD,YAAA,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,IAAI,CAAC,IAAI;AACrB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,aAAa,EAAE,EAAE,GAAI,IAAI,CAAC,OAAmC,EAAE;YAC/D,aAAa,EAAE,IAAI,CAAC,aAAa;AACjC,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AAC5C,YAAA,gBAAgB,EAAE,kFAAkF;AACrG,SAAA,CAAC;IACJ;8GA9BW,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBnC;;;;;;;;;;;;GAYT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAbS,cAAc,+XAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAiBhC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAnB9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;AAC5C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AAChC,iBAAA;;;;;;;;ACpBD;AAEA;AAuBM,MAAO,gCAAiC,SAAQ,uBAA2C,CAAA;;AAG/F,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;;AAkBC,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAU,MAAK;AAC1C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,OAAO,OAAO,GAAG,UAAU,CAAC,IAAI,KAAK;QACvC,CAAC;qFAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAA2B,MAAK;AAC9D,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAA8B;YAErG,OAAO,2CAA2C,CAAC,WAAW,EAAE;AAC9D,gBAAA,WAAW,EAAE,OAAO,GAAG,aAAa,CAAC;AACrC,gBAAA,cAAc,EAAE,OAAO,GAAG,gBAAgB,CAAC;AAC3C,gBAAA,aAAa,EAAE,OAAO,GAAG,eAAe,CAAC;AAC1C,aAAA,CAAC;QACJ,CAAC;wFAAC;AAEQ,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC3F,CAAC;8FAAC;AAEQ,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAW,MAAK;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/E,CAAC;0FAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAW,MAAK;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7E,CAAC;wFAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAqB,MAAK;AACxD,YAAA,OAAQ,IAAI,CAAC,QAAQ,EAAyB,IAAI,EAAE;QACtD,CAAC;wFAAC;QAlDA,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,EAAyB,IAAI,EAAE;YAC5D,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;YAE1E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7B;AACF,QAAA,CAAC,CAAC;IACJ;;;AA8CU,IAAA,iBAAiB,CAAC,IAAwB,EAAA;QAClD,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;IACF;AAEQ,IAAA,gBAAgB,CAAC,KAAc,EAAA;AACrC,QAAA,OAAO,0BAA0B,CAAC,KAAK,CAAC;IAC1C;8GAtEW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBjC;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAXS,oCAAoC,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAkBnC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBArB5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,oCAAoC,CAAC;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;AAUT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,cAAc;AACtB,qBAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;;;;;;AC1BD;AAEA;AAsBM,MAAO,gCAAiC,SAAQ,uBAA2C,CAAA;AApBjG,IAAA,WAAA,GAAA;;;AAuBY,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAA2B,MAAK;AAC9D,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAA8B;YAErG,OAAO,2CAA2C,CAAC,WAAW,EAAE;AAC9D,gBAAA,WAAW,EAAE,OAAO,GAAG,aAAa,CAAC;AACrC,gBAAA,cAAc,EAAE,OAAO,GAAG,gBAAgB,CAAC;AAC3C,gBAAA,aAAa,EAAE,OAAO,GAAG,eAAe,CAAC;AAC1C,aAAA,CAAC;QACJ,CAAC;wFAAC;AAEQ,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC3F,CAAC;8FAAC;AAEQ,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAW,MAAK;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/E,CAAC;0FAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAW,MAAK;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7E,CAAC;wFAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAqB,MAAK;AACxD,YAAA,OAAQ,IAAI,CAAC,QAAQ,EAAyB,IAAI,EAAE;QACtD,CAAC;wFAAC;AAcH,IAAA;AAZS,IAAA,gBAAgB,CAAC,KAAc,EAAA;QACrC,OAAO,SAAS,CAAC,KAAK;AACnB,aAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACZ,YAAA,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;AAC5D,gBAAA,OAAO,MAAM,CAAE,IAAwB,CAAC,EAAE,CAAC;YAC7C;AACA,YAAA,OAAO,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;AACzC,QAAA,CAAC;AACA,aAAA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC;8GA3CW,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBjC;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAVS,oCAAoC,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAiBnC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBApB5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,oCAAoC,CAAC;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,cAAc;AACtB,qBAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;;;;;;ACpCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-risk-management-client.mjs","sources":["../../../../libs/modules/risk-management/client/src/lib/menu.provider.ts","../../../../libs/modules/risk-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/risk-management/client/src/lib/manifest.ts","../../../../libs/modules/risk-management/client/src/lib/catalog-scope-definition.provider.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget.config.ts","../../../../libs/modules/risk-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/risk-management/client/src/lib/risk-management.module.ts","../../../../libs/modules/risk-management/client/src/lib/features/shared/risk-matrix-axis-mapping.ts","../../../../libs/modules/risk-management/client/src/lib/features/shared/risk-rating-badge-color.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix.component.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix.component.html","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-viewer.service.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-viewer-open.util.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget-column.component.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget-edit.component.ts","../../../../libs/modules/risk-management/client/src/lib/features/risk-matrix/risk-matrix-widget-view.component.ts","../../../../libs/modules/risk-management/client/src/acorex-platform-module-risk-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport {\n RootConfig,\n AXPSafetyRiskPermissionKeys\n} from '@acorex-platform/module-risk-management-client/contracts';\nimport { AXMRiskManagementMenuKeys } from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu provider ----\n\nexport class AXMRiskManagementMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const entities = RootConfig.entities;\n const keys = AXPSafetyRiskPermissionKeys;\n\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXMRiskManagementMenuKeys.Root,\n priority: 8950,\n text: `@${RootConfig.config.i18n}:module.menus.risk`,\n icon: module.icon,\n type: 'menu',\n policy: {\n features: [module.name],\n },\n children: [\n {\n name: AXMRiskManagementMenuKeys.RiskMatrixCells,\n text: entities.riskMatrixCell.titlePlural,\n icon: entities.riskMatrixCell.icon,\n priority: 1,\n path: this.entityService.createPath(module.name, entities.riskMatrixCell.name),\n policy: {\n permissions: [keys.MaintainRisk],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskLikelihoods,\n text: entities.riskLikelihood.titlePlural,\n icon: entities.riskLikelihood.icon,\n priority: 2,\n path: this.entityService.createPath(module.name, entities.riskLikelihood.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskSeverities,\n text: entities.riskSeverity.titlePlural,\n icon: entities.riskSeverity.icon,\n priority: 3,\n path: this.entityService.createPath(module.name, entities.riskSeverity.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskRatings,\n text: entities.riskRating.titlePlural,\n icon: entities.riskRating.icon,\n priority: 4,\n path: this.entityService.createPath(module.name, entities.riskRating.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n ],\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\r\n\r\nimport {\r\n AXPPermissionDefinitionProvider,\r\n AXPPermissionDefinitionProviderContext,\r\n} from '@acorex-platform/framework-client/auth';\r\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPSafetyRiskPermissionKeys\n} from '@acorex-platform/module-risk-management-client/contracts';\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n//#endregion\r\n\r\n//#region ---- Permission Definition Provider ----\r\n\r\n/**\r\n * Registers risk capabilities into the shared Safety & Risk group.\r\n */\r\n@Injectable()\r\nexport class AXMRiskManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\r\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\r\n const keys = AXPSafetyRiskPermissionKeys;\r\n const groups = AXPCommonPermissionGroupKeys;\r\n const P = '@common:safety-risk.permissions';\r\n const G = '@common:permission-groups';\r\n\r\n context.addGroup(groups.SafetyRisk.Root, `${G}.safety-risk.title`, `${G}.safety-risk.description`, { order: 30 });\n\n context\n .addGroup(\n groups.SafetyRisk.Risk,\n `${G}.safety-risk-risk.title`,\n `${G}.safety-risk-risk.description`,\n { parent: groups.SafetyRisk.Root, order: 20 },\n )\n .addPermission(keys.MaintainRisk, `${P}.maintain-risk.title`, `${P}.maintain-risk.description`)\r\n .endPermission()\r\r\n .endGroup();\r\n }\r\n}\r\n\r\n//#endregion\r\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\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 ---- Imports ----\n\nimport type {\n AXPCatalogScopeDefinition,\n AXPCatalogScopeDefinitionProvider,\n} from '@acorex-platform/framework-client/core';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\nimport { RISK_CATALOG_SCOPE_HAZARD, RISK_CATALOG_SCOPE_PPE_ITEMS } from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst RISK_MATRIX_CELL = `${RootConfig.module.name}.${RootConfig.entities.riskMatrixCell.name}`;\n\nconst RISK_MATRIX_CELL_CATALOG_TARGETS = [RISK_MATRIX_CELL] as const;\n\n//#endregion\n\n//#region ---- Provider ----\n\n@Injectable()\nexport class AXMRiskManagementCatalogScopeDefinitionProvider implements AXPCatalogScopeDefinitionProvider {\n async items(): Promise<AXPCatalogScopeDefinition[]> {\n return [\n {\n name: RISK_CATALOG_SCOPE_HAZARD,\n title: '@risk-management:catalog-scopes.hazard.title',\n description: '@risk-management:catalog-scopes.hazard.description',\n targets: [...RISK_MATRIX_CELL_CATALOG_TARGETS],\n icon: 'fa-light fa-triangle-exclamation',\n cssClass: 'warning-lighter-surface',\n order: 20,\n },\n {\n name: RISK_CATALOG_SCOPE_PPE_ITEMS,\n title: '@risk-management:catalog-scopes.ppe-items.title',\n description: '@risk-management:catalog-scopes.ppe-items.description',\n targets: [...RISK_MATRIX_CELL_CATALOG_TARGETS],\n icon: 'fa-light fa-helmet-safety',\n cssClass: 'info-lighter-surface',\n order: 21,\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_LABEL_PROPERTY,\n AXP_NAME_PROPERTY,\n AXP_READONLY_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\n//#endregion\n\n//#region ---- Widget Config ----\n\nexport const AXMRiskMatrixWidget: AXPWidgetConfig<AXMRiskMatrixWidgetConfigType> = {\n name: 'risk-matrix-editor',\n title: 'Risk Matrix',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n groups: [AXPWidgetGroupEnum.UtilityWidget],\n description: 'Matrix widget for mapping likelihood and severity combinations to risk ratings',\n icon: 'fa-light fa-table-cells',\n type: 'editor',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n AXP_LABEL_PROPERTY,\n AXP_READONLY_PROPERTY,\n AXP_DISABLED_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./risk-matrix-widget-view.component').then((c) => c.AXMRiskMatrixWidgetViewComponent),\n },\n edit: {\n component: () => import('./risk-matrix-widget-edit.component').then((c) => c.AXMRiskMatrixWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./risk-matrix-widget-column.component').then((c) => c.AXMRiskMatrixWidgetColumnComponent),\n },\n },\n};\n\nexport type AXMRiskMatrixWidgetConfigType = {\n type: 'editor';\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMRiskMatrixWidget } from './features/risk-matrix/risk-matrix-widget.config';\n\n//#endregion\n\n//#region ---- Risk Management Widgets Provider ----\n\n@Injectable()\nexport class AXMRiskManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMRiskMatrixWidget];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER } from '@acorex-platform/framework-client/common';\nimport {\n AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n AXP_MODULE_MANIFEST_PROVIDER,\n provideLazyProvider,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\n\nimport { RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\n\nimport { RiskManagementManifest } from './manifest';\nimport { AXMRiskManagementCatalogScopeDefinitionProvider } from './catalog-scope-definition.provider';\nimport { AXMRiskManagementWidgetsProvider } from './widget-definition.provider';\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n ],\n providers: [\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: RiskManagementManifest,\n multi: true,\n },\n\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () =>\n import('./permission-definition.provider').then((m) => m.AXMRiskManagementPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () =>\n import('./menu.provider').then((m) => m.AXMRiskManagementMenuProvider),\n ),\n \n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMRiskManagementWidgetsProvider,\n multi: true,\n },\n {\n provide: AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n useClass: AXMRiskManagementCatalogScopeDefinitionProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.riskMatrixCell.name}:Preview`,\n command: () =>\n import('./features/risk-matrix/commands/preview-risk-matrix-cell.command').then(\n (c) => c.AXMPreviewRiskMatrixCellCommand,\n ),\n },\n ]),\n ],\n})\nexport class AXMRiskManagementModule {}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { extractValue } from '@acorex-platform/framework-shared/core';\nimport type { AXPSpreadsheetData } from '@acorex-platform/framework-client/layout/components';\nimport {\n DEFAULT_RISK_MATRIX_AXIS_MAPPING,\n DEFAULT_RISK_MATRIX_ORIENTATION,\n RISK_MATRIX_AXIS_PROPERTIES,\n RISK_MATRIX_ORIENTATION_TITLE_KEYS,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixAxisProperty,\n type AXMRiskMatrixOrientation,\n} from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nexport function isRiskMatrixAxisProperty(value: unknown): value is AXMRiskMatrixAxisProperty {\n return typeof value === 'string' && (RISK_MATRIX_AXIS_PROPERTIES as readonly string[]).includes(value);\n}\n\nexport function resolveRiskMatrixAxisMapping(\n mapping?: Partial<AXMRiskMatrixAxisMapping> | null,\n): AXMRiskMatrixAxisMapping {\n const rowProperty = isRiskMatrixAxisProperty(mapping?.rowProperty)\n ? mapping.rowProperty\n : DEFAULT_RISK_MATRIX_AXIS_MAPPING.rowProperty;\n const columnProperty = isRiskMatrixAxisProperty(mapping?.columnProperty)\n ? mapping.columnProperty\n : DEFAULT_RISK_MATRIX_AXIS_MAPPING.columnProperty;\n const depthProperty = isRiskMatrixAxisProperty(mapping?.depthProperty)\n ? mapping.depthProperty\n : DEFAULT_RISK_MATRIX_AXIS_MAPPING.depthProperty;\n\n if (validateRiskMatrixAxisMapping({ rowProperty, columnProperty, depthProperty })) {\n return { rowProperty, columnProperty, depthProperty };\n }\n\n return { ...DEFAULT_RISK_MATRIX_AXIS_MAPPING };\n}\n\nexport function isRiskMatrixOrientation(value: unknown): value is AXMRiskMatrixOrientation {\n return value === 'likelihood-rows' || value === 'severity-rows';\n}\n\n/**\n * Normalizes orientation from persisted strings or SelectionList row objects (`{ id }`).\n */\nexport function resolveRiskMatrixOrientation(value: unknown): AXMRiskMatrixOrientation {\n const candidate = extractValue(value, 'id') ?? value;\n\n return isRiskMatrixOrientation(candidate) ? candidate : DEFAULT_RISK_MATRIX_ORIENTATION;\n}\n\n/** Translation key for the spreadsheet corner title (`row axis / column axis`). */\nexport function resolveRiskMatrixTitleKey(orientation?: unknown): string {\n return RISK_MATRIX_ORIENTATION_TITLE_KEYS[resolveRiskMatrixOrientation(orientation)];\n}\n\nfunction pickDefinedAxisMapping(\n mapping?: Partial<AXMRiskMatrixAxisMapping> | null,\n): Partial<AXMRiskMatrixAxisMapping> {\n if (!mapping) {\n return {};\n }\n\n const picked: Partial<AXMRiskMatrixAxisMapping> = {};\n\n if (isRiskMatrixAxisProperty(mapping.rowProperty)) {\n picked.rowProperty = mapping.rowProperty;\n }\n if (isRiskMatrixAxisProperty(mapping.columnProperty)) {\n picked.columnProperty = mapping.columnProperty;\n }\n if (isRiskMatrixAxisProperty(mapping.depthProperty)) {\n picked.depthProperty = mapping.depthProperty;\n }\n\n return picked;\n}\n\nexport function resolveRiskMatrixAxisMappingFromOrientation(\n orientation?: unknown,\n mapping?: Partial<AXMRiskMatrixAxisMapping> | null,\n): AXMRiskMatrixAxisMapping {\n const resolvedOrientation = resolveRiskMatrixOrientation(orientation);\n\n const orientationMapping: AXMRiskMatrixAxisMapping =\n resolvedOrientation === 'severity-rows'\n ? { rowProperty: 'severityId', columnProperty: 'likelihoodId', depthProperty: 'riskRatingId' }\n : { rowProperty: 'likelihoodId', columnProperty: 'severityId', depthProperty: 'riskRatingId' };\n\n return resolveRiskMatrixAxisMapping({\n ...pickDefinedAxisMapping(mapping),\n ...orientationMapping,\n });\n}\n\n/**\n * Persisted matrix shape is always likelihood × severity → risk rating.\n * Transpose only for display when severity is shown as rows.\n */\nexport function toDisplayMatrixData(\n canonical: AXPSpreadsheetData,\n orientation?: unknown,\n): AXPSpreadsheetData {\n if (resolveRiskMatrixOrientation(orientation) === 'likelihood-rows') {\n return canonical;\n }\n\n const display: AXPSpreadsheetData = {};\n\n Object.entries(canonical).forEach(([likelihoodId, severityMap]) => {\n if (!severityMap) {\n return;\n }\n\n Object.entries(severityMap).forEach(([severityId, ratingId]) => {\n display[severityId] ??= {};\n display[severityId][likelihoodId] = ratingId;\n });\n });\n\n return display;\n}\n\n/** Converts display-oriented matrix data back to canonical likelihood × severity storage. */\nexport function toCanonicalMatrixData(\n display: AXPSpreadsheetData,\n orientation?: unknown,\n): AXPSpreadsheetData {\n if (resolveRiskMatrixOrientation(orientation) === 'likelihood-rows') {\n return display;\n }\n\n const canonical: AXPSpreadsheetData = {};\n\n Object.entries(display).forEach(([severityId, likelihoodMap]) => {\n if (!likelihoodMap) {\n return;\n }\n\n Object.entries(likelihoodMap).forEach(([likelihoodId, ratingId]) => {\n canonical[likelihoodId] ??= {};\n canonical[likelihoodId][severityId] = ratingId;\n });\n });\n\n return canonical;\n}\n\n/**\n * Reads selected axis ids from a risk-matrix-cell record.\n * Prefers `*Ids` (multi-lookup convention), then legacy `*Id`, then joined `*List`.\n */\nexport function resolveRiskMatrixCellAxisIds(\n data: unknown,\n axis: 'likelihood' | 'severity',\n): string[] {\n if (data == null || typeof data !== 'object') {\n return [];\n }\n\n const record = data as Record<string, unknown>;\n const idsField = axis === 'likelihood' ? 'likelihoodIds' : 'severityIds';\n const legacyField = axis === 'likelihood' ? 'likelihoodId' : 'severityId';\n const listField = axis === 'likelihood' ? 'likelihoodList' : 'severityList';\n\n return normalizeRiskMatrixAxisIds(record[idsField] ?? record[legacyField] ?? record[listField]);\n}\n\n/** Normalizes lookup axis values (ids or `{ id }` rows) to string ids. */\nexport function normalizeRiskMatrixAxisIds(value: unknown): string[] {\n const items = Array.isArray(value) ? value : value != null ? [value] : [];\n\n return items\n .map((item) => {\n if (item != null && typeof item === 'object' && 'id' in item) {\n return String((item as { id: unknown }).id);\n }\n return item != null ? String(item) : '';\n })\n .filter((id) => id.length > 0);\n}\n\n/**\n * Drops matrix entries for axes no longer selected on the record.\n * Persisted shape stays likelihood × severity → risk rating.\n */\nexport function pruneMatrixToAxes(\n matrix: AXPSpreadsheetData,\n likelihoodIds: string[],\n severityIds: string[],\n): AXPSpreadsheetData {\n const likelihoodSet = new Set(likelihoodIds);\n const severitySet = new Set(severityIds);\n const pruned: AXPSpreadsheetData = {};\n\n Object.entries(matrix ?? {}).forEach(([likelihoodId, severityMap]) => {\n if (!likelihoodSet.has(likelihoodId) || severityMap == null) {\n return;\n }\n\n const row: Record<string, string | null> = {};\n Object.entries(severityMap).forEach(([severityId, ratingId]) => {\n if (severitySet.has(severityId)) {\n row[severityId] = ratingId;\n }\n });\n\n if (Object.keys(row).length > 0) {\n pruned[likelihoodId] = row;\n }\n });\n\n return pruned;\n}\n\nexport function validateRiskMatrixAxisMapping(mapping: Partial<AXMRiskMatrixAxisMapping>): boolean {\n const rowProperty = mapping.rowProperty;\n const columnProperty = mapping.columnProperty;\n const depthProperty = mapping.depthProperty;\n\n if (!isRiskMatrixAxisProperty(rowProperty)) {\n return false;\n }\n if (!isRiskMatrixAxisProperty(columnProperty)) {\n return false;\n }\n if (!isRiskMatrixAxisProperty(depthProperty)) {\n return false;\n }\n\n const values = [rowProperty, columnProperty, depthProperty];\n return new Set(values).size === values.length;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { resolveToSurfaceClass } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ----- Constants -----\n\n/** Default matrix badge surfaces when {@link color} is not set on a risk rating record. */\nexport const DEFAULT_RISK_RATING_BADGE_COLORS = {\n low: 'success-lighter-surface',\n medium: 'warning-lighter-surface',\n high: 'danger-lighter-surface',\n} as const;\n\n//#endregion\n\n//#region ----- Helpers -----\n\nexport function resolveRiskRatingBadgeColor(rating: {\n code?: string;\n title?: string;\n color?: string | null;\n}): string | undefined {\n const fromColor = resolveToSurfaceClass(rating.color);\n if (fromColor) {\n return fromColor;\n }\n\n const code = rating.code?.trim().toUpperCase();\n if (code?.endsWith('0001')) {\n return DEFAULT_RISK_RATING_BADGE_COLORS.low;\n }\n if (code?.endsWith('0002')) {\n return DEFAULT_RISK_RATING_BADGE_COLORS.medium;\n }\n if (code?.endsWith('0003')) {\n return DEFAULT_RISK_RATING_BADGE_COLORS.high;\n }\n\n const title = rating.title?.trim().toLowerCase();\n if (title === 'low') {\n return DEFAULT_RISK_RATING_BADGE_COLORS.low;\n }\n if (title === 'medium') {\n return DEFAULT_RISK_RATING_BADGE_COLORS.medium;\n }\n if (title === 'high') {\n return DEFAULT_RISK_RATING_BADGE_COLORS.high;\n }\n\n return undefined;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { type AXPWidgetNode, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPSpreadsheetCellChangeEvent,\n AXPSpreadsheetColumn,\n AXPSpreadsheetComponent,\n AXPSpreadsheetData,\n AXPSpreadsheetItem,\n} from '@acorex-platform/framework-client/layout/components';\nimport { ensureRuntimeSurfaceClass } from '@acorex-platform/framework-client/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { type AXMRiskMatrixAxisMapping, type AXMRiskMatrixAxisProperty, RootConfig } from '@acorex-platform/module-risk-management-client/contracts';\nimport type { AXMRiskManagementRiskLikelihoodEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport type { AXMRiskManagementRiskRatingEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport type { AXMRiskManagementRiskSeverityEntityModel } from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n resolveRiskMatrixTitleKey,\n toCanonicalMatrixData,\n toDisplayMatrixData,\n} from '../shared/risk-matrix-axis-mapping';\nimport { resolveRiskRatingBadgeColor } from '../shared/risk-rating-badge-color';\n\n//#endregion\n\n//#region ---- Types ----\n\ntype AxisEntityModel = {\n id: string;\n title: string;\n description?: string;\n color?: string;\n};\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix',\n standalone: true,\n imports: [CommonModule, AXPSpreadsheetComponent, AXTranslationModule],\n templateUrl: './risk-matrix.component.html',\n styleUrl: './risk-matrix.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'axm-risk-matrix',\n },\n})\nexport class AXMRiskManagementRiskMatrixComponent {\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly likelihoodDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskLikelihood.name)\n .data<string, AXMRiskManagementRiskLikelihoodEntityModel>();\n private readonly severityDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskSeverity.name)\n .data<string, AXMRiskManagementRiskSeverityEntityModel>();\n private readonly riskRatingDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskRating.name)\n .data<string, AXMRiskManagementRiskRatingEntityModel>();\n private readonly multiLanguageResolver = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Inputs ----\n\n /** Axis mapping. Defaults to likelihood × severity → risk rating. */\n axisMapping = input<Partial<AXMRiskMatrixAxisMapping>>({});\n\n /** Selected axis item ids from the parent matrix record. */\n likelihoodIds = input<string[] | null | undefined>(null);\n severityIds = input<string[] | null | undefined>(null);\n\n /** Controls row/column layout only; persisted matrix stays likelihood × severity. */\n matrixOrientation = input<string | null | undefined>(null);\n\n /** Matrix data: { [likelihoodId]: { [severityId]: riskRatingId } } */\n value = input<AXPSpreadsheetData>({});\n\n readonly = input<boolean>(false);\n\n //#endregion\n\n //#region ---- Outputs ----\n\n valueChange = output<AXPSpreadsheetData>();\n cellChange = output<AXPSpreadsheetCellChangeEvent>();\n\n //#endregion\n\n //#region ---- Class Properties ----\n\n private readonly likelihoodItems = signal<AxisEntityModel[]>([]);\n private readonly severityItems = signal<AxisEntityModel[]>([]);\n private readonly depthItems = signal<AxisEntityModel[]>([]);\n private readonly hasLoadedAxesOnce = signal<boolean>(false);\n protected readonly isLoading = signal<boolean>(false);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected readonly resolvedMatrixOrientation = computed(() =>\n resolveRiskMatrixOrientation(this.matrixOrientation()),\n );\n\n protected readonly resolvedAxisMapping = computed(() =>\n resolveRiskMatrixAxisMappingFromOrientation(this.resolvedMatrixOrientation(), this.axisMapping()),\n );\n\n protected readonly displayMatrix = computed(() =>\n toDisplayMatrixData(this.value(), this.resolvedMatrixOrientation()),\n );\n\n protected readonly matrixTitleKey = computed(() => resolveRiskMatrixTitleKey(this.resolvedMatrixOrientation()));\n\n protected readonly verticalTitles = computed<AXPSpreadsheetItem[]>(() =>\n this.toSpreadsheetItems(this.resolvedRowItems()),\n );\n\n protected readonly horizontalTitles = computed<AXPSpreadsheetItem[]>(() =>\n this.toSpreadsheetItems(this.resolvedColumnItems()),\n );\n\n protected readonly cellOptions = computed<AXPSpreadsheetItem[]>(() => this.toSpreadsheetItems(this.depthItems()));\n\n private readonly resolvedRowItems = computed(() => {\n const mapping = this.resolvedAxisMapping();\n return mapping.rowProperty === 'likelihoodId' ? this.likelihoodItems() : this.severityItems();\n });\n\n private readonly resolvedColumnItems = computed(() => {\n const mapping = this.resolvedAxisMapping();\n return mapping.columnProperty === 'likelihoodId' ? this.likelihoodItems() : this.severityItems();\n });\n\n protected readonly spreadsheetColumns = computed<AXPSpreadsheetColumn[]>(() => {\n const horizontalTitles = this.horizontalTitles();\n const ratingItems = this.depthItems();\n const cellOptions = this.toSpreadsheetItems(ratingItems);\n\n const selectBoxWidget: AXPWidgetNode = {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'id',\n textField: 'title',\n cssClassField: 'color',\n dataSource: cellOptions.map((option, index) => ({\n id: option.id,\n title: option.title,\n description: option.description,\n color: ratingItems[index]?.color,\n })),\n },\n };\n\n return horizontalTitles.map((title) => ({\n name: title.id,\n title: title.title,\n description: title.description,\n path: title.id,\n widget: selectBoxWidget,\n }));\n });\n\n protected readonly spreadsheetRows = computed<Record<string, unknown>[]>(() => {\n const verticalTitles = this.verticalTitles();\n const horizontalTitles = this.horizontalTitles();\n const matrixData = this.displayMatrix();\n\n return verticalTitles.map((row) => {\n const rowData: Record<string, unknown> = {\n name: row.id,\n _rowTitle: row.title,\n _rowDescription: row.description,\n };\n\n horizontalTitles.forEach((column) => {\n rowData[column.id] = matrixData[row.id]?.[column.id] ?? null;\n });\n\n return rowData;\n });\n });\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n constructor() {\n effect(() => {\n const likelihoodIds = this.likelihoodIds();\n const severityIds = this.severityIds();\n void this.loadMatrixAxes(likelihoodIds, severityIds);\n });\n }\n\n //#endregion\n\n //#region ---- Data Loading Methods ----\n\n private async loadMatrixAxes(\n likelihoodIds: string[] | null | undefined,\n severityIds: string[] | null | undefined,\n ): Promise<void> {\n const isInitialLoad = !this.hasLoadedAxesOnce();\n\n try {\n if (isInitialLoad) {\n this.isLoading.set(true);\n }\n\n const query = {\n skip: 0,\n take: 1000,\n sort: [{ field: 'levelValue', dir: 'asc' as const }],\n };\n\n const [likelihoodResult, severityResult, depthResult] = await Promise.all([\n this.queryAxisItems('likelihoodId', query, likelihoodIds),\n this.queryAxisItems('severityId', query, severityIds),\n this.queryAxisItems('riskRatingId', query),\n ]);\n\n this.likelihoodItems.set(likelihoodResult);\n this.severityItems.set(severityResult);\n this.depthItems.set(depthResult);\n this.hasLoadedAxesOnce.set(true);\n } catch (error) {\n console.error('Error loading risk matrix axes:', error);\n this.likelihoodItems.set([]);\n this.severityItems.set([]);\n this.depthItems.set([]);\n } finally {\n if (isInitialLoad) {\n this.isLoading.set(false);\n }\n }\n }\n\n private async queryAxisItems(\n property: AXMRiskMatrixAxisProperty,\n query: {\n skip: number;\n take: number;\n sort: { field: string; dir: 'asc' }[];\n },\n selectedIds?: string[] | null,\n ): Promise<AxisEntityModel[]> {\n const accessor = this.getAxisDataAccessor(property);\n const result = await accessor.query(query);\n const items = (result.items ?? []).map((item) => {\n const base = {\n id: item.id,\n title: item.title,\n description: item.description,\n };\n\n if (property !== 'riskRatingId') {\n return base;\n }\n\n const rating = item as AXMRiskManagementRiskRatingEntityModel;\n const color = ensureRuntimeSurfaceClass(resolveRiskRatingBadgeColor(rating));\n return color ? { ...base, color } : base;\n });\n\n if (isEmpty(selectedIds)) {\n return items;\n }\n\n const selectedIdSet = new Set(selectedIds);\n return items.filter((item) => selectedIdSet.has(item.id));\n }\n\n private getAxisDataAccessor(property: AXMRiskMatrixAxisProperty) {\n switch (property) {\n case 'severityId':\n return this.severityDataAccessor;\n case 'riskRatingId':\n return this.riskRatingDataAccessor;\n case 'likelihoodId':\n default:\n return this.likelihoodDataAccessor;\n }\n }\n\n //#endregion\n\n //#region ---- Data Transformation Methods ----\n\n private toSpreadsheetItems(items: AxisEntityModel[]): AXPSpreadsheetItem[] {\n const resolve = (v: unknown) => this.multiLanguageResolver.resolve(v as never);\n return items.map((item) => ({\n id: item.id,\n title: resolve(item.title),\n description: item.description ? resolve(item.description) : undefined,\n }));\n }\n\n private convertSpreadsheetRowsToMatrixData(rows: Record<string, unknown>[]): AXPSpreadsheetData {\n const horizontalTitles = this.horizontalTitles();\n const matrixData: AXPSpreadsheetData = {};\n\n rows.forEach((row) => {\n const rowId = row['name'] as string | undefined;\n if (!rowId) {\n return;\n }\n\n matrixData[rowId] = {};\n horizontalTitles.forEach((column) => {\n matrixData[rowId][column.id] = (row[column.id] as string | null) ?? null;\n });\n });\n\n return matrixData;\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleSpreadsheetChange(rows: Record<string, unknown>[]): void {\n const displayMatrix = this.convertSpreadsheetRowsToMatrixData(rows);\n this.valueChange.emit(toCanonicalMatrixData(displayMatrix, this.resolvedMatrixOrientation()));\n }\n\n protected handleCellChange(event: AXPSpreadsheetCellChangeEvent): void {\n this.cellChange.emit(event);\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"__container\">\n <div class=\"__matrix-section\">\n @if (isLoading()) {\n <div class=\"__loading\">\n <span>{{ '@risk-management:risk-matrix-cells.components.risk-matrix.messages.loading' | translate | async }}</span>\n </div>\n } @else {\n @for (_ of [resolvedMatrixOrientation()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\n }\n }\n </div>\n</div>\n","//#region ---- Imports ----\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isEmpty } from 'lodash';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMRiskMatrixViewerOpenOptions {\n context: Record<string, unknown>;\n matrixPath?: string;\n title?: string;\n}\n\n//#endregion\n\n//#region ---- Risk Matrix Viewer Service ----\n\n/**\n * Opens a read-only risk matrix preview dialog from row or record context.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMRiskMatrixViewerService {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Public API ----\n\n async open(options: AXMRiskMatrixViewerOpenOptions): Promise<void> {\n const matrixPath = defaultTo(options.matrixPath, 'matrix');\n const matrixValue = get(options.context, matrixPath);\n\n if (isEmpty(matrixValue)) {\n return;\n }\n\n await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(this.resolveDialogTitle(options.title))\n .setSize('lg')\n .setCloseButton(true)\n .setContext({ ...options.context })\n .content((layout) => {\n layout.flex((flex) => {\n flex.setDirection('column');\n flex.formField('', (field) => {\n field\n .path(matrixPath)\n .setShowLabel(false)\n .customWidget(AXPWidgetsList.Editors.RiskMatrix, { readonly: true });\n });\n });\n });\n })\n .show();\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private resolveDialogTitle(title: string | undefined): string {\n const resolved = resolveEntityRowDisplayText(title, this.translation.getActiveLang());\n return resolved || 'Risk Matrix';\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { resolveEntityRowDisplayTitle } from '@acorex-platform/framework-client/common';\n\nimport { AXMRiskMatrixViewerOpenOptions, AXMRiskMatrixViewerService } from './risk-matrix-viewer.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMRiskMatrixViewerOpenParams {\n context: Record<string, unknown>;\n matrixPath?: string;\n widgetOptions?: Record<string, unknown>;\n formatService: AXFormatService;\n activeLang: string;\n data?: Record<string, unknown>;\n entity?: AXPEntity | null;\n fallbackTitleKey?: string;\n}\n\n//#endregion\n\n//#region ---- Viewer Open Helper ----\n\nexport function buildRiskMatrixViewerOpenOptions(\n params: AXMRiskMatrixViewerOpenParams,\n): AXMRiskMatrixViewerOpenOptions {\n const matrixPath = params.matrixPath ?? 'matrix';\n const title = params.data\n ? resolveEntityRowDisplayTitle({\n data: params.data,\n widgetOptions: params.widgetOptions,\n formatService: params.formatService,\n activeLang: params.activeLang,\n entity: params.entity,\n })\n : '';\n\n return {\n context: params.context,\n matrixPath,\n title: title || params.fallbackTitleKey,\n };\n}\n\nexport async function openRiskMatrixViewer(\n viewer: AXMRiskMatrixViewerService,\n params: AXMRiskMatrixViewerOpenParams,\n): Promise<void> {\n await viewer.open(buildRiskMatrixViewerOpenOptions(params));\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\n\nimport { openRiskMatrixViewer } from './risk-matrix-viewer-open.util';\nimport { AXMRiskMatrixViewerService } from './risk-matrix-viewer.service';\n\n//#endregion\n\n//#region ---- Component: Risk Matrix Widget Column ----\n\n@Component({\n selector: 'axm-risk-matrix-widget-column',\n imports: [AXButtonModule, AXDecoratorModule],\n template: `\n <div class=\"flex items-center gap-2\">\n @if (hasMatrix()) {\n <ax-button class=\"ax-sm\" look=\"twotone\" color=\"default\" (click)=\"showPopup()\">\n <ax-icon>\n <i class=\"fa-light fa-table-cells\"></i>\n </ax-icon>\n </ax-button>\n } @else {\n <span>-</span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXMRiskMatrixWidgetColumnComponent extends AXPColumnWidgetComponent<Record<string, unknown>> {\n //#region ---- Services & Dependencies ----\n\n private readonly riskMatrixViewer = inject(AXMRiskMatrixViewerService);\n private readonly formatService = inject(AXFormatService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n hasMatrix(): boolean {\n return !isEmpty(this.rawValue);\n }\n\n async showPopup(): Promise<void> {\n const rowData = this.rowData as Record<string, unknown> | undefined;\n if (!rowData || isEmpty(this.rawValue)) {\n return;\n }\n\n await openRiskMatrixViewer(this.riskMatrixViewer, {\n context: rowData,\n matrixPath: this.path,\n data: rowData,\n widgetOptions: { ...(this.options as Record<string, unknown>) },\n formatService: this.formatService,\n activeLang: this.translation.getActiveLang(),\n fallbackTitleKey: '@risk-management:risk-matrix-cells.entities.risk-matrix-cell.fields.matrix.title',\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSpreadsheetData } from '@acorex-platform/framework-client/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, ViewEncapsulation } from '@angular/core';\nimport { get, isEqual } from 'lodash';\nimport { type AXMRiskMatrixAxisMapping } from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n pruneMatrixToAxes,\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixCellAxisIds,\n resolveRiskMatrixOrientation,\n} from '../shared/risk-matrix-axis-mapping';\nimport { AXMRiskManagementRiskMatrixComponent } from './risk-matrix.component';\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix-widget-edit',\n standalone: true,\n imports: [AXMRiskManagementRiskMatrixComponent],\n template: `\n <axm-risk-matrix\n [axisMapping]=\"axisMapping()\"\n [matrixOrientation]=\"matrixOrientation()\"\n [likelihoodIds]=\"likelihoodIds()\"\n [severityIds]=\"severityIds()\"\n [value]=\"matrixValue()\"\n [readonly]=\"readonly()\"\n (valueChange)=\"handleValueChange($any($event))\"\n ></axm-risk-matrix>\n `,\n host: {\n class: 'block w-full',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {\n //#region ---- Lifecycle Methods ----\n\n constructor() {\n super();\n\n effect(() => {\n const likelihoodIds = this.likelihoodIds();\n const severityIds = this.severityIds();\n const matrix = (this.getValue() as AXPSpreadsheetData) ?? {};\n const prunedMatrix = pruneMatrixToAxes(matrix, likelihoodIds, severityIds);\n\n if (!isEqual(matrix, prunedMatrix)) {\n this.setValue(prunedMatrix);\n }\n });\n }\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected readonly = computed<boolean>(() => {\n const options = this.options();\n return options?.['readonly'] ?? false;\n });\n\n protected axisMapping = computed<AXMRiskMatrixAxisMapping>(() => {\n this.contextService.changeEvent();\n const options = this.options();\n const orientation = get(this.contextService.data(), 'matrixOrientation') as string | null | undefined;\n\n return resolveRiskMatrixAxisMappingFromOrientation(orientation, {\n rowProperty: options?.['rowProperty'],\n columnProperty: options?.['columnProperty'],\n depthProperty: options?.['depthProperty'],\n });\n });\n\n protected matrixOrientation = computed(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixOrientation(get(this.contextService.data(), 'matrixOrientation'));\n });\n\n protected likelihoodIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'likelihood');\n });\n\n protected severityIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'severity');\n });\n\n protected matrixValue = computed<AXPSpreadsheetData>(() => {\n return (this.getValue() as AXPSpreadsheetData) || {};\n });\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleValueChange(data: AXPSpreadsheetData): void {\n if (data) {\n this.setValue(data);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSpreadsheetData } from '@acorex-platform/framework-client/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash';\nimport { type AXMRiskMatrixAxisMapping } from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixCellAxisIds,\n resolveRiskMatrixOrientation,\n} from '../shared/risk-matrix-axis-mapping';\nimport { AXMRiskManagementRiskMatrixComponent } from './risk-matrix.component';\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix-widget-view',\n standalone: true,\n imports: [AXMRiskManagementRiskMatrixComponent],\n template: `\n <axm-risk-matrix\n [axisMapping]=\"axisMapping()\"\n [matrixOrientation]=\"matrixOrientation()\"\n [likelihoodIds]=\"likelihoodIds()\"\n [severityIds]=\"severityIds()\"\n [value]=\"matrixValue()\"\n [readonly]=\"true\"\n ></axm-risk-matrix>\n `,\n host: {\n class: 'block w-full',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {\n //#region ---- Computed Properties ----\n\n protected axisMapping = computed<AXMRiskMatrixAxisMapping>(() => {\n this.contextService.changeEvent();\n const options = this.options();\n const orientation = get(this.contextService.data(), 'matrixOrientation') as string | null | undefined;\n\n return resolveRiskMatrixAxisMappingFromOrientation(orientation, {\n rowProperty: options?.['rowProperty'],\n columnProperty: options?.['columnProperty'],\n depthProperty: options?.['depthProperty'],\n });\n });\n\n protected matrixOrientation = computed(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixOrientation(get(this.contextService.data(), 'matrixOrientation'));\n });\n\n protected likelihoodIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'likelihood');\n });\n\n protected severityIds = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixCellAxisIds(this.contextService.data(), 'severity');\n });\n\n protected matrixValue = computed<AXPSpreadsheetData>(() => {\n return (this.getValue() as AXPSpreadsheetData) || {};\n });\n\n //#endregion\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -148,18 +148,22 @@ interface AXMRiskManagementRiskMatrixCellEntityModel extends AXPEntityModel<stri
|
|
|
148
148
|
/** Business code from identifier rule `risk-matrix-cell-code` (`RMC-{date:YYYY}-{seq:4}`). */
|
|
149
149
|
code: string;
|
|
150
150
|
title: string;
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
likelihoodIds: string[];
|
|
152
|
+
likelihoodList?: Array<{
|
|
153
153
|
id: string;
|
|
154
154
|
title?: string;
|
|
155
155
|
code?: string;
|
|
156
156
|
}>;
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
/** @deprecated Use `likelihoodIds`. Kept so existing documents still resolve in widgets. */
|
|
158
|
+
likelihoodId?: string[];
|
|
159
|
+
severityIds: string[];
|
|
160
|
+
severityList?: Array<{
|
|
159
161
|
id: string;
|
|
160
162
|
title?: string;
|
|
161
163
|
code?: string;
|
|
162
164
|
}>;
|
|
165
|
+
/** @deprecated Use `severityIds`. Kept so existing documents still resolve in widgets. */
|
|
166
|
+
severityId?: string[];
|
|
163
167
|
/** Likelihood rows × severity columns mapped to risk rating ids. */
|
|
164
168
|
matrix?: AXPSpreadsheetData;
|
|
165
169
|
categoryIds?: string[];
|
|
@@ -182,7 +186,7 @@ interface AXMRiskManagementRiskRatingEntityModel extends AXPEntityModel<string>
|
|
|
182
186
|
title: string;
|
|
183
187
|
description?: string;
|
|
184
188
|
levelValue: number;
|
|
185
|
-
/**
|
|
189
|
+
/** Surface CSS class from `color-chooser` (`success-lighter-surface` or `axp-hex-4caf50`). */
|
|
186
190
|
color?: string;
|
|
187
191
|
isArchived?: boolean;
|
|
188
192
|
archivedAt?: Date | string;
|
|
@@ -109,7 +109,6 @@ declare class AXMRiskMatrixWidgetEditComponent extends AXPValueWidgetComponent<A
|
|
|
109
109
|
protected severityIds: _angular_core.Signal<string[]>;
|
|
110
110
|
protected matrixValue: _angular_core.Signal<AXPSpreadsheetData>;
|
|
111
111
|
protected handleValueChange(data: AXPSpreadsheetData): void;
|
|
112
|
-
private normalizeAxisIds;
|
|
113
112
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMRiskMatrixWidgetEditComponent, never>;
|
|
114
113
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskMatrixWidgetEditComponent, "axm-risk-matrix-widget-edit", never, {}, {}, never, never, true, never>;
|
|
115
114
|
}
|
|
@@ -120,7 +119,6 @@ declare class AXMRiskMatrixWidgetViewComponent extends AXPValueWidgetComponent<A
|
|
|
120
119
|
protected likelihoodIds: _angular_core.Signal<string[]>;
|
|
121
120
|
protected severityIds: _angular_core.Signal<string[]>;
|
|
122
121
|
protected matrixValue: _angular_core.Signal<AXPSpreadsheetData>;
|
|
123
|
-
private normalizeAxisIds;
|
|
124
122
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMRiskMatrixWidgetViewComponent, never>;
|
|
125
123
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMRiskMatrixWidgetViewComponent, "axm-risk-matrix-widget-view", never, {}, {}, never, never, true, never>;
|
|
126
124
|
}
|
|
@@ -142,6 +140,11 @@ declare function resolveRiskMatrixAxisMappingFromOrientation(orientation?: unkno
|
|
|
142
140
|
declare function toDisplayMatrixData(canonical: AXPSpreadsheetData, orientation?: unknown): AXPSpreadsheetData;
|
|
143
141
|
/** Converts display-oriented matrix data back to canonical likelihood × severity storage. */
|
|
144
142
|
declare function toCanonicalMatrixData(display: AXPSpreadsheetData, orientation?: unknown): AXPSpreadsheetData;
|
|
143
|
+
/**
|
|
144
|
+
* Reads selected axis ids from a risk-matrix-cell record.
|
|
145
|
+
* Prefers `*Ids` (multi-lookup convention), then legacy `*Id`, then joined `*List`.
|
|
146
|
+
*/
|
|
147
|
+
declare function resolveRiskMatrixCellAxisIds(data: unknown, axis: 'likelihood' | 'severity'): string[];
|
|
145
148
|
/** Normalizes lookup axis values (ids or `{ id }` rows) to string ids. */
|
|
146
149
|
declare function normalizeRiskMatrixAxisIds(value: unknown): string[];
|
|
147
150
|
/**
|
|
@@ -151,5 +154,5 @@ declare function normalizeRiskMatrixAxisIds(value: unknown): string[];
|
|
|
151
154
|
declare function pruneMatrixToAxes(matrix: AXPSpreadsheetData, likelihoodIds: string[], severityIds: string[]): AXPSpreadsheetData;
|
|
152
155
|
declare function validateRiskMatrixAxisMapping(mapping: Partial<AXMRiskMatrixAxisMapping>): boolean;
|
|
153
156
|
|
|
154
|
-
export { AXMRiskManagementMenuProvider, AXMRiskManagementModule, AXMRiskManagementPermissionDefinitionProvider, AXMRiskManagementRiskMatrixComponent, AXMRiskMatrixViewerService, AXMRiskMatrixWidgetColumnComponent, AXMRiskMatrixWidgetEditComponent, AXMRiskMatrixWidgetViewComponent, isRiskMatrixAxisProperty, isRiskMatrixOrientation, normalizeRiskMatrixAxisIds, pruneMatrixToAxes, resolveRiskMatrixAxisMapping, resolveRiskMatrixAxisMappingFromOrientation, resolveRiskMatrixOrientation, resolveRiskMatrixTitleKey, toCanonicalMatrixData, toDisplayMatrixData, validateRiskMatrixAxisMapping };
|
|
157
|
+
export { AXMRiskManagementMenuProvider, AXMRiskManagementModule, AXMRiskManagementPermissionDefinitionProvider, AXMRiskManagementRiskMatrixComponent, AXMRiskMatrixViewerService, AXMRiskMatrixWidgetColumnComponent, AXMRiskMatrixWidgetEditComponent, AXMRiskMatrixWidgetViewComponent, isRiskMatrixAxisProperty, isRiskMatrixOrientation, normalizeRiskMatrixAxisIds, pruneMatrixToAxes, resolveRiskMatrixAxisMapping, resolveRiskMatrixAxisMappingFromOrientation, resolveRiskMatrixCellAxisIds, resolveRiskMatrixOrientation, resolveRiskMatrixTitleKey, toCanonicalMatrixData, toDisplayMatrixData, validateRiskMatrixAxisMapping };
|
|
155
158
|
export type { AXMRiskMatrixViewerOpenOptions };
|