@acorex-platform/module-workplacesafety-management-client 0.0.38 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-Ds0Fkspp.mjs → acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-C3a08xjg.mjs} +79 -32
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-C3a08xjg.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-hierarchy-levels.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-hierarchy-levels.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-measure.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-measure.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-ppe-rule.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-ppe-rule.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-register.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-register.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-risk.mjs +22 -72
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-risk.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard.mjs +20 -6
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-ppe-item.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-ppe-item.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-activity.mjs +1516 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-activity.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-section.mjs +82 -12
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-section.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.mjs +82 -12
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan.mjs +39 -6
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-template.mjs +20 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-template.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-section-type.mjs +19 -5
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-section-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-work-step-type.mjs +82 -12
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-work-step-type.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-BI4TLvSE.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-C46YEBVd.mjs} +21 -21
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-C46YEBVd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-hierarchy-levels.entity-COlCNnyK.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-hierarchy-levels.entity-oylKTsgJ.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-hierarchy-levels.entity-oylKTsgJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-measure.entity-BrXGzqZU.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-measure.entity-DHm1nRwW.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-measure.entity-DHm1nRwW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-ppe-rule.entity-DHJus7OP.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-ppe-rule.entity-DH-hPuAD.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-ppe-rule.entity-DH-hPuAD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-register.entity-CogjoDox.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-register.entity-g4AT_IiT.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-register.entity-g4AT_IiT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-risk.entity-9UWHmIXV.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-risk.entity-BwNlWbnC.mjs} +18 -72
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-risk.entity-BwNlWbnC.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard.entity-CNPbxULL.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard.entity-Cogwbd1P.mjs} +17 -3
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard.entity-Cogwbd1P.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-ppe-item.entity-D5iOBl3P.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-ppe-item.entity-0xqGaPnk.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-ppe-item.entity-0xqGaPnk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-risk-management.integration-CUZIl8zt.mjs +7 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-risk-management.integration-CUZIl8zt.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-activity.entity-CZCYupQT.mjs +324 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-activity.entity-CZCYupQT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section-dependency-TdIMIkM7.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section-dependency-D0fzHV_L.mjs} +62 -10
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section-dependency-D0fzHV_L.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section.entity-DJAI-7lB.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section.entity-BpziBgGf.mjs} +17 -3
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section.entity-DJAI-7lB.mjs.map → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section.entity-BpziBgGf.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type-section.entity-BGZ1VAW3.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type-section.entity-D8wL0ned.mjs} +17 -3
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type-section.entity-D8wL0ned.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type.entity-B6NYL4xi.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type.entity-DrqQDYn9.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type.entity-DrqQDYn9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan.entity-BSUR9jqs.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan.entity-DaRnWCin.mjs} +36 -3
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan.entity-DaRnWCin.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-template.entity-CIHy_hLh.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-template.entity-Coj5Rzry.mjs} +17 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-template.entity-Coj5Rzry.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-section-type.entity-Cs4nIHou.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-section-type.entity-BU5roQ5-.mjs} +16 -2
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-section-type.entity-BU5roQ5-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-work-step-type.entity-CJFWDOoh.mjs → acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-work-step-type.entity-DijGV30H.mjs} +17 -3
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-work-step-type.entity-DijGV30H.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts.mjs +144 -168
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-fill-safety-plan.command-lJl0qpvT.mjs +165 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-fill-safety-plan.command-lJl0qpvT.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hydrate-safety-plan-activity-sections-TrVl3-T6.mjs +240 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hydrate-safety-plan-activity-sections-TrVl3-T6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-index-gbDgxqrV.mjs → acorex-platform-module-workplacesafety-management-client-index-CInaiEjw.mjs} +130 -398
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-index-CInaiEjw.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-load-safety-plan-preview-structure-Ce67NSIZ.mjs +136 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-load-safety-plan-preview-structure-Ce67NSIZ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-local-entities.mjs +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-local-entities.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-safety-plan.command-DJqqiYlD.mjs +102 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-safety-plan.command-DJqqiYlD.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-fill-values.util-RLOdySf7.mjs +33 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-fill-values.util-RLOdySf7.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-CQ2xB7Va.mjs → acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-B9lElhxc.mjs} +252 -72
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-B9lElhxc.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-C0SEJsVM.mjs +185 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-C0SEJsVM.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-CLj3y_JD.mjs → acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-D0aRQHWk.mjs} +30 -94
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-D0aRQHWk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client.mjs +1 -1
- package/package.json +6 -6
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-activity.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts.d.ts +133 -157
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-Ds0Fkspp.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-work-step.mjs +0 -542
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-work-step.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-BI4TLvSE.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-hierarchy-levels.entity-COlCNnyK.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-measure.entity-BrXGzqZU.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-ppe-rule.entity-DHJus7OP.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-register.entity-CogjoDox.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-risk.entity-9UWHmIXV.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard.entity-CNPbxULL.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-ppe-item.entity-D5iOBl3P.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section-dependency-TdIMIkM7.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type-section.entity-BGZ1VAW3.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type.entity-B6NYL4xi.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-work-step.entity-BlCbf5qP.mjs +0 -405
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-work-step.entity-BlCbf5qP.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan.entity-BSUR9jqs.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-template.entity-CIHy_hLh.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-section-type.entity-Cs4nIHou.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-work-step-type.entity-CJFWDOoh.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-index-gbDgxqrV.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-safety-plan.command-BU95c4xb.mjs +0 -254
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-safety-plan.command-BU95c4xb.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-CQ2xB7Va.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-preview.service-DJP41MuL.mjs +0 -36
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-preview.service-DJP41MuL.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-LaN1NIgc.mjs +0 -204
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-LaN1NIgc.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-CLj3y_JD.mjs.map +0 -1
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-work-step.d.ts +0 -5
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
import { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';
|
|
2
|
-
import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
|
|
3
|
-
import { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';
|
|
4
|
-
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject, Injectable } from '@angular/core';
|
|
6
|
-
import { get, isString, isEmpty, defaultTo } from 'lodash';
|
|
7
|
-
import { A as AXMSafetyPlanPreviewService } from './acorex-platform-module-workplacesafety-management-client-safety-plan-preview.service-DJP41MuL.mjs';
|
|
8
|
-
import { RootConfig, dedupeSafetyPlanSectionStructure, collectBuiltInRepeatableSectionTypeIds, resolveEntityRefId, normalizeStepTableColumns, isStepTableSectionType, resolveSectionItemEntityName, asSafetyPlanDisplayText } from '@acorex-platform/module-workplacesafety-management-client/contracts';
|
|
9
|
-
import { a as safetyPlanSectionsToBuilderValue, h as hydrateStepTableSectionsWithWorkSteps } from './acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-LaN1NIgc.mjs';
|
|
10
|
-
|
|
11
|
-
//#region ----- Imports -----
|
|
12
|
-
//#endregion
|
|
13
|
-
//#region ----- Constants -----
|
|
14
|
-
const SAFETY_PLAN_SECTION_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanSection.name}`;
|
|
15
|
-
const SAFETY_PLAN_WORK_STEP_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanWorkStep.name}`;
|
|
16
|
-
const SECTION_TYPE_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.sectionType.name}`;
|
|
17
|
-
const WORK_STEP_TYPE_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.workStepType.name}`;
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region ----- Public API -----
|
|
20
|
-
/**
|
|
21
|
-
* Loads a safety plan's section structure for the existing preview modal
|
|
22
|
-
* (same shape the sections page feeds into AXMSafetyPlanPreviewService).
|
|
23
|
-
*/
|
|
24
|
-
async function loadSafetyPlanPreviewStructure(entityService, translationService, planId) {
|
|
25
|
-
const repeatableSectionTypeIds = await loadRepeatableSectionTypeIds(entityService);
|
|
26
|
-
const result = await entityService.withEntity(SAFETY_PLAN_SECTION_ENTITY).data().query({
|
|
27
|
-
skip: 0,
|
|
28
|
-
take: 1000,
|
|
29
|
-
filter: {
|
|
30
|
-
logic: 'and',
|
|
31
|
-
filters: [{ field: 'safetyPlanId', operator: { type: 'equal' }, value: planId }],
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
const rawLoaded = safetyPlanSectionsToBuilderValue((result.items ?? []));
|
|
35
|
-
const deduped = dedupeSafetyPlanSectionStructure(rawLoaded, { repeatableSectionTypeIds });
|
|
36
|
-
const workStepsResult = await entityService.withEntity(SAFETY_PLAN_WORK_STEP_ENTITY).data().query({
|
|
37
|
-
skip: 0,
|
|
38
|
-
take: 2000,
|
|
39
|
-
filter: {
|
|
40
|
-
logic: 'and',
|
|
41
|
-
filters: [{ field: 'safetyPlanId', operator: { type: 'equal' }, value: planId }],
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
const columnsByWorkStepTypeId = await loadWorkStepTypeColumns(entityService, deduped.sections
|
|
45
|
-
.map((section) => section.workStepTypeId)
|
|
46
|
-
.filter((id) => typeof id === 'string' && id.length > 0));
|
|
47
|
-
return hydrateCatalogItemSnapshots(entityService, translationService, hydrateStepTableSectionsWithWorkSteps(deduped, (workStepsResult.items ?? []), columnsByWorkStepTypeId));
|
|
48
|
-
}
|
|
49
|
-
//#endregion
|
|
50
|
-
//#region ----- Helpers -----
|
|
51
|
-
async function loadRepeatableSectionTypeIds(entityService) {
|
|
52
|
-
const builtIn = collectBuiltInRepeatableSectionTypeIds();
|
|
53
|
-
try {
|
|
54
|
-
const result = await entityService.withEntity(SECTION_TYPE_ENTITY).data().query({
|
|
55
|
-
skip: 0,
|
|
56
|
-
take: 1000,
|
|
57
|
-
});
|
|
58
|
-
const fromQuery = (result.items ?? [])
|
|
59
|
-
.filter((row) => row.isRepeatable === true)
|
|
60
|
-
.map((row) => resolveEntityRefId(row.id))
|
|
61
|
-
.filter((id) => !!id);
|
|
62
|
-
return [...new Set([...fromQuery, ...builtIn])];
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return builtIn;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async function loadWorkStepTypeColumns(entityService, workStepTypeIds) {
|
|
69
|
-
const uniqueIds = [...new Set(workStepTypeIds)];
|
|
70
|
-
const columnsById = new Map();
|
|
71
|
-
if (!uniqueIds.length) {
|
|
72
|
-
return columnsById;
|
|
73
|
-
}
|
|
74
|
-
const accessor = entityService.withEntity(WORK_STEP_TYPE_ENTITY);
|
|
75
|
-
await Promise.all(uniqueIds.map(async (id) => {
|
|
76
|
-
try {
|
|
77
|
-
const row = await accessor.data().byKey(id);
|
|
78
|
-
if (!row) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const record = row;
|
|
82
|
-
columnsById.set(id, normalizeStepTableColumns(record.columns));
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
// Leave missing types without columns; hydrate falls back to row snapshots.
|
|
86
|
-
}
|
|
87
|
-
}));
|
|
88
|
-
return columnsById;
|
|
89
|
-
}
|
|
90
|
-
async function hydrateCatalogItemSnapshots(entityService, translationService, value) {
|
|
91
|
-
const locale = translationService.getActiveLang?.() ?? 'en-US';
|
|
92
|
-
const missingByEntity = new Map();
|
|
93
|
-
for (const section of value.sections) {
|
|
94
|
-
if (isStepTableSectionType(section.sectionTypeId, section.sectionType)) {
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
const entityName = resolveSectionItemEntityName(section.sectionTypeId, section.sectionType);
|
|
98
|
-
if (!entityName) {
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
for (const slot of section.items) {
|
|
102
|
-
for (const id of slot.itemIds ?? []) {
|
|
103
|
-
const snapshot = slot.items?.find((entry) => entry.id === id);
|
|
104
|
-
if (asSafetyPlanDisplayText(snapshot?.title) || asSafetyPlanDisplayText(snapshot?.code)) {
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
const ids = missingByEntity.get(entityName) ?? new Set();
|
|
108
|
-
ids.add(id);
|
|
109
|
-
missingByEntity.set(entityName, ids);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (missingByEntity.size === 0) {
|
|
114
|
-
return value;
|
|
115
|
-
}
|
|
116
|
-
const loadedById = new Map();
|
|
117
|
-
await Promise.all([...missingByEntity.entries()].map(async ([entityName, ids]) => {
|
|
118
|
-
const idList = [...ids];
|
|
119
|
-
try {
|
|
120
|
-
const result = await entityService.withEntity(entityName).data().query({
|
|
121
|
-
skip: 0,
|
|
122
|
-
take: Math.max(idList.length, 1),
|
|
123
|
-
filter: idList.length === 1
|
|
124
|
-
? { field: 'id', operator: { type: 'equal' }, value: idList[0] }
|
|
125
|
-
: { field: 'id', operator: { type: 'in' }, value: idList },
|
|
126
|
-
});
|
|
127
|
-
for (const row of result.items ?? []) {
|
|
128
|
-
const record = row;
|
|
129
|
-
const id = resolveEntityRefId(record['id']);
|
|
130
|
-
if (!id) {
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
loadedById.set(id, {
|
|
134
|
-
title: resolveEntityRowDisplayText(record['title'], locale) || undefined,
|
|
135
|
-
code: asSafetyPlanDisplayText(record['code']) || undefined,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
/* skip entities the session cannot read */
|
|
141
|
-
}
|
|
142
|
-
}));
|
|
143
|
-
if (loadedById.size === 0) {
|
|
144
|
-
return value;
|
|
145
|
-
}
|
|
146
|
-
return {
|
|
147
|
-
sections: value.sections.map((section) => ({
|
|
148
|
-
...section,
|
|
149
|
-
items: section.items.map((slot) => ({
|
|
150
|
-
...slot,
|
|
151
|
-
items: (slot.itemIds ?? []).map((id, index) => {
|
|
152
|
-
const existing = slot.items?.find((entry) => entry.id === id) ?? slot.items?.[index];
|
|
153
|
-
const loaded = loadedById.get(id);
|
|
154
|
-
return {
|
|
155
|
-
id,
|
|
156
|
-
title: asSafetyPlanDisplayText(existing?.title) || loaded?.title,
|
|
157
|
-
code: asSafetyPlanDisplayText(existing?.code) || loaded?.code,
|
|
158
|
-
};
|
|
159
|
-
}),
|
|
160
|
-
})),
|
|
161
|
-
})),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
//#endregion
|
|
165
|
-
|
|
166
|
-
//#region ----- Imports -----
|
|
167
|
-
//#endregion
|
|
168
|
-
//#region ----- Command -----
|
|
169
|
-
class AXMPreviewSafetyPlanCommand {
|
|
170
|
-
constructor() {
|
|
171
|
-
//#region ----- Services & Dependencies -----
|
|
172
|
-
this.entityService = inject(AXPEntityService);
|
|
173
|
-
this.translationService = inject(AXTranslationService);
|
|
174
|
-
this.previewService = inject(AXMSafetyPlanPreviewService);
|
|
175
|
-
}
|
|
176
|
-
//#endregion
|
|
177
|
-
//#region ----- Command Implementation -----
|
|
178
|
-
async execute(input = {}) {
|
|
179
|
-
try {
|
|
180
|
-
const planId = this.resolvePlanId(input);
|
|
181
|
-
if (!planId) {
|
|
182
|
-
return {
|
|
183
|
-
success: false,
|
|
184
|
-
message: {
|
|
185
|
-
text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
const structure = await loadSafetyPlanPreviewStructure(this.entityService, this.translationService, planId);
|
|
190
|
-
const dialogTitle = await this.resolveDialogTitle(input);
|
|
191
|
-
await this.previewService.open({
|
|
192
|
-
title: dialogTitle,
|
|
193
|
-
structure,
|
|
194
|
-
});
|
|
195
|
-
return {
|
|
196
|
-
success: true,
|
|
197
|
-
kind: 'object',
|
|
198
|
-
data: undefined,
|
|
199
|
-
metadata: { refresh: false },
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
catch {
|
|
203
|
-
return {
|
|
204
|
-
success: false,
|
|
205
|
-
message: {
|
|
206
|
-
text: await this.translationService.translateAsync('@general:messages.generic.error.description'),
|
|
207
|
-
},
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
//#endregion
|
|
212
|
-
//#region ----- Utility Methods -----
|
|
213
|
-
resolvePlanId(input) {
|
|
214
|
-
const context = input.__context__;
|
|
215
|
-
const candidates = [
|
|
216
|
-
input.id,
|
|
217
|
-
input.options?.id,
|
|
218
|
-
get(input, 'options.id'),
|
|
219
|
-
context?.options?.id,
|
|
220
|
-
context?.data?.id,
|
|
221
|
-
input.data?.['id'],
|
|
222
|
-
];
|
|
223
|
-
for (const candidate of candidates) {
|
|
224
|
-
if (isString(candidate) && !isEmpty(candidate.trim())) {
|
|
225
|
-
return candidate.trim();
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return undefined;
|
|
229
|
-
}
|
|
230
|
-
async resolveDialogTitle(input) {
|
|
231
|
-
const previewLabel = (await this.translationService.translateAsync('@general:actions.preview.title')) || 'Preview';
|
|
232
|
-
const locale = this.translationService.getActiveLang?.() ?? 'en-US';
|
|
233
|
-
const explicitTitle = defaultTo(input.title, defaultTo(input.options?.title, defaultTo(get(input, 'options.title'), input.__context__?.options?.title)));
|
|
234
|
-
if (isString(explicitTitle) && explicitTitle.trim().length > 0) {
|
|
235
|
-
return `${previewLabel}: ${resolveMultiLanguageString(explicitTitle, locale).trim()}`;
|
|
236
|
-
}
|
|
237
|
-
const contextTitle = defaultTo(input.data?.['title'], input.__context__?.data?.title);
|
|
238
|
-
if (contextTitle != null) {
|
|
239
|
-
const recordTitle = resolveEntityRowDisplayText(contextTitle, locale).trim();
|
|
240
|
-
if (recordTitle.length > 0) {
|
|
241
|
-
return `${previewLabel}: ${recordTitle}`;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return previewLabel;
|
|
245
|
-
}
|
|
246
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreviewSafetyPlanCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
247
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreviewSafetyPlanCommand }); }
|
|
248
|
-
}
|
|
249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreviewSafetyPlanCommand, decorators: [{
|
|
250
|
-
type: Injectable
|
|
251
|
-
}] });
|
|
252
|
-
|
|
253
|
-
export { AXMPreviewSafetyPlanCommand };
|
|
254
|
-
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-preview-safety-plan.command-BU95c4xb.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-preview-safety-plan.command-BU95c4xb.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan/commands/load-safety-plan-preview-structure.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan/commands/preview-safety-plan.command.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n asSafetyPlanDisplayText,\n collectBuiltInRepeatableSectionTypeIds,\n dedupeSafetyPlanSectionStructure,\n isStepTableSectionType,\n normalizeStepTableColumns,\n resolveEntityRefId,\n resolveSectionItemEntityName,\n RootConfig,\n type AXMSafetyPlanSectionBuilderValue,\n type AXMStepTableColumnDef,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { AXTranslationService } from '@acorex/core/translation';\n\nimport {\n hydrateStepTableSectionsWithWorkSteps,\n safetyPlanSectionsToBuilderValue,\n} from '../../safety-plan-sections-page/safety-plan-section-builder.types';\n\n//#endregion\n\n//#region ----- Constants -----\n\nconst SAFETY_PLAN_SECTION_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanSection.name}`;\nconst SAFETY_PLAN_WORK_STEP_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanWorkStep.name}`;\nconst SECTION_TYPE_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.sectionType.name}`;\nconst WORK_STEP_TYPE_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.workStepType.name}`;\n\n//#endregion\n\n//#region ----- Public API -----\n\n/**\n * Loads a safety plan's section structure for the existing preview modal\n * (same shape the sections page feeds into AXMSafetyPlanPreviewService).\n */\nexport async function loadSafetyPlanPreviewStructure(\n entityService: AXPEntityService,\n translationService: AXTranslationService,\n planId: string,\n): Promise<AXMSafetyPlanSectionBuilderValue> {\n const repeatableSectionTypeIds = await loadRepeatableSectionTypeIds(entityService);\n\n const result = await entityService.withEntity(SAFETY_PLAN_SECTION_ENTITY).data().query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{ field: 'safetyPlanId', operator: { type: 'equal' }, value: planId }],\n },\n } as never);\n\n const rawLoaded = safetyPlanSectionsToBuilderValue(\n (result.items ?? []) as Parameters<typeof safetyPlanSectionsToBuilderValue>[0],\n );\n const deduped = dedupeSafetyPlanSectionStructure(rawLoaded, { repeatableSectionTypeIds });\n\n const workStepsResult = await entityService.withEntity(SAFETY_PLAN_WORK_STEP_ENTITY).data().query({\n skip: 0,\n take: 2000,\n filter: {\n logic: 'and',\n filters: [{ field: 'safetyPlanId', operator: { type: 'equal' }, value: planId }],\n },\n } as never);\n\n const columnsByWorkStepTypeId = await loadWorkStepTypeColumns(\n entityService,\n deduped.sections\n .map((section) => section.workStepTypeId)\n .filter((id): id is string => typeof id === 'string' && id.length > 0),\n );\n\n return hydrateCatalogItemSnapshots(\n entityService,\n translationService,\n hydrateStepTableSectionsWithWorkSteps(\n deduped,\n (workStepsResult.items ?? []) as Parameters<typeof hydrateStepTableSectionsWithWorkSteps>[1],\n columnsByWorkStepTypeId,\n ),\n );\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nasync function loadRepeatableSectionTypeIds(entityService: AXPEntityService): Promise<string[]> {\n const builtIn = collectBuiltInRepeatableSectionTypeIds();\n try {\n const result = await entityService.withEntity(SECTION_TYPE_ENTITY).data().query({\n skip: 0,\n take: 1000,\n } as never);\n const fromQuery = (result.items ?? [])\n .filter((row) => (row as { isRepeatable?: unknown }).isRepeatable === true)\n .map((row) => resolveEntityRefId((row as { id?: unknown }).id))\n .filter((id): id is string => !!id);\n return [...new Set([...fromQuery, ...builtIn])];\n } catch {\n return builtIn;\n }\n}\n\nasync function loadWorkStepTypeColumns(\n entityService: AXPEntityService,\n workStepTypeIds: readonly string[],\n): Promise<Map<string, AXMStepTableColumnDef[]>> {\n const uniqueIds = [...new Set(workStepTypeIds)];\n const columnsById = new Map<string, AXMStepTableColumnDef[]>();\n if (!uniqueIds.length) {\n return columnsById;\n }\n\n const accessor = entityService.withEntity(WORK_STEP_TYPE_ENTITY);\n await Promise.all(\n uniqueIds.map(async (id) => {\n try {\n const row = await accessor.data().byKey(id);\n if (!row) {\n return;\n }\n const record = row as { columns?: AXMStepTableColumnDef[] };\n columnsById.set(id, normalizeStepTableColumns(record.columns));\n } catch {\n // Leave missing types without columns; hydrate falls back to row snapshots.\n }\n }),\n );\n return columnsById;\n}\n\nasync function hydrateCatalogItemSnapshots(\n entityService: AXPEntityService,\n translationService: AXTranslationService,\n value: AXMSafetyPlanSectionBuilderValue,\n): Promise<AXMSafetyPlanSectionBuilderValue> {\n const locale = translationService.getActiveLang?.() ?? 'en-US';\n const missingByEntity = new Map<string, Set<string>>();\n\n for (const section of value.sections) {\n if (isStepTableSectionType(section.sectionTypeId, section.sectionType)) {\n continue;\n }\n const entityName = resolveSectionItemEntityName(section.sectionTypeId, section.sectionType);\n if (!entityName) {\n continue;\n }\n for (const slot of section.items) {\n for (const id of slot.itemIds ?? []) {\n const snapshot = slot.items?.find((entry) => entry.id === id);\n if (asSafetyPlanDisplayText(snapshot?.title) || asSafetyPlanDisplayText(snapshot?.code)) {\n continue;\n }\n const ids = missingByEntity.get(entityName) ?? new Set<string>();\n ids.add(id);\n missingByEntity.set(entityName, ids);\n }\n }\n }\n\n if (missingByEntity.size === 0) {\n return value;\n }\n\n const loadedById = new Map<string, { title?: string; code?: string }>();\n await Promise.all(\n [...missingByEntity.entries()].map(async ([entityName, ids]) => {\n const idList = [...ids];\n try {\n const result = await entityService.withEntity(entityName).data().query({\n skip: 0,\n take: Math.max(idList.length, 1),\n filter:\n idList.length === 1\n ? { field: 'id', operator: { type: 'equal' }, value: idList[0] }\n : { field: 'id', operator: { type: 'in' }, value: idList },\n } as never);\n for (const row of result.items ?? []) {\n const record = row as unknown as Record<string, unknown>;\n const id = resolveEntityRefId(record['id']);\n if (!id) {\n continue;\n }\n loadedById.set(id, {\n title: resolveEntityRowDisplayText(record['title'], locale) || undefined,\n code: asSafetyPlanDisplayText(record['code']) || undefined,\n });\n }\n } catch {\n /* skip entities the session cannot read */\n }\n }),\n );\n\n if (loadedById.size === 0) {\n return value;\n }\n\n return {\n sections: value.sections.map((section) => ({\n ...section,\n items: section.items.map((slot) => ({\n ...slot,\n items: (slot.itemIds ?? []).map((id, index) => {\n const existing = slot.items?.find((entry) => entry.id === id) ?? slot.items?.[index];\n const loaded = loadedById.get(id);\n return {\n id,\n title: asSafetyPlanDisplayText(existing?.title) || loaded?.title,\n code: asSafetyPlanDisplayText(existing?.code) || loaded?.code,\n };\n }),\n })),\n })),\n };\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport type { AXPCommand, AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, get, isEmpty, isString } from 'lodash';\n\nimport { AXMSafetyPlanPreviewService } from '../../safety-plan-preview/safety-plan-preview.service';\nimport { loadSafetyPlanPreviewStructure } from './load-safety-plan-preview-structure';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport interface AXMPreviewSafetyPlanCommandInput {\n id?: string;\n title?: string;\n data?: Record<string, unknown>;\n options?: Partial<AXMPreviewSafetyPlanCommandInput>;\n __context__?: {\n entity?: string;\n data?: { id?: string; title?: unknown };\n options?: { id?: string; title?: unknown };\n };\n}\n\n//#endregion\n\n//#region ----- Command -----\n\n@Injectable()\nexport class AXMPreviewSafetyPlanCommand implements AXPCommand<AXMPreviewSafetyPlanCommandInput, void> {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly previewService = inject(AXMSafetyPlanPreviewService);\n\n //#endregion\n\n //#region ----- Command Implementation -----\n\n async execute(input: AXMPreviewSafetyPlanCommandInput = {}): AXPCommandExecuteResultPromise<void> {\n try {\n const planId = this.resolvePlanId(input);\n if (!planId) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const structure = await loadSafetyPlanPreviewStructure(\n this.entityService,\n this.translationService,\n planId,\n );\n const dialogTitle = await this.resolveDialogTitle(input);\n\n await this.previewService.open({\n title: dialogTitle,\n structure,\n });\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n } catch {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.generic.error.description'),\n },\n };\n }\n }\n\n //#endregion\n\n //#region ----- Utility Methods -----\n\n private resolvePlanId(input: AXMPreviewSafetyPlanCommandInput): string | undefined {\n const context = input.__context__;\n const candidates = [\n input.id,\n input.options?.id,\n get(input, 'options.id'),\n context?.options?.id,\n context?.data?.id,\n input.data?.['id'],\n ];\n\n for (const candidate of candidates) {\n if (isString(candidate) && !isEmpty(candidate.trim())) {\n return candidate.trim();\n }\n }\n\n return undefined;\n }\n\n private async resolveDialogTitle(input: AXMPreviewSafetyPlanCommandInput): Promise<string> {\n const previewLabel =\n (await this.translationService.translateAsync('@general:actions.preview.title')) || 'Preview';\n const locale = this.translationService.getActiveLang?.() ?? 'en-US';\n\n const explicitTitle = defaultTo(\n input.title,\n defaultTo(input.options?.title, defaultTo(get(input, 'options.title'), input.__context__?.options?.title)),\n );\n if (isString(explicitTitle) && explicitTitle.trim().length > 0) {\n return `${previewLabel}: ${resolveMultiLanguageString(explicitTitle, locale).trim()}`;\n }\n\n const contextTitle = defaultTo(input.data?.['title'], input.__context__?.data?.title);\n if (contextTitle != null) {\n const recordTitle = resolveEntityRowDisplayText(contextTitle, locale).trim();\n if (recordTitle.length > 0) {\n return `${previewLabel}: ${recordTitle}`;\n }\n }\n\n return previewLabel;\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-CQ2xB7Va.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/catalog-section-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/catalog-section-preview.component.html","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/hierarchy-section-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/hierarchy-section-preview.component.html","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/ppe-section-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/ppe-section-preview.component.html","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/safety-plan-preview.util.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/risk-matrix-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/risk-matrix-preview.component.html","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/work-step-table-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/work-step-table-preview.component.html","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/safety-plan-section-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/safety-plan-section-preview.component.html","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/safety-plan-preview-modal.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/safety-plan-preview-modal.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\nimport type { AXMSafetyPlanPreviewCatalogItem } from './safety-plan-preview.types';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-catalog-section-preview',\n templateUrl: './catalog-section-preview.component.html',\n styleUrl: './catalog-section-preview.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXTranslationModule, AsyncPipe],\n host: {\n class: 'axm-catalog-section-preview block',\n },\n})\nexport class AXMCatalogSectionPreviewComponent {\n readonly items = input<AXMSafetyPlanPreviewCatalogItem[]>([]);\n}\n\n//#endregion\n","<div class=\"axm-catalog-section-preview\">\n @if (items().length > 0) {\n <!-- ----- Linked catalog items as a document bullet list ----- -->\n <ul class=\"__list\">\n @for (item of items(); track item.id) {\n <li class=\"__item\">\n <span class=\"__title\">{{ item.title }}</span>\n <!--->\n <!-- ----- Optional business code after the item title ----- -->\n @if (item.code) {\n <span class=\"__code\">({{ item.code }})</span>\n }\n </li>\n }\n </ul>\n }\n <!-- ----- Empty catalog section ----- -->\n @else {\n <p class=\"__empty\">\n {{ '@workplacesafety-management:safety-plan-sections.preview.empty-items' | translate | async }}\n </p>\n }\n</div>\n","//#region ----- Imports -----\n\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, signal } from '@angular/core';\n\nimport { AXMControlHierarchyDiagramComponent } from '../control-hierarchy-diagram/control-hierarchy-diagram.component';\nimport { AXMControlHierarchyDiagramService } from '../control-hierarchy-diagram/control-hierarchy-diagram.service';\nimport {\n resolveControlHierarchyDiagramViewType,\n type AXMControlHierarchyDiagramItem,\n type AXMControlHierarchyDiagramViewType,\n} from '../control-hierarchy-diagram/control-hierarchy-diagram.types';\nimport type { AXMSafetyPlanPreviewCatalogItem } from './safety-plan-preview.types';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-hierarchy-section-preview',\n templateUrl: './hierarchy-section-preview.component.html',\n styleUrl: './hierarchy-section-preview.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXMControlHierarchyDiagramComponent],\n host: {\n class: 'axm-hierarchy-section-preview block',\n },\n})\nexport class AXMHierarchySectionPreviewComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly diagramService = inject(AXMControlHierarchyDiagramService);\n\n //#endregion\n\n //#region ----- Inputs -----\n\n readonly items = input<AXMSafetyPlanPreviewCatalogItem[]>([]);\n readonly viewType = input<unknown>();\n readonly showTitle = input<boolean | undefined>(undefined);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly diagramItems = signal<AXMControlHierarchyDiagramItem[]>([]);\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly resolvedViewType = computed<AXMControlHierarchyDiagramViewType>(() =>\n resolveControlHierarchyDiagramViewType(this.viewType() as Parameters<typeof resolveControlHierarchyDiagramViewType>[0]),\n );\n\n protected readonly resolvedShowTitle = computed(() => this.showTitle() === true);\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n private readonly loadItems = effect((onCleanup) => {\n const catalogItems = this.items();\n let cancelled = false;\n onCleanup(() => {\n cancelled = true;\n });\n void this.refresh(catalogItems, () => cancelled);\n });\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async refresh(\n catalogItems: AXMSafetyPlanPreviewCatalogItem[],\n isCancelled: () => boolean,\n ): Promise<void> {\n if (catalogItems.length === 0) {\n this.diagramItems.set([]);\n return;\n }\n\n try {\n const loaded = await this.diagramService.loadDiagramItemsByLevelIds(catalogItems.map((item) => item.id));\n if (!isCancelled()) {\n this.diagramItems.set(loaded);\n }\n } catch {\n if (!isCancelled()) {\n this.diagramItems.set([]);\n }\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- Control hierarchy diagram using saved section widget options ----- -->\n<axm-control-hierarchy-diagram\n [viewType]=\"resolvedViewType()\"\n [items]=\"diagramItems()\"\n [showTitle]=\"resolvedShowTitle()\"\n [showViewTypeSelector]=\"false\"\n/>\n","//#region ----- Imports -----\n\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, signal } from '@angular/core';\n\nimport { AXMPpeItemViewerComponent } from '../ppe-item-viewer/ppe-item-viewer.component';\nimport { AXMPpeItemViewerService } from '../ppe-item-viewer/ppe-item-viewer.service';\nimport type { AXMPpeItemViewerDisplayItem, AXMPpeItemViewerLayout } from '../ppe-item-viewer/ppe-item-viewer.types';\nimport { resolvePpeItemViewerLayout } from '../ppe-item-viewer/ppe-item-viewer.util';\nimport type { AXMSafetyPlanPreviewCatalogItem } from './safety-plan-preview.types';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-ppe-section-preview',\n templateUrl: './ppe-section-preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXMPpeItemViewerComponent],\n host: {\n class: 'axm-ppe-section-preview block',\n },\n})\nexport class AXMPpeSectionPreviewComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly ppeItemViewerService = inject(AXMPpeItemViewerService);\n\n //#endregion\n\n //#region ----- Inputs -----\n\n readonly items = input<AXMSafetyPlanPreviewCatalogItem[]>([]);\n readonly layout = input<unknown>();\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly loading = signal(false);\n protected readonly displayItems = signal<AXMPpeItemViewerDisplayItem[]>([]);\n protected readonly selectedIds = signal<string[]>([]);\n\n protected readonly resolvedLayout = computed<AXMPpeItemViewerLayout>(() =>\n resolvePpeItemViewerLayout(this.layout() as Parameters<typeof resolvePpeItemViewerLayout>[0]),\n );\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n private readonly loadItems = effect((onCleanup) => {\n const catalogItems = this.items();\n let cancelled = false;\n onCleanup(() => {\n cancelled = true;\n });\n void this.refresh(catalogItems, () => cancelled);\n });\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onSelectedIdsChange(ids: string[]): void {\n this.selectedIds.set(ids);\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async refresh(\n catalogItems: AXMSafetyPlanPreviewCatalogItem[],\n isCancelled: () => boolean,\n ): Promise<void> {\n if (catalogItems.length === 0) {\n this.displayItems.set([]);\n this.loading.set(false);\n return;\n }\n\n this.loading.set(true);\n const fallback = catalogItems.map((item) => this.toDisplayItem(item));\n try {\n const loaded = await this.ppeItemViewerService.loadDisplayItems(catalogItems.map((item) => item.id));\n if (isCancelled()) {\n return;\n }\n const byId = new Map(loaded.map((row) => [row.id, row]));\n this.displayItems.set(fallback.map((item) => byId.get(item.id) ?? item));\n } catch {\n if (!isCancelled()) {\n this.displayItems.set(fallback);\n }\n } finally {\n if (!isCancelled()) {\n this.loading.set(false);\n }\n }\n }\n\n private toDisplayItem(item: AXMSafetyPlanPreviewCatalogItem): AXMPpeItemViewerDisplayItem {\n return {\n id: item.id,\n title: item.title,\n code: item.code,\n imageUrl: null,\n };\n }\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- PPE Item viewer (same component as Questionnaire; checkboxes can be toggled) ----- -->\n<axm-ppe-item-viewer\n [items]=\"displayItems()\"\n [layout]=\"resolvedLayout()\"\n [selectedIds]=\"selectedIds()\"\n [loading]=\"loading()\"\n (selectedIdsChange)=\"onSelectedIdsChange($event)\"\n/>\n","//#region ----- Imports -----\n\nimport { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';\nimport {\n isStepTableSectionType,\n normalizeStepTableColumns,\n resolveSectionTypeKey,\n sortStepTableColumns,\n stepTableColumnTitle,\n type AXMSafetyPlanSectionBuilderItemValue,\n type AXMSafetyPlanSectionBuilderSectionValue,\n type AXMStepTableCellValue,\n type AXMStepTableColumnDef,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nimport type {\n AXMSafetyPlanPreviewCatalogItem,\n AXMSafetyPlanSectionPreviewKind,\n} from './safety-plan-preview.types';\n\n//#endregion\n\n//#region ----- Display helpers -----\n\nexport function toSafetyPlanPreviewDisplayText(value: unknown, locale: string): string {\n return resolveEntityRowDisplayText(value, locale).trim();\n}\n\nexport function resolveSafetyPlanPreviewSectionTitle(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n locale: string,\n): string {\n return (\n toSafetyPlanPreviewDisplayText(section.title, locale) ||\n toSafetyPlanPreviewDisplayText(section.sectionType?.title, locale) ||\n toSafetyPlanPreviewDisplayText(section.sectionType?.code, locale)\n );\n}\n\n/**\n * Maps a section type to a preview renderer. New document kinds (SWMS, JSA, SOP, Permit)\n * can add cases here without changing the editor.\n */\nexport function resolveSafetyPlanSectionPreviewKind(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n): AXMSafetyPlanSectionPreviewKind {\n if (isStepTableSectionType(section.sectionTypeId, section.sectionType)) {\n return 'work-step-table';\n }\n if (resolveSectionTypeKey(section.sectionTypeId, section.sectionType) === 'RiskMatrix') {\n return 'risk-matrix';\n }\n if (resolveSectionTypeKey(section.sectionTypeId, section.sectionType) === 'Ppe') {\n return 'ppe';\n }\n if (resolveSectionTypeKey(section.sectionTypeId, section.sectionType) === 'HierarchyLevel') {\n return 'hierarchy';\n }\n return 'catalog';\n}\n\n/** True when the section has at least one previewable item (catalog row or work-step row). */\nexport function safetyPlanPreviewSectionHasItems(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n): boolean {\n if (isStepTableSectionType(section.sectionTypeId, section.sectionType)) {\n return (section.items ?? []).some((item) => item.stepTableRow != null);\n }\n return collectSafetyPlanPreviewCatalogItems(section, '').length > 0;\n}\n\nexport function collectSafetyPlanPreviewCatalogItems(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n locale: string,\n): AXMSafetyPlanPreviewCatalogItem[] {\n const linked: AXMSafetyPlanPreviewCatalogItem[] = [];\n const seen = new Set<string>();\n\n for (const slot of section.items ?? []) {\n for (const item of flattenCatalogSlot(slot, locale)) {\n if (!item.id || seen.has(item.id)) {\n continue;\n }\n seen.add(item.id);\n linked.push(item);\n }\n }\n\n return linked;\n}\n\nexport function resolveSafetyPlanPreviewStepTableColumns(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n): AXMStepTableColumnDef[] {\n return sortStepTableColumns(normalizeStepTableColumns(section.columns));\n}\n\nexport function formatSafetyPlanPreviewStepTableCell(\n cell: AXMStepTableCellValue | undefined,\n locale: string,\n): string {\n if (!cell) {\n return '';\n }\n const fromRefs = (cell.refs ?? [])\n .map((ref) => toSafetyPlanPreviewDisplayText(ref.title, locale) || String(ref.code ?? '').trim())\n .filter((text) => text.length > 0);\n if (fromRefs.length) {\n return fromRefs.join(', ');\n }\n const text = cell.textValue?.trim();\n if (text) {\n return text;\n }\n if (typeof cell.numberValue === 'number' && Number.isFinite(cell.numberValue)) {\n return String(cell.numberValue);\n }\n return '';\n}\n\nexport function stepTablePreviewColumnLabel(column: AXMStepTableColumnDef, locale: string): string {\n return (\n toSafetyPlanPreviewDisplayText(column.title, locale) ||\n toSafetyPlanPreviewDisplayText(column.sectionType?.title, locale) ||\n stepTableColumnTitle(column)\n );\n}\n\nfunction flattenCatalogSlot(\n slot: AXMSafetyPlanSectionBuilderItemValue,\n locale: string,\n): AXMSafetyPlanPreviewCatalogItem[] {\n const ids = Array.isArray(slot.itemIds) ? slot.itemIds : [];\n const snapshots = Array.isArray(slot.items) ? slot.items : [];\n const items: AXMSafetyPlanPreviewCatalogItem[] = [];\n\n for (let index = 0; index < ids.length; index += 1) {\n const id = String(ids[index] ?? '').trim();\n if (!id) {\n continue;\n }\n const snapshot = snapshots.find((entry) => entry?.id === id) ?? snapshots[index];\n const title =\n toSafetyPlanPreviewDisplayText(snapshot?.title, locale) ||\n String(snapshot?.code ?? '').trim() ||\n id;\n items.push({\n id,\n title,\n code: snapshot?.code,\n });\n }\n\n if (items.length === 0 && snapshots.length > 0) {\n for (const snapshot of snapshots) {\n const id = String(snapshot?.id ?? '').trim();\n if (!id) {\n continue;\n }\n items.push({\n id,\n title: toSafetyPlanPreviewDisplayText(snapshot.title, locale) || String(snapshot.code ?? '').trim() || id,\n code: snapshot.code,\n });\n }\n }\n\n return items;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPLayoutBuilderService, AXPLayoutRendererComponent } from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList, type AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { RISK_MANAGEMENT_RISK_MATRIX_CELL_ENTITY } from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, signal } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\nimport type { AXMSafetyPlanPreviewCatalogItem } from './safety-plan-preview.types';\nimport { toSafetyPlanPreviewDisplayText } from './safety-plan-preview.util';\n\n//#endregion\n\n//#region ----- Types -----\n\ninterface AXMRiskMatrixCellRecord {\n id: string;\n title?: unknown;\n code?: unknown;\n}\n\ninterface AXMRiskMatrixPreviewItem {\n id: string;\n title: string;\n code?: string;\n context: Record<string, unknown>;\n layout: AXPWidgetNode;\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-risk-matrix-preview',\n templateUrl: './risk-matrix-preview.component.html',\n styleUrl: './risk-matrix-preview.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXLoadingModule, AXTranslationModule, AXPLayoutRendererComponent],\n host: {\n class: 'axm-risk-matrix-preview block',\n },\n})\nexport class AXMRiskMatrixPreviewComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ----- Inputs -----\n\n readonly items = input<AXMSafetyPlanPreviewCatalogItem[]>([]);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly loading = signal(false);\n protected readonly matrices = signal<AXMRiskMatrixPreviewItem[]>([]);\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n private readonly loadItems = effect((onCleanup) => {\n const catalogItems = this.items();\n let cancelled = false;\n onCleanup(() => {\n cancelled = true;\n });\n void this.refresh(catalogItems, () => cancelled);\n });\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async refresh(\n catalogItems: AXMSafetyPlanPreviewCatalogItem[],\n isCancelled: () => boolean,\n ): Promise<void> {\n if (catalogItems.length === 0) {\n this.matrices.set([]);\n this.loading.set(false);\n return;\n }\n\n this.loading.set(true);\n try {\n const loaded = await this.queryByIds(catalogItems.map((item) => item.id));\n if (isCancelled()) {\n return;\n }\n const byId = new Map(loaded.map((row) => [row.id, row]));\n const locale = this.translationService.getActiveLang() ?? 'en-US';\n this.matrices.set(\n catalogItems.flatMap((item) => {\n const row = byId.get(item.id);\n if (!row) {\n return [];\n }\n return [this.toPreviewItem(item, row, locale)];\n }),\n );\n } catch {\n if (!isCancelled()) {\n this.matrices.set([]);\n }\n } finally {\n if (!isCancelled()) {\n this.loading.set(false);\n }\n }\n }\n\n private async queryByIds(ids: string[]): Promise<AXMRiskMatrixCellRecord[]> {\n const dataAccessor = this.entityService\n .withEntity(RISK_MANAGEMENT_RISK_MATRIX_CELL_ENTITY)\n .data<string, AXMRiskMatrixCellRecord>();\n\n try {\n const result = await dataAccessor.query({\n skip: 0,\n take: Math.max(ids.length, 100),\n filter:\n ids.length === 1\n ? { field: 'id', operator: { type: 'equal' }, value: ids[0] }\n : { field: 'id', operator: { type: 'in' }, value: ids },\n });\n return result?.items ?? [];\n } catch {\n const loaded: AXMRiskMatrixCellRecord[] = [];\n for (const id of ids) {\n try {\n const row = await dataAccessor.byKey(id);\n if (row) {\n loaded.push(row);\n }\n } catch {\n /* skip missing rows */\n }\n }\n return loaded;\n }\n }\n\n private toPreviewItem(\n catalogItem: AXMSafetyPlanPreviewCatalogItem,\n row: AXMRiskMatrixCellRecord,\n locale: string,\n ): AXMRiskMatrixPreviewItem {\n const code = typeof row.code === 'string' ? row.code.trim() : catalogItem.code;\n return {\n id: catalogItem.id,\n title: toSafetyPlanPreviewDisplayText(row.title, locale) || catalogItem.title,\n code: code && code.length > 0 ? code : undefined,\n context: { ...row },\n layout: cloneDeep(this.buildMatrixLayout()),\n };\n }\n\n //#endregion\n\n //#region ----- Layout -----\n\n private buildMatrixLayout(): AXPWidgetNode {\n return this.layoutBuilder\n .create()\n .flex((flex) => {\n flex.mode('view').setDirection('column');\n flex.formField('', (field) => {\n field\n .path('matrix')\n .setShowLabel(false)\n .mode('view')\n .customWidget(AXPWidgetsList.Editors.RiskMatrix, { readonly: true });\n });\n })\n .build();\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-risk-matrix-preview\">\n @if (loading()) {\n <!-- ----- Loading indicator while risk matrix records are fetched ----- -->\n <ax-loading></ax-loading>\n }\n <!-- ----- Empty state when no risk matrices are selected ----- -->\n @else if (matrices().length === 0) {\n <p class=\"__empty\">\n {{ '@workplacesafety-management:safety-plan-sections.preview.empty-items' | translate | async }}\n </p>\n }\n <!-- ----- Selected risk matrices rendered with the RiskMatrix widget ----- -->\n @else {\n <div class=\"__items\">\n @for (item of matrices(); track item.id) {\n <article class=\"__item\">\n <header class=\"__item-header\">\n <h4 class=\"__item-title\">{{ item.title }}</h4>\n <!--->\n <!-- ----- Optional business code after the matrix title ----- -->\n @if (item.code) {\n <span class=\"__code\">({{ item.code }})</span>\n }\n </header>\n <div class=\"__matrix\">\n <axp-layout-renderer [layout]=\"item.layout\" [context]=\"item.context\" mode=\"view\" look=\"container\" />\n </div>\n </article>\n }\n </div>\n }\n</div>\n","//#region ----- Imports -----\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n stepTableColumnKey,\n type AXMSafetyPlanSectionBuilderSectionValue,\n type AXMSafetyPlanStepTableRowBuilderPayload,\n type AXMStepTableColumnDef,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nimport {\n formatSafetyPlanPreviewStepTableCell,\n resolveSafetyPlanPreviewStepTableColumns,\n stepTablePreviewColumnLabel,\n} from './safety-plan-preview.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-work-step-table-preview',\n templateUrl: './work-step-table-preview.component.html',\n styleUrl: './work-step-table-preview.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXTranslationModule, AsyncPipe],\n host: {\n class: 'axm-work-step-table-preview block',\n },\n})\nexport class AXMWorkStepTablePreviewComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ----- Inputs -----\n\n readonly section = input.required<AXMSafetyPlanSectionBuilderSectionValue>();\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly columns = computed(() => resolveSafetyPlanPreviewStepTableColumns(this.section()));\n\n protected readonly rows = computed((): AXMSafetyPlanStepTableRowBuilderPayload[] =>\n (this.section().items ?? [])\n .map((item) => item.stepTableRow)\n .filter((row): row is AXMSafetyPlanStepTableRowBuilderPayload => !!row)\n .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)),\n );\n\n //#endregion\n\n //#region ----- Display -----\n\n protected columnLabel(column: AXMStepTableColumnDef): string {\n return stepTablePreviewColumnLabel(column, this.translationService.getActiveLang() ?? 'en-US');\n }\n\n protected cellText(\n row: AXMSafetyPlanStepTableRowBuilderPayload,\n column: AXMStepTableColumnDef,\n ): string {\n const key = stepTableColumnKey(column);\n const cell = (row.cells ?? []).find((entry) => entry.columnKey === key);\n return formatSafetyPlanPreviewStepTableCell(cell, this.translationService.getActiveLang() ?? 'en-US');\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-work-step-table-preview\">\n @if (columns().length > 0 && rows().length > 0) {\n <!-- ----- Read-only work-step table ----- -->\n <div class=\"__table-wrap\">\n <table class=\"__table\">\n <thead>\n <tr>\n @for (column of columns(); track column.sectionTypeId) {\n <th>{{ columnLabel(column) }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows(); track $index) {\n <tr>\n @for (column of columns(); track column.sectionTypeId) {\n <td>{{ cellText(row, column) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!-- ----- Empty work-step table ----- -->\n @else {\n <p class=\"__empty\">\n {{ '@workplacesafety-management:safety-plan-sections.preview.empty-items' | translate | async }}\n </p>\n }\n</div>\n","//#region ----- Imports -----\n\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport type { AXMSafetyPlanSectionBuilderSectionValue } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nimport { AXMCatalogSectionPreviewComponent } from './catalog-section-preview.component';\nimport { AXMHierarchySectionPreviewComponent } from './hierarchy-section-preview.component';\nimport { AXMPpeSectionPreviewComponent } from './ppe-section-preview.component';\nimport { AXMRiskMatrixPreviewComponent } from './risk-matrix-preview.component';\nimport { AXMWorkStepTablePreviewComponent } from './work-step-table-preview.component';\nimport {\n collectSafetyPlanPreviewCatalogItems,\n resolveSafetyPlanPreviewSectionTitle,\n resolveSafetyPlanSectionPreviewKind,\n safetyPlanPreviewSectionHasItems,\n} from './safety-plan-preview.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-safety-plan-section-preview',\n templateUrl: './safety-plan-section-preview.component.html',\n styleUrl: './safety-plan-section-preview.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXMCatalogSectionPreviewComponent,\n AXMHierarchySectionPreviewComponent,\n AXMPpeSectionPreviewComponent,\n AXMRiskMatrixPreviewComponent,\n AXMWorkStepTablePreviewComponent,\n ],\n host: {\n class: 'axm-safety-plan-section-preview',\n '[class.block]': 'hasItems()',\n '[hidden]': '!hasItems()',\n },\n})\nexport class AXMSafetyPlanSectionPreviewComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ----- Inputs -----\n\n readonly section = input.required<AXMSafetyPlanSectionBuilderSectionValue>();\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n private readonly locale = computed(() => this.translationService.getActiveLang() ?? 'en-US');\n\n protected readonly kind = computed(() => resolveSafetyPlanSectionPreviewKind(this.section()));\n\n protected readonly title = computed(() =>\n resolveSafetyPlanPreviewSectionTitle(this.section(), this.locale()),\n );\n\n protected readonly catalogItems = computed(() =>\n collectSafetyPlanPreviewCatalogItems(this.section(), this.locale()),\n );\n\n protected readonly hasItems = computed(() => safetyPlanPreviewSectionHasItems(this.section()));\n\n //#endregion\n}\n\n//#endregion\n","@if (hasItems()) {\n <!-- ----- Section with at least one item ----- -->\n <section class=\"axm-safety-plan-section-preview\">\n <header class=\"__header\">\n <h3 class=\"__title\">{{ title() }}</h3>\n </header>\n\n @switch (kind()) {\n @case ('work-step-table') {\n <axm-work-step-table-preview [section]=\"section()\" />\n }\n @case ('risk-matrix') {\n <axm-risk-matrix-preview [items]=\"catalogItems()\" />\n }\n @case ('ppe') {\n <axm-ppe-section-preview [items]=\"catalogItems()\" [layout]=\"section().widgetOptions?.layout\" />\n }\n @case ('hierarchy') {\n <axm-hierarchy-section-preview\n [items]=\"catalogItems()\"\n [viewType]=\"section().widgetOptions?.viewType\"\n [showTitle]=\"section().widgetOptions?.showTitle\"\n />\n }\n @default {\n <axm-catalog-section-preview [items]=\"catalogItems()\" />\n }\n }\n </section>\n}\n","//#region ----- Imports -----\n\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation,\n} from '@angular/core';\nimport type { AXMSafetyPlanSectionBuilderValue } from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { normalizeSafetyPlanSectionBuilderValue } from '../safety-plan-sections-page/safety-plan-section-builder.types';\n\nimport { AXMSafetyPlanSectionPreviewComponent } from './safety-plan-section-preview.component';\nimport { safetyPlanPreviewSectionHasItems } from './safety-plan-preview.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-safety-plan-preview-modal',\n templateUrl: './safety-plan-preview-modal.component.html',\n styleUrl: './safety-plan-preview-modal.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTranslationModule, AsyncPipe, AXMSafetyPlanSectionPreviewComponent],\n host: {\n class: 'axm-safety-plan-preview-modal-host flex flex-col w-full h-full',\n },\n})\nexport class AXMSafetyPlanPreviewModalComponent extends AXBasePageComponent {\n //#region ----- Inputs -----\n\n readonly structure = input<AXMSafetyPlanSectionBuilderValue>({ sections: [] });\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly sections = computed(() => {\n const raw = this.safeInputValue(this.structure);\n return [...normalizeSafetyPlanSectionBuilderValue(raw).sections]\n .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0))\n .filter((section) => safetyPlanPreviewSectionHasItems(section));\n });\n\n //#endregion\n\n //#region ----- Helpers -----\n\n private safeInputValue<T>(inputOrValue: T | (() => T)): T {\n return typeof inputOrValue === 'function' ? (inputOrValue as () => T)() : (inputOrValue as T);\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-safety-plan-preview-modal __content-area\">\n @if (sections().length === 0) {\n <!-- ----- Empty state when the plan has no sections ----- -->\n <p class=\"__empty\">\n {{ '@workplacesafety-management:safety-plan-sections.preview.empty' | translate | async }}\n </p>\n }\n <!-- ----- Read-only document blocks in configured section order ----- -->\n @else {\n <div class=\"__document\">\n @for (section of sections(); track section.id) {\n <axm-safety-plan-section-preview [section]=\"section\" />\n }\n </div>\n }\n</div>\n"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { AXPopupService } from '@acorex/components/popup';
|
|
4
|
-
import { AXPDeviceService } from '@acorex-platform/framework-client/core';
|
|
5
|
-
|
|
6
|
-
//#region ----- Imports -----
|
|
7
|
-
//#endregion
|
|
8
|
-
//#region ----- Service -----
|
|
9
|
-
class AXMSafetyPlanPreviewService {
|
|
10
|
-
constructor() {
|
|
11
|
-
//#region ----- Services & Dependencies -----
|
|
12
|
-
this.popupService = inject(AXPopupService);
|
|
13
|
-
this.deviceService = inject(AXPDeviceService);
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
//#region ----- Public API -----
|
|
17
|
-
async open(options) {
|
|
18
|
-
const { AXMSafetyPlanPreviewModalComponent } = await import('./acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-CQ2xB7Va.mjs');
|
|
19
|
-
await this.popupService.open(AXMSafetyPlanPreviewModalComponent, {
|
|
20
|
-
title: options.title,
|
|
21
|
-
size: this.deviceService.isSmall() ? 'full' : 'lg',
|
|
22
|
-
data: {
|
|
23
|
-
structure: options.structure,
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSafetyPlanPreviewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSafetyPlanPreviewService, providedIn: 'root' }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMSafetyPlanPreviewService, decorators: [{
|
|
31
|
-
type: Injectable,
|
|
32
|
-
args: [{ providedIn: 'root' }]
|
|
33
|
-
}] });
|
|
34
|
-
|
|
35
|
-
export { AXMSafetyPlanPreviewService as A };
|
|
36
|
-
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-safety-plan-preview.service-DJP41MuL.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-safety-plan-preview.service-DJP41MuL.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/safety-plan-preview.service.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPDeviceService } from '@acorex-platform/framework-client/core';\n\nimport type { AXMSafetyPlanPreviewOpenOptions } from './safety-plan-preview.types';\n\n//#endregion\n\n//#region ----- Service -----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMSafetyPlanPreviewService {\n //#region ----- Services & Dependencies -----\n\n private readonly popupService = inject(AXPopupService);\n private readonly deviceService = inject(AXPDeviceService);\n\n //#endregion\n\n //#region ----- Public API -----\n\n async open(options: AXMSafetyPlanPreviewOpenOptions): Promise<void> {\n const { AXMSafetyPlanPreviewModalComponent } = await import('./safety-plan-preview-modal.component');\n await this.popupService.open(AXMSafetyPlanPreviewModalComponent, {\n title: options.title,\n size: this.deviceService.isSmall() ? 'full' : 'lg',\n data: {\n structure: options.structure,\n },\n });\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;AAAA;AAQA;AAEA;MAGa,2BAA2B,CAAA;AADxC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAkB1D,IAAA;;;IAZC,MAAM,IAAI,CAAC,OAAwC,EAAA;QACjD,MAAM,EAAE,kCAAkC,EAAE,GAAG,MAAM,OAAO,6GAAuC,CAAC;AACpG,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kCAAkC,EAAE;YAC/D,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,YAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI;AAClD,YAAA,IAAI,EAAE;gBACJ,SAAS,EAAE,OAAO,CAAC,SAAS;AAC7B,aAAA;AACF,SAAA,CAAC;IACJ;8GAnBW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,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,2BAA2B,cADd,MAAM,EAAA,CAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|