@acorex-platform/module-workplacesafety-management-client 0.0.37 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-B9lElhxc.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/activity-preview.component.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-preview/activity-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, output, 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 { extractPpeItemIds, 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 readonly value = input<unknown>(undefined);\n readonly editable = input(false);\n\n //#endregion\n\n //#region ----- Outputs -----\n\n readonly valueChange = output<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 applyStoredValue = effect(() => {\n this.selectedIds.set(extractPpeItemIds(this.value()));\n });\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 if (!this.editable()) {\n return;\n }\n this.selectedIds.set(ids);\n this.valueChange.emit(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; checks are workflow fill values, not the section catalog ----- -->\n<axm-ppe-item-viewer\n [items]=\"displayItems()\"\n [layout]=\"resolvedLayout()\"\n [selectedIds]=\"selectedIds()\"\n [loading]=\"loading()\"\n [readonly]=\"!editable()\"\n (selectedIdsChange)=\"onSelectedIdsChange($event)\"\n/>\n","//#region ----- Imports -----\n\nimport { resolveEntityRowDisplayText } from '@acorex-platform/framework-client/common';\nimport {\n isActivitySectionType,\n resolveSectionTypeKey,\n type AXMSafetyPlanSectionBuilderItemValue,\n type AXMSafetyPlanSectionBuilderSectionValue,\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 (isActivitySectionType(section.sectionTypeId, section.sectionType)) {\n return 'activity';\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 activity row). */\nexport function safetyPlanPreviewSectionHasItems(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n): boolean {\n if (isActivitySectionType(section.sectionTypeId, section.sectionType)) {\n return (section.items ?? []).some((item) => {\n const row = item.activityRow;\n const snapshotTitle = item.items?.[0]?.title;\n return Boolean(row?.title?.trim() || snapshotTitle?.trim());\n });\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\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_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 AXMRiskMatrixRecord {\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<AXMRiskMatrixRecord[]> {\n const dataAccessor = this.entityService\n .withEntity(RISK_MANAGEMENT_RISK_MATRIX_ENTITY)\n .data<string, AXMRiskMatrixRecord>();\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: AXMRiskMatrixRecord[] = [];\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: AXMRiskMatrixRecord,\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('cells')\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 type AXMSafetyPlanSectionBuilderSectionValue,\n type AXMSafetyPlanActivityRowBuilderPayload,\n type AXMSafetyPlanActivitySectionSnapshot,\n asSafetyPlanDisplayText,\n resolveSectionTypeDisplayTitle,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nimport { toSafetyPlanPreviewDisplayText } from './safety-plan-preview.util';\nimport type { AXMSafetyPlanPreviewCatalogItem } from './safety-plan-preview.types';\nimport { AXMCatalogSectionPreviewComponent } from './catalog-section-preview.component';\n\n//#endregion\n\n//#region ----- Types -----\n\ninterface AXMActivityPreviewRowView {\n key: string;\n title: string;\n code: string;\n description: string;\n sections: Array<{\n key: string;\n title: string;\n items: AXMSafetyPlanPreviewCatalogItem[];\n }>;\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-activity-preview',\n templateUrl: './activity-preview.component.html',\n styleUrl: './activity-preview.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXTranslationModule, AsyncPipe, AXMCatalogSectionPreviewComponent],\n host: {\n class: 'axm-activity-preview block',\n },\n})\nexport class AXMActivityPreviewComponent {\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 rows = computed((): AXMActivityPreviewRowView[] => {\n const locale = this.translationService.getActiveLang() ?? 'en-US';\n return (this.section().items ?? [])\n .map((item, index) => {\n const row = item.activityRow;\n if (!row) {\n return null;\n }\n return {\n view: this.toRowView(row, item.id || String(index), locale),\n sortOrder: row.sortOrder ?? index + 1,\n };\n })\n .filter((entry): entry is { view: AXMActivityPreviewRowView; sortOrder: number } => entry != null)\n .sort((a, b) => a.sortOrder - b.sortOrder)\n .map((entry) => entry.view);\n });\n\n //#endregion\n\n //#region ----- Display -----\n\n private toRowView(\n row: AXMSafetyPlanActivityRowBuilderPayload,\n key: string,\n locale: string,\n ): AXMActivityPreviewRowView {\n const sections = [...(row.sections ?? [])].sort(\n (a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0),\n );\n return {\n key,\n title: toSafetyPlanPreviewDisplayText(row.title, locale) || 'Row',\n code: String(row.code ?? '').trim(),\n description: toSafetyPlanPreviewDisplayText(row.description, locale),\n sections: sections.map((section, index) =>\n this.toSectionView(section, `${key}__section_${index}`, locale),\n ),\n };\n }\n\n private toSectionView(\n section: AXMSafetyPlanActivitySectionSnapshot,\n key: string,\n locale: string,\n ): AXMActivityPreviewRowView['sections'][number] {\n const title =\n toSafetyPlanPreviewDisplayText(section.title, locale) ||\n toSafetyPlanPreviewDisplayText(section.sectionType?.title, locale) ||\n resolveSectionTypeDisplayTitle(section.sectionTypeId, section.sectionType) ||\n toSafetyPlanPreviewDisplayText(section.sectionType?.code, locale) ||\n 'Section';\n const items: AXMSafetyPlanPreviewCatalogItem[] = (section.itemIds ?? []).map((id, index) => {\n const snapshot = section.items?.find((entry) => entry.id === id) ?? section.items?.[index];\n return {\n id,\n title:\n toSafetyPlanPreviewDisplayText(snapshot?.title, locale) ||\n asSafetyPlanDisplayText(snapshot?.code) ||\n id,\n code: asSafetyPlanDisplayText(snapshot?.code) || undefined,\n };\n });\n return { key, title, items };\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-activity-preview\">\n @if (rows().length > 0) {\n <!-- ----- Activity items with nested predefined sections ----- -->\n <ul class=\"__list\">\n @for (row of rows(); track row.key) {\n <li class=\"__item\">\n <div class=\"__header\">\n <span class=\"__title\">{{ row.title }}</span>\n <!--->\n <!-- ----- Optional business code after the item title ----- -->\n @if (row.code) {\n <span class=\"__code\">({{ row.code }})</span>\n }\n </div>\n <!--->\n <!-- ----- Optional activity description below the title ----- -->\n @if (row.description) {\n <p class=\"__description\">{{ row.description }}</p>\n }\n <!--->\n <!-- ----- Predefined SafetyPlanActivity sections (Control, Hazard, …) ----- -->\n @if (row.sections.length > 0) {\n <div class=\"__sections\">\n @for (activitySection of row.sections; track activitySection.key) {\n <div class=\"__section\">\n <h4 class=\"__section-title\">{{ activitySection.title }}</h4>\n <axm-catalog-section-preview [items]=\"activitySection.items\" />\n </div>\n }\n </div>\n }\n </li>\n }\n </ul>\n }\n <!-- ----- Empty activity 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, inject, input, output } 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 { AXMActivityPreviewComponent } from './activity-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 AXMActivityPreviewComponent,\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 readonly fillValue = input<unknown>(undefined);\n readonly editable = input(false);\n\n //#endregion\n\n //#region ----- Outputs -----\n\n readonly fillValueChange = output<unknown>();\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 //#region ----- Event Handlers -----\n\n protected onFillValueChange(value: unknown): void {\n this.fillValueChange.emit(value);\n }\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 ('activity') {\n <axm-activity-preview [section]=\"section()\" />\n }\n @case ('risk-matrix') {\n <axm-risk-matrix-preview [items]=\"catalogItems()\" />\n }\n @case ('ppe') {\n <axm-ppe-section-preview\n [items]=\"catalogItems()\"\n [layout]=\"section().widgetOptions?.layout\"\n [value]=\"fillValue()\"\n [editable]=\"editable()\"\n (valueChange)=\"onFillValueChange($event)\"\n />\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 { AXComponentClosing } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport type {\n AXMSafetyPlanFillValues,\n AXMSafetyPlanSectionBuilderValue,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, signal, ViewEncapsulation } from '@angular/core';\n\nimport { normalizeSafetyPlanSectionBuilderValue } from '../safety-plan-sections-page/safety-plan-section-builder.types';\nimport { AXMSafetyPlanSectionPreviewComponent } from './safety-plan-section-preview.component';\nimport { normalizeSafetyPlanFillValues, saveSafetyPlanFillValues } from './safety-plan-fill-values.util';\nimport { safetyPlanPreviewSectionHasItems } from './safety-plan-preview.util';\nimport type { AXMSafetyPlanPreviewResult, AXMSafetyPlanPreviewWorkflowActionSet } from './safety-plan-preview.types';\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, AXButtonModule, AXMSafetyPlanSectionPreviewComponent],\n host: {\n class: 'axm-safety-plan-preview-modal-host flex flex-col w-full h-full min-h-0',\n },\n})\nexport class AXMSafetyPlanPreviewModalComponent extends AXBasePageComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly toastService = inject(AXToastService);\n\n //#endregion\n\n //#region ----- Inputs -----\n\n readonly structure = input<AXMSafetyPlanSectionBuilderValue>({ sections: [] });\n readonly workflowActionSet = input<AXMSafetyPlanPreviewWorkflowActionSet | undefined>(undefined);\n /** When true, section values can be edited and are saved when the dialog closes. */\n readonly editable = input<boolean | string | undefined>(undefined);\n readonly planId = input<string | undefined>(undefined);\n readonly fillValues = input<AXMSafetyPlanFillValues>({});\n\n //#endregion\n\n //#region ----- State Signals -----\n\n private readonly fillDirty = signal(false);\n private readonly saving = signal(false);\n private skipClosePersist = false;\n protected readonly draftValues = signal<AXMSafetyPlanFillValues>({});\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 protected readonly resolvedActionSet = computed((): AXMSafetyPlanPreviewWorkflowActionSet | undefined => {\n const raw = this.safeInputValue(this.workflowActionSet) as unknown;\n if (raw === 'draft' || raw === 'assigned' || raw === 'locked') {\n return raw;\n }\n return undefined;\n });\n\n protected readonly showDraftActions = computed(() => this.resolvedActionSet() === 'draft');\n protected readonly showAssignedActions = computed(() => this.resolvedActionSet() === 'assigned');\n protected readonly showLockedActions = computed(() => this.resolvedActionSet() === 'locked');\n protected readonly canEditFill = computed(\n () => this.resolvedActionSet() === 'draft' || this.resolvedActionSet() === 'assigned' || this.isEditableRequested(),\n );\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n private readonly hydrateFillValues = effect(() => {\n if (this.fillDirty()) {\n return;\n }\n this.draftValues.set(normalizeSafetyPlanFillValues(this.safeInputValue(this.fillValues)));\n });\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected sectionFillValue(sectionId: string): unknown {\n return this.draftValues()[sectionId];\n }\n\n protected onSectionFillValueChange(sectionId: string, value: unknown): void {\n if (!sectionId || !this.canEditFill()) {\n return;\n }\n this.fillDirty.set(true);\n this.draftValues.update((current) => ({ ...current, [sectionId]: value }));\n }\n\n override async onClosing(e: AXComponentClosing): Promise<void> {\n if (this.skipClosePersist) {\n this.skipClosePersist = false;\n return;\n }\n if (!this.isEditableRequested()) {\n return;\n }\n if (!(await this.persistFillValues())) {\n e.cancel = true;\n }\n }\n\n protected saveAsDraft(): void {\n void this.closeAfterPersist({ saved: true, submitted: false });\n }\n\n protected submitPlan(): void {\n void this.closeAfterPersist({ saved: false, submitted: true });\n }\n\n protected savePlan(): void {\n void this.closeAfterPersist({ saved: true });\n }\n\n protected lockPlan(): void {\n void this.closeAfterPersist({ locked: true });\n }\n\n protected signOffPlan(): void {\n void this.closeAfterPersist({ signOff: true });\n }\n\n //#endregion\n\n //#region ----- Persistence -----\n\n private async closeAfterPersist(result: AXMSafetyPlanPreviewResult): Promise<void> {\n if (!(await this.persistFillValues())) {\n return;\n }\n this.skipClosePersist = true;\n this.close(result);\n }\n\n private async persistFillValues(): Promise<boolean> {\n if (!this.canEditFill()) {\n return true;\n }\n const planId = this.resolvePlanId();\n if (this.saving()) {\n return false;\n }\n if (!planId) {\n await this.showSaveError();\n return false;\n }\n\n this.saving.set(true);\n try {\n await saveSafetyPlanFillValues(this.entityService, planId, this.draftValues());\n return true;\n } catch {\n await this.showSaveError();\n return false;\n } finally {\n this.saving.set(false);\n }\n }\n\n private async showSaveError(): Promise<void> {\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n content: await this.translationService.translateAsync('@general:messages.generic.error.description'),\n closeButton: true,\n timeOut: 7000,\n });\n }\n\n private resolvePlanId(): string | undefined {\n const raw = this.safeInputValue(this.planId);\n return typeof raw === 'string' && raw.trim().length > 0 ? raw.trim() : undefined;\n }\n\n private isEditableRequested(): boolean {\n const raw = this.safeInputValue(this.editable) as unknown;\n if (raw === true || raw === 'true') {\n return true;\n }\n const actionSet = this.safeInputValue(this.workflowActionSet);\n return actionSet === 'draft' || actionSet === 'assigned';\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\">\n <div class=\"__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 <!-- ----- 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\n [section]=\"section\"\n [fillValue]=\"sectionFillValue(section.id)\"\n [editable]=\"canEditFill()\"\n (fillValueChange)=\"onSectionFillValueChange(section.id, $event)\"\n />\n }\n </div>\n }\n </div>\n\n @if (showDraftActions()) {\n <!-- ----- Save as Draft / Submit while the task is Initial or Draft ----- -->\n <div class=\"__actions\">\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"'@workplacesafety-management:safety-plan-sections.preview.actions.save-draft' | translate | async\"\n (onClick)=\"saveAsDraft()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@workplacesafety-management:safety-plan-sections.preview.actions.submit' | translate | async\"\n (onClick)=\"submitPlan()\"\n ></ax-button>\n </div>\n }\n <!-- ----- Save / Lock while the task is Assigned ----- -->\n @else if (showAssignedActions()) {\n <div class=\"__actions\">\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"'@workplacesafety-management:safety-plan-sections.preview.actions.save' | translate | async\"\n (onClick)=\"savePlan()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@workplacesafety-management:safety-plan-sections.preview.actions.lock' | translate | async\"\n (onClick)=\"lockPlan()\"\n ></ax-button>\n </div>\n }\n <!-- ----- Sign Off while the task is Locked ----- -->\n @else if (showLockedActions()) {\n <div class=\"__actions\">\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@workplacesafety-management:safety-plan-sections.preview.actions.sign-off' | translate | async\"\n (onClick)=\"signOffPlan()\"\n ></ax-button>\n </div>\n }\n</div>\n\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { AXPDataGenerator } from '@acorex-platform/framework-client/core';
|
|
2
|
+
import { resolveEntityRefId, enrichSectionTypeSnapshot, isActivitySectionType } from '@acorex-platform/module-workplacesafety-management-client/contracts';
|
|
3
|
+
|
|
4
|
+
function createSafetyPlanSectionBuilderDefaultValue() {
|
|
5
|
+
return { sections: [] };
|
|
6
|
+
}
|
|
7
|
+
function normalizeSafetyPlanSectionBuilderValue(value) {
|
|
8
|
+
if (!value || !Array.isArray(value.sections)) {
|
|
9
|
+
return createSafetyPlanSectionBuilderDefaultValue();
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
sections: value.sections.map((section, index) => normalizeSection(section, index)),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function safetyPlanSectionsToBuilderValue(rows) {
|
|
16
|
+
const ordered = [...rows].sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0) || String(a.code ?? '').localeCompare(String(b.code ?? '')));
|
|
17
|
+
return {
|
|
18
|
+
sections: ordered.map((row, index) => {
|
|
19
|
+
const legacyItem = row.items?.[0];
|
|
20
|
+
const sectionTypeId = resolveEntityRefId(legacyItem?.sectionTypeId) ??
|
|
21
|
+
resolveEntityRefId(legacyItem?.sectionType) ??
|
|
22
|
+
'';
|
|
23
|
+
const sectionType = enrichSectionTypeSnapshot(sectionTypeId, legacyItem?.sectionType);
|
|
24
|
+
const isActivity = isActivitySectionType(sectionTypeId, sectionType);
|
|
25
|
+
return {
|
|
26
|
+
id: row.id,
|
|
27
|
+
sectionTypeId,
|
|
28
|
+
sectionType,
|
|
29
|
+
title: row.title,
|
|
30
|
+
description: row.description ?? '',
|
|
31
|
+
safetyPlanId: row.safetyPlanId,
|
|
32
|
+
code: row.code,
|
|
33
|
+
sourceSafetyPlanTypeSectionId: row.sourceSafetyPlanTypeSectionId,
|
|
34
|
+
sortOrder: row.sortOrder ?? index + 1,
|
|
35
|
+
widgetOptions: normalizeWidgetOptions(row.widgetOptions),
|
|
36
|
+
items: isActivity
|
|
37
|
+
? toActivityBuilderItems(row.items ?? [], sectionTypeId, sectionType)
|
|
38
|
+
: (row.items ?? []).map((item, itemIndex) => ({
|
|
39
|
+
id: `${row.id}__item_${itemIndex + 1}`,
|
|
40
|
+
itemIds: [...(item.itemIds ?? [])],
|
|
41
|
+
items: item.items ? [...item.items] : [],
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function builderValueToSafetyPlanSectionPayloads(value, safetyPlanId) {
|
|
48
|
+
return value.sections.map((section, index) => ({
|
|
49
|
+
id: section.id,
|
|
50
|
+
safetyPlanId,
|
|
51
|
+
title: section.title,
|
|
52
|
+
description: section.description?.trim() ? section.description.trim() : undefined,
|
|
53
|
+
sectionTypeId: section.sectionTypeId,
|
|
54
|
+
sectionType: section.sectionType,
|
|
55
|
+
sourceSafetyPlanTypeSectionId: section.sourceSafetyPlanTypeSectionId,
|
|
56
|
+
sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : index + 1,
|
|
57
|
+
safetyPlanActivityId: section.safetyPlanActivityId,
|
|
58
|
+
safetyPlanActivity: section.safetyPlanActivity,
|
|
59
|
+
widgetOptions: section.widgetOptions,
|
|
60
|
+
items: section.items.map((item) => ({
|
|
61
|
+
...item,
|
|
62
|
+
itemIds: [...(item.itemIds ?? [])],
|
|
63
|
+
items: item.items ? [...item.items] : [],
|
|
64
|
+
activityRow: item.activityRow ? normalizeActivityRowPayload(item.activityRow) : undefined,
|
|
65
|
+
})),
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
function toActivityBuilderItems(items, sectionTypeId, sectionType) {
|
|
69
|
+
const rows = items
|
|
70
|
+
.map((item, index) => {
|
|
71
|
+
const rowId = resolveEntityRefId(item.items?.[0]?.id) ??
|
|
72
|
+
resolveEntityRefId(item.itemIds?.[0]) ??
|
|
73
|
+
'';
|
|
74
|
+
const title = (typeof item.title === 'string' && item.title.trim()) ||
|
|
75
|
+
item.items?.[0]?.title ||
|
|
76
|
+
undefined;
|
|
77
|
+
const hasRowData = (typeof title === 'string' && title.trim().length > 0) ||
|
|
78
|
+
!!rowId;
|
|
79
|
+
if (!hasRowData && !rowId) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
if (!rowId && !title?.trim()) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const id = rowId || AXPDataGenerator.uuid();
|
|
86
|
+
const code = (typeof item.code === 'string' && item.code.trim()) ||
|
|
87
|
+
item.items?.[0]?.code ||
|
|
88
|
+
undefined;
|
|
89
|
+
const description = (typeof item.description === 'string' && item.description.trim()) || undefined;
|
|
90
|
+
return {
|
|
91
|
+
id,
|
|
92
|
+
itemIds: [id],
|
|
93
|
+
items: [{ id, title, code }],
|
|
94
|
+
activityRow: {
|
|
95
|
+
code,
|
|
96
|
+
sortOrder: typeof item.sortOrder === 'number' ? item.sortOrder : index + 1,
|
|
97
|
+
title,
|
|
98
|
+
description,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
})
|
|
102
|
+
.filter((item) => item != null);
|
|
103
|
+
if (rows.length > 0) {
|
|
104
|
+
return rows;
|
|
105
|
+
}
|
|
106
|
+
return items.map((item, itemIndex) => ({
|
|
107
|
+
id: `${sectionTypeId || 'section'}__item_${itemIndex + 1}`,
|
|
108
|
+
itemIds: [...(item.itemIds ?? [])],
|
|
109
|
+
items: item.items ? [...item.items] : [],
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
function normalizeSection(section, index) {
|
|
113
|
+
const id = typeof section.id === 'string' && section.id ? section.id : AXPDataGenerator.uuid();
|
|
114
|
+
const sectionTypeId = resolveEntityRefId(section.sectionTypeId) ?? '';
|
|
115
|
+
const safetyPlanActivityId = resolveEntityRefId(section.safetyPlanActivityId) ?? undefined;
|
|
116
|
+
return {
|
|
117
|
+
id,
|
|
118
|
+
sectionTypeId,
|
|
119
|
+
sectionType: enrichSectionTypeSnapshot(sectionTypeId, section.sectionType),
|
|
120
|
+
title: typeof section.title === 'string' ? section.title : '',
|
|
121
|
+
description: typeof section.description === 'string' ? section.description : '',
|
|
122
|
+
safetyPlanId: typeof section.safetyPlanId === 'string' ? section.safetyPlanId : undefined,
|
|
123
|
+
code: typeof section.code === 'string' ? section.code : undefined,
|
|
124
|
+
sourceSafetyPlanTypeSectionId: typeof section.sourceSafetyPlanTypeSectionId === 'string'
|
|
125
|
+
? section.sourceSafetyPlanTypeSectionId
|
|
126
|
+
: undefined,
|
|
127
|
+
sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : index + 1,
|
|
128
|
+
required: section.required === true,
|
|
129
|
+
safetyPlanActivityId,
|
|
130
|
+
safetyPlanActivity: section.safetyPlanActivity,
|
|
131
|
+
widgetOptions: normalizeWidgetOptions(section.widgetOptions),
|
|
132
|
+
items: Array.isArray(section.items)
|
|
133
|
+
? section.items.map((item) => normalizeItem(item, id, sectionTypeId, section.sectionType))
|
|
134
|
+
: [],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function normalizeWidgetOptions(value) {
|
|
138
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
return { ...value };
|
|
142
|
+
}
|
|
143
|
+
function normalizeItem(item, sectionId, sectionTypeId, sectionType) {
|
|
144
|
+
const isActivity = isActivitySectionType(sectionTypeId, sectionType);
|
|
145
|
+
if (isActivity && item.activityRow) {
|
|
146
|
+
const activityRow = normalizeActivityRowPayload(item.activityRow);
|
|
147
|
+
const stepId = typeof item.id === 'string' && item.id && !item.id.includes('__item_') && !item.id.includes('__entity_')
|
|
148
|
+
? item.id
|
|
149
|
+
: AXPDataGenerator.uuid();
|
|
150
|
+
const title = activityRow.title?.trim() || 'Row';
|
|
151
|
+
return {
|
|
152
|
+
id: stepId,
|
|
153
|
+
itemIds: [stepId],
|
|
154
|
+
items: [{ id: stepId, title, code: activityRow.code }],
|
|
155
|
+
activityRow,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
const id = typeof item.id === 'string' && item.id ? item.id : AXPDataGenerator.uuid();
|
|
159
|
+
return {
|
|
160
|
+
id: id.includes('__item_') || id.includes('__entity_') ? id : `${sectionId}__item_${id}`,
|
|
161
|
+
itemIds: Array.isArray(item.itemIds) ? item.itemIds.filter((x) => typeof x === 'string') : [],
|
|
162
|
+
items: Array.isArray(item.items) ? item.items : [],
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
function normalizeActivityRowPayload(payload) {
|
|
166
|
+
return {
|
|
167
|
+
code: typeof payload.code === 'string' ? payload.code : undefined,
|
|
168
|
+
sortOrder: typeof payload.sortOrder === 'number' ? payload.sortOrder : undefined,
|
|
169
|
+
title: typeof payload.title === 'string' ? payload.title : undefined,
|
|
170
|
+
description: typeof payload.description === 'string' ? payload.description : undefined,
|
|
171
|
+
sections: Array.isArray(payload.sections)
|
|
172
|
+
? payload.sections.map((section) => ({
|
|
173
|
+
sectionTypeId: String(section.sectionTypeId ?? ''),
|
|
174
|
+
sectionType: section.sectionType,
|
|
175
|
+
itemIds: Array.isArray(section.itemIds) ? [...section.itemIds] : [],
|
|
176
|
+
items: Array.isArray(section.items) ? section.items.map((item) => ({ ...item })) : [],
|
|
177
|
+
sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : undefined,
|
|
178
|
+
title: typeof section.title === 'string' ? section.title : undefined,
|
|
179
|
+
}))
|
|
180
|
+
: undefined,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export { builderValueToSafetyPlanSectionPayloads as b, normalizeSafetyPlanSectionBuilderValue as n, safetyPlanSectionsToBuilderValue as s };
|
|
185
|
+
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-C0SEJsVM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-C0SEJsVM.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-sections-page/safety-plan-section-builder.types.ts"],"sourcesContent":["import { AXPDataGenerator } from '@acorex-platform/framework-client/core';\n\nimport {\n enrichSectionTypeSnapshot,\n isActivitySectionType,\n resolveEntityRefId,\n type AXMSafetyPlanSectionBuilderItemValue,\n type AXMSafetyPlanSectionBuilderSectionValue,\n type AXMSafetyPlanSectionBuilderValue,\n type AXMSafetyPlanActivityRowBuilderPayload,\n type AXMSafetyPlanActivitySectionSnapshot,\n type AXMWorkplaceSafetyManagementSafetyPlanSectionEntityModel,\n type AXMWorkplaceSafetyManagementSafetyPlanSectionItemModel,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nexport function createSafetyPlanSectionBuilderDefaultValue(): AXMSafetyPlanSectionBuilderValue {\n return { sections: [] };\n}\n\nexport function normalizeSafetyPlanSectionBuilderValue(\n value: AXMSafetyPlanSectionBuilderValue | null | undefined,\n): AXMSafetyPlanSectionBuilderValue {\n if (!value || !Array.isArray(value.sections)) {\n return createSafetyPlanSectionBuilderDefaultValue();\n }\n\n return {\n sections: value.sections.map((section, index) => normalizeSection(section, index)),\n };\n}\n\nexport function safetyPlanSectionsToBuilderValue(\n rows: AXMWorkplaceSafetyManagementSafetyPlanSectionEntityModel[],\n): AXMSafetyPlanSectionBuilderValue {\n const ordered = [...rows].sort(\n (a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0) || String(a.code ?? '').localeCompare(String(b.code ?? '')),\n );\n return {\n sections: ordered.map((row, index) => {\n const legacyItem = row.items?.[0];\n const sectionTypeId =\n resolveEntityRefId(legacyItem?.sectionTypeId) ??\n resolveEntityRefId(legacyItem?.sectionType) ??\n '';\n const sectionType = enrichSectionTypeSnapshot(sectionTypeId, legacyItem?.sectionType);\n const isActivity = isActivitySectionType(sectionTypeId, sectionType);\n\n return {\n id: row.id,\n sectionTypeId,\n sectionType,\n title: row.title,\n description: row.description ?? '',\n safetyPlanId: row.safetyPlanId,\n code: row.code,\n sourceSafetyPlanTypeSectionId: row.sourceSafetyPlanTypeSectionId,\n sortOrder: row.sortOrder ?? index + 1,\n widgetOptions: normalizeWidgetOptions(row.widgetOptions),\n items: isActivity\n ? toActivityBuilderItems(row.items ?? [], sectionTypeId, sectionType)\n : (row.items ?? []).map((item, itemIndex) => ({\n id: `${row.id}__item_${itemIndex + 1}`,\n itemIds: [...(item.itemIds ?? [])],\n items: item.items ? [...item.items] : [],\n })),\n };\n }),\n };\n}\n\nexport function builderValueToSafetyPlanSectionPayloads(\n value: AXMSafetyPlanSectionBuilderValue,\n safetyPlanId: string,\n): Array<{\n id: string;\n safetyPlanId: string;\n title: string;\n description?: string;\n sectionTypeId: string;\n sectionType?: AXMSafetyPlanSectionBuilderSectionValue['sectionType'];\n sourceSafetyPlanTypeSectionId?: string;\n sortOrder: number;\n safetyPlanActivityId?: string;\n safetyPlanActivity?: AXMSafetyPlanSectionBuilderSectionValue['safetyPlanActivity'];\n widgetOptions?: AXMSafetyPlanSectionBuilderSectionValue['widgetOptions'];\n items: AXMSafetyPlanSectionBuilderItemValue[];\n}> {\n return value.sections.map((section, index) => ({\n id: section.id,\n safetyPlanId,\n title: section.title,\n description: section.description?.trim() ? section.description.trim() : undefined,\n sectionTypeId: section.sectionTypeId,\n sectionType: section.sectionType,\n sourceSafetyPlanTypeSectionId: section.sourceSafetyPlanTypeSectionId,\n sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : index + 1,\n safetyPlanActivityId: section.safetyPlanActivityId,\n safetyPlanActivity: section.safetyPlanActivity,\n widgetOptions: section.widgetOptions,\n items: section.items.map((item) => ({\n ...item,\n itemIds: [...(item.itemIds ?? [])],\n items: item.items ? [...item.items] : [],\n activityRow: item.activityRow ? normalizeActivityRowPayload(item.activityRow) : undefined,\n })),\n }));\n}\n\nfunction toActivityBuilderItems(\n items: AXMWorkplaceSafetyManagementSafetyPlanSectionItemModel[],\n sectionTypeId: string,\n sectionType: AXMSafetyPlanSectionBuilderSectionValue['sectionType'],\n): AXMSafetyPlanSectionBuilderItemValue[] {\n const rows = items\n .map((item, index): AXMSafetyPlanSectionBuilderItemValue | null => {\n const rowId =\n resolveEntityRefId(item.items?.[0]?.id) ??\n resolveEntityRefId(item.itemIds?.[0]) ??\n '';\n const title =\n (typeof item.title === 'string' && item.title.trim()) ||\n item.items?.[0]?.title ||\n undefined;\n const hasRowData =\n (typeof title === 'string' && title.trim().length > 0) ||\n !!rowId;\n\n if (!hasRowData && !rowId) {\n return null;\n }\n\n if (!rowId && !title?.trim()) {\n return null;\n }\n\n const id = rowId || AXPDataGenerator.uuid();\n const code =\n (typeof item.code === 'string' && item.code.trim()) ||\n item.items?.[0]?.code ||\n undefined;\n const description =\n (typeof item.description === 'string' && item.description.trim()) || undefined;\n\n return {\n id,\n itemIds: [id],\n items: [{ id, title, code }],\n activityRow: {\n code,\n sortOrder: typeof item.sortOrder === 'number' ? item.sortOrder : index + 1,\n title,\n description,\n },\n };\n })\n .filter((item): item is AXMSafetyPlanSectionBuilderItemValue => item != null);\n\n if (rows.length > 0) {\n return rows;\n }\n\n return items.map((item, itemIndex) => ({\n id: `${sectionTypeId || 'section'}__item_${itemIndex + 1}`,\n itemIds: [...(item.itemIds ?? [])],\n items: item.items ? [...item.items] : [],\n }));\n}\n\nfunction normalizeSection(\n section: Partial<AXMSafetyPlanSectionBuilderSectionValue>,\n index: number,\n): AXMSafetyPlanSectionBuilderSectionValue {\n const id = typeof section.id === 'string' && section.id ? section.id : AXPDataGenerator.uuid();\n const sectionTypeId = resolveEntityRefId(section.sectionTypeId) ?? '';\n const safetyPlanActivityId = resolveEntityRefId(section.safetyPlanActivityId) ?? undefined;\n return {\n id,\n sectionTypeId,\n sectionType: enrichSectionTypeSnapshot(sectionTypeId, section.sectionType),\n title: typeof section.title === 'string' ? section.title : '',\n description: typeof section.description === 'string' ? section.description : '',\n safetyPlanId: typeof section.safetyPlanId === 'string' ? section.safetyPlanId : undefined,\n code: typeof section.code === 'string' ? section.code : undefined,\n sourceSafetyPlanTypeSectionId:\n typeof section.sourceSafetyPlanTypeSectionId === 'string'\n ? section.sourceSafetyPlanTypeSectionId\n : undefined,\n sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : index + 1,\n required: section.required === true,\n safetyPlanActivityId,\n safetyPlanActivity: section.safetyPlanActivity,\n widgetOptions: normalizeWidgetOptions(section.widgetOptions),\n items: Array.isArray(section.items)\n ? section.items.map((item) => normalizeItem(item, id, sectionTypeId, section.sectionType))\n : [],\n };\n}\n\nfunction normalizeWidgetOptions(\n value: AXMSafetyPlanSectionBuilderSectionValue['widgetOptions'] | unknown,\n): AXMSafetyPlanSectionBuilderSectionValue['widgetOptions'] | undefined {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return undefined;\n }\n return { ...(value as NonNullable<AXMSafetyPlanSectionBuilderSectionValue['widgetOptions']>) };\n}\n\nfunction normalizeItem(\n item: Partial<AXMSafetyPlanSectionBuilderItemValue>,\n sectionId: string,\n sectionTypeId: string,\n sectionType: AXMSafetyPlanSectionBuilderSectionValue['sectionType'],\n): AXMSafetyPlanSectionBuilderItemValue {\n const isActivity = isActivitySectionType(sectionTypeId, sectionType);\n if (isActivity && item.activityRow) {\n const activityRow = normalizeActivityRowPayload(item.activityRow);\n const stepId =\n typeof item.id === 'string' && item.id && !item.id.includes('__item_') && !item.id.includes('__entity_')\n ? item.id\n : AXPDataGenerator.uuid();\n const title = activityRow.title?.trim() || 'Row';\n return {\n id: stepId,\n itemIds: [stepId],\n items: [{ id: stepId, title, code: activityRow.code }],\n activityRow,\n };\n }\n\n const id = typeof item.id === 'string' && item.id ? item.id : AXPDataGenerator.uuid();\n return {\n id: id.includes('__item_') || id.includes('__entity_') ? id : `${sectionId}__item_${id}`,\n itemIds: Array.isArray(item.itemIds) ? item.itemIds.filter((x): x is string => typeof x === 'string') : [],\n items: Array.isArray(item.items) ? item.items : [],\n };\n}\n\nfunction normalizeActivityRowPayload(\n payload: AXMSafetyPlanActivityRowBuilderPayload,\n): AXMSafetyPlanActivityRowBuilderPayload {\n return {\n code: typeof payload.code === 'string' ? payload.code : undefined,\n sortOrder: typeof payload.sortOrder === 'number' ? payload.sortOrder : undefined,\n title: typeof payload.title === 'string' ? payload.title : undefined,\n description: typeof payload.description === 'string' ? payload.description : undefined,\n sections: Array.isArray(payload.sections)\n ? payload.sections.map((section) => ({\n sectionTypeId: String(section.sectionTypeId ?? ''),\n sectionType: section.sectionType,\n itemIds: Array.isArray(section.itemIds) ? [...section.itemIds] : [],\n items: Array.isArray(section.items) ? section.items.map((item) => ({ ...item })) : [],\n sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : undefined,\n title: typeof section.title === 'string' ? section.title : undefined,\n }))\n : undefined,\n };\n}\n\nexport type {\n AXMSafetyPlanSectionBuilderItemValue,\n AXMSafetyPlanSectionBuilderSectionValue,\n AXMSafetyPlanSectionBuilderValue,\n AXMSafetyPlanActivityRowBuilderPayload,\n AXMSafetyPlanActivitySectionSnapshot,\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { extractRequestErrorInfo } from '@acorex-platform/framework-client/commo
|
|
|
3
3
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { inject, Injectable } from '@angular/core';
|
|
6
|
-
import { RootConfig, dedupeSafetyPlanSectionStructure,
|
|
7
|
-
import { b as builderValueToSafetyPlanSectionPayloads, s as
|
|
6
|
+
import { RootConfig, dedupeSafetyPlanSectionStructure, isActivitySectionType, collectBuiltInRepeatableSectionTypeIds, resolveEntityRefId } from '@acorex-platform/module-workplacesafety-management-client/contracts';
|
|
7
|
+
import { b as builderValueToSafetyPlanSectionPayloads, s as safetyPlanSectionsToBuilderValue } from './acorex-platform-module-workplacesafety-management-client-safety-plan-section-builder.types-C0SEJsVM.mjs';
|
|
8
8
|
|
|
9
9
|
const SAFETY_PLAN_SECTIONS_SAVE_COMMAND = 'SafetyPlan:Sections:Save';
|
|
10
10
|
class AXMSaveSafetyPlanSectionsCommand {
|
|
@@ -25,9 +25,7 @@ class AXMSaveSafetyPlanSectionsCommand {
|
|
|
25
25
|
}
|
|
26
26
|
const sectionEntityRef = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanSection.name}`;
|
|
27
27
|
const sectionTypeEntityRef = `${RootConfig.module.name}.${RootConfig.entities.sectionType.name}`;
|
|
28
|
-
const workStepEntityRef = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanWorkStep.name}`;
|
|
29
28
|
const sectionData = this.entityService.withEntity(sectionEntityRef).data();
|
|
30
|
-
const workStepData = this.entityService.withEntity(workStepEntityRef).data();
|
|
31
29
|
try {
|
|
32
30
|
const repeatableSectionTypeIds = await this.loadRepeatableSectionTypeIds(sectionTypeEntityRef);
|
|
33
31
|
// Dedupe accidental ghost rows (same type-section source materialized twice).
|
|
@@ -39,36 +37,38 @@ class AXMSaveSafetyPlanSectionsCommand {
|
|
|
39
37
|
for (const row of existingRows) {
|
|
40
38
|
const rowId = String(row.id ?? '');
|
|
41
39
|
if (rowId && !nextIds.has(rowId)) {
|
|
42
|
-
await this.deleteWorkStepsForSection(workStepData, rowId);
|
|
43
40
|
await sectionData.delete(rowId);
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
const payloads = builderValueToSafetyPlanSectionPayloads(value, safetyPlanId);
|
|
47
44
|
for (const payload of payloads) {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
45
|
+
const isActivity = isActivitySectionType(payload.sectionTypeId, payload.sectionType);
|
|
46
|
+
const itemRows = isActivity
|
|
47
|
+
? payload.items.length > 0
|
|
48
|
+
? payload.items.map((item, index) => {
|
|
49
|
+
const title = item.activityRow?.title ?? item.items?.[0]?.title;
|
|
50
|
+
const code = item.activityRow?.code ?? item.items?.[0]?.code;
|
|
51
|
+
const description = item.activityRow?.description;
|
|
52
|
+
const activityId = item.id;
|
|
53
|
+
return {
|
|
54
|
+
sectionTypeId: payload.sectionTypeId,
|
|
55
|
+
sectionType: payload.sectionType,
|
|
56
|
+
itemIds: activityId ? [activityId] : [],
|
|
57
|
+
items: activityId ? [{ id: activityId, title, code }] : [],
|
|
58
|
+
sortOrder: item.activityRow?.sortOrder ?? index + 1,
|
|
59
|
+
title,
|
|
60
|
+
code,
|
|
61
|
+
description,
|
|
62
|
+
};
|
|
63
|
+
})
|
|
64
|
+
: [
|
|
65
|
+
{
|
|
66
|
+
sectionTypeId: payload.sectionTypeId,
|
|
67
|
+
sectionType: payload.sectionType,
|
|
68
|
+
itemIds: [],
|
|
69
|
+
items: [],
|
|
70
|
+
},
|
|
71
|
+
]
|
|
72
72
|
: payload.items.length > 0
|
|
73
73
|
? payload.items.map(({ itemIds, items }) => ({
|
|
74
74
|
sectionTypeId: payload.sectionTypeId,
|
|
@@ -106,7 +106,6 @@ class AXMSaveSafetyPlanSectionsCommand {
|
|
|
106
106
|
for (const row of refreshed.items ?? []) {
|
|
107
107
|
const rowId = String(row.id ?? '');
|
|
108
108
|
if (rowId && !keepIds.has(rowId)) {
|
|
109
|
-
await this.deleteWorkStepsForSection(workStepData, rowId);
|
|
110
109
|
await sectionData.delete(rowId);
|
|
111
110
|
}
|
|
112
111
|
}
|
|
@@ -139,69 +138,6 @@ class AXMSaveSafetyPlanSectionsCommand {
|
|
|
139
138
|
};
|
|
140
139
|
}
|
|
141
140
|
}
|
|
142
|
-
async syncWorkStepsForSection(workStepData, safetyPlanId, sectionId, workStepTypeId, workStepType, columns, items) {
|
|
143
|
-
const existing = await workStepData.query({
|
|
144
|
-
skip: 0,
|
|
145
|
-
take: 1000,
|
|
146
|
-
filter: {
|
|
147
|
-
logic: 'and',
|
|
148
|
-
filters: [{ field: 'safetyPlanSectionId', operator: { type: 'equal' }, value: sectionId }],
|
|
149
|
-
},
|
|
150
|
-
});
|
|
151
|
-
const existingRows = existing.items ?? [];
|
|
152
|
-
const existingIds = new Set(existingRows.map((row) => String(row.id ?? '')));
|
|
153
|
-
const nextIds = new Set(items.map((item) => item.id).filter((id) => typeof id === 'string' && id.length > 0));
|
|
154
|
-
for (const row of existingRows) {
|
|
155
|
-
const rowId = String(row.id ?? '');
|
|
156
|
-
if (rowId && !nextIds.has(rowId)) {
|
|
157
|
-
await workStepData.delete(rowId);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
if (!workStepTypeId) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
for (const [index, item] of items.entries()) {
|
|
164
|
-
const stepTableRow = item.stepTableRow;
|
|
165
|
-
if (!stepTableRow || !item.id) {
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
const title = stepTableRow.title?.trim() ||
|
|
169
|
-
summarizeStepTableRow(stepTableRow.cells ?? [], columns) ||
|
|
170
|
-
item.items?.[0]?.title;
|
|
171
|
-
const entityPayload = {
|
|
172
|
-
safetyPlanId,
|
|
173
|
-
safetyPlanSectionId: sectionId,
|
|
174
|
-
workStepTypeId,
|
|
175
|
-
workStepType: workStepType ?? { id: workStepTypeId },
|
|
176
|
-
title,
|
|
177
|
-
columns,
|
|
178
|
-
cells: stepTableRow.cells ?? [],
|
|
179
|
-
sortOrder: stepTableRow.sortOrder ?? index + 1,
|
|
180
|
-
};
|
|
181
|
-
if (existingIds.has(item.id)) {
|
|
182
|
-
await workStepData.update(item.id, entityPayload);
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
await workStepData.create({ ...entityPayload, id: item.id });
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
async deleteWorkStepsForSection(workStepData, sectionId) {
|
|
190
|
-
const existing = await workStepData.query({
|
|
191
|
-
skip: 0,
|
|
192
|
-
take: 1000,
|
|
193
|
-
filter: {
|
|
194
|
-
logic: 'and',
|
|
195
|
-
filters: [{ field: 'safetyPlanSectionId', operator: { type: 'equal' }, value: sectionId }],
|
|
196
|
-
},
|
|
197
|
-
});
|
|
198
|
-
for (const row of existing.items ?? []) {
|
|
199
|
-
const rowId = String(row.id ?? '');
|
|
200
|
-
if (rowId) {
|
|
201
|
-
await workStepData.delete(rowId);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
141
|
async loadRepeatableSectionTypeIds(sectionTypeEntityRef) {
|
|
206
142
|
const builtIn = collectBuiltInRepeatableSectionTypeIds();
|
|
207
143
|
try {
|
|
@@ -241,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
241
177
|
}] });
|
|
242
178
|
|
|
243
179
|
export { AXMSaveSafetyPlanSectionsCommand, SAFETY_PLAN_SECTIONS_SAVE_COMMAND };
|
|
244
|
-
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-
|
|
180
|
+
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-D0aRQHWk.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-D0aRQHWk.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-sections-page/save-safety-plan-sections.command.ts"],"sourcesContent":["import {\n AXPEntityService,\n isAXPMiddlewareAbortError,\n mapEntityStorageErrorToCommandResult,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { extractRequestErrorInfo } from '@acorex-platform/framework-client/common';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXMSafetyPlanSectionBuilderValue,\n RootConfig,\n collectBuiltInRepeatableSectionTypeIds,\n dedupeSafetyPlanSectionStructure,\n isActivitySectionType,\n resolveEntityRefId,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport {\n builderValueToSafetyPlanSectionPayloads,\n safetyPlanSectionsToBuilderValue,\n} from './safety-plan-section-builder.types';\n\nexport const SAFETY_PLAN_SECTIONS_SAVE_COMMAND = 'SafetyPlan:Sections:Save';\n\nexport interface SaveSafetyPlanSectionsInput {\n id: string;\n value: AXMSafetyPlanSectionBuilderValue;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMSaveSafetyPlanSectionsCommand implements AXPCommand<SaveSafetyPlanSectionsInput, unknown> {\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n\n async execute(input: SaveSafetyPlanSectionsInput): AXPCommandExecuteResultPromise<unknown> {\n const safetyPlanId = input?.id;\n const rawValue = input?.value ?? { sections: [] };\n\n if (!safetyPlanId) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const sectionEntityRef = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanSection.name}`;\n const sectionTypeEntityRef = `${RootConfig.module.name}.${RootConfig.entities.sectionType.name}`;\n const sectionData = this.entityService.withEntity(sectionEntityRef).data();\n\n try {\n const repeatableSectionTypeIds = await this.loadRepeatableSectionTypeIds(sectionTypeEntityRef);\n\n // Dedupe accidental ghost rows (same type-section source materialized twice).\n const value = dedupeSafetyPlanSectionStructure(rawValue, { repeatableSectionTypeIds });\n\n const existing = await this.queryPlanSections(sectionData, safetyPlanId);\n const existingRows = existing.items ?? [];\n const existingIds = new Set(existingRows.map((row) => String((row as { id?: string }).id ?? '')));\n const nextIds = new Set(value.sections.map((section) => section.id));\n\n for (const row of existingRows) {\n const rowId = String((row as { id?: string }).id ?? '');\n if (rowId && !nextIds.has(rowId)) {\n await sectionData.delete(rowId);\n }\n }\n\n const payloads = builderValueToSafetyPlanSectionPayloads(value, safetyPlanId);\n for (const payload of payloads) {\n const isActivity = isActivitySectionType(payload.sectionTypeId, payload.sectionType);\n\n const itemRows = isActivity\n ? payload.items.length > 0\n ? payload.items.map((item, index) => {\n const title = item.activityRow?.title ?? item.items?.[0]?.title;\n const code = item.activityRow?.code ?? item.items?.[0]?.code;\n const description = item.activityRow?.description;\n const activityId = item.id;\n return {\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n itemIds: activityId ? [activityId] : [],\n items: activityId ? [{ id: activityId, title, code }] : [],\n sortOrder: item.activityRow?.sortOrder ?? index + 1,\n title,\n code,\n description,\n };\n })\n : [\n {\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n itemIds: [] as string[],\n items: [] as { id: string; title?: string; code?: string }[],\n },\n ]\n : payload.items.length > 0\n ? payload.items.map(({ itemIds, items }) => ({\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n itemIds,\n items,\n }))\n : [\n {\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n itemIds: [] as string[],\n items: [] as { id: string; title?: string; code?: string }[],\n },\n ];\n\n const entityPayload = {\n safetyPlanId: payload.safetyPlanId,\n title: payload.title,\n description: payload.description,\n sourceSafetyPlanTypeSectionId: payload.sourceSafetyPlanTypeSectionId,\n sortOrder: payload.sortOrder,\n items: itemRows,\n ...(payload.widgetOptions !== undefined ? { widgetOptions: payload.widgetOptions } : {}),\n };\n\n if (existingIds.has(payload.id)) {\n await sectionData.update(payload.id, entityPayload as never);\n } else {\n await sectionData.create({ ...entityPayload, id: payload.id } as never);\n }\n }\n\n const refreshed = await this.queryPlanSections(sectionData, safetyPlanId);\n const deduped = dedupeSafetyPlanSectionStructure(\n safetyPlanSectionsToBuilderValue(\n (refreshed.items ?? []) as Parameters<typeof safetyPlanSectionsToBuilderValue>[0],\n ),\n { repeatableSectionTypeIds },\n );\n const keepIds = new Set(deduped.sections.map((section) => section.id));\n\n for (const row of refreshed.items ?? []) {\n const rowId = String((row as { id?: string }).id ?? '');\n if (rowId && !keepIds.has(rowId)) {\n await sectionData.delete(rowId);\n }\n }\n\n const cleaned =\n keepIds.size === (refreshed.items ?? []).length\n ? refreshed\n : await this.queryPlanSections(sectionData, safetyPlanId);\n\n const sections = (cleaned.items ?? []).filter((row) =>\n keepIds.has(String((row as { id?: string }).id ?? '')),\n );\n\n return {\n success: true,\n kind: 'object',\n data: { id: safetyPlanId, value, sections },\n message: {\n text: await this.translationService.translateAsync('@general:messages.generic.success.description'),\n },\n };\n } catch (error) {\n if (isAXPMiddlewareAbortError(error)) {\n return mapEntityStorageErrorToCommandResult(error);\n }\n\n const httpInfo = extractRequestErrorInfo(error);\n const text =\n (typeof httpInfo?.message === 'string' && httpInfo.message.startsWith('@')\n ? httpInfo.message\n : null) ??\n (error instanceof Error && error.message.startsWith('@') ? error.message : null) ??\n (await this.translationService.translateAsync('@general:messages.generic.error.description'));\n\n return {\n success: false,\n message: { type: 'error', text },\n };\n }\n }\n\n private async loadRepeatableSectionTypeIds(sectionTypeEntityRef: string): Promise<string[]> {\n const builtIn = collectBuiltInRepeatableSectionTypeIds();\n try {\n // Prefer client-side filtering — boolean equality filters can miss stored values.\n const result = await this.entityService.withEntity(sectionTypeEntityRef).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\n private queryPlanSections(\n sectionData: ReturnType<ReturnType<AXPEntityService['withEntity']>['data']>,\n safetyPlanId: string,\n ) {\n return sectionData.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{ field: 'safetyPlanId', operator: { type: 'equal' }, value: safetyPlanId }],\n },\n } as never);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as AXMWorkplaceSafetyManagementMenuProvider, a as AXMWorkplaceSafetyManagementModule, b as AXMWorkplaceSafetyManagementSearchCommandProvider } from './acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-
|
|
1
|
+
export { A as AXMWorkplaceSafetyManagementMenuProvider, a as AXMWorkplaceSafetyManagementModule, b as AXMWorkplaceSafetyManagementSearchCommandProvider } from './acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-C3a08xjg.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client.mjs.map
|