@acorex-platform/module-risk-management-client 0.0.56 → 0.0.58

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.
@@ -855,7 +855,7 @@ class AXMRiskManagementRiskMatrixComponent {
855
855
  this.cellChange.emit(event);
856
856
  }
857
857
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRiskManagementRiskMatrixComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
858
- 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 }, likelihoodScaleId: { classPropertyName: "likelihoodScaleId", publicName: "likelihoodScaleId", isSignal: true, isRequired: false, transformFunction: null }, severityScaleId: { classPropertyName: "severityScaleId", publicName: "severityScaleId", isSignal: true, isRequired: false, transformFunction: null }, ratingScaleId: { classPropertyName: "ratingScaleId", publicName: "ratingScaleId", isSignal: true, isRequired: false, transformFunction: null }, likelihoodScaleLevels: { classPropertyName: "likelihoodScaleLevels", publicName: "likelihoodScaleLevels", isSignal: true, isRequired: false, transformFunction: null }, severityScaleLevels: { classPropertyName: "severityScaleLevels", publicName: "severityScaleLevels", isSignal: true, isRequired: false, transformFunction: null }, ratingScaleLevels: { classPropertyName: "ratingScaleLevels", publicName: "ratingScaleLevels", 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 @for (_ of [spreadsheetIdentity()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly() || cellSelectLocked()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\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 .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: "component", type: AXPSpreadsheetComponent, selector: "axp-spreadsheet", inputs: ["title", "columns", "rowMode", "rowsInput", "rowsModel", "readonly", "emptyCellPlaceholder", "rowTitlePath", "rowDescriptionPath", "allowAddRows", "allowRemoveRows", "allowAddColumns", "allowRemoveColumns", "showCellActions"], outputs: ["rowsModelChange", "cellChange", "rowChange", "columnChange", "columnsChange", "spreadsheetChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
858
+ 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 }, likelihoodScaleId: { classPropertyName: "likelihoodScaleId", publicName: "likelihoodScaleId", isSignal: true, isRequired: false, transformFunction: null }, severityScaleId: { classPropertyName: "severityScaleId", publicName: "severityScaleId", isSignal: true, isRequired: false, transformFunction: null }, ratingScaleId: { classPropertyName: "ratingScaleId", publicName: "ratingScaleId", isSignal: true, isRequired: false, transformFunction: null }, likelihoodScaleLevels: { classPropertyName: "likelihoodScaleLevels", publicName: "likelihoodScaleLevels", isSignal: true, isRequired: false, transformFunction: null }, severityScaleLevels: { classPropertyName: "severityScaleLevels", publicName: "severityScaleLevels", isSignal: true, isRequired: false, transformFunction: null }, ratingScaleLevels: { classPropertyName: "ratingScaleLevels", publicName: "ratingScaleLevels", 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 @for (_ of [spreadsheetIdentity()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly() || cellSelectLocked()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\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 .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: "component", type: AXPSpreadsheetComponent, selector: "axp-spreadsheet", inputs: ["title", "columns", "rowMode", "rowsInput", "rowsModel", "readonly", "emptyCellPlaceholder", "rowTitlePath", "rowDescriptionPath", "allowAddRows", "allowRemoveRows", "allowAddColumns", "allowRemoveColumns", "showCellActions", "showRowHeader", "rowGroupPath", "rowWidgets"], outputs: ["rowsModelChange", "cellChange", "rowChange", "columnChange", "columnsChange", "spreadsheetChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
859
859
  }
860
860
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRiskManagementRiskMatrixComponent, decorators: [{
861
861
  type: Component,
@@ -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/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 { AXPCommonMenuKeys } 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 AXMRiskManagementMenuKeys,\n} 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.RiskMatrices,\n text: entities.riskMatrix.titlePlural,\n icon: entities.riskMatrix.icon,\n priority: 1,\n path: this.entityService.createPath(module.name, entities.riskMatrix.name),\n policy: {\n permissions: [keys.MaintainRisk],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskLikelihoodScales,\n text: entities.riskLikelihoodScale.titlePlural,\n icon: entities.riskLikelihoodScale.icon,\n priority: 2,\n path: this.entityService.createPath(module.name, entities.riskLikelihoodScale.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskSeverityScales,\n text: entities.riskSeverityScale.titlePlural,\n icon: entities.riskSeverityScale.icon,\n priority: 3,\n path: this.entityService.createPath(module.name, entities.riskSeverityScale.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskRatingScales,\n text: entities.riskRatingScale.titlePlural,\n icon: entities.riskRatingScale.icon,\n priority: 4,\n path: this.entityService.createPath(module.name, entities.riskRatingScale.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 type {\n AXPCatalogScopeDefinition,\n AXPCatalogScopeDefinitionProvider,\n} from '@acorex-platform/framework-client/core';\nimport { Injectable } from '@angular/core';\nimport {\n RootConfig,\n RISK_CATALOG_SCOPE_HAZARD,\n RISK_CATALOG_SCOPE_PPE_ITEMS,\n} from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst RISK_MATRIX = `${RootConfig.module.name}.${RootConfig.entities.riskMatrix.name}`;\n\nconst RISK_MATRIX_CATALOG_TARGETS = [RISK_MATRIX] 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_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_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 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 { 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 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.riskMatrix.name}:Preview`,\n command: () =>\n import('./features/risk-matrix/commands/preview-risk-matrix.command').then(\n (c) => c.AXMPreviewRiskMatrixCommand,\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 resolveRiskLikelihoodLevelCodes,\n resolveRiskRatingLevelCodes,\n resolveRiskSeverityLevelCodes,\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixAxisProperty,\n type AXMRiskMatrixOrientation,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n} from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ----- Types -----\n\ntype RiskMatrixScaleIdField = 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId';\ntype RiskMatrixScaleSnapshotField = 'likelihoodScale' | 'severityScale' | 'ratingScale';\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 **level codes** from a risk-matrix record.\n * Codes come from the selected scale snapshot (`*.scale.levels`), never from scale entity ids.\n */\nexport function resolveRiskMatrixAxisCodes(\n data: unknown,\n axis: 'likelihood' | 'severity' | 'rating',\n): string[] {\n if (data == null || typeof data !== 'object') {\n return [];\n }\n\n const record = data as Record<string, unknown>;\n\n if (axis === 'likelihood') {\n const scale = record['likelihoodScale'] as { levels?: AXMRiskLikelihoodLevelItemModel[] } | undefined;\n return resolveRiskLikelihoodLevelCodes(scale?.levels);\n }\n\n if (axis === 'severity') {\n const scale = record['severityScale'] as { levels?: AXMRiskSeverityLevelItemModel[] } | undefined;\n return resolveRiskSeverityLevelCodes(scale?.levels);\n }\n\n const scale = record['ratingScale'] as { levels?: AXMRiskRatingLevelItemModel[] } | undefined;\n return resolveRiskRatingLevelCodes(scale?.levels);\n}\n\n/** Resolves a lookup uuid that may be stored as a string or `{ id }` row. */\nexport function resolveRiskMatrixScaleId(value: unknown): string | undefined {\n const candidate = extractValue(value, 'id') ?? value;\n if (typeof candidate === 'string' && candidate.trim().length > 0) {\n return candidate.trim();\n }\n\n return undefined;\n}\n\n/**\n * Create mode may have the snapshot (`ratingScale.id`) before `ratingScaleId` is committed.\n * Edit mode has both after GET join.\n */\nexport function resolveRiskMatrixScaleIdFromRecord(\n data: unknown,\n idField: RiskMatrixScaleIdField,\n snapshotField: RiskMatrixScaleSnapshotField,\n): string | undefined {\n if (data == null || typeof data !== 'object') {\n return undefined;\n }\n\n const record = data as Record<string, unknown>;\n return resolveRiskMatrixScaleId(record[idField]) ?? resolveRiskMatrixScaleId(record[snapshotField]);\n}\n\n/**\n * Widget-context scale id: path `getValue` first, then the full record snapshot.\n */\nexport function resolveRiskMatrixWidgetScaleId(\n getValue: (path: string) => unknown,\n data: unknown,\n idField: RiskMatrixScaleIdField,\n snapshotField: RiskMatrixScaleSnapshotField,\n): string | undefined {\n return (\n resolveRiskMatrixScaleId(getValue(idField)) ??\n resolveRiskMatrixScaleId(getValue(snapshotField)) ??\n resolveRiskMatrixScaleIdFromRecord(data, idField, snapshotField)\n );\n}\n\nfunction asNonEmptyLevelArray<T>(value: unknown): T[] | undefined {\n if (!Array.isArray(value) || value.length === 0) {\n return undefined;\n }\n\n return value as T[];\n}\n\n/**\n * Nested `levels` from a lookup expose snapshot (`likelihoodScale.levels`, …).\n * Empty arrays are treated as missing so create-mode can still fetch by id.\n */\nexport function resolveRiskMatrixScaleLevels<T>(\n data: unknown,\n snapshotField: RiskMatrixScaleSnapshotField,\n levelsFromPath?: unknown,\n): T[] | undefined {\n const fromPath = asNonEmptyLevelArray<T>(levelsFromPath);\n if (fromPath) {\n return fromPath;\n }\n\n if (data == null || typeof data !== 'object') {\n return undefined;\n }\n\n const snapshot = (data as Record<string, unknown>)[snapshotField];\n const fromSnapshotRoot = asNonEmptyLevelArray<T>(snapshot);\n if (fromSnapshotRoot) {\n return fromSnapshotRoot;\n }\n\n if (snapshot == null || typeof snapshot !== 'object') {\n return undefined;\n }\n\n const record = snapshot as { levels?: T[]; items?: T[] };\n return asNonEmptyLevelArray<T>(record.levels) ?? asNonEmptyLevelArray<T>(record.items);\n}\n\n/** Widget-context scale levels: nested path, then snapshot on the record. */\nexport function resolveRiskMatrixWidgetScaleLevels<T>(\n getValue: (path: string) => unknown,\n data: unknown,\n snapshotField: RiskMatrixScaleSnapshotField,\n): T[] | undefined {\n return resolveRiskMatrixScaleLevels<T>(data, snapshotField, getValue(`${snapshotField}.levels`));\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 AXPQueryRequest, 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 { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n type WritableSignal,\n} from '@angular/core';\nimport {\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskManagementRiskLikelihoodScaleEntityModel,\n type AXMRiskManagementRiskRatingScaleEntityModel,\n type AXMRiskManagementRiskSeverityScaleEntityModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n RootConfig,\n sortRiskLikelihoodLevels,\n sortRiskRatingLevels,\n sortRiskSeverityLevels,\n} 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\ntype ScaleWithLevels = {\n id?: string;\n levels?: unknown[];\n items?: unknown[];\n};\n\ntype ScaleDataAccessor = {\n byKey: (key: string) => Promise<ScaleWithLevels | null | undefined>;\n query: (request?: AXPQueryRequest) => Promise<{ items?: ScaleWithLevels[] }>;\n};\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst SCALE_AXIS_QUERY_FIELDS = [\n 'id',\n 'code',\n 'title',\n 'levels',\n 'levels.id',\n 'levels.code',\n 'levels.title',\n 'levels.score',\n 'levels.color',\n 'levels.order',\n];\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix',\n standalone: true,\n imports: [AsyncPipe, 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 //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly likelihoodScaleDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskLikelihoodScale.name)\n .data<string, AXMRiskManagementRiskLikelihoodScaleEntityModel>();\n private readonly severityScaleDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskSeverityScale.name)\n .data<string, AXMRiskManagementRiskSeverityScaleEntityModel>();\n private readonly riskRatingScaleDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskRatingScale.name)\n .data<string, AXMRiskManagementRiskRatingScaleEntityModel>();\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 scale ids from the parent matrix record. Axes load from that scale's levels. */\n likelihoodScaleId = input<string | null | undefined>(null);\n severityScaleId = input<string | null | undefined>(null);\n ratingScaleId = input<string | null | undefined>(null);\n\n /** Lookup expose snapshots — used in create before (or instead of) byKey. */\n likelihoodScaleLevels = input<AXMRiskLikelihoodLevelItemModel[] | null | undefined>(null);\n severityScaleLevels = input<AXMRiskSeverityLevelItemModel[] | null | undefined>(null);\n ratingScaleLevels = input<AXMRiskRatingLevelItemModel[] | null | undefined>(null);\n\n /** Controls row/column layout only; persisted cells stay likelihood × severity. */\n matrixOrientation = input<string | null | undefined>(null);\n\n /** Spreadsheet data keyed by **level codes**: { [likelihoodCode]: { [severityCode]: ratingCode } } */\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 /** Drops overlapping create-mode loads so an earlier request cannot wipe later rating levels. */\n private loadAxesRequestId = 0;\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 spreadsheetIdentity = computed(() =>\n [\n this.resolvedMatrixOrientation(),\n this.likelihoodScaleId() ?? '',\n this.severityScaleId() ?? '',\n this.ratingScaleId() ?? '',\n this.depthItems()\n .map((item) => item.id)\n .join(','),\n ].join('|'),\n );\n\n /** Create mode: do not open empty cell editors before rating levels are loaded. */\n protected readonly cellSelectLocked = computed(\n () => !!this.ratingScaleId() && this.depthItems().length === 0,\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 return horizontalTitles.map((title) => ({\n name: title.id,\n title: title.title,\n description: title.description,\n path: title.id,\n widget: {\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 });\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 likelihoodScaleId = this.likelihoodScaleId();\n const severityScaleId = this.severityScaleId();\n const ratingScaleId = this.ratingScaleId();\n const likelihoodScaleLevels = this.likelihoodScaleLevels();\n const severityScaleLevels = this.severityScaleLevels();\n const ratingScaleLevels = this.ratingScaleLevels();\n void this.loadMatrixAxes(\n likelihoodScaleId,\n severityScaleId,\n ratingScaleId,\n likelihoodScaleLevels,\n severityScaleLevels,\n ratingScaleLevels,\n );\n });\n }\n\n //#endregion\n\n //#region ---- Data Loading Methods ----\n\n private async loadMatrixAxes(\n likelihoodScaleId: string | null | undefined,\n severityScaleId: string | null | undefined,\n ratingScaleId: string | null | undefined,\n likelihoodScaleLevels: AXMRiskLikelihoodLevelItemModel[] | null | undefined,\n severityScaleLevels: AXMRiskSeverityLevelItemModel[] | null | undefined,\n ratingScaleLevels: AXMRiskRatingLevelItemModel[] | null | undefined,\n ): Promise<void> {\n const requestId = ++this.loadAxesRequestId;\n const snapshotLikelihood = this.mapLikelihoodLevels(likelihoodScaleLevels);\n const snapshotSeverity = this.mapSeverityLevels(severityScaleLevels);\n const snapshotRating = this.mapRatingLevels(ratingScaleLevels);\n const hasSnapshotAxes =\n snapshotLikelihood.length > 0 || snapshotSeverity.length > 0 || snapshotRating.length > 0;\n\n if (!likelihoodScaleId && !severityScaleId && !ratingScaleId && !hasSnapshotAxes) {\n this.likelihoodItems.set([]);\n this.severityItems.set([]);\n this.depthItems.set([]);\n return;\n }\n\n if (snapshotLikelihood.length > 0) {\n this.likelihoodItems.set(snapshotLikelihood);\n }\n if (snapshotSeverity.length > 0) {\n this.severityItems.set(snapshotSeverity);\n }\n if (snapshotRating.length > 0) {\n this.depthItems.set(snapshotRating);\n }\n\n if (!likelihoodScaleId && !severityScaleId && !ratingScaleId) {\n return;\n }\n\n try {\n const [likelihoodResult, severityResult, depthResult] = await Promise.all([\n this.queryAxisItems(this.likelihoodScaleDataAccessor, likelihoodScaleId, (levels) =>\n this.mapLikelihoodLevels(levels),\n likelihoodScaleLevels,\n ),\n this.queryAxisItems(this.severityScaleDataAccessor, severityScaleId, (levels) =>\n this.mapSeverityLevels(levels),\n severityScaleLevels,\n ),\n this.queryAxisItems(this.riskRatingScaleDataAccessor, ratingScaleId, (levels) =>\n this.mapRatingLevels(levels),\n ratingScaleLevels,\n ),\n ]);\n\n if (requestId !== this.loadAxesRequestId) {\n return;\n }\n\n this.applyAxisItems(this.likelihoodItems, likelihoodResult, snapshotLikelihood);\n this.applyAxisItems(this.severityItems, severityResult, snapshotSeverity);\n this.applyAxisItems(this.depthItems, depthResult, snapshotRating);\n } catch (error) {\n if (requestId !== this.loadAxesRequestId) {\n return;\n }\n\n console.error('Error loading risk matrix axes:', error);\n if (!hasSnapshotAxes && this.depthItems().length === 0) {\n this.likelihoodItems.set([]);\n this.severityItems.set([]);\n this.depthItems.set([]);\n }\n }\n }\n\n private applyAxisItems(\n target: WritableSignal<AxisEntityModel[]>,\n fetched: AxisEntityModel[],\n snapshot: AxisEntityModel[],\n ): void {\n if (fetched.length > 0) {\n target.set(fetched);\n return;\n }\n if (snapshot.length > 0) {\n target.set(snapshot);\n }\n }\n\n private async queryAxisItems<TLevel>(\n accessor: ScaleDataAccessor,\n scaleId: string | null | undefined,\n mapLevels: (levels: TLevel[] | null | undefined) => AxisEntityModel[],\n snapshotLevels?: TLevel[] | null,\n ): Promise<AxisEntityModel[]> {\n const snapshot = mapLevels(snapshotLevels);\n const scale = await this.loadScaleWithLevels(accessor, scaleId);\n const fetched = mapLevels(this.readScaleLevels<TLevel>(scale));\n return fetched.length > 0 ? fetched : snapshot;\n }\n\n private readScaleLevels<T>(scale: ScaleWithLevels | null | undefined): T[] | undefined {\n if (!scale || typeof scale !== 'object') {\n return undefined;\n }\n\n const levels = scale.levels ?? scale.items;\n return Array.isArray(levels) && levels.length > 0 ? (levels as T[]) : undefined;\n }\n\n private mapLikelihoodLevels(\n levels: AXMRiskLikelihoodLevelItemModel[] | null | undefined,\n ): AxisEntityModel[] {\n return this.mapAxisLevels(sortRiskLikelihoodLevels(levels));\n }\n\n private mapSeverityLevels(\n levels: AXMRiskSeverityLevelItemModel[] | null | undefined,\n ): AxisEntityModel[] {\n return this.mapAxisLevels(sortRiskSeverityLevels(levels));\n }\n\n private mapRatingLevels(levels: AXMRiskRatingLevelItemModel[] | null | undefined): AxisEntityModel[] {\n return this.mapAxisLevels(sortRiskRatingLevels(levels), (level) => {\n const color = ensureRuntimeSurfaceClass(resolveRiskRatingBadgeColor(level));\n return color ? { color } : {};\n });\n }\n\n private mapAxisLevels<T extends { code?: unknown; id?: unknown; title: string }>(\n levels: T[],\n extra?: (level: T) => Partial<AxisEntityModel>,\n ): AxisEntityModel[] {\n return levels\n .map((level) => {\n const id = this.toAxisLevelKey(level);\n return {\n id,\n title: level.title,\n ...(extra?.(level) ?? {}),\n };\n })\n .filter((item) => item.id.length > 0);\n }\n\n private toAxisLevelKey(level: { code?: unknown; id?: unknown } | null | undefined): string {\n if (level == null) {\n return '';\n }\n\n const code = level.code;\n if (typeof code === 'string' && code.trim()) {\n return code.trim();\n }\n if (typeof code === 'number' && Number.isFinite(code)) {\n return String(code);\n }\n\n const id = level.id;\n if (typeof id === 'string' && id.trim()) {\n return id.trim();\n }\n if (typeof id === 'number' && Number.isFinite(id)) {\n return String(id);\n }\n\n return '';\n }\n\n private async loadScaleWithLevels(\n accessor: ScaleDataAccessor,\n scaleId?: string | null,\n ): Promise<ScaleWithLevels | null> {\n if (!scaleId) {\n return null;\n }\n\n const fromQuery = await this.queryScaleById(accessor, scaleId);\n if (this.readScaleLevels(fromQuery)) {\n return fromQuery;\n }\n\n try {\n const fromByKey = (await accessor.byKey(scaleId)) ?? null;\n return this.readScaleLevels(fromByKey) ? fromByKey : fromQuery ?? fromByKey;\n } catch {\n return fromQuery;\n }\n }\n\n private async queryScaleById(\n accessor: Pick<ScaleDataAccessor, 'query'>,\n scaleId: string,\n ): Promise<ScaleWithLevels | null> {\n try {\n const page = await accessor.query({\n skip: 0,\n take: 1,\n fields: [...SCALE_AXIS_QUERY_FIELDS],\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: scaleId,\n },\n });\n return page?.items?.[0] ?? null;\n } catch {\n return null;\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 @for (_ of [spreadsheetIdentity()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly() || cellSelectLocked()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\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, 'cells');\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 ?? 'cells';\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-matrices.entities.risk-matrix.fields.cells.title',\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXPSpreadsheetData } from '@acorex-platform/framework-shared/core';\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 {\n pruneRiskMatrixCells,\n resolveRiskMatrixCells,\n toRiskMatrixSpreadsheetData,\n fromRiskMatrixSpreadsheetData,\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixCellValueObject,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n} from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisCodes,\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n resolveRiskMatrixWidgetScaleId,\n resolveRiskMatrixWidgetScaleLevels,\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 [likelihoodScaleId]=\"likelihoodScaleId()\"\n [severityScaleId]=\"severityScaleId()\"\n [ratingScaleId]=\"ratingScaleId()\"\n [likelihoodScaleLevels]=\"likelihoodScaleLevels()\"\n [severityScaleLevels]=\"severityScaleLevels()\"\n [ratingScaleLevels]=\"ratingScaleLevels()\"\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<AXMRiskMatrixCellValueObject[]> {\n //#region ---- Lifecycle Methods ----\n\n constructor() {\n super();\n\n effect(() => {\n const likelihoodCodes = this.likelihoodCodes();\n const severityCodes = this.severityCodes();\n const ratingCodes = this.ratingCodes();\n const cells = resolveRiskMatrixCells(this.getValue());\n const prunedCells = pruneRiskMatrixCells(cells, likelihoodCodes, severityCodes, ratingCodes);\n\n if (!isEqual(cells, prunedCells)) {\n this.setValue(prunedCells);\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 likelihoodScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('likelihoodScaleId', 'likelihoodScale');\n });\n\n protected severityScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('severityScaleId', 'severityScale');\n });\n\n protected ratingScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('ratingScaleId', 'ratingScale');\n });\n\n protected likelihoodScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskLikelihoodLevelItemModel>('likelihoodScale');\n });\n\n protected severityScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskSeverityLevelItemModel>('severityScale');\n });\n\n protected ratingScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskRatingLevelItemModel>('ratingScale');\n });\n\n protected likelihoodCodes = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixAxisCodes(this.contextService.data(), 'likelihood');\n });\n\n protected severityCodes = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixAxisCodes(this.contextService.data(), 'severity');\n });\n\n protected ratingCodes = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixAxisCodes(this.contextService.data(), 'rating');\n });\n\n protected matrixValue = computed(() => {\n return toRiskMatrixSpreadsheetData(resolveRiskMatrixCells(this.getValue()));\n });\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleValueChange(data: AXPSpreadsheetData): void {\n if (data) {\n this.setValue(fromRiskMatrixSpreadsheetData(data));\n }\n }\n\n //#endregion\n\n //#region ----- Scale bindings -----\n\n private resolveScaleId(\n idField: 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId',\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): string | undefined {\n return resolveRiskMatrixWidgetScaleId(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n idField,\n snapshotField,\n );\n }\n\n private resolveScaleLevels<T>(\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): T[] | undefined {\n return resolveRiskMatrixWidgetScaleLevels<T>(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n snapshotField,\n );\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash';\nimport {\n resolveRiskMatrixCells,\n toRiskMatrixSpreadsheetData,\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixCellValueObject,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n} from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n resolveRiskMatrixWidgetScaleId,\n resolveRiskMatrixWidgetScaleLevels,\n} from '../shared/risk-matrix-axis-mapping';\nimport { AXMRiskManagementRiskMatrixComponent } from './risk-matrix.component';\n\n//#endregion\n\n//#region ----- Component -----\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 [likelihoodScaleId]=\"likelihoodScaleId()\"\n [severityScaleId]=\"severityScaleId()\"\n [ratingScaleId]=\"ratingScaleId()\"\n [likelihoodScaleLevels]=\"likelihoodScaleLevels()\"\n [severityScaleLevels]=\"severityScaleLevels()\"\n [ratingScaleLevels]=\"ratingScaleLevels()\"\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<AXMRiskMatrixCellValueObject[]> {\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 likelihoodScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('likelihoodScaleId', 'likelihoodScale');\n });\n\n protected severityScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('severityScaleId', 'severityScale');\n });\n\n protected ratingScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('ratingScaleId', 'ratingScale');\n });\n\n protected likelihoodScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskLikelihoodLevelItemModel>('likelihoodScale');\n });\n\n protected severityScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskSeverityLevelItemModel>('severityScale');\n });\n\n protected ratingScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskRatingLevelItemModel>('ratingScale');\n });\n\n protected matrixValue = computed(() => {\n return toRiskMatrixSpreadsheetData(resolveRiskMatrixCells(this.getValue()));\n });\n\n //#endregion\n\n //#region ----- Scale bindings -----\n\n private resolveScaleId(\n idField: 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId',\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): string | undefined {\n return resolveRiskMatrixWidgetScaleId(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n idField,\n snapshotField,\n );\n }\n\n private resolveScaleLevels<T>(\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): T[] | undefined {\n return resolveRiskMatrixWidgetScaleLevels<T>(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n snapshotField,\n );\n }\n\n //#endregion\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAYA;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,YAAY;AAC5C,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,YAAY,CAAC;AACjC,yBAAA;AACF,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,oBAAoB;AACpD,wBAAA,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC,WAAW;AAC9C,wBAAA,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI;AACvC,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC;AACnF,wBAAA,MAAM,EAAE;AACN,4BAAA,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,kBAAkB;AAClD,wBAAA,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,WAAW;AAC5C,wBAAA,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI;AACrC,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjF,wBAAA,MAAM,EAAE;AACN,4BAAA,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,yBAAA;AACF,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,yBAAyB,CAAC,gBAAgB;AAChD,wBAAA,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,WAAW;AAC1C,wBAAA,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI;AACnC,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/E,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;;;;;;;AClEA;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;;;;;;;;ACTD;AAEA;AAEA,MAAM,WAAW,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE;AAEtF,MAAM,2BAA2B,GAAG,CAAC,WAAW,CAAU;AAE1D;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,2BAA2B,CAAC;AACzC,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,2BAA2B,CAAC;AACzC,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;;;ACzBD;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;AAgBA;AAEA;MAoCa,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,YAhChC,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAgCV,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,EA9BvB;YAET,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,UAAU,CAAC,IAAI,CAAA,QAAA,CAAU;AAC/E,oBAAA,OAAO,EAAE,MACP,OAAO,0FAA6D,CAAC,CAAC,IAAI,CACxE,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CACrC;AACJ,iBAAA;aACF,CAAC;AACH,SAAA,EAAA,OAAA,EAAA,CA9BC,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAgCV,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlCnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBAET,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,UAAU,CAAC,IAAI,CAAA,QAAA,CAAU;AAC/E,gCAAA,OAAO,EAAE,MACP,OAAO,0FAA6D,CAAC,CAAC,IAAI,CACxE,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CACrC;AACJ,6BAAA;yBACF,CAAC;AACH,qBAAA;AACF,iBAAA;;;ACrDD;AA2BA;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;;;AAGG;AACG,SAAU,0BAA0B,CACxC,IAAa,EACb,IAA0C,EAAA;IAE1C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5C,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAG,IAA+B;AAE9C,IAAA,IAAI,IAAI,KAAK,YAAY,EAAE;AACzB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAA+D;AACrG,QAAA,OAAO,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC;IACvD;AAEA,IAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAA6D;AACjG,QAAA,OAAO,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC;IACrD;AAEA,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAA2D;AAC7F,IAAA,OAAO,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC;AACnD;AAEA;AACM,SAAU,wBAAwB,CAAC,KAAc,EAAA;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK;AACpD,IAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChE,QAAA,OAAO,SAAS,CAAC,IAAI,EAAE;IACzB;AAEA,IAAA,OAAO,SAAS;AAClB;AAEA;;;AAGG;SACa,kCAAkC,CAChD,IAAa,EACb,OAA+B,EAC/B,aAA2C,EAAA;IAE3C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5C,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,MAAM,GAAG,IAA+B;AAC9C,IAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,wBAAwB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACrG;AAEA;;AAEG;AACG,SAAU,8BAA8B,CAC5C,QAAmC,EACnC,IAAa,EACb,OAA+B,EAC/B,aAA2C,EAAA;AAE3C,IAAA,QACE,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAA,wBAAwB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjD,kCAAkC,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;AAEpE;AAEA,SAAS,oBAAoB,CAAI,KAAc,EAAA;AAC7C,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,OAAO,KAAY;AACrB;AAEA;;;AAGG;SACa,4BAA4B,CAC1C,IAAa,EACb,aAA2C,EAC3C,cAAwB,EAAA;AAExB,IAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAI,cAAc,CAAC;IACxD,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;IAEA,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5C,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,MAAM,QAAQ,GAAI,IAAgC,CAAC,aAAa,CAAC;AACjE,IAAA,MAAM,gBAAgB,GAAG,oBAAoB,CAAI,QAAQ,CAAC;IAC1D,IAAI,gBAAgB,EAAE;AACpB,QAAA,OAAO,gBAAgB;IACzB;IAEA,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACpD,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,MAAM,GAAG,QAAyC;AACxD,IAAA,OAAO,oBAAoB,CAAI,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAI,MAAM,CAAC,KAAK,CAAC;AACxF;AAEA;SACgB,kCAAkC,CAChD,QAAmC,EACnC,IAAa,EACb,aAA2C,EAAA;AAE3C,IAAA,OAAO,4BAA4B,CAAI,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAA,EAAG,aAAa,CAAA,OAAA,CAAS,CAAC,CAAC;AAClG;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;;AChTA;AAIA;AAEA;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,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;IACrD,IAAI,SAAS,EAAE;AACb,QAAA,OAAO,SAAS;IAClB;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;;ACtDA;AAsEA;AAEA;AAEA,MAAM,uBAAuB,GAAG;IAC9B,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;CACf;AAED;AAEA;MAca,oCAAoC,CAAA;;;AAmK/C,IAAA,WAAA,GAAA;;AAhKiB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC;AACjD,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI;AAC/E,aAAA,IAAI,EAA2D;QACjD,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC;AAC/C,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI;AAC7E,aAAA,IAAI,EAAyD;QAC/C,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC;AACjD,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAAuD;AAC7C,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;;;;QAOrE,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoC,EAAE;wFAAC;;QAG1D,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA4B,IAAI;8FAAC;QAC1D,IAAA,CAAA,eAAe,GAAG,KAAK,CAA4B,IAAI;4FAAC;QACxD,IAAA,CAAA,aAAa,GAAG,KAAK,CAA4B,IAAI;0FAAC;;QAGtD,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAuD,IAAI;kGAAC;QACzF,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAqD,IAAI;gGAAC;QACrF,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAmD,IAAI;8FAAC;;QAGjF,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;;QAEnD,IAAA,CAAA,iBAAiB,GAAG,CAAC;;;AAMV,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,mBAAmB,GAAG,QAAQ,CAAC,MAChD;YACE,IAAI,CAAC,yBAAyB,EAAE;AAChC,YAAA,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;YAC1B,IAAI,CAAC,UAAU;iBACZ,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;iBACrB,IAAI,CAAC,GAAG,CAAC;SACb,CAAC,IAAI,CAAC,GAAG,CAAC;gGACZ;;QAGkB,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAC5C,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC;6FAC/D;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;YAExD,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;AACN,oBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;AACtC,oBAAA,OAAO,EAAE;AACP,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,SAAS,EAAE,OAAO;AAClB,wBAAA,aAAa,EAAE,OAAO;AACtB,wBAAA,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM;4BAC9C,EAAE,EAAE,MAAM,CAAC,EAAE;4BACb,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,4BAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK;AACjC,yBAAA,CAAC,CAAC;AACJ,qBAAA;AACF,iBAAA;AACF,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,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAClD,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC1D,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACtD,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAClD,YAAA,KAAK,IAAI,CAAC,cAAc,CACtB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,CAClB;AACH,QAAA,CAAC,CAAC;IACJ;;;AAMQ,IAAA,MAAM,cAAc,CAC1B,iBAA4C,EAC5C,eAA0C,EAC1C,aAAwC,EACxC,qBAA2E,EAC3E,mBAAuE,EACvE,iBAAmE,EAAA;AAEnE,QAAA,MAAM,SAAS,GAAG,EAAE,IAAI,CAAC,iBAAiB;QAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC;QAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;AAC9D,QAAA,MAAM,eAAe,GACnB,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;AAE3F,QAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE;AAChF,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;YACvB;QACF;AAEA,QAAA,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC9C;AACA,QAAA,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC1C;AACA,QAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;QACrC;QAEA,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE;YAC5D;QACF;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,CAAC,gBAAgB,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,CAAC,MAAM,KAC9E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAChC,qBAAqB,CACtB;gBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,eAAe,EAAE,CAAC,MAAM,KAC1E,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC9B,mBAAmB,CACpB;gBACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,MAAM,KAC1E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAC5B,iBAAiB,CAClB;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB,EAAE;gBACxC;YACF;YAEA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;YAC/E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC;QACnE;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB,EAAE;gBACxC;YACF;AAEA,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB;QACF;IACF;AAEQ,IAAA,cAAc,CACpB,MAAyC,EACzC,OAA0B,EAC1B,QAA2B,EAAA;AAE3B,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YACnB;QACF;AACA,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtB;IACF;IAEQ,MAAM,cAAc,CAC1B,QAA2B,EAC3B,OAAkC,EAClC,SAAqE,EACrE,cAAgC,EAAA;AAEhC,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAS,KAAK,CAAC,CAAC;AAC9D,QAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,QAAQ;IAChD;AAEQ,IAAA,eAAe,CAAI,KAAyC,EAAA;QAClE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAA,OAAO,SAAS;QAClB;QAEA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAI,MAAc,GAAG,SAAS;IACjF;AAEQ,IAAA,mBAAmB,CACzB,MAA4D,EAAA;QAE5D,OAAO,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC7D;AAEQ,IAAA,iBAAiB,CACvB,MAA0D,EAAA;QAE1D,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3D;AAEQ,IAAA,eAAe,CAAC,MAAwD,EAAA;AAC9E,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAI;YAChE,MAAM,KAAK,GAAG,yBAAyB,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/B,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,CACnB,MAAW,EACX,KAA8C,EAAA;AAE9C,QAAA,OAAO;AACJ,aAAA,GAAG,CAAC,CAAC,KAAK,KAAI;YACb,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACrC,OAAO;gBACL,EAAE;gBACF,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;aAC1B;AACH,QAAA,CAAC;AACA,aAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC;AAEQ,IAAA,cAAc,CAAC,KAA0D,EAAA;AAC/E,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAC3C,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE;QACpB;AACA,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrD,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB;AAEA,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE;QACnB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;AACvC,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE;QAClB;AACA,QAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACjD,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB;AAEA,QAAA,OAAO,EAAE;IACX;AAEQ,IAAA,MAAM,mBAAmB,CAC/B,QAA2B,EAC3B,OAAuB,EAAA;QAEvB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC9D,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;AACnC,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI;AACzD,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,IAAI,SAAS;QAC7E;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,SAAS;QAClB;IACF;AAEQ,IAAA,MAAM,cAAc,CAC1B,QAA0C,EAC1C,OAAe,EAAA;AAEf,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;AAChC,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,MAAM,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACpC,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,oBAAA,KAAK,EAAE,OAAO;AACf,iBAAA;AACF,aAAA,CAAC;YACF,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;QACjC;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;;;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;8GAtbW,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,8oDCvGjD,yqBAkBA,EAAA,MAAA,EAAA,CAAA,+7EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED4EuB,uBAAuB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,0BAAvD,SAAS,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;;2FASR,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAZhD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,OAAA,EACP,CAAC,SAAS,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,EAAA,aAAA,EAGnD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,iBAAiB;AACzB,qBAAA,EAAA,QAAA,EAAA,yqBAAA,EAAA,MAAA,EAAA,CAAA,+7EAAA,CAAA,EAAA;;;AErGH;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;AA+C5D,IAAA;;;IAzCC,MAAM,IAAI,CAAC,OAAuC,EAAA;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;QACzD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;AAEpD,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;YACxB;QACF;QAEA,MAAM,IAAI,CAAC;AACR,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,CAAC;AACN,QAAA,CAAC;AACA,aAAA,IAAI,EAAE;IACX;;;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;8GAhDW,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,OAAO;AAC/C,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,wEAAwE;AAC3F,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,uXAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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;;;;;;;;ACTD;AAEA;AA2BM,MAAO,gCAAiC,SAAQ,uBAAuD,CAAA;;AAG3G,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;;AAmBC,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,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;QACpE,CAAC;8FAAC;AAEQ,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC;QAChE,CAAC;4FAAC;AAEQ,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC;QAC5D,CAAC;0FAAC;AAEQ,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAkC,iBAAiB,CAAC;QACpF,CAAC;kGAAC;AAEQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAgC,eAAe,CAAC;QAChF,CAAC;gGAAC;AAEQ,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAA8B,aAAa,CAAC;QAC5E,CAAC;8FAAC;AAEQ,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAW,MAAK;AAClD,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC;QAC7E,CAAC;4FAAC;AAEQ,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAW,MAAK;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;QAC3E,CAAC;0FAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAW,MAAK;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC;QACzE,CAAC;wFAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACpC,OAAO,2BAA2B,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,CAAC;wFAAC;QAtFA,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrD,YAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC;YAE5F,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC5B;AACF,QAAA,CAAC,CAAC;IACJ;;;AAiFU,IAAA,iBAAiB,CAAC,IAAwB,EAAA;QAClD,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACpD;IACF;;;IAMQ,cAAc,CACpB,OAAkE,EAClE,aAAkE,EAAA;QAElE,OAAO,8BAA8B,CACnC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC1B,OAAO,EACP,aAAa,CACd;IACH;AAEQ,IAAA,kBAAkB,CACxB,aAAkE,EAAA;QAElE,OAAO,kCAAkC,CACvC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC1B,aAAa,CACd;IACH;8GAhIW,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,EArBjC;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAfS,oCAAoC,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,mBAAA,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;;2FAsBnC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAzB5C,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;;;;;;;;;;;;;;AAcT,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;;;;;;;;ACtDD;AAsBA;AAEA;AA0BM,MAAO,gCAAiC,SAAQ,uBAAuD,CAAA;AAxB7G,IAAA,WAAA,GAAA;;;AA2BY,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,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;QACpE,CAAC;8FAAC;AAEQ,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC;QAChE,CAAC;4FAAC;AAEQ,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC;QAC5D,CAAC;0FAAC;AAEQ,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAkC,iBAAiB,CAAC;QACpF,CAAC;kGAAC;AAEQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAgC,eAAe,CAAC;QAChF,CAAC;gGAAC;AAEQ,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAA8B,aAAa,CAAC;QAC5E,CAAC;8FAAC;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACpC,OAAO,2BAA2B,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,CAAC;wFAAC;AA6BH,IAAA;;;IAvBS,cAAc,CACpB,OAAkE,EAClE,aAAkE,EAAA;QAElE,OAAO,8BAA8B,CACnC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC1B,OAAO,EACP,aAAa,CACd;IACH;AAEQ,IAAA,kBAAkB,CACxB,aAAkE,EAAA;QAElE,OAAO,kCAAkC,CACvC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC1B,aAAa,CACd;IACH;8GA9EW,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,EApBjC;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAdS,oCAAoC,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,mBAAA,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;;2FAqBnC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAxB5C,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;;;;;;;;;;;;;AAaT,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;;;;;;;;ACjDD;;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/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 { AXPCommonMenuKeys } 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 AXMRiskManagementMenuKeys,\n} 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.RiskMatrices,\n text: entities.riskMatrix.titlePlural,\n icon: entities.riskMatrix.icon,\n priority: 1,\n path: this.entityService.createPath(module.name, entities.riskMatrix.name),\n policy: {\n permissions: [keys.MaintainRisk],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskLikelihoodScales,\n text: entities.riskLikelihoodScale.titlePlural,\n icon: entities.riskLikelihoodScale.icon,\n priority: 2,\n path: this.entityService.createPath(module.name, entities.riskLikelihoodScale.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskSeverityScales,\n text: entities.riskSeverityScale.titlePlural,\n icon: entities.riskSeverityScale.icon,\n priority: 3,\n path: this.entityService.createPath(module.name, entities.riskSeverityScale.name),\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMRiskManagementMenuKeys.RiskRatingScales,\n text: entities.riskRatingScale.titlePlural,\n icon: entities.riskRatingScale.icon,\n priority: 4,\n path: this.entityService.createPath(module.name, entities.riskRatingScale.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 type {\n AXPCatalogScopeDefinition,\n AXPCatalogScopeDefinitionProvider,\n} from '@acorex-platform/framework-client/core';\nimport { Injectable } from '@angular/core';\nimport {\n RootConfig,\n RISK_CATALOG_SCOPE_HAZARD,\n RISK_CATALOG_SCOPE_PPE_ITEMS,\n} from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst RISK_MATRIX = `${RootConfig.module.name}.${RootConfig.entities.riskMatrix.name}`;\n\nconst RISK_MATRIX_CATALOG_TARGETS = [RISK_MATRIX] 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_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_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 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 { 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 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.riskMatrix.name}:Preview`,\n command: () =>\n import('./features/risk-matrix/commands/preview-risk-matrix.command').then(\n (c) => c.AXMPreviewRiskMatrixCommand,\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 resolveRiskLikelihoodLevelCodes,\n resolveRiskRatingLevelCodes,\n resolveRiskSeverityLevelCodes,\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixAxisProperty,\n type AXMRiskMatrixOrientation,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n} from '@acorex-platform/module-risk-management-client/contracts';\n\n//#endregion\n\n//#region ----- Types -----\n\ntype RiskMatrixScaleIdField = 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId';\ntype RiskMatrixScaleSnapshotField = 'likelihoodScale' | 'severityScale' | 'ratingScale';\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 **level codes** from a risk-matrix record.\n * Codes come from the selected scale snapshot (`*.scale.levels`), never from scale entity ids.\n */\nexport function resolveRiskMatrixAxisCodes(\n data: unknown,\n axis: 'likelihood' | 'severity' | 'rating',\n): string[] {\n if (data == null || typeof data !== 'object') {\n return [];\n }\n\n const record = data as Record<string, unknown>;\n\n if (axis === 'likelihood') {\n const scale = record['likelihoodScale'] as { levels?: AXMRiskLikelihoodLevelItemModel[] } | undefined;\n return resolveRiskLikelihoodLevelCodes(scale?.levels);\n }\n\n if (axis === 'severity') {\n const scale = record['severityScale'] as { levels?: AXMRiskSeverityLevelItemModel[] } | undefined;\n return resolveRiskSeverityLevelCodes(scale?.levels);\n }\n\n const scale = record['ratingScale'] as { levels?: AXMRiskRatingLevelItemModel[] } | undefined;\n return resolveRiskRatingLevelCodes(scale?.levels);\n}\n\n/** Resolves a lookup uuid that may be stored as a string or `{ id }` row. */\nexport function resolveRiskMatrixScaleId(value: unknown): string | undefined {\n const candidate = extractValue(value, 'id') ?? value;\n if (typeof candidate === 'string' && candidate.trim().length > 0) {\n return candidate.trim();\n }\n\n return undefined;\n}\n\n/**\n * Create mode may have the snapshot (`ratingScale.id`) before `ratingScaleId` is committed.\n * Edit mode has both after GET join.\n */\nexport function resolveRiskMatrixScaleIdFromRecord(\n data: unknown,\n idField: RiskMatrixScaleIdField,\n snapshotField: RiskMatrixScaleSnapshotField,\n): string | undefined {\n if (data == null || typeof data !== 'object') {\n return undefined;\n }\n\n const record = data as Record<string, unknown>;\n return resolveRiskMatrixScaleId(record[idField]) ?? resolveRiskMatrixScaleId(record[snapshotField]);\n}\n\n/**\n * Widget-context scale id: path `getValue` first, then the full record snapshot.\n */\nexport function resolveRiskMatrixWidgetScaleId(\n getValue: (path: string) => unknown,\n data: unknown,\n idField: RiskMatrixScaleIdField,\n snapshotField: RiskMatrixScaleSnapshotField,\n): string | undefined {\n return (\n resolveRiskMatrixScaleId(getValue(idField)) ??\n resolveRiskMatrixScaleId(getValue(snapshotField)) ??\n resolveRiskMatrixScaleIdFromRecord(data, idField, snapshotField)\n );\n}\n\nfunction asNonEmptyLevelArray<T>(value: unknown): T[] | undefined {\n if (!Array.isArray(value) || value.length === 0) {\n return undefined;\n }\n\n return value as T[];\n}\n\n/**\n * Nested `levels` from a lookup expose snapshot (`likelihoodScale.levels`, …).\n * Empty arrays are treated as missing so create-mode can still fetch by id.\n */\nexport function resolveRiskMatrixScaleLevels<T>(\n data: unknown,\n snapshotField: RiskMatrixScaleSnapshotField,\n levelsFromPath?: unknown,\n): T[] | undefined {\n const fromPath = asNonEmptyLevelArray<T>(levelsFromPath);\n if (fromPath) {\n return fromPath;\n }\n\n if (data == null || typeof data !== 'object') {\n return undefined;\n }\n\n const snapshot = (data as Record<string, unknown>)[snapshotField];\n const fromSnapshotRoot = asNonEmptyLevelArray<T>(snapshot);\n if (fromSnapshotRoot) {\n return fromSnapshotRoot;\n }\n\n if (snapshot == null || typeof snapshot !== 'object') {\n return undefined;\n }\n\n const record = snapshot as { levels?: T[]; items?: T[] };\n return asNonEmptyLevelArray<T>(record.levels) ?? asNonEmptyLevelArray<T>(record.items);\n}\n\n/** Widget-context scale levels: nested path, then snapshot on the record. */\nexport function resolveRiskMatrixWidgetScaleLevels<T>(\n getValue: (path: string) => unknown,\n data: unknown,\n snapshotField: RiskMatrixScaleSnapshotField,\n): T[] | undefined {\n return resolveRiskMatrixScaleLevels<T>(data, snapshotField, getValue(`${snapshotField}.levels`));\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 AXPQueryRequest, 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 { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n type WritableSignal,\n} from '@angular/core';\nimport {\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskManagementRiskLikelihoodScaleEntityModel,\n type AXMRiskManagementRiskRatingScaleEntityModel,\n type AXMRiskManagementRiskSeverityScaleEntityModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n RootConfig,\n sortRiskLikelihoodLevels,\n sortRiskRatingLevels,\n sortRiskSeverityLevels,\n} 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\ntype ScaleWithLevels = {\n id?: string;\n levels?: unknown[];\n items?: unknown[];\n};\n\ntype ScaleDataAccessor = {\n byKey: (key: string) => Promise<ScaleWithLevels | null | undefined>;\n query: (request?: AXPQueryRequest) => Promise<{ items?: ScaleWithLevels[] }>;\n};\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst SCALE_AXIS_QUERY_FIELDS = [\n 'id',\n 'code',\n 'title',\n 'levels',\n 'levels.id',\n 'levels.code',\n 'levels.title',\n 'levels.score',\n 'levels.color',\n 'levels.order',\n];\n\n//#endregion\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-risk-matrix',\n standalone: true,\n imports: [AsyncPipe, 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 //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly likelihoodScaleDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskLikelihoodScale.name)\n .data<string, AXMRiskManagementRiskLikelihoodScaleEntityModel>();\n private readonly severityScaleDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskSeverityScale.name)\n .data<string, AXMRiskManagementRiskSeverityScaleEntityModel>();\n private readonly riskRatingScaleDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.riskRatingScale.name)\n .data<string, AXMRiskManagementRiskRatingScaleEntityModel>();\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 scale ids from the parent matrix record. Axes load from that scale's levels. */\n likelihoodScaleId = input<string | null | undefined>(null);\n severityScaleId = input<string | null | undefined>(null);\n ratingScaleId = input<string | null | undefined>(null);\n\n /** Lookup expose snapshots — used in create before (or instead of) byKey. */\n likelihoodScaleLevels = input<AXMRiskLikelihoodLevelItemModel[] | null | undefined>(null);\n severityScaleLevels = input<AXMRiskSeverityLevelItemModel[] | null | undefined>(null);\n ratingScaleLevels = input<AXMRiskRatingLevelItemModel[] | null | undefined>(null);\n\n /** Controls row/column layout only; persisted cells stay likelihood × severity. */\n matrixOrientation = input<string | null | undefined>(null);\n\n /** Spreadsheet data keyed by **level codes**: { [likelihoodCode]: { [severityCode]: ratingCode } } */\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 /** Drops overlapping create-mode loads so an earlier request cannot wipe later rating levels. */\n private loadAxesRequestId = 0;\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 spreadsheetIdentity = computed(() =>\n [\n this.resolvedMatrixOrientation(),\n this.likelihoodScaleId() ?? '',\n this.severityScaleId() ?? '',\n this.ratingScaleId() ?? '',\n this.depthItems()\n .map((item) => item.id)\n .join(','),\n ].join('|'),\n );\n\n /** Create mode: do not open empty cell editors before rating levels are loaded. */\n protected readonly cellSelectLocked = computed(\n () => !!this.ratingScaleId() && this.depthItems().length === 0,\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 return horizontalTitles.map((title) => ({\n name: title.id,\n title: title.title,\n description: title.description,\n path: title.id,\n widget: {\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 });\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 likelihoodScaleId = this.likelihoodScaleId();\n const severityScaleId = this.severityScaleId();\n const ratingScaleId = this.ratingScaleId();\n const likelihoodScaleLevels = this.likelihoodScaleLevels();\n const severityScaleLevels = this.severityScaleLevels();\n const ratingScaleLevels = this.ratingScaleLevels();\n void this.loadMatrixAxes(\n likelihoodScaleId,\n severityScaleId,\n ratingScaleId,\n likelihoodScaleLevels,\n severityScaleLevels,\n ratingScaleLevels,\n );\n });\n }\n\n //#endregion\n\n //#region ---- Data Loading Methods ----\n\n private async loadMatrixAxes(\n likelihoodScaleId: string | null | undefined,\n severityScaleId: string | null | undefined,\n ratingScaleId: string | null | undefined,\n likelihoodScaleLevels: AXMRiskLikelihoodLevelItemModel[] | null | undefined,\n severityScaleLevels: AXMRiskSeverityLevelItemModel[] | null | undefined,\n ratingScaleLevels: AXMRiskRatingLevelItemModel[] | null | undefined,\n ): Promise<void> {\n const requestId = ++this.loadAxesRequestId;\n const snapshotLikelihood = this.mapLikelihoodLevels(likelihoodScaleLevels);\n const snapshotSeverity = this.mapSeverityLevels(severityScaleLevels);\n const snapshotRating = this.mapRatingLevels(ratingScaleLevels);\n const hasSnapshotAxes =\n snapshotLikelihood.length > 0 || snapshotSeverity.length > 0 || snapshotRating.length > 0;\n\n if (!likelihoodScaleId && !severityScaleId && !ratingScaleId && !hasSnapshotAxes) {\n this.likelihoodItems.set([]);\n this.severityItems.set([]);\n this.depthItems.set([]);\n return;\n }\n\n if (snapshotLikelihood.length > 0) {\n this.likelihoodItems.set(snapshotLikelihood);\n }\n if (snapshotSeverity.length > 0) {\n this.severityItems.set(snapshotSeverity);\n }\n if (snapshotRating.length > 0) {\n this.depthItems.set(snapshotRating);\n }\n\n if (!likelihoodScaleId && !severityScaleId && !ratingScaleId) {\n return;\n }\n\n try {\n const [likelihoodResult, severityResult, depthResult] = await Promise.all([\n this.queryAxisItems(this.likelihoodScaleDataAccessor, likelihoodScaleId, (levels) =>\n this.mapLikelihoodLevels(levels),\n likelihoodScaleLevels,\n ),\n this.queryAxisItems(this.severityScaleDataAccessor, severityScaleId, (levels) =>\n this.mapSeverityLevels(levels),\n severityScaleLevels,\n ),\n this.queryAxisItems(this.riskRatingScaleDataAccessor, ratingScaleId, (levels) =>\n this.mapRatingLevels(levels),\n ratingScaleLevels,\n ),\n ]);\n\n if (requestId !== this.loadAxesRequestId) {\n return;\n }\n\n this.applyAxisItems(this.likelihoodItems, likelihoodResult, snapshotLikelihood);\n this.applyAxisItems(this.severityItems, severityResult, snapshotSeverity);\n this.applyAxisItems(this.depthItems, depthResult, snapshotRating);\n } catch (error) {\n if (requestId !== this.loadAxesRequestId) {\n return;\n }\n\n console.error('Error loading risk matrix axes:', error);\n if (!hasSnapshotAxes && this.depthItems().length === 0) {\n this.likelihoodItems.set([]);\n this.severityItems.set([]);\n this.depthItems.set([]);\n }\n }\n }\n\n private applyAxisItems(\n target: WritableSignal<AxisEntityModel[]>,\n fetched: AxisEntityModel[],\n snapshot: AxisEntityModel[],\n ): void {\n if (fetched.length > 0) {\n target.set(fetched);\n return;\n }\n if (snapshot.length > 0) {\n target.set(snapshot);\n }\n }\n\n private async queryAxisItems<TLevel>(\n accessor: ScaleDataAccessor,\n scaleId: string | null | undefined,\n mapLevels: (levels: TLevel[] | null | undefined) => AxisEntityModel[],\n snapshotLevels?: TLevel[] | null,\n ): Promise<AxisEntityModel[]> {\n const snapshot = mapLevels(snapshotLevels);\n const scale = await this.loadScaleWithLevels(accessor, scaleId);\n const fetched = mapLevels(this.readScaleLevels<TLevel>(scale));\n return fetched.length > 0 ? fetched : snapshot;\n }\n\n private readScaleLevels<T>(scale: ScaleWithLevels | null | undefined): T[] | undefined {\n if (!scale || typeof scale !== 'object') {\n return undefined;\n }\n\n const levels = scale.levels ?? scale.items;\n return Array.isArray(levels) && levels.length > 0 ? (levels as T[]) : undefined;\n }\n\n private mapLikelihoodLevels(\n levels: AXMRiskLikelihoodLevelItemModel[] | null | undefined,\n ): AxisEntityModel[] {\n return this.mapAxisLevels(sortRiskLikelihoodLevels(levels));\n }\n\n private mapSeverityLevels(\n levels: AXMRiskSeverityLevelItemModel[] | null | undefined,\n ): AxisEntityModel[] {\n return this.mapAxisLevels(sortRiskSeverityLevels(levels));\n }\n\n private mapRatingLevels(levels: AXMRiskRatingLevelItemModel[] | null | undefined): AxisEntityModel[] {\n return this.mapAxisLevels(sortRiskRatingLevels(levels), (level) => {\n const color = ensureRuntimeSurfaceClass(resolveRiskRatingBadgeColor(level));\n return color ? { color } : {};\n });\n }\n\n private mapAxisLevels<T extends { code?: unknown; id?: unknown; title: string }>(\n levels: T[],\n extra?: (level: T) => Partial<AxisEntityModel>,\n ): AxisEntityModel[] {\n return levels\n .map((level) => {\n const id = this.toAxisLevelKey(level);\n return {\n id,\n title: level.title,\n ...(extra?.(level) ?? {}),\n };\n })\n .filter((item) => item.id.length > 0);\n }\n\n private toAxisLevelKey(level: { code?: unknown; id?: unknown } | null | undefined): string {\n if (level == null) {\n return '';\n }\n\n const code = level.code;\n if (typeof code === 'string' && code.trim()) {\n return code.trim();\n }\n if (typeof code === 'number' && Number.isFinite(code)) {\n return String(code);\n }\n\n const id = level.id;\n if (typeof id === 'string' && id.trim()) {\n return id.trim();\n }\n if (typeof id === 'number' && Number.isFinite(id)) {\n return String(id);\n }\n\n return '';\n }\n\n private async loadScaleWithLevels(\n accessor: ScaleDataAccessor,\n scaleId?: string | null,\n ): Promise<ScaleWithLevels | null> {\n if (!scaleId) {\n return null;\n }\n\n const fromQuery = await this.queryScaleById(accessor, scaleId);\n if (this.readScaleLevels(fromQuery)) {\n return fromQuery;\n }\n\n try {\n const fromByKey = (await accessor.byKey(scaleId)) ?? null;\n return this.readScaleLevels(fromByKey) ? fromByKey : fromQuery ?? fromByKey;\n } catch {\n return fromQuery;\n }\n }\n\n private async queryScaleById(\n accessor: Pick<ScaleDataAccessor, 'query'>,\n scaleId: string,\n ): Promise<ScaleWithLevels | null> {\n try {\n const page = await accessor.query({\n skip: 0,\n take: 1,\n fields: [...SCALE_AXIS_QUERY_FIELDS],\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: scaleId,\n },\n });\n return page?.items?.[0] ?? null;\n } catch {\n return null;\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 @for (_ of [spreadsheetIdentity()]; track _) {\n <axp-spreadsheet\n [title]=\"(matrixTitleKey() | translate | async) ?? ''\"\n [columns]=\"spreadsheetColumns()\"\n [rowsInput]=\"spreadsheetRows()\"\n [rowMode]=\"'fixed'\"\n [readonly]=\"readonly() || cellSelectLocked()\"\n [allowRemoveRows]=\"false\"\n [rowTitlePath]=\"'_rowTitle'\"\n [rowDescriptionPath]=\"'_rowDescription'\"\n (cellChange)=\"handleCellChange($event)\"\n (spreadsheetChange)=\"handleSpreadsheetChange($event)\"\n ></axp-spreadsheet>\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, 'cells');\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 ?? 'cells';\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-matrices.entities.risk-matrix.fields.cells.title',\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXPSpreadsheetData } from '@acorex-platform/framework-shared/core';\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 {\n pruneRiskMatrixCells,\n resolveRiskMatrixCells,\n toRiskMatrixSpreadsheetData,\n fromRiskMatrixSpreadsheetData,\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixCellValueObject,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n} from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisCodes,\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n resolveRiskMatrixWidgetScaleId,\n resolveRiskMatrixWidgetScaleLevels,\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 [likelihoodScaleId]=\"likelihoodScaleId()\"\n [severityScaleId]=\"severityScaleId()\"\n [ratingScaleId]=\"ratingScaleId()\"\n [likelihoodScaleLevels]=\"likelihoodScaleLevels()\"\n [severityScaleLevels]=\"severityScaleLevels()\"\n [ratingScaleLevels]=\"ratingScaleLevels()\"\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<AXMRiskMatrixCellValueObject[]> {\n //#region ---- Lifecycle Methods ----\n\n constructor() {\n super();\n\n effect(() => {\n const likelihoodCodes = this.likelihoodCodes();\n const severityCodes = this.severityCodes();\n const ratingCodes = this.ratingCodes();\n const cells = resolveRiskMatrixCells(this.getValue());\n const prunedCells = pruneRiskMatrixCells(cells, likelihoodCodes, severityCodes, ratingCodes);\n\n if (!isEqual(cells, prunedCells)) {\n this.setValue(prunedCells);\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 likelihoodScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('likelihoodScaleId', 'likelihoodScale');\n });\n\n protected severityScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('severityScaleId', 'severityScale');\n });\n\n protected ratingScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('ratingScaleId', 'ratingScale');\n });\n\n protected likelihoodScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskLikelihoodLevelItemModel>('likelihoodScale');\n });\n\n protected severityScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskSeverityLevelItemModel>('severityScale');\n });\n\n protected ratingScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskRatingLevelItemModel>('ratingScale');\n });\n\n protected likelihoodCodes = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixAxisCodes(this.contextService.data(), 'likelihood');\n });\n\n protected severityCodes = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixAxisCodes(this.contextService.data(), 'severity');\n });\n\n protected ratingCodes = computed<string[]>(() => {\n this.contextService.changeEvent();\n return resolveRiskMatrixAxisCodes(this.contextService.data(), 'rating');\n });\n\n protected matrixValue = computed(() => {\n return toRiskMatrixSpreadsheetData(resolveRiskMatrixCells(this.getValue()));\n });\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleValueChange(data: AXPSpreadsheetData): void {\n if (data) {\n this.setValue(fromRiskMatrixSpreadsheetData(data));\n }\n }\n\n //#endregion\n\n //#region ----- Scale bindings -----\n\n private resolveScaleId(\n idField: 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId',\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): string | undefined {\n return resolveRiskMatrixWidgetScaleId(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n idField,\n snapshotField,\n );\n }\n\n private resolveScaleLevels<T>(\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): T[] | undefined {\n return resolveRiskMatrixWidgetScaleLevels<T>(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n snapshotField,\n );\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash';\nimport {\n resolveRiskMatrixCells,\n toRiskMatrixSpreadsheetData,\n type AXMRiskLikelihoodLevelItemModel,\n type AXMRiskMatrixAxisMapping,\n type AXMRiskMatrixCellValueObject,\n type AXMRiskRatingLevelItemModel,\n type AXMRiskSeverityLevelItemModel,\n} from '@acorex-platform/module-risk-management-client/contracts';\nimport {\n resolveRiskMatrixAxisMappingFromOrientation,\n resolveRiskMatrixOrientation,\n resolveRiskMatrixWidgetScaleId,\n resolveRiskMatrixWidgetScaleLevels,\n} from '../shared/risk-matrix-axis-mapping';\nimport { AXMRiskManagementRiskMatrixComponent } from './risk-matrix.component';\n\n//#endregion\n\n//#region ----- Component -----\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 [likelihoodScaleId]=\"likelihoodScaleId()\"\n [severityScaleId]=\"severityScaleId()\"\n [ratingScaleId]=\"ratingScaleId()\"\n [likelihoodScaleLevels]=\"likelihoodScaleLevels()\"\n [severityScaleLevels]=\"severityScaleLevels()\"\n [ratingScaleLevels]=\"ratingScaleLevels()\"\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<AXMRiskMatrixCellValueObject[]> {\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 likelihoodScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('likelihoodScaleId', 'likelihoodScale');\n });\n\n protected severityScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('severityScaleId', 'severityScale');\n });\n\n protected ratingScaleId = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleId('ratingScaleId', 'ratingScale');\n });\n\n protected likelihoodScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskLikelihoodLevelItemModel>('likelihoodScale');\n });\n\n protected severityScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskSeverityLevelItemModel>('severityScale');\n });\n\n protected ratingScaleLevels = computed(() => {\n this.contextService.changeEvent();\n return this.resolveScaleLevels<AXMRiskRatingLevelItemModel>('ratingScale');\n });\n\n protected matrixValue = computed(() => {\n return toRiskMatrixSpreadsheetData(resolveRiskMatrixCells(this.getValue()));\n });\n\n //#endregion\n\n //#region ----- Scale bindings -----\n\n private resolveScaleId(\n idField: 'likelihoodScaleId' | 'severityScaleId' | 'ratingScaleId',\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): string | undefined {\n return resolveRiskMatrixWidgetScaleId(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n idField,\n snapshotField,\n );\n }\n\n private resolveScaleLevels<T>(\n snapshotField: 'likelihoodScale' | 'severityScale' | 'ratingScale',\n ): T[] | undefined {\n return resolveRiskMatrixWidgetScaleLevels<T>(\n (path) => this.contextService.getValue(path),\n this.contextService.data(),\n snapshotField,\n );\n }\n\n //#endregion\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-risk-management-client",
3
- "version": "0.0.56",
3
+ "version": "0.0.58",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",