@acorex-platform/module-workplacesafety-management-client 0.0.30 → 0.0.33
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-mzaaZ6T3.mjs +549 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-mzaaZ6T3.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-hierarchy-levels.mjs +509 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-hierarchy-levels.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-measure.mjs +297 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-measure.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-ppe-rule.mjs +431 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-ppe-rule.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-register.mjs +416 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-register.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-risk.mjs +476 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-risk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard.mjs +482 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-ppe-item.mjs +345 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-ppe-item.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-section.mjs +1458 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-section.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.mjs +1313 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.mjs +295 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-work-step.mjs +542 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-work-step.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan.mjs +470 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-template.mjs +369 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-template.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-section-type.mjs +299 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-section-type.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-work-step-type.mjs +1358 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entities-work-step-type.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-CeTmhod5.mjs +170 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-CeTmhod5.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-hierarchy-levels.entity-Dae2kkZe.mjs +372 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-hierarchy-levels.entity-Dae2kkZe.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-measure.entity-CpNcN6Pf.mjs +160 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-control-measure.entity-CpNcN6Pf.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-ppe-rule.entity-BcsAnO9h.mjs +294 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-ppe-rule.entity-BcsAnO9h.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-register.entity-C9wGZ3hB.mjs +279 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-register.entity-C9wGZ3hB.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-risk.entity-AUr2GVLU.mjs +339 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard-risk.entity-AUr2GVLU.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard.entity-J6fveZKA.mjs +345 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-hazard.entity-J6fveZKA.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-ppe-item.entity-3fQPlBBf.mjs +208 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-ppe-item.entity-3fQPlBBf.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section-dependency-BRGcQo7H.mjs +971 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section-dependency-BRGcQo7H.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section.entity-BPx-3rYX.mjs +356 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-section.entity-BPx-3rYX.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type-section.entity-_nG09ZpE.mjs +211 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type-section.entity-_nG09ZpE.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type.entity-CIH7W9R7.mjs +158 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-type.entity-CIH7W9R7.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-work-step.entity-DmFYsBhI.mjs +405 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan-work-step.entity-DmFYsBhI.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan.entity-CUDh_ZfQ.mjs +333 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-plan.entity-CUDh_ZfQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-template.entity-BxNUXvae.mjs +232 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-safety-template.entity-BxNUXvae.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-section-type.entity-73MUyaIk.mjs +162 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-section-type.entity-73MUyaIk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-work-step-type.entity-Ujxum2GY.mjs +256 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog-work-step-type.entity-Ujxum2GY.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog.mjs +2 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts.mjs +739 -806
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-CnTEwf_l.mjs +93 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-CnTEwf_l.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.component-BI9VkzNw.mjs +117 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.component-BI9VkzNw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.service-BBhH7KP1.mjs → acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.service-tMrUDnCb.mjs} +48 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.service-tMrUDnCb.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-index-kF37zgd4.mjs → acorex-platform-module-workplacesafety-management-client-index-LxP1eZLY.mjs} +391 -92
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-index-LxP1eZLY.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-local-entities.mjs +43 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-local-entities.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer-widget-column.component-D2Mmow12.mjs +42 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer-widget-column.component-D2Mmow12.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer-widget-edit.component-CQtVhCgw.mjs +101 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer-widget-edit.component-CQtVhCgw.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer.service-YS8FHiRu.mjs +221 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer.service-YS8FHiRu.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer.util-2Kl3_3sg.mjs +61 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-ppe-item-viewer.util-2Kl3_3sg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-C2X3VpEt.mjs → acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-Dd9xdo_y.mjs} +3 -7
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-Dd9xdo_y.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-6i0RkG3L.mjs +557 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-preview-modal.component-6i0RkG3L.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs → acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BlPzzCc2.mjs} +13 -25
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BlPzzCc2.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client.mjs +1 -460
- package/fesm2022/acorex-platform-module-workplacesafety-management-client.mjs.map +1 -1
- package/package.json +70 -2
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-hierarchy-levels.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-control-measure.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-ppe-rule.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-register.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard-risk.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-hazard.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-ppe-item.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-section.d.ts +9 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-work-step.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-template.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-section-type.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entities-work-step-type.d.ts +5 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts-entity-catalog.d.ts +10 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts.d.ts +89 -140
- package/types/acorex-platform-module-workplacesafety-management-client-local-entities.d.ts +12 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-C-qrrqOV.mjs +0 -203
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-C-qrrqOV.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.service-BBhH7KP1.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-risk-ppe-rule-status.provider-DtqzcWh0.mjs +0 -42
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-risk-ppe-rule-status.provider-DtqzcWh0.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-index-kF37zgd4.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-C2X3VpEt.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.mjs","sources":["../../../../libs/modules/workplacesafety-management/contracts/src/root-config.ts","../../../../libs/modules/workplacesafety-management/contracts/src/section-type-entity-map.ts","../../../../libs/modules/workplacesafety-management/contracts/src/safety-plan-section-unique-type.util.ts","../../../../libs/modules/workplacesafety-management/contracts/src/safety-plan-section-structure.util.ts","../../../../libs/modules/workplacesafety-management/contracts/src/safety-plan-section-dependency.ts","../../../../libs/modules/workplacesafety-management/contracts/src/entities/safety-plan-type-section/safety-plan-type-section.entity.ts","../../../../libs/modules/workplacesafety-management/contracts/src/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type-section.ts"],"sourcesContent":["const config = {\n i18n: 'workplacesafety-management',\n module: 'WorkplaceSafetyManagement',\n} as const;\n\nexport const RootConfig = {\n config,\n module: {\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-building-shield',\n },\n entities: {\n hazard: {\n name: 'Hazard',\n source: `${config.module}.Hazard`,\n title: `@${config.i18n}:hazards.entities.hazard.title`,\n titlePlural: `@${config.i18n}:hazards.entities.hazard.plural`,\n icon: 'fa-light fa-triangle-exclamation',\n },\n hazardRegister: {\n name: 'HazardRegister',\n source: `${config.module}.HazardRegister`,\n title: `@${config.i18n}:hazard-registers.entities.hazard-register.title`,\n titlePlural: `@${config.i18n}:hazard-registers.entities.hazard-register.plural`,\n icon: 'fa-light fa-clipboard-list',\n },\n ppeItem: {\n name: 'PpeItem',\n source: `${config.module}.PpeItem`,\n title: `@${config.i18n}:ppe-items.entities.ppe-item.title`,\n titlePlural: `@${config.i18n}:ppe-items.entities.ppe-item.plural`,\n icon: 'fa-light fa-helmet-safety',\n },\n hazardPpeRule: {\n name: 'HazardPpeRule',\n source: `${config.module}.HazardPpeRule`,\n title: `@${config.i18n}:hazard-ppe-rules.entities.hazard-ppe-rule.title`,\n titlePlural: `@${config.i18n}:hazard-ppe-rules.entities.hazard-ppe-rule.plural`,\n icon: 'fa-light fa-user-helmet-safety',\n },\n hazardRisk: {\n name: 'HazardRisk',\n source: `${config.module}.HazardRisk`,\n title: `@${config.i18n}:hazard-risks.entities.hazard-risk.title`,\n titlePlural: `@${config.i18n}:hazard-risks.entities.hazard-risk.plural`,\n icon: 'fa-light fa-shield-exclamation',\n },\n controlHierarchyLevels: {\n name: 'ControlHierarchyLevels',\n source: `${config.module}.ControlHierarchyLevels`,\n title: `@${config.i18n}:control-measure-types.entities.control-measure-type.title`,\n titlePlural: `@${config.i18n}:control-measure-types.entities.control-measure-type.plural`,\n icon: 'fa-light fa-layer-group',\n },\n controlMeasure: {\n name: 'ControlMeasure',\n source: `${config.module}.ControlMeasure`,\n title: `@${config.i18n}:control-measures.entities.control-measure.title`,\n titlePlural: `@${config.i18n}:control-measures.entities.control-measure.plural`,\n icon: 'fa-light fa-shield-check',\n },\n safetyPlan: {\n name: 'SafetyPlan',\n source: `${config.module}.SafetyPlan`,\n title: `@${config.i18n}:safety-plans.entities.safety-plan.title`,\n titlePlural: `@${config.i18n}:safety-plans.entities.safety-plan.plural`,\n icon: 'fa-light fa-file-shield',\n },\n safetyPlanType: {\n name: 'SafetyPlanType',\n source: `${config.module}.SafetyPlanType`,\n title: `@${config.i18n}:safety-plan-types.entities.safety-plan-type.title`,\n titlePlural: `@${config.i18n}:safety-plan-types.entities.safety-plan-type.plural`,\n icon: 'fa-light fa-file-lines',\n },\n safetyPlanTypeSection: {\n name: 'SafetyPlanTypeSection',\n source: `${config.module}.SafetyPlanTypeSection`,\n title: `@${config.i18n}:safety-plan-type-sections.entities.safety-plan-type-section.title`,\n titlePlural: `@${config.i18n}:safety-plan-type-sections.entities.safety-plan-type-section.plural`,\n icon: 'fa-light fa-list-ol',\n },\n sectionType: {\n name: 'SectionType',\n source: `${config.module}.SectionType`,\n title: `@${config.i18n}:section-types.entities.section-type.title`,\n titlePlural: `@${config.i18n}:section-types.entities.section-type.plural`,\n icon: 'fa-light fa-list-tree',\n },\n safetyTemplate: {\n name: 'SafetyTemplate',\n source: `${config.module}.SafetyTemplate`,\n title: `@${config.i18n}:safety-templates.entities.safety-template.title`,\n titlePlural: `@${config.i18n}:safety-templates.entities.safety-template.plural`,\n icon: 'fa-light fa-file-lines',\n },\n safetyPlanSection: {\n name: 'SafetyPlanSection',\n source: `${config.module}.SafetyPlanSection`,\n title: `@${config.i18n}:safety-plan-sections.entities.safety-plan-section.title`,\n titlePlural: `@${config.i18n}:safety-plan-sections.entities.safety-plan-section.plural`,\n icon: 'fa-light fa-list-ol',\n },\n workStepType: {\n name: 'WorkStepType',\n source: `${config.module}.WorkStepType`,\n title: `@${config.i18n}:work-step-types.entities.work-step-type.title`,\n titlePlural: `@${config.i18n}:work-step-types.entities.work-step-type.plural`,\n icon: 'fa-light fa-list-tree',\n },\n safetyPlanWorkStep: {\n name: 'SafetyPlanWorkStep',\n source: `${config.module}.SafetyPlanWorkStep`,\n title: `@${config.i18n}:safety-plan-work-steps.entities.safety-plan-work-step.title`,\n titlePlural: `@${config.i18n}:safety-plan-work-steps.entities.safety-plan-work-step.plural`,\n icon: 'fa-light fa-list-check',\n },\n },\n queries: {\n dashboard: {\n openHazardsKpi: `${config.module}:Dashboard:OpenHazardsKpi`,\n highRisksKpi: `${config.module}:Dashboard:HighRisksKpi`,\n activeSafetyPlansKpi: `${config.module}:Dashboard:ActiveSafetyPlansKpi`,\n take5ChecklistsKpi: `${config.module}:Dashboard:Take5ChecklistsKpi`,\n take5CompletedKpi: `${config.module}:Dashboard:Take5CompletedKpi`,\n hazardsByCategoryDonut: `${config.module}:Dashboard:HazardsByCategoryDonut`,\n risksByRatingBar: `${config.module}:Dashboard:RisksByRatingBar`,\n plansByTypeBar: `${config.module}:Dashboard:PlansByTypeBar`,\n hazardsByStatusBar: `${config.module}:Dashboard:HazardsByStatusBar`,\n ppeCoverageDonut: `${config.module}:Dashboard:PpeCoverageDonut`,\n },\n },\n};\n","//#region ---- Imports ----\n\nimport type {\n AXMSectionTypeCode,\n AXMSectionTypeSnapshot,\n} from './entities/section-type/section-type.types';\n\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Built-in section type IDs ----\n\n/** Stable IDs for seeded built-in section types (shared by server mocks and client lookups). */\n\nexport const WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS = {\n hazard: 'c1d2e3f4-a5b6-4789-c001-000000000001',\n\n hazardRisk: 'c1d2e3f4-a5b6-4789-c001-000000000002',\n\n ppe: 'c1d2e3f4-a5b6-4789-c001-000000000003',\n\n control: 'c1d2e3f4-a5b6-4789-c001-000000000004',\n\n hierarchyLevel: 'c1d2e3f4-a5b6-4789-c001-000000000005',\n\n custom: 'c1d2e3f4-a5b6-4789-c001-000000000006',\n\n ppeHazards: 'c1d2e3f4-a5b6-4789-c001-000000000007',\n\n riskMatrix: 'c1d2e3f4-a5b6-4789-c001-000000000008',\n\n hazardRiskPpe: 'c1d2e3f4-a5b6-4789-c001-000000000009',\n\n stepTable: 'c1d2e3f4-a5b6-4789-c001-00000000000a',\n} as const;\n\nexport interface AXMBuiltInSectionTypeMeta {\n sectionTypeKey: AXMSectionTypeCode;\n\n itemEntityName?: string;\n\n /** When true, a safety plan may include this section type more than once. */\n isRepeatable?: boolean;\n}\n\nconst moduleName = RootConfig.module.name;\n\n/** Maps section type codes to the entity that supplies selectable items. */\n\nexport const WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE: Readonly<\n Record<AXMSectionTypeCode, string | undefined>\n> = {\n Hazard: `${moduleName}.${RootConfig.entities.hazard.name}`,\n\n HazardRisk: `${moduleName}.${RootConfig.entities.hazardRisk.name}`,\n\n Ppe: `${moduleName}.${RootConfig.entities.ppeItem.name}`,\n\n PpeHazards: `${moduleName}.${RootConfig.entities.hazardPpeRule.name}`,\n\n HazardRiskPpe: undefined,\n\n Control: `${moduleName}.${RootConfig.entities.controlMeasure.name}`,\n\n HierarchyLevel: `${moduleName}.${RootConfig.entities.controlHierarchyLevels.name}`,\n\n RiskMatrix: 'RiskManagement.RiskMatrixCell',\n\n Custom: undefined,\n\n /** Host section for SafetyPlanWorkStep rows (managed by the section builder, not a catalog picker). */\n StepTable: undefined,\n};\n\n/** Built-in section types resolved by stable section type id. */\n\nexport const WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID: Readonly<\n Record<string, AXMBuiltInSectionTypeMeta>\n> = {\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazard]: {\n sectionTypeKey: 'Hazard',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.Hazard,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRisk]: {\n sectionTypeKey: 'HazardRisk',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.HazardRisk,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppe]: {\n sectionTypeKey: 'Ppe',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.Ppe,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppeHazards]: {\n sectionTypeKey: 'PpeHazards',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.PpeHazards,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRiskPpe]: {\n sectionTypeKey: 'HazardRiskPpe',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.HazardRiskPpe,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.control]: {\n sectionTypeKey: 'Control',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.Control,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hierarchyLevel]: {\n sectionTypeKey: 'HierarchyLevel',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.HierarchyLevel,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.riskMatrix]: {\n sectionTypeKey: 'RiskMatrix',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.RiskMatrix,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.custom]: {\n sectionTypeKey: 'Custom',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.Custom,\n\n isRepeatable: true,\n },\n\n [WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.stepTable]: {\n sectionTypeKey: 'StepTable',\n\n itemEntityName: WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_BY_CODE.StepTable,\n\n isRepeatable: true,\n },\n};\n\n/** Default entity so the lookup widget mounts before a section type is chosen. */\n\nexport const WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_FALLBACK = `${moduleName}.${RootConfig.entities.hazard.name}`;\n\n//#endregion\n\n//#region ---- Snapshot helpers ----\n\nexport function resolveSectionTypeKey(\n sectionTypeId: string | undefined,\n\n snapshot?: AXMSectionTypeSnapshot,\n): AXMSectionTypeCode | undefined {\n const fromSnapshot = snapshot?.sectionTypeKey;\n\n if (typeof fromSnapshot === 'string' && fromSnapshot.length > 0) {\n return fromSnapshot as AXMSectionTypeCode;\n }\n\n if (!sectionTypeId) {\n return undefined;\n }\n\n return WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID[sectionTypeId]\n ?.sectionTypeKey;\n}\n\nexport function resolveSectionItemEntityName(\n sectionTypeId: string | undefined,\n\n snapshot?: AXMSectionTypeSnapshot,\n): string | undefined {\n const fromSnapshot = snapshot?.itemEntityName;\n\n if (typeof fromSnapshot === 'string' && fromSnapshot.length > 0) {\n return fromSnapshot;\n }\n\n if (!sectionTypeId) {\n return undefined;\n }\n\n return WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID[sectionTypeId]\n ?.itemEntityName;\n}\n\n/** Adds runtime lookup metadata (`sectionTypeKey`, `itemEntityName`) from built-in id map. */\n\nexport function enrichSectionTypeSnapshot(\n sectionTypeId: string | undefined,\n\n snapshot?: AXMSectionTypeSnapshot,\n): AXMSectionTypeSnapshot | undefined {\n if (!sectionTypeId) {\n return snapshot;\n }\n\n return {\n ...snapshot,\n\n id: sectionTypeId,\n\n sectionTypeKey: resolveSectionTypeKey(sectionTypeId, snapshot),\n\n itemEntityName: resolveSectionItemEntityName(sectionTypeId, snapshot),\n\n isRepeatable:\n snapshot?.isRepeatable ??\n WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID[sectionTypeId]?.isRepeatable,\n };\n}\n\n//#endregion\n\n//#region ---- Dynamic entity expressions ----\n\nfunction buildSectionTypeEntityExpressionById(\n sectionTypeIdPath: string,\n): string {\n const parts = Object.entries(WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID)\n\n .filter(([, meta]) => meta.itemEntityName)\n\n .map(\n ([id, meta]) =>\n `context.eval('${sectionTypeIdPath}') === '${id}' ? '${meta.itemEntityName}'`,\n );\n\n return `{{ ${parts.join(' : ')} : '${WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_FALLBACK}' }}`;\n}\n\nfunction buildSectionTypeEntityExpressionWithSnapshotFallback(\n sectionTypeIdPath: string,\n itemEntityNamePath: string,\n): string {\n const byId = buildSectionTypeEntityExpressionById(sectionTypeIdPath).slice(3, -2);\n return `{{ context.eval('${itemEntityNamePath}') || (${byId}) }}`;\n}\n\n/**\n * For repeater / nested FormField widgets — `>` walks up to the row where `sectionType` is exposed.\n */\n\nexport const WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_EXPRESSION =\n buildSectionTypeEntityExpressionWithSnapshotFallback(\n '>sectionType.id',\n\n '>sectionType.itemEntityName',\n );\n\n/**\n * For flat dialog / dynamic forms — sibling fields share the same context (no parent path).\n */\nexport const WORKPLACE_SAFETY_SECTION_TYPE_ENTITY_EXPRESSION_SIBLING =\n buildSectionTypeEntityExpressionWithSnapshotFallback(\n 'sectionType.id',\n 'sectionType.itemEntityName',\n );\n\n//#endregion\n","/**\n * Shared helpers for Safety Plan Section type identity (repeatable vs one-off).\n * Leaf module — imports only other contract leaves (no client/server layers).\n */\n\nimport { WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID } from './section-type-entity-map';\n\n//#region ---- Helpers ----\n\nfunction resolveRefId(raw: unknown): string {\n if (typeof raw === 'string' && raw.trim().length > 0) {\n return raw.trim();\n }\n if (typeof raw === 'number' && Number.isFinite(raw)) {\n return String(raw);\n }\n if (raw && typeof raw === 'object') {\n const id = (raw as { id?: unknown }).id;\n if (typeof id === 'string' && id.trim().length > 0) {\n return id.trim();\n }\n }\n return '';\n}\n\n/**\n * True when this section type may appear more than once in a Safety Plan.\n * Checks (in order): snapshot flag, explicit allow-list, built-in section type meta.\n */\nexport function isSafetyPlanSectionTypeRepeatable(\n sectionTypeId: string,\n options?: {\n repeatableSectionTypeIds?: readonly string[];\n sectionType?: { isRepeatable?: boolean };\n },\n): boolean {\n const id = resolveRefId(sectionTypeId);\n if (!id) {\n return false;\n }\n if (options?.sectionType?.isRepeatable === true) {\n return true;\n }\n const allowList = new Set(\n (options?.repeatableSectionTypeIds ?? []).map((entry) => resolveRefId(entry)).filter(Boolean),\n );\n if (allowList.has(id)) {\n return true;\n }\n return WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID[id]?.isRepeatable === true;\n}\n\n/** Built-in section type ids that are always treated as repeatable. */\nexport function collectBuiltInRepeatableSectionTypeIds(): string[] {\n return Object.entries(WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID)\n .filter(([, meta]) => meta.isRepeatable === true)\n .map(([id]) => id);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport type {\n AXMSafetyPlanSectionBuilderSectionValue,\n AXMSafetyPlanSectionBuilderValue,\n} from './safety-plan-section-builder.types';\nimport type {\n AXMWorkplaceSafetyManagementSafetyPlanTypeSectionEntityModel,\n AXMWorkplaceSafetyManagementSafetyPlanTypeSectionTypeItemModel,\n} from './entities/safety-plan-type-section/safety-plan-type-section.types';\nimport type { AXMSectionTypeSnapshot } from './entities/section-type/section-type.types';\nimport { WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID } from './section-type-entity-map';\nimport { isSafetyPlanSectionTypeRepeatable } from './safety-plan-section-unique-type.util';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMSafetyPlanSectionStructureItem {\n id: string;\n sectionTypeId: string;\n sectionType?: AXMSectionTypeSnapshot;\n title: string;\n description?: string;\n /** Links the plan section back to the type template it was created from. */\n sourceSafetyPlanTypeSectionId?: string;\n /** Display / persistence order (1-based). */\n sortOrder: number;\n /** True when sourced from an `isDefault` type section — must remain on the plan. */\n required?: boolean;\n items: Array<{\n id: string;\n itemIds: string[];\n items?: { id: string; title?: string; code?: string }[];\n }>;\n safetyPlanId?: string;\n code?: string;\n}\n\nexport interface AXMSafetyPlanSectionStructureValue {\n sections: AXMSafetyPlanSectionStructureItem[];\n}\n\nexport interface AXMSafetyPlanSectionStructureValidationContext {\n /** Section type ids allowed for this plan type (from its type-section config). */\n allowedSectionTypeIds: readonly string[];\n /** Source type-section ids that must remain present. */\n requiredSourceTypeSectionIds: readonly string[];\n /** Section type ids that may appear more than once on a plan. */\n repeatableSectionTypeIds?: readonly string[];\n}\n\nexport type AXMSafetyPlanSectionStructureValidationIssueCode =\n | 'REQUIRED_SECTION_MISSING'\n | 'SECTION_TYPE_NOT_ALLOWED'\n | 'INVALID_TYPE_SECTION_TEMPLATE'\n | 'INVALID_SORT_ORDER';\n\nexport interface AXMSafetyPlanSectionStructureValidationIssue {\n code: AXMSafetyPlanSectionStructureValidationIssueCode;\n messageKey: string;\n details?: Record<string, unknown>;\n}\n\n//#endregion\n\n//#region ---- Display helpers ----\n\n/** Coerces a stored string or locale map into a single display string. */\nexport function asSafetyPlanDisplayText(value: unknown): string {\n if (typeof value === 'string') {\n return value.trim();\n }\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n const rec = value as Record<string, unknown>;\n for (const locale of ['en-US', 'en-AU', 'en', 'fa-IR']) {\n const part = rec[locale];\n if (typeof part === 'string' && part.trim()) {\n return part.trim();\n }\n }\n for (const part of Object.values(rec)) {\n if (typeof part === 'string' && part.trim()) {\n return part.trim();\n }\n }\n }\n return '';\n}\n\nexport function buildSectionTypeRelationSnapshot(\n sectionTypeId: string,\n snapshot?: {\n title?: unknown;\n code?: unknown;\n description?: unknown;\n isRepeatable?: unknown;\n } | null,\n): AXMSectionTypeSnapshot {\n const title = asSafetyPlanDisplayText(snapshot?.title);\n const code = asSafetyPlanDisplayText(snapshot?.code);\n const description = asSafetyPlanDisplayText(snapshot?.description);\n return {\n id: sectionTypeId,\n ...(title ? { title } : {}),\n ...(code ? { code } : {}),\n ...(description ? { description } : {}),\n ...(snapshot?.isRepeatable === true ? { isRepeatable: true } : {}),\n };\n}\n\nfunction resolveSectionTypeTitle(\n sectionTypeId: string,\n sectionType?: { title?: unknown; code?: unknown } | null,\n): string {\n const title = asSafetyPlanDisplayText(sectionType?.title);\n if (title) {\n return title;\n }\n const code = asSafetyPlanDisplayText(sectionType?.code);\n if (code) {\n return code;\n }\n const builtIn = WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID[sectionTypeId]?.sectionTypeKey;\n if (builtIn) {\n return builtIn;\n }\n return sectionTypeId;\n}\n\n/**\n * Title persisted on SafetyPlanSection. Never stores a bare UUID — the UI translate\n * pipe treats unknown keys as empty, which made seeded section headers blank.\n */\nexport function resolveSafetyPlanSectionPersistedTitle(\n sectionTitle: unknown,\n sectionTypeId: string,\n snapshot?: { title?: unknown; code?: unknown } | null,\n): string {\n const explicit = asSafetyPlanDisplayText(sectionTitle);\n if (explicit && explicit !== sectionTypeId) {\n return explicit;\n }\n const fromType = resolveSectionTypeTitle(sectionTypeId, snapshot);\n if (fromType && fromType !== sectionTypeId) {\n return fromType;\n }\n return 'Section';\n}\n\n//#endregion\n\n//#region ---- Ref helpers ----\n\n/** True when a type-section row is marked as the plan-type default template. */\nexport function isSafetyPlanTypeSectionDefault(row: { isDefault?: unknown } | null | undefined): boolean {\n const value = row?.isDefault;\n return value === true || value === 1 || value === 'true';\n}\n\n/** Extracts a stable entity id from a raw lookup / context value. */\nexport function resolveEntityRefId(raw: unknown): string | null {\n if (typeof raw === 'string' && raw.trim().length > 0) {\n return raw.trim();\n }\n if (typeof raw === 'number' && Number.isFinite(raw)) {\n return String(raw);\n }\n if (raw && typeof raw === 'object') {\n const id = (raw as { id?: unknown }).id;\n if (typeof id === 'string' && id.trim().length > 0) {\n return id.trim();\n }\n }\n return null;\n}\n\nfunction resolveSectionTypeId(\n typeRow: AXMWorkplaceSafetyManagementSafetyPlanTypeSectionTypeItemModel | null | undefined,\n): string {\n if (!typeRow) {\n return '';\n }\n return (\n resolveEntityRefId(typeRow.sectionTypeId) ??\n resolveEntityRefId(typeRow.sectionType) ??\n resolveEntityRefId(typeRow.sectionType?.id) ??\n ''\n );\n}\n\n//#endregion\n\n//#region ---- Build from type sections ----\n\nlet structureIdSeq = 0;\nfunction nextStructureId(prefix: string): string {\n structureIdSeq += 1;\n const rand = createRandomUuid();\n return prefix ? `${prefix}-${rand}` : rand;\n}\n\n/**\n * Builds an empty editable section structure from SafetyPlanTypeSection rows for one plan type.\n *\n * Uses `isDefault` rows when present; otherwise falls back to all active rows for that type\n * (so a mis-flagged template still produces a structure). One plan section per `sectionTypeIds`\n * entry, titled from the Section Type, ordered by type-section `sortOrder` then repeater order.\n */\nexport function buildSectionStructureFromTypeSections(\n typeSections: readonly AXMWorkplaceSafetyManagementSafetyPlanTypeSectionEntityModel[],\n options?: { createId?: () => string },\n): AXMSafetyPlanSectionStructureValue {\n const createId = options?.createId ?? (() => nextStructureId(''));\n const active = typeSections\n .filter((row) => row && row.isArchived !== true)\n .slice()\n .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0) || String(a.title ?? '').localeCompare(String(b.title ?? '')));\n\n const defaults = active.filter((row) => isSafetyPlanTypeSectionDefault(row));\n const sourceRows = defaults.length > 0 ? defaults : active;\n\n const sections: AXMSafetyPlanSectionStructureItem[] = [];\n const seenSourceTypePairs = new Set<string>();\n let sortOrder = 1;\n\n for (const typeSection of sourceRows) {\n const typeRows = Array.isArray(typeSection.sectionTypeIds) ? typeSection.sectionTypeIds : [];\n if (!typeRows.length) {\n continue;\n }\n\n for (const typeRow of typeRows) {\n const sectionTypeId = resolveSectionTypeId(typeRow);\n if (!sectionTypeId) {\n continue;\n }\n\n // One plan section per (type-section source, section type) — prevents\n // accidental double expansion when the same type is listed twice.\n const sourceId = typeof typeSection.id === 'string' ? typeSection.id : '';\n const pairKey = sourceId ? `${sourceId}|${sectionTypeId}` : sectionTypeId;\n if (seenSourceTypePairs.has(pairKey)) {\n continue;\n }\n seenSourceTypePairs.add(pairKey);\n\n const sectionType = buildSectionTypeRelationSnapshot(sectionTypeId, typeRow.sectionType);\n const sectionId = createId();\n sections.push({\n id: sectionId,\n sectionTypeId,\n sectionType,\n title: resolveSafetyPlanSectionPersistedTitle(undefined, sectionTypeId, sectionType),\n description: asSafetyPlanDisplayText(sectionType.description),\n sourceSafetyPlanTypeSectionId: typeSection.id,\n sortOrder: sortOrder++,\n required: isSafetyPlanTypeSectionDefault(typeSection) || defaults.length === 0,\n items: [\n {\n id: `${sectionId}__item_1`,\n itemIds: [],\n items: [],\n },\n ],\n });\n }\n }\n\n return { sections };\n}\n\n/**\n * Removes accidental ghost rows from double materialization of the same type-section\n * source. Distinct sections of the same type are kept. Reassigns contiguous 1-based\n * `sortOrder` to preserve display order.\n */\nexport function dedupeSafetyPlanSectionStructure<\n T extends AXMSafetyPlanSectionStructureValue | AXMSafetyPlanSectionBuilderValue,\n>(\n structure: T,\n _options?: { repeatableSectionTypeIds?: readonly string[] },\n): T {\n type Section = AXMSafetyPlanSectionStructureItem | AXMSafetyPlanSectionBuilderSectionValue;\n\n const sections: readonly Section[] = Array.isArray(structure?.sections)\n ? (structure.sections as readonly Section[])\n : [];\n const seenSourceTypePairs = new Set<string>();\n const deduped: Section[] = [];\n\n for (const section of sections) {\n const sectionTypeId = resolveEntityRefId(section.sectionTypeId) ?? String(section.sectionTypeId ?? '').trim();\n if (!sectionTypeId) {\n continue;\n }\n\n const sourceId = String(section.sourceSafetyPlanTypeSectionId ?? '').trim();\n const sourcePairKey = sourceId ? `${sourceId}|${sectionTypeId}` : '';\n\n // Same type-section source + section type must never appear twice (double materialization).\n if (sourcePairKey && seenSourceTypePairs.has(sourcePairKey)) {\n continue;\n }\n\n if (sourcePairKey) {\n seenSourceTypePairs.add(sourcePairKey);\n }\n deduped.push(section);\n }\n\n return {\n ...structure,\n sections: deduped.map((section, index) => ({\n ...section,\n sortOrder: index + 1,\n })),\n } as T;\n}\n\nexport function collectAllowedSectionTypeIds(\n typeSections: readonly AXMWorkplaceSafetyManagementSafetyPlanTypeSectionEntityModel[],\n): string[] {\n const ids = new Set<string>();\n for (const typeSection of typeSections) {\n if (typeSection.isArchived === true) {\n continue;\n }\n for (const row of typeSection.sectionTypeIds ?? []) {\n const id = resolveSectionTypeId(row);\n if (id) {\n ids.add(id);\n }\n }\n }\n return [...ids];\n}\n\nexport function collectRequiredSourceTypeSectionIds(\n typeSections: readonly AXMWorkplaceSafetyManagementSafetyPlanTypeSectionEntityModel[],\n): string[] {\n return typeSections\n .filter((row) => row.isArchived !== true && isSafetyPlanTypeSectionDefault(row))\n .map((row) => row.id)\n .filter((id): id is string => typeof id === 'string' && id.length > 0);\n}\n\n/**\n * Validates that a plan-type section template does not list the same\n * non-repeatable section type more than once (across rows and within a single row's repeater).\n */\nexport function validateSafetyPlanTypeSectionTemplate(\n typeSections: readonly AXMWorkplaceSafetyManagementSafetyPlanTypeSectionEntityModel[],\n repeatableSectionTypeIds: readonly string[] = [],\n): AXMSafetyPlanSectionStructureValidationIssue[] {\n const seen = new Map<string, { title: string; sourceSafetyPlanTypeSectionId?: string }>();\n const issues: AXMSafetyPlanSectionStructureValidationIssue[] = [];\n\n for (const typeSection of typeSections) {\n if (typeSection.isArchived === true) {\n continue;\n }\n for (const row of typeSection.sectionTypeIds ?? []) {\n const sectionTypeId = resolveSectionTypeId(row);\n if (\n !sectionTypeId ||\n isSafetyPlanSectionTypeRepeatable(sectionTypeId, {\n repeatableSectionTypeIds,\n sectionType: row.sectionType as { isRepeatable?: boolean } | undefined,\n })\n ) {\n continue;\n }\n const sectionTypeTitle = resolveSafetyPlanSectionPersistedTitle(\n undefined,\n sectionTypeId,\n row.sectionType,\n );\n if (seen.has(sectionTypeId)) {\n issues.push({\n code: 'INVALID_TYPE_SECTION_TEMPLATE',\n messageKey:\n '@workplacesafety-management:safety-plans.messages.section-structure.invalid-type-template-duplicate',\n details: {\n sectionTypeId,\n sectionTypeTitle,\n sourceSafetyPlanTypeSectionId: typeSection.id,\n previousSourceSafetyPlanTypeSectionId: seen.get(sectionTypeId)?.sourceSafetyPlanTypeSectionId,\n },\n });\n continue;\n }\n seen.set(sectionTypeId, {\n title: sectionTypeTitle,\n sourceSafetyPlanTypeSectionId: typeSection.id,\n });\n }\n }\n\n return issues;\n}\n\n//#endregion\n\n//#region ---- Validation ----\n\nexport function validateSafetyPlanSectionStructure(\n structure: AXMSafetyPlanSectionStructureValue | AXMSafetyPlanSectionBuilderValue | null | undefined,\n context: AXMSafetyPlanSectionStructureValidationContext,\n): AXMSafetyPlanSectionStructureValidationIssue[] {\n const sections = Array.isArray(structure?.sections) ? structure!.sections : [];\n const issues: AXMSafetyPlanSectionStructureValidationIssue[] = [];\n\n const presentSourceIds = new Set(\n sections\n .map((s) => (s as AXMSafetyPlanSectionStructureItem).sourceSafetyPlanTypeSectionId)\n .filter((id): id is string => typeof id === 'string' && id.length > 0),\n );\n\n for (const requiredSourceId of context.requiredSourceTypeSectionIds) {\n if (!presentSourceIds.has(requiredSourceId)) {\n issues.push({\n code: 'REQUIRED_SECTION_MISSING',\n messageKey:\n '@workplacesafety-management:safety-plans.messages.section-structure.required-section-missing',\n details: { sourceSafetyPlanTypeSectionId: requiredSourceId },\n });\n }\n }\n\n const allowed = new Set(context.allowedSectionTypeIds);\n\n const sortOrders: number[] = [];\n for (const section of sections) {\n const sectionTypeId =\n resolveEntityRefId((section as { sectionTypeId?: unknown }).sectionTypeId) ??\n String((section as { sectionTypeId?: string }).sectionTypeId ?? '').trim();\n if (!sectionTypeId) {\n continue;\n }\n\n const sectionType = (section as { sectionType?: { title?: string; code?: string; isRepeatable?: boolean } })\n .sectionType;\n const sectionTypeTitle = resolveSafetyPlanSectionPersistedTitle(\n undefined,\n sectionTypeId,\n sectionType,\n );\n\n if (allowed.size > 0 && !allowed.has(sectionTypeId)) {\n issues.push({\n code: 'SECTION_TYPE_NOT_ALLOWED',\n messageKey:\n '@workplacesafety-management:safety-plans.messages.section-structure.section-type-not-allowed',\n details: { sectionTypeId, sectionTypeTitle, sectionId: (section as { id?: string }).id },\n });\n }\n\n const sortOrder = (section as AXMSafetyPlanSectionStructureItem).sortOrder;\n if (typeof sortOrder === 'number' && Number.isFinite(sortOrder)) {\n sortOrders.push(sortOrder);\n }\n }\n\n if (sortOrders.length !== sections.length) {\n issues.push({\n code: 'INVALID_SORT_ORDER',\n messageKey: '@workplacesafety-management:safety-plans.messages.section-structure.invalid-sort-order',\n });\n } else {\n const unique = new Set(sortOrders);\n if (unique.size !== sortOrders.length) {\n issues.push({\n code: 'INVALID_SORT_ORDER',\n messageKey: '@workplacesafety-management:safety-plans.messages.section-structure.invalid-sort-order',\n details: { reason: 'duplicate' },\n });\n }\n }\n\n return issues;\n}\n\nexport function toBuilderValueFromStructure(\n structure: AXMSafetyPlanSectionStructureValue,\n): AXMSafetyPlanSectionBuilderValue {\n return {\n sections: structure.sections.map((section) => ({\n id: section.id,\n sectionTypeId: section.sectionTypeId,\n sectionType: section.sectionType,\n title: section.title,\n description: section.description ?? '',\n safetyPlanId: section.safetyPlanId,\n code: section.code,\n sourceSafetyPlanTypeSectionId: section.sourceSafetyPlanTypeSectionId,\n sortOrder: section.sortOrder,\n required: section.required,\n items: section.items.map((item) => ({\n id: item.id,\n itemIds: [...(item.itemIds ?? [])],\n items: item.items ? [...item.items] : [],\n })),\n })),\n };\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXMSectionTypeCode, AXMSectionTypeSnapshot } from './entities/section-type/section-type.types';\nimport type {\n AXMSafetyPlanSectionBuilderItemValue,\n AXMSafetyPlanSectionBuilderSectionValue,\n AXMSafetyPlanSectionBuilderValue,\n} from './safety-plan-section-builder.types';\nimport {\n resolveSectionItemEntityName,\n resolveSectionTypeKey,\n WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID,\n WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS,\n} from './section-type-entity-map';\nimport { asSafetyPlanDisplayText } from './safety-plan-section-structure.util';\n\n//#endregion\n\n//#region ---- Dependency config ----\n\n/** Parent section type whose selected item IDs constrain the child lookup. */\nexport interface AXMSectionTypeParentFilterDependency {\n kind: 'parentFilter';\n parentSectionTypeKey: AXMSectionTypeCode;\n /** Field on the child lookup entity used for filtering (e.g. `hazardId`). */\n filterField: string;\n}\n\n/** Child lookup is filtered by IDs derived from parent entity records (e.g. `riskMatrixId` on HazardRisk). */\nexport interface AXMSectionTypeDerivedFilterDependency {\n kind: 'derivedFromParent';\n parentSectionTypeKey: AXMSectionTypeCode;\n /** Field path on the parent entity record used to resolve filter values. */\n resolveField: 'riskMatrixId';\n /** Field on the child lookup entity (typically `id`). */\n filterField: string;\n}\n\nexport type AXMSectionTypeDependency =\n | AXMSectionTypeParentFilterDependency\n | AXMSectionTypeDerivedFilterDependency;\n\n/** Declarative section-type dependencies resolved from prior sections in plan order. */\nexport const WORKPLACE_SAFETY_SECTION_TYPE_DEPENDENCIES: Partial<\n Record<AXMSectionTypeCode, AXMSectionTypeDependency>\n> = {\n HazardRisk: {\n kind: 'parentFilter',\n parentSectionTypeKey: 'Hazard',\n filterField: 'hazardId',\n },\n PpeHazards: {\n kind: 'parentFilter',\n parentSectionTypeKey: 'Hazard',\n filterField: 'hazardId',\n },\n HazardRiskPpe: {\n kind: 'parentFilter',\n parentSectionTypeKey: 'HazardRisk',\n filterField: 'hazardRiskId',\n },\n RiskMatrix: {\n kind: 'derivedFromParent',\n parentSectionTypeKey: 'HazardRisk',\n resolveField: 'riskMatrixId',\n filterField: 'id',\n },\n};\n\n/** Section types cleared when upstream hazard selections change. */\nexport const WORKPLACE_SAFETY_DOWNSTREAM_FROM_HAZARD: readonly AXMSectionTypeCode[] = [\n 'HazardRisk',\n 'PpeHazards',\n 'HazardRiskPpe',\n 'RiskMatrix',\n];\n\n/** Section types cleared when upstream hazard-risk selections change. */\nexport const WORKPLACE_SAFETY_DOWNSTREAM_FROM_HAZARD_RISK: readonly AXMSectionTypeCode[] = [\n 'HazardRiskPpe',\n 'RiskMatrix',\n];\n\nexport type AXMHazardRiskRecordLoader = (hazardRiskIds: string[]) => Promise<Record<string, unknown>[]>;\n\n//#endregion\n\n//#region ---- Lookup helpers ----\n\nexport const PARENT_HAZARD_IDS_CONTEXT_KEY = 'parentHazardIds';\n\nexport const PARENT_HAZARD_RISK_IDS_CONTEXT_KEY = 'parentHazardRiskIds';\n\n/** Expose paths when a section type is selected (shared by entity repeater and builder dialog). */\nexport const WORKPLACE_SAFETY_SECTION_TYPE_LOOKUP_EXPOSE = [\n { source: 'id', target: 'sectionType.id' },\n { source: 'title', target: 'sectionType.title' },\n { source: 'code', target: 'sectionType.code' },\n { source: 'description', target: 'sectionType.description' },\n { source: 'isRepeatable', target: 'sectionType.isRepeatable' },\n];\n\n/** Auto-fill section description when section type is selected. */\nexport const WORKPLACE_SAFETY_SECTION_TYPE_DESCRIPTION_SYNC_TRIGGERS = [\n {\n event: \"{{ events.context('sectionTypeId') }}\",\n action:\n \"{{ const items = widget.output('selectedItems'); const selectedDescription = Array.isArray(items) ? items[0]?.description : undefined; const d = selectedDescription || context.eval('sectionType.description') || ''; context.set('sectionTypeDescription', d); const descriptionWidget = widget.find('sectionTypeDescription'); if (descriptionWidget) { descriptionWidget.setValue(d); } }}\",\n },\n {\n event: \"{{ events.context('sectionType.description') }}\",\n action:\n \"{{ const d = context.eval('sectionType.description') || ''; context.set('sectionTypeDescription', d); const descriptionWidget = widget.find('sectionTypeDescription'); if (descriptionWidget) { descriptionWidget.setValue(d); } }}\",\n },\n];\n\n/** Auto-fill section title when section type is selected. */\nexport const WORKPLACE_SAFETY_SECTION_TYPE_TITLE_SYNC_TRIGGERS = [\n {\n event: \"{{ events.context('sectionTypeId') }}\",\n action:\n \"{{ const items = widget.output('selectedItems'); const selectedTitle = Array.isArray(items) ? items[0]?.title : undefined; const t = selectedTitle || context.eval('sectionType.title') || ''; if (t) { context.set('title', t); const titleWidget = widget.find('title'); if (titleWidget) { titleWidget.setValue(t); } } }}\",\n },\n {\n event: \"{{ events.context('sectionType.title') }}\",\n action:\n \"{{ const t = context.eval('sectionType.title') || ''; if (t) { context.set('title', t); const titleWidget = widget.find('title'); if (titleWidget) { titleWidget.setValue(t); } } }}\",\n },\n];\n\n/** Shared lookup widget options for section type pickers (builder dialog and entity forms). */\nexport const WORKPLACE_SAFETY_SECTION_TYPE_LOOKUP_WIDGET_OPTIONS: Record<string, unknown> = {\n look: 'select',\n allowSearch: true,\n textField: 'code',\n textTemplate: '{code} — {description}',\n valueField: 'id',\n columns: ['code', 'title', 'description'],\n expose: WORKPLACE_SAFETY_SECTION_TYPE_LOOKUP_EXPOSE,\n triggers: [\n ...WORKPLACE_SAFETY_SECTION_TYPE_TITLE_SYNC_TRIGGERS,\n ...WORKPLACE_SAFETY_SECTION_TYPE_DESCRIPTION_SYNC_TRIGGERS,\n ],\n};\n\n//#endregion\n\n//#region ---- Resolver API ----\n\nexport function getSectionTypeDependency(\n sectionTypeKey: string | undefined,\n): AXMSectionTypeDependency | undefined {\n if (!sectionTypeKey) {\n return undefined;\n }\n return WORKPLACE_SAFETY_SECTION_TYPE_DEPENDENCIES[sectionTypeKey as AXMSectionTypeCode];\n}\n\nexport function sectionTypeKeyFromSection(\n section: Pick<AXMSafetyPlanSectionBuilderSectionValue, 'sectionType' | 'sectionTypeId'>,\n): AXMSectionTypeCode | undefined {\n const sectionTypeId = section.sectionTypeId || section.sectionType?.id;\n const key = resolveSectionTypeKey(sectionTypeId, section.sectionType);\n return key;\n}\n\nfunction collectSectionItemIds(\n section: AXMSafetyPlanSectionBuilderSectionValue | undefined,\n sectionTypeKey: AXMSectionTypeCode,\n): string[] {\n if (!section?.items?.length || sectionTypeKeyFromSection(section) !== sectionTypeKey) {\n return [];\n }\n const ids = new Set<string>();\n for (const item of section.items) {\n for (const id of item.itemIds ?? []) {\n if (typeof id === 'string' && id.length > 0) {\n ids.add(id);\n }\n }\n }\n return [...ids];\n}\n\n/** Collects item IDs from sections up to `sectionIndex` whose type matches `parentSectionTypeKey`. */\nexport function resolveParentItemIds(\n sections: AXMSafetyPlanSectionBuilderSectionValue[],\n sectionIndex: number,\n parentSectionTypeKey: AXMSectionTypeCode,\n): string[] {\n const ids = new Set<string>();\n const lastIndex = Math.min(sectionIndex, sections.length - 1);\n for (let index = 0; index <= lastIndex; index += 1) {\n collectSectionItemIds(sections[index], parentSectionTypeKey).forEach((id) => ids.add(id));\n }\n return [...ids];\n}\n\n/** Collects hazard IDs from earlier sections and Hazard rows in the current section. */\nexport function resolveParentHazardIds(\n sections: AXMSafetyPlanSectionBuilderSectionValue[],\n sectionIndex: number,\n parentSectionTypeKey: AXMSectionTypeCode = 'Hazard',\n): string[] {\n return resolveParentItemIds(sections, sectionIndex, parentSectionTypeKey);\n}\n\n/** Collects hazard-risk IDs from prior HazardRisk sections up to `sectionIndex`. */\nexport function resolveParentHazardRiskIds(\n sections: AXMSafetyPlanSectionBuilderSectionValue[],\n sectionIndex: number,\n): string[] {\n return resolveParentItemIds(sections, sectionIndex, 'HazardRisk');\n}\n\nfunction parentItemSignature(\n sections: AXMSafetyPlanSectionBuilderSectionValue[],\n sectionIndex: number,\n parentSectionTypeKey: AXMSectionTypeCode,\n): string {\n return resolveParentItemIds(sections, sectionIndex, parentSectionTypeKey).sort().join('|');\n}\n\nfunction shouldClearSectionOnParentChange(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n sectionIndex: number,\n changeIndex: number,\n parentTypeKey: AXMSectionTypeCode,\n downstreamTypes: readonly AXMSectionTypeCode[],\n): boolean {\n if (sectionIndex < changeIndex) {\n return false;\n }\n const sectionKey = sectionTypeKeyFromSection(section);\n if (!sectionKey || !downstreamTypes.includes(sectionKey)) {\n return false;\n }\n if (sectionIndex === changeIndex && sectionKey === parentTypeKey) {\n return false;\n }\n return section.items.some((item) => (item.itemIds?.length ?? 0) > 0);\n}\n\nfunction clearSectionItems(\n section: AXMSafetyPlanSectionBuilderSectionValue,\n): AXMSafetyPlanSectionBuilderSectionValue {\n return {\n ...section,\n items: section.items.map((item) => ({ ...item, itemIds: [], items: [] })),\n };\n}\n\n/**\n * When upstream hazard or hazard-risk selections change, clears item rows in later dependent sections.\n */\nexport function clearDependentItemsOnParentChange(\n previous: AXMSafetyPlanSectionBuilderValue,\n next: AXMSafetyPlanSectionBuilderValue,\n): AXMSafetyPlanSectionBuilderValue {\n if (!next.sections.length) {\n return next;\n }\n\n let changeIndex = next.sections.length;\n let hazardChanged = false;\n let hazardRiskChanged = false;\n\n for (let index = 0; index < next.sections.length; index += 1) {\n const prevHazardSig = parentItemSignature(previous.sections, index, 'Hazard');\n const nextHazardSig = parentItemSignature(next.sections, index, 'Hazard');\n if (prevHazardSig !== nextHazardSig) {\n changeIndex = Math.min(changeIndex, index);\n hazardChanged = true;\n }\n\n const prevRiskSig = parentItemSignature(previous.sections, index, 'HazardRisk');\n const nextRiskSig = parentItemSignature(next.sections, index, 'HazardRisk');\n if (prevRiskSig !== nextRiskSig) {\n changeIndex = Math.min(changeIndex, index);\n hazardRiskChanged = true;\n }\n }\n\n if (changeIndex === next.sections.length) {\n return next;\n }\n\n return {\n sections: next.sections.map((section, sectionIndex) => {\n const clearFromHazard =\n hazardChanged &&\n shouldClearSectionOnParentChange(\n section,\n sectionIndex,\n changeIndex,\n 'Hazard',\n WORKPLACE_SAFETY_DOWNSTREAM_FROM_HAZARD,\n );\n const clearFromHazardRisk =\n hazardRiskChanged &&\n shouldClearSectionOnParentChange(\n section,\n sectionIndex,\n changeIndex,\n 'HazardRisk',\n WORKPLACE_SAFETY_DOWNSTREAM_FROM_HAZARD_RISK,\n );\n\n if (!clearFromHazard && !clearFromHazardRisk) {\n return section;\n }\n return clearSectionItems(section);\n }),\n };\n}\n\nexport function extractRiskMatrixIdsFromHazardRisks(records: Record<string, unknown>[]): string[] {\n const ids = new Set<string>();\n for (const record of records) {\n const id = record['riskMatrixId'];\n if (typeof id === 'string' && id.length > 0) {\n ids.add(id);\n }\n }\n return [...ids];\n}\n\nfunction buildInFilter(field: string, values: string[]): Record<string, unknown> | null {\n const unique = [...new Set(values.filter((id) => id.length > 0))];\n if (!unique.length) {\n return null;\n }\n return {\n field,\n operator: { type: 'in' },\n value: unique,\n };\n}\n\n/** Filter that matches no records when parent context exists but derived IDs are empty. */\nfunction buildEmptyResultFilter(field: string): Record<string, unknown> {\n return {\n field,\n operator: { type: 'in' },\n value: ['00000000-0000-0000-0000-000000000000'],\n };\n}\n\nexport function resolveSafetyPlanSectionItemFilter(\n sectionTypeId: string,\n parentHazardIds: string[],\n parentHazardRiskIds: string[] = [],\n): Record<string, unknown> | null {\n const sectionTypeKey = resolveSectionTypeKey(sectionTypeId);\n const dependency = getSectionTypeDependency(sectionTypeKey);\n if (!dependency || dependency.kind !== 'parentFilter') {\n return null;\n }\n\n const parentIds =\n dependency.parentSectionTypeKey === 'Hazard' ? parentHazardIds : parentHazardRiskIds;\n if (!parentIds.length) {\n return null;\n }\n\n return buildInFilter(dependency.filterField, parentIds);\n}\n\nexport async function resolveSafetyPlanSectionItemFilterAsync(\n sectionTypeId: string,\n sections: AXMSafetyPlanSectionBuilderSectionValue[],\n sectionIndex: number,\n loadHazardRisks: AXMHazardRiskRecordLoader,\n): Promise<Record<string, unknown> | null> {\n const sectionTypeKey = resolveSectionTypeKey(sectionTypeId);\n const dependency = getSectionTypeDependency(sectionTypeKey);\n if (!dependency) {\n return null;\n }\n\n if (dependency.kind === 'parentFilter') {\n const parentIds = resolveParentItemIds(sections, sectionIndex, dependency.parentSectionTypeKey);\n if (!parentIds.length) {\n return null;\n }\n return buildInFilter(dependency.filterField, parentIds);\n }\n\n const parentIds = resolveParentItemIds(sections, sectionIndex, dependency.parentSectionTypeKey);\n if (!parentIds.length) {\n return null;\n }\n\n const records = await loadHazardRisks(parentIds);\n const derivedIds = extractRiskMatrixIdsFromHazardRisks(records);\n\n if (!derivedIds.length) {\n return buildEmptyResultFilter(dependency.filterField);\n }\n\n return buildInFilter(dependency.filterField, derivedIds);\n}\n\nconst defaultItemIdsPlaceholderKey =\n '@workplacesafety-management:safety-plan-sections.entities.safety-plan-section.fields.item-ids.placeholder';\n\n/** Clears item selection when section type changes in item dialog context. */\nexport const WORKPLACE_SAFETY_SECTION_ITEM_LOOKUP_CLEAR_ON_SECTION_TYPE_TRIGGERS = [\n {\n event: \"{{ events.context('sectionType.id') }}\",\n action: \"{{ widget.setValue([]); context.set('items', []); }}\",\n },\n {\n event: \"{{ events.context('sectionTypeId') }}\",\n action: \"{{ widget.setValue([]); context.set('items', []); }}\",\n },\n];\n\n/**\n * Reloads lookup data after section type is resolved (`sectionType.id`, `itemEntityName`).\n */\nexport const WORKPLACE_SAFETY_SECTION_ITEM_LOOKUP_REFRESH_ON_SECTION_TYPE_EXPOSE_TRIGGERS = [\n {\n event: \"{{ events.context('sectionType.id') }}\",\n action: '{{ widget.refresh(); }}',\n },\n {\n event: \"{{ events.context('sectionType.itemEntityName') }}\",\n action: '{{ widget.refresh(); }}',\n },\n {\n event: \"{{ events.context('sectionTypeId') }}\",\n action: '{{ widget.refresh(); }}',\n },\n];\n\nexport const WORKPLACE_SAFETY_SECTION_ITEM_LOOKUP_SECTION_TYPE_TRIGGERS = [\n ...WORKPLACE_SAFETY_SECTION_ITEM_LOOKUP_CLEAR_ON_SECTION_TYPE_TRIGGERS,\n ...WORKPLACE_SAFETY_SECTION_ITEM_LOOKUP_REFRESH_ON_SECTION_TYPE_EXPOSE_TRIGGERS,\n];\n\nfunction isPpeRuleSectionType(sectionTypeId: string): boolean {\n return (\n sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppeHazards ||\n sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRiskPpe\n );\n}\n\nfunction buildSectionTypeItemTextFieldExpression(sectionTypeIdPath: string): string {\n const ppeHazardsId = WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppeHazards;\n const hazardRiskPpeId = WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRiskPpe;\n return `{{ [ '${ppeHazardsId}', '${hazardRiskPpeId}' ].includes(context.eval('${sectionTypeIdPath}')) ? 'ppeItem.title' : 'title' }}`;\n}\n\nfunction buildSectionTypeItemColumnsExpression(sectionTypeIdPath: string): string {\n const ppeHazardsId = WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppeHazards;\n const hazardRiskPpeId = WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRiskPpe;\n const riskMatrixId = WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.riskMatrix;\n return `{{ context.eval('${sectionTypeIdPath}') === '${riskMatrixId}' ? ['code', 'title', 'matrix'] : [ '${ppeHazardsId}', '${hazardRiskPpeId}' ].includes(context.eval('${sectionTypeIdPath}')) ? ['code', 'ppeItem.title', 'requirementType'] : ['code', 'title'] }}`;\n}\n\nfunction buildSectionTypeDependentParentFilter(\n sectionTypeIdPath: string,\n parentIdsContextKey: string,\n parentSectionTypeKey: AXMSectionTypeCode,\n): Record<string, unknown> {\n const dependentSectionTypeIds = (\n Object.entries(WORKPLACE_SAFETY_SECTION_TYPE_DEPENDENCIES) as Array<\n [AXMSectionTypeCode, AXMSectionTypeDependency]\n >\n )\n .filter(([, config]) => config.kind === 'parentFilter' && config.parentSectionTypeKey === parentSectionTypeKey)\n .map(([key]) => {\n const id = Object.entries(WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_BY_ID).find(\n ([, meta]) => meta.sectionTypeKey === key,\n )?.[0];\n return id ? `'${id}'` : undefined;\n })\n .filter((id): id is string => Boolean(id))\n .join(',');\n\n return {\n field: parentSectionTypeKey === 'Hazard' ? 'hazardId' : 'hazardRiskId',\n operator: { type: 'in' },\n value: `{{ [${dependentSectionTypeIds}].includes(context.eval('${sectionTypeIdPath}')) ? ((context.eval('${parentIdsContextKey}') || []).length ? context.eval('${parentIdsContextKey}') : undefined) : undefined }}`,\n };\n}\n\nfunction buildSectionTypeDependentHazardFilter(\n sectionTypeIdPath: string,\n parentHazardIdsContextKey: string,\n): Record<string, unknown> {\n return buildSectionTypeDependentParentFilter(sectionTypeIdPath, parentHazardIdsContextKey, 'Hazard');\n}\n\nconst sectionItemLookupExpose = [\n { source: 'id', target: 'items.{id}' },\n { source: 'title', target: 'items.{title}' },\n { source: 'code', target: 'items.{code}' },\n { source: 'ppeItem.id', target: 'items.{id}' },\n { source: 'ppeItem.title', target: 'items.{title}' },\n { source: 'ppeItem.code', target: 'items.{code}' },\n];\n\n/** Shared item lookup options for builder item dialog (`sectionType.*` in dialog context). */\nexport function buildSafetyPlanSectionItemLookupOptions(\n entityExpression: string,\n options?: {\n /** Context path to section type id, e.g. `sectionType.id`. */\n sectionTypeIdPath?: string;\n /** Dialog context key for upstream hazard IDs (read at runtime; do not embed IDs in options). */\n parentHazardIdsContextKey?: string;\n /** Dialog context key for upstream hazard-risk IDs. */\n parentHazardRiskIdsContextKey?: string;\n defaultPlaceholderKey?: string;\n },\n): Record<string, unknown> {\n const sectionTypeIdPath = options?.sectionTypeIdPath ?? 'sectionType.id';\n const lookup: Record<string, unknown> = {\n entity: entityExpression,\n look: 'lookup',\n multiple: true,\n allowSearch: true,\n textField: buildSectionTypeItemTextFieldExpression(sectionTypeIdPath),\n columns: buildSectionTypeItemColumnsExpression(sectionTypeIdPath),\n placeholder: options?.defaultPlaceholderKey ?? defaultItemIdsPlaceholderKey,\n expose: sectionItemLookupExpose,\n triggers: WORKPLACE_SAFETY_SECTION_ITEM_LOOKUP_SECTION_TYPE_TRIGGERS,\n };\n\n const filters: Record<string, unknown>[] = [];\n if (options?.parentHazardIdsContextKey) {\n filters.push(\n buildSectionTypeDependentHazardFilter(sectionTypeIdPath, options.parentHazardIdsContextKey),\n );\n }\n if (options?.parentHazardRiskIdsContextKey) {\n filters.push(\n buildSectionTypeDependentParentFilter(\n sectionTypeIdPath,\n options.parentHazardRiskIdsContextKey,\n 'HazardRisk',\n ),\n );\n }\n if (filters.length === 1) {\n lookup['filter'] = filters[0];\n } else if (filters.length > 1) {\n lookup['filter'] = { logic: 'and', filters };\n }\n\n return lookup;\n}\n\n/** Lookup options with entity data-selector popup UI (`look: 'lookup'`). */\nexport function buildSafetyPlanSectionItemSelectorOptions(\n entityExpression: string,\n options?: Parameters<typeof buildSafetyPlanSectionItemLookupOptions>[1],\n): Record<string, unknown> {\n return {\n ...buildSafetyPlanSectionItemLookupOptions(entityExpression, options),\n look: 'lookup',\n };\n}\n\n/** Selector column: string names are visible; `{ visible: false }` is queried for widget context only. */\nexport type AXMSafetyPlanSectionItemColumn = string | { name: string; visible?: boolean };\n\nexport function resolveSafetyPlanSectionItemColumns(sectionTypeId: string): AXMSafetyPlanSectionItemColumn[] {\n if (sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppeHazards) {\n return ['code', 'ppeItem.title', 'requirementType'];\n }\n if (sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRiskPpe) {\n return ['code', 'hazardRisk.title', 'ppeItem.title', 'requirementType'];\n }\n if (sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.riskMatrix) {\n return [\n 'code',\n 'title',\n 'matrix',\n { name: 'likelihoodIds', visible: false },\n { name: 'severityIds', visible: false },\n { name: 'likelihoodId', visible: false },\n { name: 'severityId', visible: false },\n { name: 'matrixOrientation', visible: false },\n ];\n }\n return ['code', 'title'];\n}\n\nexport function resolveSafetyPlanSectionItemEntityKey(\n sectionTypeId: string,\n sectionType?: AXMSectionTypeSnapshot,\n): string | undefined {\n return resolveSectionItemEntityName(sectionTypeId, sectionType);\n}\n\nexport function mapSafetyPlanSectionSelectedItems(\n sectionTypeId: string,\n selectedItems: Array<Record<string, unknown>>,\n): Array<{ id: string; title?: string; code?: string }> {\n const isPpeHazards = sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.ppeHazards;\n const isHazardRiskPpe = sectionTypeId === WORKPLACE_SAFETY_BUILT_IN_SECTION_TYPE_IDS.hazardRiskPpe;\n\n return selectedItems\n .map((item) => {\n if (isPpeHazards || isHazardRiskPpe) {\n const ppeItem = item['ppeItem'] as Record<string, unknown> | undefined;\n const id = String(ppeItem?.['id'] ?? item['id'] ?? '');\n return {\n id,\n title: asSafetyPlanDisplayText(ppeItem?.['title']) || undefined,\n code: asSafetyPlanDisplayText(ppeItem?.['code']) || undefined,\n };\n }\n return {\n id: String(item['id'] ?? ''),\n title: asSafetyPlanDisplayText(item['title']) || undefined,\n code: asSafetyPlanDisplayText(item['code']) || undefined,\n };\n })\n .filter((item) => item.id.length > 0);\n}\n\nexport function dedupeSafetyPlanSectionItemSelection(\n item: AXMSafetyPlanSectionBuilderItemValue,\n): AXMSafetyPlanSectionBuilderItemValue {\n const seen = new Set<string>();\n const itemIds: string[] = [];\n const items: NonNullable<AXMSafetyPlanSectionBuilderItemValue['items']> = [];\n\n for (let index = 0; index < (item.itemIds?.length ?? 0); index += 1) {\n const id = item.itemIds?.[index];\n if (typeof id !== 'string' || !id || seen.has(id)) {\n continue;\n }\n seen.add(id);\n itemIds.push(id);\n const snapshot =\n item.items?.find((entry) => entry?.id === id) ??\n (item.items?.[index]?.id === id || !item.items?.[index]?.id ? item.items?.[index] : undefined);\n items.push({\n id,\n title: asSafetyPlanDisplayText(snapshot?.title) || undefined,\n code: asSafetyPlanDisplayText(snapshot?.code) || undefined,\n });\n }\n\n return { ...item, itemIds, items };\n}\n\nexport function isPpeRuleSectionTypeId(sectionTypeId: string): boolean {\n return isPpeRuleSectionType(sectionTypeId);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n createAllQueryView,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\n\nimport { RootConfig } from '../../root-config';\nimport { WORKPLACE_SAFETY_SECTION_TYPE_LOOKUP_EXPOSE } from '../../safety-plan-section-dependency';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\n/** Flat LookupBox row — same pattern as work-package `workOrderIds`. */\nconst SECTION_TYPE_IDS_REPEATER_CHILDREN = [\n {\n type: AXPWidgetsList.Editors.LookupBox,\n mode: 'edit' as const,\n path: 'sectionTypeId',\n name: 'sectionTypeId',\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.sectionType.name}`,\n look: 'select',\n allowSearch: true,\n textField: 'code',\n textTemplate: '{code} — {description}',\n valueField: 'id',\n columns: ['code', 'title', 'description'],\n expose: WORKPLACE_SAFETY_SECTION_TYPE_LOOKUP_EXPOSE,\n },\n },\n];\n\nconst sectionTypeIdsPropertyLayout = {\n name: 'sectionTypeIds',\n layout: { label: { visible: false }, order: 1, positions: { lg: { colSpan: 12 } } },\n};\n\n//#endregion\n\n//#region ---- Entity factory ----\n\nexport async function safetyPlanTypeSectionEntityFactory(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.safetyPlanTypeSection.name,\n title: RootConfig.entities.safetyPlanTypeSection.title,\n icon: RootConfig.entities.safetyPlanTypeSection.icon,\n relatedEntities: [],\n formats: {\n individual: RootConfig.entities.safetyPlanTypeSection.title,\n plural: RootConfig.entities.safetyPlanTypeSection.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: '{{ safetyPlanType.title }}',\n },\n },\n plugins: [{ name: 'archive' }],\n groups: [\n {\n id: 'basic-info',\n title:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.groups.basic-info',\n },\n {\n id: 'sections',\n title:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.groups.sections',\n },\n ],\n properties: [\n {\n name: 'id',\n title: '@general:terms.common.id',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'safetyPlanTypeId',\n title:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.fields.safety-plan-type.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.safetyPlanType.name}`,\n look: 'select',\n allowSearch: true,\n textField: 'title',\n valueField: 'id',\n columns: ['code', 'title'],\n expose: [\n { source: 'id', target: 'safetyPlanType.id' },\n { source: 'title', target: 'safetyPlanType.title' },\n { source: 'code', target: 'safetyPlanType.code' },\n ],\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.fields.title.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.fields.title.placeholder',\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'isDefault',\n title:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.fields.is-default.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'boolean',\n defaultValue: false,\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n },\n },\n },\n {\n name: 'sectionTypeIds',\n title: '',\n groupId: 'sections',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'array',\n defaultValue: [],\n nullable: true,\n interface: {\n type: AXPWidgetsList.Layouts.RepeaterLayout,\n options: { hasControls: true, allowReorder: true },\n children: [...SECTION_TYPE_IDS_REPEATER_CHILDREN],\n },\n },\n },\n /**\n * List sort order only (hidden / not edited in create-update UI).\n */\n {\n name: 'sortOrder',\n title:\n '@workplacesafety-management:safety-plan-type-sections.entities.safety-plan-type-section.fields.sort-order.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'number',\n visible: false,\n nullable: true,\n readonly: true,\n },\n },\n ],\n columns: [\n { name: 'title', options: { width: '200px', order: 1 } },\n { name: 'sectionTypeIds', options: { width: '280px', order: 2 } },\n { name: 'isDefault', options: { width: '120px', order: 3 } },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'sections' }],\n properties: [\n { name: 'safetyPlanTypeId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n sectionTypeIdsPropertyLayout,\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'sections' }],\n properties: [\n { name: 'safetyPlanTypeId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n sectionTypeIdsPropertyLayout,\n ],\n },\n single: {\n title: '{{ title }}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'sections', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'safetyPlanTypeId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'isDefault', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n sectionTypeIdsPropertyLayout,\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'sortOrder', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-entry.safety-plan-type-section';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
|
|
2
|
+
import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions, entityDetailsCrudActions, entityDetailsSimpleCondition } from '@acorex-platform/framework-shared/entity';
|
|
3
|
+
|
|
4
|
+
const config = {
|
|
5
|
+
i18n: 'workplacesafety-management',
|
|
6
|
+
module: 'WorkplaceSafetyManagement',
|
|
7
|
+
};
|
|
8
|
+
const RootConfig = {
|
|
9
|
+
config,
|
|
10
|
+
module: {
|
|
11
|
+
name: config.module,
|
|
12
|
+
title: `@${config.i18n}:module.title`,
|
|
13
|
+
icon: 'fa-light fa-building-shield',
|
|
14
|
+
},
|
|
15
|
+
entities: {
|
|
16
|
+
hazard: {
|
|
17
|
+
name: 'Hazard',
|
|
18
|
+
source: `${config.module}.Hazard`,
|
|
19
|
+
title: `@${config.i18n}:hazards.entities.hazard.title`,
|
|
20
|
+
titlePlural: `@${config.i18n}:hazards.entities.hazard.plural`,
|
|
21
|
+
icon: 'fa-light fa-triangle-exclamation',
|
|
22
|
+
},
|
|
23
|
+
hazardRegister: {
|
|
24
|
+
name: 'HazardRegister',
|
|
25
|
+
source: `${config.module}.HazardRegister`,
|
|
26
|
+
title: `@${config.i18n}:hazard-registers.entities.hazard-register.title`,
|
|
27
|
+
titlePlural: `@${config.i18n}:hazard-registers.entities.hazard-register.plural`,
|
|
28
|
+
icon: 'fa-light fa-clipboard-list',
|
|
29
|
+
},
|
|
30
|
+
ppeItem: {
|
|
31
|
+
name: 'PpeItem',
|
|
32
|
+
source: `${config.module}.PpeItem`,
|
|
33
|
+
title: `@${config.i18n}:ppe-items.entities.ppe-item.title`,
|
|
34
|
+
titlePlural: `@${config.i18n}:ppe-items.entities.ppe-item.plural`,
|
|
35
|
+
icon: 'fa-light fa-helmet-safety',
|
|
36
|
+
},
|
|
37
|
+
hazardPpeRule: {
|
|
38
|
+
name: 'HazardPpeRule',
|
|
39
|
+
source: `${config.module}.HazardPpeRule`,
|
|
40
|
+
title: `@${config.i18n}:hazard-ppe-rules.entities.hazard-ppe-rule.title`,
|
|
41
|
+
titlePlural: `@${config.i18n}:hazard-ppe-rules.entities.hazard-ppe-rule.plural`,
|
|
42
|
+
icon: 'fa-light fa-user-helmet-safety',
|
|
43
|
+
},
|
|
44
|
+
hazardRisk: {
|
|
45
|
+
name: 'HazardRisk',
|
|
46
|
+
source: `${config.module}.HazardRisk`,
|
|
47
|
+
title: `@${config.i18n}:hazard-risks.entities.hazard-risk.title`,
|
|
48
|
+
titlePlural: `@${config.i18n}:hazard-risks.entities.hazard-risk.plural`,
|
|
49
|
+
icon: 'fa-light fa-shield-exclamation',
|
|
50
|
+
},
|
|
51
|
+
controlHierarchyLevels: {
|
|
52
|
+
name: 'ControlHierarchyLevels',
|
|
53
|
+
source: `${config.module}.ControlHierarchyLevels`,
|
|
54
|
+
title: `@${config.i18n}:control-measure-types.entities.control-measure-type.title`,
|
|
55
|
+
titlePlural: `@${config.i18n}:control-measure-types.entities.control-measure-type.plural`,
|
|
56
|
+
icon: 'fa-light fa-layer-group',
|
|
57
|
+
},
|
|
58
|
+
controlMeasure: {
|
|
59
|
+
name: 'ControlMeasure',
|
|
60
|
+
source: `${config.module}.ControlMeasure`,
|
|
61
|
+
title: `@${config.i18n}:control-measures.entities.control-measure.title`,
|
|
62
|
+
titlePlural: `@${config.i18n}:control-measures.entities.control-measure.plural`,
|
|
63
|
+
icon: 'fa-light fa-shield-check',
|
|
64
|
+
},
|
|
65
|
+
safetyPlan: {
|
|
66
|
+
name: 'SafetyPlan',
|
|
67
|
+
source: `${config.module}.SafetyPlan`,
|
|
68
|
+
title: `@${config.i18n}:safety-plans.entities.safety-plan.title`,
|
|
69
|
+
titlePlural: `@${config.i18n}:safety-plans.entities.safety-plan.plural`,
|
|
70
|
+
icon: 'fa-light fa-file-shield',
|
|
71
|
+
},
|
|
72
|
+
safetyPlanType: {
|
|
73
|
+
name: 'SafetyPlanType',
|
|
74
|
+
source: `${config.module}.SafetyPlanType`,
|
|
75
|
+
title: `@${config.i18n}:safety-plan-types.entities.safety-plan-type.title`,
|
|
76
|
+
titlePlural: `@${config.i18n}:safety-plan-types.entities.safety-plan-type.plural`,
|
|
77
|
+
icon: 'fa-light fa-file-lines',
|
|
78
|
+
},
|
|
79
|
+
safetyPlanTypeSection: {
|
|
80
|
+
name: 'SafetyPlanTypeSection',
|
|
81
|
+
source: `${config.module}.SafetyPlanTypeSection`,
|
|
82
|
+
title: `@${config.i18n}:safety-plan-type-sections.entities.safety-plan-type-section.title`,
|
|
83
|
+
titlePlural: `@${config.i18n}:safety-plan-type-sections.entities.safety-plan-type-section.plural`,
|
|
84
|
+
icon: 'fa-light fa-list-ol',
|
|
85
|
+
},
|
|
86
|
+
sectionType: {
|
|
87
|
+
name: 'SectionType',
|
|
88
|
+
source: `${config.module}.SectionType`,
|
|
89
|
+
title: `@${config.i18n}:section-types.entities.section-type.title`,
|
|
90
|
+
titlePlural: `@${config.i18n}:section-types.entities.section-type.plural`,
|
|
91
|
+
icon: 'fa-light fa-list-tree',
|
|
92
|
+
},
|
|
93
|
+
safetyTemplate: {
|
|
94
|
+
name: 'SafetyTemplate',
|
|
95
|
+
source: `${config.module}.SafetyTemplate`,
|
|
96
|
+
title: `@${config.i18n}:safety-templates.entities.safety-template.title`,
|
|
97
|
+
titlePlural: `@${config.i18n}:safety-templates.entities.safety-template.plural`,
|
|
98
|
+
icon: 'fa-light fa-file-lines',
|
|
99
|
+
},
|
|
100
|
+
safetyPlanSection: {
|
|
101
|
+
name: 'SafetyPlanSection',
|
|
102
|
+
source: `${config.module}.SafetyPlanSection`,
|
|
103
|
+
title: `@${config.i18n}:safety-plan-sections.entities.safety-plan-section.title`,
|
|
104
|
+
titlePlural: `@${config.i18n}:safety-plan-sections.entities.safety-plan-section.plural`,
|
|
105
|
+
icon: 'fa-light fa-list-ol',
|
|
106
|
+
},
|
|
107
|
+
workStepType: {
|
|
108
|
+
name: 'WorkStepType',
|
|
109
|
+
source: `${config.module}.WorkStepType`,
|
|
110
|
+
title: `@${config.i18n}:work-step-types.entities.work-step-type.title`,
|
|
111
|
+
titlePlural: `@${config.i18n}:work-step-types.entities.work-step-type.plural`,
|
|
112
|
+
icon: 'fa-light fa-list-tree',
|
|
113
|
+
},
|
|
114
|
+
safetyPlanWorkStep: {
|
|
115
|
+
name: 'SafetyPlanWorkStep',
|
|
116
|
+
source: `${config.module}.SafetyPlanWorkStep`,
|
|
117
|
+
title: `@${config.i18n}:safety-plan-work-steps.entities.safety-plan-work-step.title`,
|
|
118
|
+
titlePlural: `@${config.i18n}:safety-plan-work-steps.entities.safety-plan-work-step.plural`,
|
|
119
|
+
icon: 'fa-light fa-list-check',
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
queries: {
|
|
123
|
+
dashboard: {
|
|
124
|
+
openHazardsKpi: `${config.module}:Dashboard:OpenHazardsKpi`,
|
|
125
|
+
highRisksKpi: `${config.module}:Dashboard:HighRisksKpi`,
|
|
126
|
+
activeSafetyPlansKpi: `${config.module}:Dashboard:ActiveSafetyPlansKpi`,
|
|
127
|
+
take5ChecklistsKpi: `${config.module}:Dashboard:Take5ChecklistsKpi`,
|
|
128
|
+
take5CompletedKpi: `${config.module}:Dashboard:Take5CompletedKpi`,
|
|
129
|
+
hazardsByCategoryDonut: `${config.module}:Dashboard:HazardsByCategoryDonut`,
|
|
130
|
+
risksByRatingBar: `${config.module}:Dashboard:RisksByRatingBar`,
|
|
131
|
+
plansByTypeBar: `${config.module}:Dashboard:PlansByTypeBar`,
|
|
132
|
+
hazardsByStatusBar: `${config.module}:Dashboard:HazardsByStatusBar`,
|
|
133
|
+
ppeCoverageDonut: `${config.module}:Dashboard:PpeCoverageDonut`,
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
//#region ---- Imports ----
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region ---- Constants ----
|
|
141
|
+
const listSortAndFilterOptions = {
|
|
142
|
+
sort: { enabled: true },
|
|
143
|
+
filter: { advance: { enabled: true }, inline: { enabled: true } },
|
|
144
|
+
};
|
|
145
|
+
const noteFieldOptions = {
|
|
146
|
+
sort: { enabled: false },
|
|
147
|
+
filter: { advance: { enabled: true }, inline: { enabled: false } },
|
|
148
|
+
};
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region ---- Entity factory ----
|
|
151
|
+
async function safetyPlanTypeEntityFactory() {
|
|
152
|
+
const entityDef = {
|
|
153
|
+
module: RootConfig.module.name,
|
|
154
|
+
name: RootConfig.entities.safetyPlanType.name,
|
|
155
|
+
title: RootConfig.entities.safetyPlanType.title,
|
|
156
|
+
icon: RootConfig.entities.safetyPlanType.icon,
|
|
157
|
+
formats: {
|
|
158
|
+
individual: RootConfig.entities.safetyPlanType.title,
|
|
159
|
+
plural: RootConfig.entities.safetyPlanType.titlePlural,
|
|
160
|
+
searchResult: {
|
|
161
|
+
title: '{{ title }}',
|
|
162
|
+
description: '{{ code }}',
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
plugins: [
|
|
166
|
+
{ name: 'identifier', options: { field: 'code', rule: 'safety-plan-type-code' } },
|
|
167
|
+
{ name: 'unique-fields', options: { fields: 'code', scope: 'global' } },
|
|
168
|
+
{ name: 'archive' },
|
|
169
|
+
],
|
|
170
|
+
relatedEntities: [
|
|
171
|
+
{
|
|
172
|
+
entity: `${RootConfig.module.name}.${RootConfig.entities.safetyPlanTypeSection.name}`,
|
|
173
|
+
title: RootConfig.entities.safetyPlanTypeSection.titlePlural,
|
|
174
|
+
icon: RootConfig.entities.safetyPlanTypeSection.icon,
|
|
175
|
+
columns: ['title', 'sectionTypeIds', 'isDefault'],
|
|
176
|
+
conditions: [entityDetailsSimpleCondition('safetyPlanTypeId')],
|
|
177
|
+
actions: [...entityDetailsCrudActions('safetyPlanTypeId')],
|
|
178
|
+
excludeProperties: ['safetyPlanTypeId', 'sortOrder'],
|
|
179
|
+
layout: { type: 'page-list', position: 'after', order: 1 },
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
groups: [
|
|
183
|
+
{
|
|
184
|
+
id: 'basic-info',
|
|
185
|
+
title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.groups.basic-info',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
properties: [
|
|
189
|
+
{
|
|
190
|
+
name: 'id',
|
|
191
|
+
title: '@general:terms.common.id',
|
|
192
|
+
groupId: 'basic-info',
|
|
193
|
+
schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: 'code',
|
|
197
|
+
title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.code.title',
|
|
198
|
+
groupId: 'basic-info',
|
|
199
|
+
options: listSortAndFilterOptions,
|
|
200
|
+
schema: {
|
|
201
|
+
dataType: 'string',
|
|
202
|
+
unique: { enabled: true },
|
|
203
|
+
interface: {
|
|
204
|
+
type: AXPWidgetsList.Editors.TextBox,
|
|
205
|
+
options: {
|
|
206
|
+
disabled: true,
|
|
207
|
+
placeholder: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.code.placeholder',
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
validations: [{ rule: 'required' }],
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
name: 'title',
|
|
215
|
+
title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.title.title',
|
|
216
|
+
groupId: 'basic-info',
|
|
217
|
+
options: listSortAndFilterOptions,
|
|
218
|
+
schema: {
|
|
219
|
+
dataType: 'string',
|
|
220
|
+
interface: {
|
|
221
|
+
type: AXPWidgetsList.Editors.TextBox,
|
|
222
|
+
options: {
|
|
223
|
+
placeholder: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.title.placeholder',
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
validations: [{ rule: 'required' }],
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
name: 'description',
|
|
231
|
+
title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.description.title',
|
|
232
|
+
groupId: 'basic-info',
|
|
233
|
+
options: noteFieldOptions,
|
|
234
|
+
schema: {
|
|
235
|
+
dataType: 'string',
|
|
236
|
+
interface: {
|
|
237
|
+
type: AXPWidgetsList.Editors.LargeTextBox,
|
|
238
|
+
options: {
|
|
239
|
+
rows: 2,
|
|
240
|
+
placeholder: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.description.placeholder',
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
columns: [
|
|
247
|
+
{ name: 'code', options: { width: '120px', order: 1 } },
|
|
248
|
+
{ name: 'title', options: { width: '220px', order: 2 } },
|
|
249
|
+
{ name: 'description', options: { width: '280px', order: 3 } },
|
|
250
|
+
],
|
|
251
|
+
interfaces: {
|
|
252
|
+
master: {
|
|
253
|
+
create: {
|
|
254
|
+
sections: [{ id: 'basic-info' }],
|
|
255
|
+
properties: [
|
|
256
|
+
{ name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
|
|
257
|
+
{ name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
|
|
258
|
+
{ name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
259
|
+
],
|
|
260
|
+
},
|
|
261
|
+
update: {
|
|
262
|
+
sections: [{ id: 'basic-info' }],
|
|
263
|
+
properties: [
|
|
264
|
+
{ name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
|
|
265
|
+
{ name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
|
|
266
|
+
{ name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
267
|
+
],
|
|
268
|
+
},
|
|
269
|
+
single: {
|
|
270
|
+
title: '{{ title }}',
|
|
271
|
+
sections: [{ id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } }],
|
|
272
|
+
properties: [
|
|
273
|
+
{ name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
|
|
274
|
+
{ name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
|
|
275
|
+
{ name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
|
|
276
|
+
],
|
|
277
|
+
actions: [...entityMasterRecordActions()],
|
|
278
|
+
},
|
|
279
|
+
list: {
|
|
280
|
+
actions: [...entityMasterCrudActions()],
|
|
281
|
+
views: [createAllQueryView({ sorts: [{ name: 'code', dir: 'asc' }] })],
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
return entityDef;
|
|
287
|
+
}
|
|
288
|
+
//#endregion
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Generated bundle index. Do not edit.
|
|
292
|
+
*/
|
|
293
|
+
|
|
294
|
+
export { safetyPlanTypeEntityFactory };
|
|
295
|
+
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.mjs","sources":["../../../../libs/modules/workplacesafety-management/contracts/src/root-config.ts","../../../../libs/modules/workplacesafety-management/contracts/src/entities/safety-plan-type/safety-plan-type.entity.ts","../../../../libs/modules/workplacesafety-management/contracts/src/acorex-platform-module-workplacesafety-management-client-contracts-entities-safety-plan-type.ts"],"sourcesContent":["const config = {\n i18n: 'workplacesafety-management',\n module: 'WorkplaceSafetyManagement',\n} as const;\n\nexport const RootConfig = {\n config,\n module: {\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-building-shield',\n },\n entities: {\n hazard: {\n name: 'Hazard',\n source: `${config.module}.Hazard`,\n title: `@${config.i18n}:hazards.entities.hazard.title`,\n titlePlural: `@${config.i18n}:hazards.entities.hazard.plural`,\n icon: 'fa-light fa-triangle-exclamation',\n },\n hazardRegister: {\n name: 'HazardRegister',\n source: `${config.module}.HazardRegister`,\n title: `@${config.i18n}:hazard-registers.entities.hazard-register.title`,\n titlePlural: `@${config.i18n}:hazard-registers.entities.hazard-register.plural`,\n icon: 'fa-light fa-clipboard-list',\n },\n ppeItem: {\n name: 'PpeItem',\n source: `${config.module}.PpeItem`,\n title: `@${config.i18n}:ppe-items.entities.ppe-item.title`,\n titlePlural: `@${config.i18n}:ppe-items.entities.ppe-item.plural`,\n icon: 'fa-light fa-helmet-safety',\n },\n hazardPpeRule: {\n name: 'HazardPpeRule',\n source: `${config.module}.HazardPpeRule`,\n title: `@${config.i18n}:hazard-ppe-rules.entities.hazard-ppe-rule.title`,\n titlePlural: `@${config.i18n}:hazard-ppe-rules.entities.hazard-ppe-rule.plural`,\n icon: 'fa-light fa-user-helmet-safety',\n },\n hazardRisk: {\n name: 'HazardRisk',\n source: `${config.module}.HazardRisk`,\n title: `@${config.i18n}:hazard-risks.entities.hazard-risk.title`,\n titlePlural: `@${config.i18n}:hazard-risks.entities.hazard-risk.plural`,\n icon: 'fa-light fa-shield-exclamation',\n },\n controlHierarchyLevels: {\n name: 'ControlHierarchyLevels',\n source: `${config.module}.ControlHierarchyLevels`,\n title: `@${config.i18n}:control-measure-types.entities.control-measure-type.title`,\n titlePlural: `@${config.i18n}:control-measure-types.entities.control-measure-type.plural`,\n icon: 'fa-light fa-layer-group',\n },\n controlMeasure: {\n name: 'ControlMeasure',\n source: `${config.module}.ControlMeasure`,\n title: `@${config.i18n}:control-measures.entities.control-measure.title`,\n titlePlural: `@${config.i18n}:control-measures.entities.control-measure.plural`,\n icon: 'fa-light fa-shield-check',\n },\n safetyPlan: {\n name: 'SafetyPlan',\n source: `${config.module}.SafetyPlan`,\n title: `@${config.i18n}:safety-plans.entities.safety-plan.title`,\n titlePlural: `@${config.i18n}:safety-plans.entities.safety-plan.plural`,\n icon: 'fa-light fa-file-shield',\n },\n safetyPlanType: {\n name: 'SafetyPlanType',\n source: `${config.module}.SafetyPlanType`,\n title: `@${config.i18n}:safety-plan-types.entities.safety-plan-type.title`,\n titlePlural: `@${config.i18n}:safety-plan-types.entities.safety-plan-type.plural`,\n icon: 'fa-light fa-file-lines',\n },\n safetyPlanTypeSection: {\n name: 'SafetyPlanTypeSection',\n source: `${config.module}.SafetyPlanTypeSection`,\n title: `@${config.i18n}:safety-plan-type-sections.entities.safety-plan-type-section.title`,\n titlePlural: `@${config.i18n}:safety-plan-type-sections.entities.safety-plan-type-section.plural`,\n icon: 'fa-light fa-list-ol',\n },\n sectionType: {\n name: 'SectionType',\n source: `${config.module}.SectionType`,\n title: `@${config.i18n}:section-types.entities.section-type.title`,\n titlePlural: `@${config.i18n}:section-types.entities.section-type.plural`,\n icon: 'fa-light fa-list-tree',\n },\n safetyTemplate: {\n name: 'SafetyTemplate',\n source: `${config.module}.SafetyTemplate`,\n title: `@${config.i18n}:safety-templates.entities.safety-template.title`,\n titlePlural: `@${config.i18n}:safety-templates.entities.safety-template.plural`,\n icon: 'fa-light fa-file-lines',\n },\n safetyPlanSection: {\n name: 'SafetyPlanSection',\n source: `${config.module}.SafetyPlanSection`,\n title: `@${config.i18n}:safety-plan-sections.entities.safety-plan-section.title`,\n titlePlural: `@${config.i18n}:safety-plan-sections.entities.safety-plan-section.plural`,\n icon: 'fa-light fa-list-ol',\n },\n workStepType: {\n name: 'WorkStepType',\n source: `${config.module}.WorkStepType`,\n title: `@${config.i18n}:work-step-types.entities.work-step-type.title`,\n titlePlural: `@${config.i18n}:work-step-types.entities.work-step-type.plural`,\n icon: 'fa-light fa-list-tree',\n },\n safetyPlanWorkStep: {\n name: 'SafetyPlanWorkStep',\n source: `${config.module}.SafetyPlanWorkStep`,\n title: `@${config.i18n}:safety-plan-work-steps.entities.safety-plan-work-step.title`,\n titlePlural: `@${config.i18n}:safety-plan-work-steps.entities.safety-plan-work-step.plural`,\n icon: 'fa-light fa-list-check',\n },\n },\n queries: {\n dashboard: {\n openHazardsKpi: `${config.module}:Dashboard:OpenHazardsKpi`,\n highRisksKpi: `${config.module}:Dashboard:HighRisksKpi`,\n activeSafetyPlansKpi: `${config.module}:Dashboard:ActiveSafetyPlansKpi`,\n take5ChecklistsKpi: `${config.module}:Dashboard:Take5ChecklistsKpi`,\n take5CompletedKpi: `${config.module}:Dashboard:Take5CompletedKpi`,\n hazardsByCategoryDonut: `${config.module}:Dashboard:HazardsByCategoryDonut`,\n risksByRatingBar: `${config.module}:Dashboard:RisksByRatingBar`,\n plansByTypeBar: `${config.module}:Dashboard:PlansByTypeBar`,\n hazardsByStatusBar: `${config.module}:Dashboard:HazardsByStatusBar`,\n ppeCoverageDonut: `${config.module}:Dashboard:PpeCoverageDonut`,\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n createAllQueryView,\n entityDetailsCrudActions,\n entityDetailsSimpleCondition,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\n\nimport { RootConfig } from '../../root-config';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst listSortAndFilterOptions = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n};\n\nconst noteFieldOptions = {\n sort: { enabled: false },\n filter: { advance: { enabled: true }, inline: { enabled: false } },\n};\n\n//#endregion\n\n//#region ---- Entity factory ----\n\nexport async function safetyPlanTypeEntityFactory(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.safetyPlanType.name,\n title: RootConfig.entities.safetyPlanType.title,\n icon: RootConfig.entities.safetyPlanType.icon,\n formats: {\n individual: RootConfig.entities.safetyPlanType.title,\n plural: RootConfig.entities.safetyPlanType.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: '{{ code }}',\n },\n },\n plugins: [\n { name: 'identifier', options: { field: 'code', rule: 'safety-plan-type-code' } },\n { name: 'unique-fields', options: { fields: 'code', scope: 'global' } },\n { name: 'archive' },\n ],\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.safetyPlanTypeSection.name}`,\n title: RootConfig.entities.safetyPlanTypeSection.titlePlural,\n icon: RootConfig.entities.safetyPlanTypeSection.icon,\n columns: ['title', 'sectionTypeIds', 'isDefault'],\n conditions: [entityDetailsSimpleCondition('safetyPlanTypeId')],\n actions: [...entityDetailsCrudActions('safetyPlanTypeId')],\n excludeProperties: ['safetyPlanTypeId', 'sortOrder'],\n layout: { type: 'page-list', position: 'after', order: 1 },\n },\n ],\n groups: [\n {\n id: 'basic-info',\n title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.groups.basic-info',\n },\n ],\n properties: [\n {\n name: 'id',\n title: '@general:terms.common.id',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'code',\n title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.code.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n unique: { enabled: true },\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n disabled: true,\n placeholder:\n '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.code.placeholder',\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.title.title',\n groupId: 'basic-info',\n options: listSortAndFilterOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder:\n '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.title.placeholder',\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'description',\n title: '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.description.title',\n groupId: 'basic-info',\n options: noteFieldOptions,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 2,\n placeholder:\n '@workplacesafety-management:safety-plan-types.entities.safety-plan-type.fields.description.placeholder',\n },\n },\n },\n },\n ],\n columns: [\n { name: 'code', options: { width: '120px', order: 1 } },\n { name: 'title', options: { width: '220px', order: 2 } },\n { name: 'description', options: { width: '280px', order: 3 } },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n ],\n },\n single: {\n title: '{{ title }}',\n sections: [{ id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } }],\n properties: [\n { name: 'code', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'code', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-entry.safety-plan-type';\n"],"names":[],"mappings":"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"}
|