@acorex-platform/module-workplacesafety-management-client 0.0.21
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-contracts.mjs +1646 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-C-qrrqOV.mjs +203 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-C-qrrqOV.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.service-BBhH7KP1.mjs +119 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram.service-BBhH7KP1.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-ppe-rule-status.provider-o4bAwYcq.mjs +42 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-ppe-rule-status.provider-o4bAwYcq.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-risk-ppe-rule-status.provider-DtqzcWh0.mjs +42 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-risk-ppe-rule-status.provider-DtqzcWh0.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-risk-status.provider-B6IkRYbW.mjs +42 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-hazard-risk-status.provider-B6IkRYbW.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-index-kF37zgd4.mjs +1900 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-index-kF37zgd4.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-C2X3VpEt.mjs +175 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-C2X3VpEt.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-publish-safety-plan.command-Ci-zcrmO.mjs +106 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-publish-safety-plan.command-Ci-zcrmO.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-status.provider-BpWx3gIf.mjs +51 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-safety-plan-status.provider-BpWx3gIf.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs +461 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client.mjs +461 -0
- package/fesm2022/acorex-platform-module-workplacesafety-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-workplacesafety-management-client-contracts.d.ts +1111 -0
- package/types/acorex-platform-module-workplacesafety-management-client.d.ts +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-sections-page/safety-plan-section-builder.types.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/safety-plan-sections-page/save-safety-plan-sections.command.ts"],"sourcesContent":["import { AXPDataGenerator } from '@acorex-platform/framework-client/core';\nimport {\n enrichSectionTypeSnapshot,\n isStepTableSectionType,\n normalizeStepTableColumns,\n normalizeStepTableRows,\n resolveEntityRefId,\n stepTableColumnTitle,\n type AXMSafetyPlanSectionBuilderItemValue,\n type AXMSafetyPlanSectionBuilderSectionValue,\n type AXMSafetyPlanSectionBuilderValue,\n type AXMSafetyPlanStepTableRowBuilderPayload,\n type AXMStepTableCellValue,\n type AXMStepTableColumnDef,\n type AXMWorkplaceSafetyManagementSafetyPlanSectionEntityModel,\n type AXMWorkplaceSafetyManagementSafetyPlanWorkStepEntityModel,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nexport function createSafetyPlanSectionBuilderDefaultValue(): AXMSafetyPlanSectionBuilderValue {\n return { sections: [] };\n}\n\nexport function normalizeSafetyPlanSectionBuilderValue(\n value: AXMSafetyPlanSectionBuilderValue | null | undefined,\n): AXMSafetyPlanSectionBuilderValue {\n if (!value || !Array.isArray(value.sections)) {\n return createSafetyPlanSectionBuilderDefaultValue();\n }\n\n return {\n sections: value.sections.map((section, index) => normalizeSection(section, index)),\n };\n}\n\nexport function safetyPlanSectionsToBuilderValue(\n rows: AXMWorkplaceSafetyManagementSafetyPlanSectionEntityModel[],\n): AXMSafetyPlanSectionBuilderValue {\n const ordered = [...rows].sort(\n (a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0) || String(a.code ?? '').localeCompare(String(b.code ?? '')),\n );\n return {\n sections: ordered.map((row, index) => {\n const legacyItem = row.items?.[0];\n const sectionTypeId =\n resolveEntityRefId(legacyItem?.sectionTypeId) ??\n resolveEntityRefId(legacyItem?.sectionType) ??\n '';\n const workStepTypeId =\n resolveEntityRefId(legacyItem?.workStepTypeId) ??\n resolveEntityRefId(legacyItem?.workStepType) ??\n undefined;\n return {\n id: row.id,\n sectionTypeId,\n sectionType: enrichSectionTypeSnapshot(sectionTypeId, legacyItem?.sectionType),\n title: row.title,\n description: row.description ?? '',\n safetyPlanId: row.safetyPlanId,\n code: row.code,\n sourceSafetyPlanTypeSectionId: row.sourceSafetyPlanTypeSectionId,\n sortOrder: row.sortOrder ?? index + 1,\n workStepTypeId,\n workStepType: legacyItem?.workStepType,\n columns: [],\n items: (row.items ?? []).map((item, itemIndex) => ({\n id: `${row.id}__item_${itemIndex + 1}`,\n itemIds: [...(item.itemIds ?? [])],\n items: item.items ? [...item.items] : [],\n })),\n };\n }),\n };\n}\n\n/** Merges SafetyPlanWorkStep row entities into Step Table sections. */\nexport function hydrateStepTableSectionsWithWorkSteps(\n value: AXMSafetyPlanSectionBuilderValue,\n workSteps: AXMWorkplaceSafetyManagementSafetyPlanWorkStepEntityModel[],\n columnsByWorkStepTypeId?: ReadonlyMap<string, AXMStepTableColumnDef[]>,\n): AXMSafetyPlanSectionBuilderValue {\n const bySection = new Map<string, AXMWorkplaceSafetyManagementSafetyPlanWorkStepEntityModel[]>();\n for (const step of workSteps) {\n const sectionId = resolveEntityRefId(step.safetyPlanSectionId) ?? '';\n if (!sectionId) {\n continue;\n }\n const list = bySection.get(sectionId) ?? [];\n list.push(step);\n bySection.set(sectionId, list);\n }\n\n return {\n sections: value.sections.map((section) => {\n if (!isStepTableSectionType(section.sectionTypeId, section.sectionType)) {\n return section;\n }\n const steps = [...(bySection.get(section.id) ?? [])].sort(\n (a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0) || String(a.code ?? '').localeCompare(String(b.code ?? '')),\n );\n const workStepTypeId =\n section.workStepTypeId ||\n (steps[0] ? resolveEntityRefId(steps[0].workStepTypeId) ?? undefined : undefined);\n const columns =\n (workStepTypeId && columnsByWorkStepTypeId?.get(workStepTypeId)) ||\n normalizeStepTableColumns(steps[0]?.columns) ||\n section.columns ||\n [];\n return {\n ...section,\n workStepTypeId,\n workStepType: section.workStepType ?? steps[0]?.workStepType,\n columns,\n items: steps.map((step) => toBuilderItemFromWorkStepRow(step, columns)),\n };\n }),\n };\n}\n\nexport function builderValueToSafetyPlanSectionPayloads(\n value: AXMSafetyPlanSectionBuilderValue,\n safetyPlanId: string,\n): Array<{\n id: string;\n safetyPlanId: string;\n title: string;\n description?: string;\n sectionTypeId: string;\n sectionType?: AXMSafetyPlanSectionBuilderSectionValue['sectionType'];\n sourceSafetyPlanTypeSectionId?: string;\n sortOrder: number;\n workStepTypeId?: string;\n workStepType?: AXMSafetyPlanSectionBuilderSectionValue['workStepType'];\n columns?: AXMStepTableColumnDef[];\n items: AXMSafetyPlanSectionBuilderItemValue[];\n}> {\n return value.sections.map((section, index) => ({\n id: section.id,\n safetyPlanId,\n title: section.title,\n description: section.description?.trim() ? section.description.trim() : undefined,\n sectionTypeId: section.sectionTypeId,\n sectionType: section.sectionType,\n sourceSafetyPlanTypeSectionId: section.sourceSafetyPlanTypeSectionId,\n sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : index + 1,\n workStepTypeId: section.workStepTypeId,\n workStepType: section.workStepType,\n columns: section.columns,\n items: section.items.map((item) => ({\n ...item,\n itemIds: [...(item.itemIds ?? [])],\n items: item.items ? [...item.items] : [],\n stepTableRow: item.stepTableRow ? normalizeStepTableRowPayload(item.stepTableRow) : undefined,\n })),\n }));\n}\n\nfunction toBuilderItemFromWorkStepRow(\n step: AXMWorkplaceSafetyManagementSafetyPlanWorkStepEntityModel,\n columns: AXMStepTableColumnDef[],\n): AXMSafetyPlanSectionBuilderItemValue {\n const normalizedColumns = normalizeStepTableColumns(columns.length ? columns : step.columns);\n const cells =\n normalizeStepTableRows(\n [{ id: step.id, sortOrder: step.sortOrder ?? 1, cells: step.cells ?? [] }],\n normalizedColumns,\n )[0]?.cells ??\n step.cells ??\n [];\n const title = step.title?.trim() || summarizeStepTableRow(cells, normalizedColumns);\n return {\n id: step.id,\n itemIds: [step.id],\n items: [{ id: step.id, title, code: step.code }],\n stepTableRow: {\n cells,\n code: step.code,\n sortOrder: step.sortOrder,\n title,\n },\n };\n}\n\nexport function summarizeStepTableRow(\n cells: AXMStepTableCellValue[],\n columns: AXMStepTableColumnDef[],\n): string {\n for (const column of columns) {\n const key = column.sectionTypeId;\n const cell = cells.find((entry) => entry.columnKey === key);\n if (!cell) {\n continue;\n }\n const fromRefs = cell.refs?.[0]?.title || cell.refs?.[0]?.code;\n if (fromRefs) {\n return fromRefs;\n }\n if (cell.textValue?.trim()) {\n return cell.textValue.trim();\n }\n }\n return columns[0] ? stepTableColumnTitle(columns[0]) : 'Row';\n}\n\nfunction normalizeSection(\n section: Partial<AXMSafetyPlanSectionBuilderSectionValue>,\n index: number,\n): AXMSafetyPlanSectionBuilderSectionValue {\n const id = typeof section.id === 'string' && section.id ? section.id : AXPDataGenerator.uuid();\n const sectionTypeId = resolveEntityRefId(section.sectionTypeId) ?? '';\n const workStepTypeId = resolveEntityRefId(section.workStepTypeId) ?? undefined;\n return {\n id,\n sectionTypeId,\n sectionType: enrichSectionTypeSnapshot(sectionTypeId, section.sectionType),\n title: typeof section.title === 'string' ? section.title : '',\n description: typeof section.description === 'string' ? section.description : '',\n safetyPlanId: typeof section.safetyPlanId === 'string' ? section.safetyPlanId : undefined,\n code: typeof section.code === 'string' ? section.code : undefined,\n sourceSafetyPlanTypeSectionId:\n typeof section.sourceSafetyPlanTypeSectionId === 'string'\n ? section.sourceSafetyPlanTypeSectionId\n : undefined,\n sortOrder: typeof section.sortOrder === 'number' ? section.sortOrder : index + 1,\n required: section.required === true,\n workStepTypeId,\n workStepType: section.workStepType,\n columns: normalizeStepTableColumns(section.columns),\n items: Array.isArray(section.items)\n ? section.items.map((item) => normalizeItem(item, id, sectionTypeId, section.sectionType))\n : [],\n };\n}\n\nfunction normalizeItem(\n item: Partial<AXMSafetyPlanSectionBuilderItemValue>,\n sectionId: string,\n sectionTypeId: string,\n sectionType: AXMSafetyPlanSectionBuilderSectionValue['sectionType'],\n): AXMSafetyPlanSectionBuilderItemValue {\n const isStepTable = isStepTableSectionType(sectionTypeId, sectionType);\n if (isStepTable && item.stepTableRow) {\n const stepTableRow = normalizeStepTableRowPayload(item.stepTableRow);\n const stepId =\n typeof item.id === 'string' && item.id && !item.id.includes('__item_') && !item.id.includes('__entity_')\n ? item.id\n : AXPDataGenerator.uuid();\n const title = stepTableRow.title?.trim() || 'Row';\n return {\n id: stepId,\n itemIds: [stepId],\n items: [{ id: stepId, title, code: stepTableRow.code }],\n stepTableRow,\n };\n }\n\n const id = typeof item.id === 'string' && item.id ? item.id : AXPDataGenerator.uuid();\n return {\n id: id.includes('__item_') || id.includes('__entity_') ? id : `${sectionId}__item_${id}`,\n itemIds: Array.isArray(item.itemIds) ? item.itemIds.filter((x): x is string => typeof x === 'string') : [],\n items: Array.isArray(item.items) ? item.items : [],\n };\n}\n\nfunction normalizeStepTableRowPayload(\n payload: AXMSafetyPlanStepTableRowBuilderPayload,\n): AXMSafetyPlanStepTableRowBuilderPayload {\n return {\n cells: Array.isArray(payload.cells) ? payload.cells : [],\n code: typeof payload.code === 'string' ? payload.code : undefined,\n sortOrder: typeof payload.sortOrder === 'number' ? payload.sortOrder : undefined,\n title: typeof payload.title === 'string' ? payload.title : undefined,\n };\n}\n\nexport type {\n AXMSafetyPlanSectionBuilderItemValue,\n AXMSafetyPlanSectionBuilderSectionValue,\n AXMSafetyPlanSectionBuilderValue,\n AXMSafetyPlanStepTableRowBuilderPayload,\n};\n","import {\n AXPEntityService,\n isAXPMiddlewareAbortError,\n mapEntityStorageErrorToCommandResult,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { extractRequestErrorInfo } from '@acorex-platform/framework-client/common';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXMSafetyPlanSectionBuilderValue,\n RootConfig,\n SAFETY_PLAN_SECTION_DUPLICATE_SECTION_TYPE_CODE,\n SAFETY_PLAN_SECTION_DUPLICATE_SECTION_TYPE_MESSAGE_KEY,\n collectBuiltInRepeatableSectionTypeIds,\n dedupeSafetyPlanSectionStructure,\n findDuplicateSafetyPlanSectionTypeId,\n isStepTableSectionType,\n normalizeStepTableColumns,\n resolveEntityRefId,\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport {\n builderValueToSafetyPlanSectionPayloads,\n safetyPlanSectionsToBuilderValue,\n summarizeStepTableRow,\n} from './safety-plan-section-builder.types';\n\nexport const SAFETY_PLAN_SECTIONS_SAVE_COMMAND = 'SafetyPlan:Sections:Save';\n\nexport interface SaveSafetyPlanSectionsInput {\n id: string;\n value: AXMSafetyPlanSectionBuilderValue;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMSaveSafetyPlanSectionsCommand implements AXPCommand<SaveSafetyPlanSectionsInput, unknown> {\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n\n async execute(input: SaveSafetyPlanSectionsInput): AXPCommandExecuteResultPromise<unknown> {\n const safetyPlanId = input?.id;\n const rawValue = input?.value ?? { sections: [] };\n\n if (!safetyPlanId) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const sectionEntityRef = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanSection.name}`;\n const sectionTypeEntityRef = `${RootConfig.module.name}.${RootConfig.entities.sectionType.name}`;\n const workStepEntityRef = `${RootConfig.module.name}.${RootConfig.entities.safetyPlanWorkStep.name}`;\n const sectionData = this.entityService.withEntity(sectionEntityRef).data();\n const workStepData = this.entityService.withEntity(workStepEntityRef).data();\n\n try {\n const repeatableSectionTypeIds = await this.loadRepeatableSectionTypeIds(sectionTypeEntityRef);\n\n // Dedupe accidental ghost rows first so uniqueness runs on the cleaned structure.\n const value = dedupeSafetyPlanSectionStructure(rawValue, { repeatableSectionTypeIds });\n\n const duplicateTypeId = findDuplicateSafetyPlanSectionTypeId(value.sections ?? [], {\n repeatableSectionTypeIds,\n });\n if (duplicateTypeId) {\n return {\n success: false,\n message: {\n type: 'error',\n text: SAFETY_PLAN_SECTION_DUPLICATE_SECTION_TYPE_MESSAGE_KEY,\n },\n };\n }\n\n const existing = await this.queryPlanSections(sectionData, safetyPlanId);\n const existingRows = existing.items ?? [];\n const existingIds = new Set(existingRows.map((row) => String((row as { id?: string }).id ?? '')));\n const nextIds = new Set(value.sections.map((section) => section.id));\n\n for (const row of existingRows) {\n const rowId = String((row as { id?: string }).id ?? '');\n if (rowId && !nextIds.has(rowId)) {\n await this.deleteWorkStepsForSection(workStepData, rowId);\n await sectionData.delete(rowId);\n }\n }\n\n const payloads = builderValueToSafetyPlanSectionPayloads(value, safetyPlanId);\n for (const payload of payloads) {\n const isStepTable = isStepTableSectionType(payload.sectionTypeId, payload.sectionType);\n const columns = normalizeStepTableColumns(payload.columns);\n\n if (isStepTable) {\n await this.syncWorkStepsForSection(\n workStepData,\n safetyPlanId,\n payload.id,\n payload.workStepTypeId,\n payload.workStepType,\n columns,\n payload.items,\n );\n }\n\n const itemRows = isStepTable\n ? [\n {\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n workStepTypeId: payload.workStepTypeId,\n workStepType: payload.workStepType,\n itemIds: payload.items\n .map((item) => item.id)\n .filter((id): id is string => typeof id === 'string' && id.length > 0),\n items: payload.items.map((item) => ({\n id: item.id,\n title:\n item.stepTableRow?.title ??\n summarizeStepTableRow(item.stepTableRow?.cells ?? [], columns) ??\n item.items?.[0]?.title,\n code: item.stepTableRow?.code ?? item.items?.[0]?.code,\n })),\n },\n ]\n : payload.items.length > 0\n ? payload.items.map(({ itemIds, items }) => ({\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n itemIds,\n items,\n }))\n : [\n {\n sectionTypeId: payload.sectionTypeId,\n sectionType: payload.sectionType,\n itemIds: [] as string[],\n items: [] as { id: string; title?: string; code?: string }[],\n },\n ];\n\n const entityPayload = {\n safetyPlanId: payload.safetyPlanId,\n title: payload.title,\n description: payload.description,\n sourceSafetyPlanTypeSectionId: payload.sourceSafetyPlanTypeSectionId,\n sortOrder: payload.sortOrder,\n items: itemRows,\n };\n\n if (existingIds.has(payload.id)) {\n await sectionData.update(payload.id, entityPayload as never);\n } else {\n await sectionData.create({ ...entityPayload, id: payload.id } as never);\n }\n }\n\n const refreshed = await this.queryPlanSections(sectionData, safetyPlanId);\n const deduped = dedupeSafetyPlanSectionStructure(\n safetyPlanSectionsToBuilderValue(\n (refreshed.items ?? []) as Parameters<typeof safetyPlanSectionsToBuilderValue>[0],\n ),\n { repeatableSectionTypeIds },\n );\n const keepIds = new Set(deduped.sections.map((section) => section.id));\n\n for (const row of refreshed.items ?? []) {\n const rowId = String((row as { id?: string }).id ?? '');\n if (rowId && !keepIds.has(rowId)) {\n await this.deleteWorkStepsForSection(workStepData, rowId);\n await sectionData.delete(rowId);\n }\n }\n\n const cleaned =\n keepIds.size === (refreshed.items ?? []).length\n ? refreshed\n : await this.queryPlanSections(sectionData, safetyPlanId);\n\n const sections = (cleaned.items ?? []).filter((row) =>\n keepIds.has(String((row as { id?: string }).id ?? '')),\n );\n\n return {\n success: true,\n kind: 'object',\n data: { id: safetyPlanId, value, sections },\n message: {\n text: await this.translationService.translateAsync('@general:messages.generic.success.description'),\n },\n };\n } catch (error) {\n if (isAXPMiddlewareAbortError(error)) {\n return mapEntityStorageErrorToCommandResult(error);\n }\n\n const httpInfo = extractRequestErrorInfo(error);\n if (httpInfo?.code === SAFETY_PLAN_SECTION_DUPLICATE_SECTION_TYPE_CODE) {\n return {\n success: false,\n message: {\n type: 'error',\n code: SAFETY_PLAN_SECTION_DUPLICATE_SECTION_TYPE_CODE,\n text: SAFETY_PLAN_SECTION_DUPLICATE_SECTION_TYPE_MESSAGE_KEY,\n },\n };\n }\n\n const text =\n (typeof httpInfo?.message === 'string' && httpInfo.message.startsWith('@')\n ? httpInfo.message\n : null) ??\n (error instanceof Error && error.message.startsWith('@') ? error.message : null) ??\n (await this.translationService.translateAsync('@general:messages.generic.error.description'));\n\n return {\n success: false,\n message: { type: 'error', text },\n };\n }\n }\n\n private async syncWorkStepsForSection(\n workStepData: ReturnType<ReturnType<AXPEntityService['withEntity']>['data']>,\n safetyPlanId: string,\n sectionId: string,\n workStepTypeId: string | undefined,\n workStepType: { id: string; title?: string; code?: string } | undefined,\n columns: ReturnType<typeof normalizeStepTableColumns>,\n items: ReturnType<typeof builderValueToSafetyPlanSectionPayloads>[number]['items'],\n ): Promise<void> {\n const existing = await workStepData.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{ field: 'safetyPlanSectionId', operator: { type: 'equal' }, value: sectionId }],\n },\n } as never);\n\n const existingRows = existing.items ?? [];\n const existingIds = new Set(existingRows.map((row) => String((row as { id?: string }).id ?? '')));\n const nextIds = new Set(\n items.map((item) => item.id).filter((id): id is string => typeof id === 'string' && id.length > 0),\n );\n\n for (const row of existingRows) {\n const rowId = String((row as { id?: string }).id ?? '');\n if (rowId && !nextIds.has(rowId)) {\n await workStepData.delete(rowId);\n }\n }\n\n if (!workStepTypeId) {\n return;\n }\n\n for (const [index, item] of items.entries()) {\n const stepTableRow = item.stepTableRow;\n if (!stepTableRow || !item.id) {\n continue;\n }\n const title =\n stepTableRow.title?.trim() ||\n summarizeStepTableRow(stepTableRow.cells ?? [], columns) ||\n item.items?.[0]?.title;\n const entityPayload = {\n safetyPlanId,\n safetyPlanSectionId: sectionId,\n workStepTypeId,\n workStepType: workStepType ?? { id: workStepTypeId },\n title,\n columns,\n cells: stepTableRow.cells ?? [],\n sortOrder: stepTableRow.sortOrder ?? index + 1,\n };\n\n if (existingIds.has(item.id)) {\n await workStepData.update(item.id, entityPayload as never);\n } else {\n await workStepData.create({ ...entityPayload, id: item.id } as never);\n }\n }\n }\n\n private async deleteWorkStepsForSection(\n workStepData: ReturnType<ReturnType<AXPEntityService['withEntity']>['data']>,\n sectionId: string,\n ): Promise<void> {\n const existing = await workStepData.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{ field: 'safetyPlanSectionId', operator: { type: 'equal' }, value: sectionId }],\n },\n } as never);\n for (const row of existing.items ?? []) {\n const rowId = String((row as { id?: string }).id ?? '');\n if (rowId) {\n await workStepData.delete(rowId);\n }\n }\n }\n\n private async loadRepeatableSectionTypeIds(sectionTypeEntityRef: string): Promise<string[]> {\n const builtIn = collectBuiltInRepeatableSectionTypeIds();\n try {\n // Prefer client-side filtering — boolean equality filters can miss stored values.\n const result = await this.entityService.withEntity(sectionTypeEntityRef).data().query({\n skip: 0,\n take: 1000,\n } as never);\n const fromQuery = (result.items ?? [])\n .filter((row) => (row as { isRepeatable?: unknown }).isRepeatable === true)\n .map((row) => resolveEntityRefId((row as { id?: unknown }).id))\n .filter((id): id is string => !!id);\n return [...new Set([...fromQuery, ...builtIn])];\n } catch {\n return builtIn;\n }\n }\n\n private queryPlanSections(\n sectionData: ReturnType<ReturnType<AXPEntityService['withEntity']>['data']>,\n safetyPlanId: string,\n ) {\n return sectionData.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{ field: 'safetyPlanId', operator: { type: 'equal' }, value: safetyPlanId }],\n },\n } as never);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
|
|
2
|
+
import { AXPSearchCommandProvider, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';
|
|
3
|
+
import { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';
|
|
4
|
+
import { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';
|
|
5
|
+
import { AXPEntityService, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';
|
|
6
|
+
import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';
|
|
7
|
+
import { provideCommand, provideCommandSetups } from '@acorex-platform/framework-client/runtime';
|
|
8
|
+
import * as i0 from '@angular/core';
|
|
9
|
+
import { inject, Injectable, NgModule } from '@angular/core';
|
|
10
|
+
import { RootConfig, AXPSafetyRiskPermissionKeys, AXMWorkplaceSafetyManagementMenuKeys } from '@acorex-platform/module-workplacesafety-management-client/contracts';
|
|
11
|
+
import { AXPCommonMenuKeys, AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';
|
|
12
|
+
import { createSelectProperty, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';
|
|
13
|
+
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP } from '@acorex-platform/framework-client/layout/widgets';
|
|
14
|
+
import { unset, isEmpty } from 'lodash';
|
|
15
|
+
import { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';
|
|
16
|
+
|
|
17
|
+
const WorkplaceSafetyManagementManifest = {
|
|
18
|
+
name: RootConfig.module.name,
|
|
19
|
+
version: '1.0.0',
|
|
20
|
+
title: RootConfig.module.title,
|
|
21
|
+
icon: RootConfig.module.icon,
|
|
22
|
+
i18n: RootConfig.config.i18n,
|
|
23
|
+
type: 'domain',
|
|
24
|
+
domain: 'workplace-safety',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//#region ---- Imports ----
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region ---- Menu provider ----
|
|
30
|
+
class AXMWorkplaceSafetyManagementMenuProvider {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.entityService = inject(AXPEntityService);
|
|
33
|
+
}
|
|
34
|
+
async provide(context) {
|
|
35
|
+
const module = RootConfig.module;
|
|
36
|
+
const keys = AXPSafetyRiskPermissionKeys;
|
|
37
|
+
//#region ---- Main menu: Workplace Safety ----
|
|
38
|
+
const workplaceSafetyRoot = context.find(AXMWorkplaceSafetyManagementMenuKeys.Root);
|
|
39
|
+
if (!workplaceSafetyRoot.exists) {
|
|
40
|
+
context.addItems([
|
|
41
|
+
{
|
|
42
|
+
name: AXMWorkplaceSafetyManagementMenuKeys.Root,
|
|
43
|
+
priority: 8150,
|
|
44
|
+
text: `@${RootConfig.config.i18n}:module.menus.workplace-safety`,
|
|
45
|
+
icon: module.icon,
|
|
46
|
+
type: 'menu',
|
|
47
|
+
policy: {
|
|
48
|
+
features: [module.name],
|
|
49
|
+
},
|
|
50
|
+
children: [],
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
context.find(AXMWorkplaceSafetyManagementMenuKeys.Root).addItems([
|
|
55
|
+
{
|
|
56
|
+
name: AXMWorkplaceSafetyManagementMenuKeys.SafetyPlans,
|
|
57
|
+
text: RootConfig.entities.safetyPlan.titlePlural,
|
|
58
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.safetyPlan.name),
|
|
59
|
+
icon: RootConfig.entities.safetyPlan.icon,
|
|
60
|
+
priority: 1,
|
|
61
|
+
policy: {
|
|
62
|
+
permissions: [keys.MaintainSafety],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
]);
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region ---- Configuration: Workplace Safety ----
|
|
68
|
+
const workplaceSafetyConfiguration = context.find(AXMWorkplaceSafetyManagementMenuKeys.Configuration);
|
|
69
|
+
if (!workplaceSafetyConfiguration.exists) {
|
|
70
|
+
context.find(AXPCommonMenuKeys.Configuration).addItems([
|
|
71
|
+
{
|
|
72
|
+
name: AXMWorkplaceSafetyManagementMenuKeys.Configuration,
|
|
73
|
+
priority: 8945,
|
|
74
|
+
text: `@${RootConfig.config.i18n}:module.menus.workplace-safety`,
|
|
75
|
+
icon: module.icon,
|
|
76
|
+
type: 'menu',
|
|
77
|
+
policy: {
|
|
78
|
+
features: [module.name],
|
|
79
|
+
},
|
|
80
|
+
children: [],
|
|
81
|
+
},
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
context.find(AXMWorkplaceSafetyManagementMenuKeys.Configuration).addItems([
|
|
85
|
+
{
|
|
86
|
+
text: RootConfig.entities.hazard.titlePlural,
|
|
87
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.hazard.name),
|
|
88
|
+
icon: RootConfig.entities.hazard.icon,
|
|
89
|
+
priority: 1,
|
|
90
|
+
policy: {
|
|
91
|
+
permissions: [keys.MaintainSafety],
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
text: RootConfig.entities.ppeItem.titlePlural,
|
|
96
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.ppeItem.name),
|
|
97
|
+
icon: RootConfig.entities.ppeItem.icon,
|
|
98
|
+
priority: 2,
|
|
99
|
+
policy: {
|
|
100
|
+
permissions: [keys.MaintainSafety],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
text: RootConfig.entities.controlHierarchyLevels.titlePlural,
|
|
105
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.controlHierarchyLevels.name),
|
|
106
|
+
icon: RootConfig.entities.controlHierarchyLevels.icon,
|
|
107
|
+
priority: 3,
|
|
108
|
+
policy: {
|
|
109
|
+
permissions: [keys.Setup],
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
text: RootConfig.entities.controlMeasure.titlePlural,
|
|
114
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.controlMeasure.name),
|
|
115
|
+
icon: RootConfig.entities.controlMeasure.icon,
|
|
116
|
+
priority: 4,
|
|
117
|
+
policy: {
|
|
118
|
+
permissions: [keys.MaintainSafety],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: AXMWorkplaceSafetyManagementMenuKeys.SafetyPlanTypes,
|
|
123
|
+
text: RootConfig.entities.safetyPlanType.titlePlural,
|
|
124
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.safetyPlanType.name),
|
|
125
|
+
icon: RootConfig.entities.safetyPlanType.icon,
|
|
126
|
+
priority: 5,
|
|
127
|
+
policy: {
|
|
128
|
+
permissions: [keys.Setup],
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: AXMWorkplaceSafetyManagementMenuKeys.SectionTypes,
|
|
133
|
+
text: RootConfig.entities.sectionType.titlePlural,
|
|
134
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.sectionType.name),
|
|
135
|
+
icon: RootConfig.entities.sectionType.icon,
|
|
136
|
+
priority: 6,
|
|
137
|
+
policy: {
|
|
138
|
+
permissions: [keys.Setup],
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: AXMWorkplaceSafetyManagementMenuKeys.WorkStepTypes,
|
|
143
|
+
text: RootConfig.entities.workStepType.titlePlural,
|
|
144
|
+
path: this.entityService.createPath(module.name, RootConfig.entities.workStepType.name),
|
|
145
|
+
icon: RootConfig.entities.workStepType.icon,
|
|
146
|
+
priority: 7,
|
|
147
|
+
policy: {
|
|
148
|
+
permissions: [keys.Setup],
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
]);
|
|
152
|
+
//#endregion
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//#endregion
|
|
156
|
+
|
|
157
|
+
//#endregion
|
|
158
|
+
//#region ---- Permission Definition Provider ----
|
|
159
|
+
/**
|
|
160
|
+
* Registers workplace safety capabilities into the shared Safety & Risk group.
|
|
161
|
+
*/
|
|
162
|
+
class AXMWorkplaceSafetyManagementPermissionDefinitionProvider {
|
|
163
|
+
async define(context) {
|
|
164
|
+
const keys = AXPSafetyRiskPermissionKeys;
|
|
165
|
+
const groups = AXPCommonPermissionGroupKeys;
|
|
166
|
+
const P = '@common:safety-risk.permissions';
|
|
167
|
+
const G = '@common:permission-groups';
|
|
168
|
+
context.addGroup(groups.SafetyRisk.Root, `${G}.safety-risk.title`, `${G}.safety-risk.description`, { order: 30 });
|
|
169
|
+
context
|
|
170
|
+
.addGroup(groups.SafetyRisk.WorkplaceSafety, `${G}.safety-risk-workplace-safety.title`, `${G}.safety-risk-workplace-safety.description`, { parent: groups.SafetyRisk.Root, order: 10 })
|
|
171
|
+
.addPermission(keys.Access, `${P}.access.title`, `${P}.access.description`)
|
|
172
|
+
.endPermission()
|
|
173
|
+
.addPermission(keys.MaintainSafety, `${P}.maintain-safety.title`, `${P}.maintain-safety.description`)
|
|
174
|
+
.endPermission()
|
|
175
|
+
.addPermission(keys.Setup, `${P}.setup.title`, `${P}.setup.description`)
|
|
176
|
+
.endPermission()
|
|
177
|
+
.endGroup();
|
|
178
|
+
}
|
|
179
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementPermissionDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
180
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementPermissionDefinitionProvider }); }
|
|
181
|
+
}
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementPermissionDefinitionProvider, decorators: [{
|
|
183
|
+
type: Injectable
|
|
184
|
+
}] });
|
|
185
|
+
|
|
186
|
+
class AXMWorkplaceSafetyManagementSearchCommandProvider extends AXPSearchCommandProvider {
|
|
187
|
+
constructor() {
|
|
188
|
+
super(...arguments);
|
|
189
|
+
this.commands = [];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
//#region ---- Imports ----
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region ---- Widget Config ----
|
|
196
|
+
const AXMControlHierarchyDiagramWidget = {
|
|
197
|
+
name: 'control-hierarchy-diagram-editor',
|
|
198
|
+
title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.widget-title',
|
|
199
|
+
description: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.widget-description',
|
|
200
|
+
icon: 'fa-light fa-layer-group',
|
|
201
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
202
|
+
groups: [AXPWidgetGroupEnum.UtilityWidget],
|
|
203
|
+
type: 'view',
|
|
204
|
+
options: {
|
|
205
|
+
needLabel: false,
|
|
206
|
+
},
|
|
207
|
+
properties: [
|
|
208
|
+
AXP_NAME_PROPERTY,
|
|
209
|
+
AXP_DATA_PATH_PROPERTY,
|
|
210
|
+
createSelectProperty({
|
|
211
|
+
name: 'viewType',
|
|
212
|
+
title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.fields.view-type.title',
|
|
213
|
+
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
214
|
+
path: 'options.viewType',
|
|
215
|
+
defaultValue: { id: 'horizontal', title: 'Horizontal cards' },
|
|
216
|
+
dataSource: [
|
|
217
|
+
{
|
|
218
|
+
id: 'horizontal',
|
|
219
|
+
title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.view-types.horizontal',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
id: 'vertical',
|
|
223
|
+
title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.view-types.vertical',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
id: 'horizontal-chevron',
|
|
227
|
+
title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.view-types.horizontal-chevron',
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
}),
|
|
231
|
+
],
|
|
232
|
+
components: {
|
|
233
|
+
view: {
|
|
234
|
+
component: () => import('./acorex-platform-module-workplacesafety-management-client-control-hierarchy-diagram-widget-view.component-C-qrrqOV.mjs').then((c) => c.AXMControlHierarchyDiagramWidgetViewComponent),
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
//#endregion
|
|
239
|
+
|
|
240
|
+
//#endregion
|
|
241
|
+
//#region ---- Widget Provider ----
|
|
242
|
+
class AXMWorkplaceSafetyManagementWidgetsProvider {
|
|
243
|
+
getWidgets() {
|
|
244
|
+
return [AXMControlHierarchyDiagramWidget];
|
|
245
|
+
}
|
|
246
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
247
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementWidgetsProvider }); }
|
|
248
|
+
}
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementWidgetsProvider, decorators: [{
|
|
250
|
+
type: Injectable
|
|
251
|
+
}] });
|
|
252
|
+
|
|
253
|
+
//#region ---- Imports ----
|
|
254
|
+
//#endregion
|
|
255
|
+
//#region ---- Middleware ----
|
|
256
|
+
/**
|
|
257
|
+
* Strips transient hierarchy diagram UI fields before persisting Control Hierarchy records.
|
|
258
|
+
* View type and diagram preview exist only on the entity form and must not be stored.
|
|
259
|
+
*/
|
|
260
|
+
const controlHierarchyLevelsUiCleanupMiddleware = {
|
|
261
|
+
target: {
|
|
262
|
+
ops: ['create', 'update'],
|
|
263
|
+
order: 10,
|
|
264
|
+
},
|
|
265
|
+
execute: async (ctx, next) => {
|
|
266
|
+
const entityFullName = `${RootConfig.module.name}.${RootConfig.entities.controlHierarchyLevels.name}`;
|
|
267
|
+
if (ctx.entityName !== entityFullName || !ctx.data) {
|
|
268
|
+
await next();
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
unset(ctx.data, 'hierarchyDiagramViewType');
|
|
272
|
+
unset(ctx.data, 'hierarchyDiagram');
|
|
273
|
+
await next();
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
//#endregion
|
|
277
|
+
|
|
278
|
+
//#region ---- Imports ----
|
|
279
|
+
//#endregion
|
|
280
|
+
//#region ---- Middleware ----
|
|
281
|
+
const safetyPlanEntityName = `${RootConfig.module.name}.${RootConfig.entities.safetyPlan.name}`;
|
|
282
|
+
/**
|
|
283
|
+
* Safety plan publication metadata is system-managed: stamped when status transitions to Published.
|
|
284
|
+
*/
|
|
285
|
+
const safetyPlanPublicationMiddleware = {
|
|
286
|
+
target: {
|
|
287
|
+
ops: ['create', 'update'],
|
|
288
|
+
entity: safetyPlanEntityName,
|
|
289
|
+
order: 15,
|
|
290
|
+
},
|
|
291
|
+
execute: async (ctx, next) => {
|
|
292
|
+
if (!ctx.data || typeof ctx.data !== 'object') {
|
|
293
|
+
await next();
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const data = ctx.data;
|
|
297
|
+
if (ctx.op === 'create') {
|
|
298
|
+
unset(data, 'publishedAt');
|
|
299
|
+
unset(data, 'publishedById');
|
|
300
|
+
unset(data, 'publishedBy');
|
|
301
|
+
if (!data['status']) {
|
|
302
|
+
data['status'] = AXPSystemStatusType.Draft;
|
|
303
|
+
}
|
|
304
|
+
await next();
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
const previous = ctx.previous ??
|
|
308
|
+
(ctx.id != null ? await ctx.backend.getOne(ctx.entityName, ctx.id).catch(() => null) : null);
|
|
309
|
+
const previousRecord = (previous ?? {});
|
|
310
|
+
const previousStatus = typeof previousRecord['status'] === 'string' ? previousRecord['status'] : undefined;
|
|
311
|
+
const nextStatus = typeof data['status'] === 'string' ? data['status'] : previousStatus;
|
|
312
|
+
unset(data, 'publishedAt');
|
|
313
|
+
unset(data, 'publishedById');
|
|
314
|
+
unset(data, 'publishedBy');
|
|
315
|
+
if (nextStatus === AXPSystemStatusType.Published &&
|
|
316
|
+
previousStatus !== AXPSystemStatusType.Published) {
|
|
317
|
+
data['publishedAt'] = new Date().toISOString();
|
|
318
|
+
const currentUserId = inject(AXPSessionService, { optional: true })?.user?.id;
|
|
319
|
+
if (!isEmpty(currentUserId)) {
|
|
320
|
+
data['publishedById'] = currentUserId;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else if (previousStatus === AXPSystemStatusType.Published) {
|
|
324
|
+
if (previousRecord['publishedAt']) {
|
|
325
|
+
data['publishedAt'] = previousRecord['publishedAt'];
|
|
326
|
+
}
|
|
327
|
+
if (previousRecord['publishedById']) {
|
|
328
|
+
data['publishedById'] = previousRecord['publishedById'];
|
|
329
|
+
}
|
|
330
|
+
if (previousRecord['publishedBy']) {
|
|
331
|
+
data['publishedBy'] = previousRecord['publishedBy'];
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
await next();
|
|
335
|
+
},
|
|
336
|
+
};
|
|
337
|
+
//#endregion
|
|
338
|
+
|
|
339
|
+
class AXMWorkplaceSafetyManagementModule {
|
|
340
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
341
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementModule, imports: [AXPWidgetCoreModule] }); }
|
|
342
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementModule, providers: [
|
|
343
|
+
{
|
|
344
|
+
provide: AXP_MODULE_MANIFEST_PROVIDER,
|
|
345
|
+
useValue: WorkplaceSafetyManagementManifest,
|
|
346
|
+
multi: true,
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
provide: AXP_PERMISSION_DEFINITION_PROVIDER,
|
|
350
|
+
useClass: AXMWorkplaceSafetyManagementPermissionDefinitionProvider,
|
|
351
|
+
multi: true,
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
provide: AXP_MENU_PROVIDER,
|
|
355
|
+
useClass: AXMWorkplaceSafetyManagementMenuProvider,
|
|
356
|
+
multi: true,
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
provide: AXP_ENTITY_STORAGE_MIDDLEWARE,
|
|
360
|
+
useValue: controlHierarchyLevelsUiCleanupMiddleware,
|
|
361
|
+
multi: true,
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
provide: AXP_ENTITY_STORAGE_MIDDLEWARE,
|
|
365
|
+
useValue: safetyPlanPublicationMiddleware,
|
|
366
|
+
multi: true,
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
provide: AXP_SEARCH_PROVIDER,
|
|
370
|
+
useClass: AXMWorkplaceSafetyManagementSearchCommandProvider,
|
|
371
|
+
multi: true,
|
|
372
|
+
},
|
|
373
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-hazard-ppe-rule-status.provider-o4bAwYcq.mjs').then((m) => m.AXMWorkplaceSafetyManagementHazardPpeRuleStatusProvider)),
|
|
374
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-hazard-risk-status.provider-B6IkRYbW.mjs').then((m) => m.AXMWorkplaceSafetyManagementHazardRiskStatusProvider)),
|
|
375
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-hazard-risk-ppe-rule-status.provider-DtqzcWh0.mjs').then((m) => m.AXMWorkplaceSafetyManagementHazardRiskPpeRuleStatusProvider)),
|
|
376
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-safety-plan-status.provider-BpWx3gIf.mjs').then((m) => m.AXMWorkplaceSafetyManagementSafetyPlanStatusProvider)),
|
|
377
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-workplacesafety-management-client-index-kF37zgd4.mjs').then((m) => m.AXMSafetyPlanSectionsPageComponentProvider)),
|
|
378
|
+
provideCommand('SafetyPlan:Sections:Save', () => import('./acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs').then(function (n) { return n.b; }).then((m) => m.AXMSaveSafetyPlanSectionsCommand)),
|
|
379
|
+
{
|
|
380
|
+
provide: AXP_WIDGET_DEFINITION_PROVIDER,
|
|
381
|
+
useClass: AXMWorkplaceSafetyManagementWidgetsProvider,
|
|
382
|
+
multi: true,
|
|
383
|
+
},
|
|
384
|
+
provideCommandSetups([
|
|
385
|
+
{
|
|
386
|
+
key: `${RootConfig.module.name}.${RootConfig.entities.controlHierarchyLevels.name}:Preview`,
|
|
387
|
+
command: () => import('./acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-C2X3VpEt.mjs').then((c) => c.AXMPreviewControlHierarchyDiagramCommand),
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
key: `${RootConfig.module.name}.${RootConfig.entities.safetyPlan.name}:Publish`,
|
|
391
|
+
command: () => import('./acorex-platform-module-workplacesafety-management-client-publish-safety-plan.command-Ci-zcrmO.mjs').then((c) => c.AXMPublishSafetyPlanCommand),
|
|
392
|
+
},
|
|
393
|
+
]),
|
|
394
|
+
], imports: [AXPWidgetCoreModule] }); }
|
|
395
|
+
}
|
|
396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMWorkplaceSafetyManagementModule, decorators: [{
|
|
397
|
+
type: NgModule,
|
|
398
|
+
args: [{
|
|
399
|
+
imports: [AXPWidgetCoreModule],
|
|
400
|
+
providers: [
|
|
401
|
+
{
|
|
402
|
+
provide: AXP_MODULE_MANIFEST_PROVIDER,
|
|
403
|
+
useValue: WorkplaceSafetyManagementManifest,
|
|
404
|
+
multi: true,
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
provide: AXP_PERMISSION_DEFINITION_PROVIDER,
|
|
408
|
+
useClass: AXMWorkplaceSafetyManagementPermissionDefinitionProvider,
|
|
409
|
+
multi: true,
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
provide: AXP_MENU_PROVIDER,
|
|
413
|
+
useClass: AXMWorkplaceSafetyManagementMenuProvider,
|
|
414
|
+
multi: true,
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
provide: AXP_ENTITY_STORAGE_MIDDLEWARE,
|
|
418
|
+
useValue: controlHierarchyLevelsUiCleanupMiddleware,
|
|
419
|
+
multi: true,
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
provide: AXP_ENTITY_STORAGE_MIDDLEWARE,
|
|
423
|
+
useValue: safetyPlanPublicationMiddleware,
|
|
424
|
+
multi: true,
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
provide: AXP_SEARCH_PROVIDER,
|
|
428
|
+
useClass: AXMWorkplaceSafetyManagementSearchCommandProvider,
|
|
429
|
+
multi: true,
|
|
430
|
+
},
|
|
431
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-hazard-ppe-rule-status.provider-o4bAwYcq.mjs').then((m) => m.AXMWorkplaceSafetyManagementHazardPpeRuleStatusProvider)),
|
|
432
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-hazard-risk-status.provider-B6IkRYbW.mjs').then((m) => m.AXMWorkplaceSafetyManagementHazardRiskStatusProvider)),
|
|
433
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-hazard-risk-ppe-rule-status.provider-DtqzcWh0.mjs').then((m) => m.AXMWorkplaceSafetyManagementHazardRiskPpeRuleStatusProvider)),
|
|
434
|
+
provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./acorex-platform-module-workplacesafety-management-client-safety-plan-status.provider-BpWx3gIf.mjs').then((m) => m.AXMWorkplaceSafetyManagementSafetyPlanStatusProvider)),
|
|
435
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-workplacesafety-management-client-index-kF37zgd4.mjs').then((m) => m.AXMSafetyPlanSectionsPageComponentProvider)),
|
|
436
|
+
provideCommand('SafetyPlan:Sections:Save', () => import('./acorex-platform-module-workplacesafety-management-client-save-safety-plan-sections.command-BJsg3pHZ.mjs').then(function (n) { return n.b; }).then((m) => m.AXMSaveSafetyPlanSectionsCommand)),
|
|
437
|
+
{
|
|
438
|
+
provide: AXP_WIDGET_DEFINITION_PROVIDER,
|
|
439
|
+
useClass: AXMWorkplaceSafetyManagementWidgetsProvider,
|
|
440
|
+
multi: true,
|
|
441
|
+
},
|
|
442
|
+
provideCommandSetups([
|
|
443
|
+
{
|
|
444
|
+
key: `${RootConfig.module.name}.${RootConfig.entities.controlHierarchyLevels.name}:Preview`,
|
|
445
|
+
command: () => import('./acorex-platform-module-workplacesafety-management-client-preview-control-hierarchy-diagram.command-C2X3VpEt.mjs').then((c) => c.AXMPreviewControlHierarchyDiagramCommand),
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
key: `${RootConfig.module.name}.${RootConfig.entities.safetyPlan.name}:Publish`,
|
|
449
|
+
command: () => import('./acorex-platform-module-workplacesafety-management-client-publish-safety-plan.command-Ci-zcrmO.mjs').then((c) => c.AXMPublishSafetyPlanCommand),
|
|
450
|
+
},
|
|
451
|
+
]),
|
|
452
|
+
],
|
|
453
|
+
}]
|
|
454
|
+
}] });
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Generated bundle index. Do not edit.
|
|
458
|
+
*/
|
|
459
|
+
|
|
460
|
+
export { AXMWorkplaceSafetyManagementMenuProvider, AXMWorkplaceSafetyManagementModule, AXMWorkplaceSafetyManagementSearchCommandProvider };
|
|
461
|
+
//# sourceMappingURL=acorex-platform-module-workplacesafety-management-client.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-workplacesafety-management-client.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/manifest.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/menu.provider.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/control-hierarchy-diagram/control-hierarchy-diagram-widget.config.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/middlewares/control-hierarchy-levels-ui-cleanup.middleware.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/middlewares/safety-plan-publication.middleware.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/workplacesafety-management.module.ts","../../../../libs/modules/workplacesafety-management/client/src/acorex-platform-module-workplacesafety-management-client.ts"],"sourcesContent":["import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nexport const WorkplaceSafetyManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'domain',\n domain: 'workplace-safety',\n};\n","//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport {\n RootConfig,\n AXPSafetyRiskPermissionKeys\n} from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { AXMWorkplaceSafetyManagementMenuKeys } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu provider ----\n\nexport class AXMWorkplaceSafetyManagementMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n public async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const keys = AXPSafetyRiskPermissionKeys;\n\n //#region ---- Main menu: Workplace Safety ----\n\n const workplaceSafetyRoot = context.find(AXMWorkplaceSafetyManagementMenuKeys.Root);\n if (!workplaceSafetyRoot.exists) {\n context.addItems([\n {\n name: AXMWorkplaceSafetyManagementMenuKeys.Root,\n priority: 8150,\n text: `@${RootConfig.config.i18n}:module.menus.workplace-safety`,\n icon: module.icon,\n type: 'menu',\n policy: {\n features: [module.name],\n },\n children: [],\n },\n ]);\n }\n\n context.find(AXMWorkplaceSafetyManagementMenuKeys.Root).addItems([\n {\n name: AXMWorkplaceSafetyManagementMenuKeys.SafetyPlans,\n text: RootConfig.entities.safetyPlan.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.safetyPlan.name),\n icon: RootConfig.entities.safetyPlan.icon,\n priority: 1,\n policy: {\n permissions: [keys.MaintainSafety],\n },\n },\n ]);\n\n //#endregion\n\n //#region ---- Configuration: Workplace Safety ----\n\n const workplaceSafetyConfiguration = context.find(AXMWorkplaceSafetyManagementMenuKeys.Configuration);\n if (!workplaceSafetyConfiguration.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXMWorkplaceSafetyManagementMenuKeys.Configuration,\n priority: 8945,\n text: `@${RootConfig.config.i18n}:module.menus.workplace-safety`,\n icon: module.icon,\n type: 'menu',\n policy: {\n features: [module.name],\n },\n children: [],\n },\n ]);\n }\n\n context.find(AXMWorkplaceSafetyManagementMenuKeys.Configuration).addItems([\n {\n text: RootConfig.entities.hazard.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.hazard.name),\n icon: RootConfig.entities.hazard.icon,\n priority: 1,\n policy: {\n permissions: [keys.MaintainSafety],\n },\n },\n {\n text: RootConfig.entities.ppeItem.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.ppeItem.name),\n icon: RootConfig.entities.ppeItem.icon,\n priority: 2,\n policy: {\n permissions: [keys.MaintainSafety],\n },\n },\n {\n text: RootConfig.entities.controlHierarchyLevels.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.controlHierarchyLevels.name),\n icon: RootConfig.entities.controlHierarchyLevels.icon,\n priority: 3,\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n text: RootConfig.entities.controlMeasure.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.controlMeasure.name),\n icon: RootConfig.entities.controlMeasure.icon,\n priority: 4,\n policy: {\n permissions: [keys.MaintainSafety],\n },\n },\n {\n name: AXMWorkplaceSafetyManagementMenuKeys.SafetyPlanTypes,\n text: RootConfig.entities.safetyPlanType.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.safetyPlanType.name),\n icon: RootConfig.entities.safetyPlanType.icon,\n priority: 5,\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMWorkplaceSafetyManagementMenuKeys.SectionTypes,\n text: RootConfig.entities.sectionType.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.sectionType.name),\n icon: RootConfig.entities.sectionType.icon,\n priority: 6,\n policy: {\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMWorkplaceSafetyManagementMenuKeys.WorkStepTypes,\n text: RootConfig.entities.workStepType.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.workStepType.name),\n icon: RootConfig.entities.workStepType.icon,\n priority: 7,\n policy: {\n permissions: [keys.Setup],\n },\n },\n ]);\n\n //#endregion\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex-platform/framework-client/auth';\nimport { AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPSafetyRiskPermissionKeys } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers workplace safety capabilities into the shared Safety & Risk group.\n */\n@Injectable()\nexport class AXMWorkplaceSafetyManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPSafetyRiskPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:safety-risk.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.SafetyRisk.Root, `${G}.safety-risk.title`, `${G}.safety-risk.description`, { order: 30 });\n\n context\n .addGroup(groups.SafetyRisk.WorkplaceSafety, `${G}.safety-risk-workplace-safety.title`, `${G}.safety-risk-workplace-safety.description`, { parent: groups.SafetyRisk.Root, order: 10 })\n .addPermission(keys.Access, `${P}.access.title`, `${P}.access.description`)\n .endPermission()\n .addPermission(keys.MaintainSafety, `${P}.maintain-safety.title`, `${P}.maintain-safety.description`)\n .endPermission()\n .addPermission(keys.Setup, `${P}.setup.title`, `${P}.setup.description`)\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMWorkplaceSafetyManagementSearchCommandProvider extends AXPSearchCommandProvider {\n public commands: AXPSearchResult[] = [];\n}\n","//#region ---- Imports ----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum, createSelectProperty } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_BEHAVIOR_PROPERTY_GROUP,\n AXP_DATA_PATH_PROPERTY,\n AXP_NAME_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\nimport { type AXMControlHierarchyDiagramViewTypeOption } from './control-hierarchy-diagram.types';\n\n//#endregion\n\n//#region ---- Widget Config ----\n\nexport const AXMControlHierarchyDiagramWidget: AXPWidgetConfig = {\n name: 'control-hierarchy-diagram-editor',\n title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.widget-title',\n description: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.widget-description',\n icon: 'fa-light fa-layer-group',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n groups: [AXPWidgetGroupEnum.UtilityWidget],\n type: 'view',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n createSelectProperty({\n name: 'viewType',\n title: '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.fields.view-type.title',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n path: 'options.viewType',\n defaultValue: { id: 'horizontal', title: 'Horizontal cards' },\n dataSource: [\n {\n id: 'horizontal',\n title:\n '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.view-types.horizontal',\n },\n {\n id: 'vertical',\n title:\n '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.view-types.vertical',\n },\n {\n id: 'horizontal-chevron',\n title:\n '@workplacesafety-management:control-measure-types.components.control-hierarchy-diagram.view-types.horizontal-chevron',\n },\n ],\n }),\n ],\n components: {\n view: {\n component: () =>\n import('./control-hierarchy-diagram-widget-view.component').then(\n (c) => c.AXMControlHierarchyDiagramWidgetViewComponent,\n ),\n },\n },\n};\n\nexport type AXMControlHierarchyDiagramWidgetOptions = {\n /** Default layout when context has no `hierarchyDiagramViewType`. */\n viewType?: AXMControlHierarchyDiagramViewTypeOption;\n highlightLevelId?: string;\n showTitle?: boolean;\n showViewTypeSelector?: boolean;\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\n\nimport { AXMControlHierarchyDiagramWidget } from './features/control-hierarchy-diagram/control-hierarchy-diagram-widget.config';\n\n//#endregion\n\n//#region ---- Widget Provider ----\n\n@Injectable()\nexport class AXMWorkplaceSafetyManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMControlHierarchyDiagramWidget];\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPEntityStorageMiddleware } from '@acorex-platform/framework-client/layout/entity';\nimport { unset } from 'lodash';\n\nimport { RootConfig } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * Strips transient hierarchy diagram UI fields before persisting Control Hierarchy records.\n * View type and diagram preview exist only on the entity form and must not be stored.\n */\nexport const controlHierarchyLevelsUiCleanupMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update'],\n order: 10,\n },\n\n execute: async (ctx, next) => {\n const entityFullName = `${RootConfig.module.name}.${RootConfig.entities.controlHierarchyLevels.name}`;\n\n if (ctx.entityName !== entityFullName || !ctx.data) {\n await next();\n return;\n }\n\n unset(ctx.data, 'hierarchyDiagramViewType');\n unset(ctx.data, 'hierarchyDiagram');\n\n await next();\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPEntityStorageMiddleware } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { inject } from '@angular/core';\nimport { isEmpty, unset } from 'lodash';\n\n//#endregion\n\n//#region ---- Middleware ----\n\nconst safetyPlanEntityName = `${RootConfig.module.name}.${RootConfig.entities.safetyPlan.name}`;\n\n/**\n * Safety plan publication metadata is system-managed: stamped when status transitions to Published.\n */\nexport const safetyPlanPublicationMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update'],\n entity: safetyPlanEntityName,\n order: 15,\n },\n\n execute: async (ctx, next) => {\n if (!ctx.data || typeof ctx.data !== 'object') {\n await next();\n return;\n }\n\n const data = ctx.data as Record<string, unknown>;\n\n if (ctx.op === 'create') {\n unset(data, 'publishedAt');\n unset(data, 'publishedById');\n unset(data, 'publishedBy');\n if (!data['status']) {\n data['status'] = AXPSystemStatusType.Draft;\n }\n await next();\n return;\n }\n\n const previous =\n ctx.previous ??\n (ctx.id != null ? await ctx.backend.getOne(ctx.entityName, ctx.id).catch(() => null) : null);\n const previousRecord = (previous ?? {}) as Record<string, unknown>;\n const previousStatus =\n typeof previousRecord['status'] === 'string' ? (previousRecord['status'] as string) : undefined;\n const nextStatus = typeof data['status'] === 'string' ? (data['status'] as string) : previousStatus;\n\n unset(data, 'publishedAt');\n unset(data, 'publishedById');\n unset(data, 'publishedBy');\n\n if (\n nextStatus === AXPSystemStatusType.Published &&\n previousStatus !== AXPSystemStatusType.Published\n ) {\n data['publishedAt'] = new Date().toISOString();\n const currentUserId = inject(AXPSessionService, { optional: true })?.user?.id;\n if (!isEmpty(currentUserId)) {\n data['publishedById'] = currentUserId;\n }\n } else if (previousStatus === AXPSystemStatusType.Published) {\n if (previousRecord['publishedAt']) {\n data['publishedAt'] = previousRecord['publishedAt'];\n }\n if (previousRecord['publishedById']) {\n data['publishedById'] = previousRecord['publishedById'];\n }\n if (previousRecord['publishedBy']) {\n data['publishedBy'] = previousRecord['publishedBy'];\n }\n }\n\n await next();\n },\n};\n\n//#endregion\n","import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';\nimport { AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { provideCommand, provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\n\nimport { RootConfig } from '@acorex-platform/module-workplacesafety-management-client/contracts';\nimport { WorkplaceSafetyManagementManifest } from './manifest';\nimport { AXMWorkplaceSafetyManagementMenuProvider } from './menu.provider';\nimport { AXMWorkplaceSafetyManagementPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMWorkplaceSafetyManagementSearchCommandProvider } from './search-command.provider';\nimport { AXMWorkplaceSafetyManagementWidgetsProvider } from './widget-definition.provider';\nimport { controlHierarchyLevelsUiCleanupMiddleware, safetyPlanPublicationMiddleware } from './middlewares';\n\n@NgModule({\n imports: [AXPWidgetCoreModule],\n providers: [\n\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: WorkplaceSafetyManagementManifest,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMWorkplaceSafetyManagementPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMWorkplaceSafetyManagementMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: controlHierarchyLevelsUiCleanupMiddleware,\n multi: true,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: safetyPlanPublicationMiddleware,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMWorkplaceSafetyManagementSearchCommandProvider,\n multi: true,\n },\n provideLazyProvider(AXP_STATUS_PROVIDERS, () =>\n import('./features/hazard-ppe-rule-status.provider').then(\n (m) => m.AXMWorkplaceSafetyManagementHazardPpeRuleStatusProvider,\n ),\n ),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () =>\n import('./features/hazard-risk-status.provider').then(\n (m) => m.AXMWorkplaceSafetyManagementHazardRiskStatusProvider,\n ),\n ),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () =>\n import('./features/hazard-risk-ppe-rule-status.provider').then(\n (m) => m.AXMWorkplaceSafetyManagementHazardRiskPpeRuleStatusProvider,\n ),\n ),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () =>\n import('./features/safety-plan-status.provider').then(\n (m) => m.AXMWorkplaceSafetyManagementSafetyPlanStatusProvider,\n ),\n ),\n provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () =>\n import('./features/safety-plan-sections-page').then((m) => m.AXMSafetyPlanSectionsPageComponentProvider),\n ),\n provideCommand('SafetyPlan:Sections:Save', () =>\n import('./features/safety-plan-sections-page/save-safety-plan-sections.command').then(\n (m) => m.AXMSaveSafetyPlanSectionsCommand,\n ),\n ),\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMWorkplaceSafetyManagementWidgetsProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.controlHierarchyLevels.name}:Preview`,\n command: () =>\n import('./features/control-hierarchy-diagram/commands/preview-control-hierarchy-diagram.command').then(\n (c) => c.AXMPreviewControlHierarchyDiagramCommand,\n ),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.safetyPlan.name}:Publish`,\n command: () =>\n import('./features/safety-plan/commands/publish-safety-plan.command').then(\n (c) => c.AXMPublishSafetyPlanCommand,\n ),\n },\n ]),\n ],\n})\nexport class AXMWorkplaceSafetyManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|