@acorex-platform/module-workplacesafety-management-client 0.0.46 → 0.0.49

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.
@@ -0,0 +1,341 @@
1
+ import { AXPDialogRendererComponent } from '@acorex-platform/framework-client/layout/builder';
2
+ import { AXMFormTemplateTypes } from '@acorex-platform/module-assessment-management-client/contracts';
3
+ import { AXPopupService } from '@acorex/components/popup';
4
+ import * as i0 from '@angular/core';
5
+ import { inject, Injectable } from '@angular/core';
6
+
7
+ //#region ----- Imports -----
8
+ //#endregion
9
+ //#region ----- Constants -----
10
+ /** Frontend workflow activity. Layout is built here so dialog expressions are not pre-evaluated. */
11
+ const SHOW_JOB_DOC_SETUP_COMMAND_KEY = 'WorkplaceSafetyManagement.JobDoc:ShowSetup';
12
+ const I18N = '@workplacesafety-management:job-doc';
13
+ const REQUIRED = [{ rule: 'required', message: '@general:validation.messages.required' }];
14
+ const IMPOSSIBLE_PARTY_ID = '00000000-0000-0000-0000-000000000000';
15
+ const PROJECT_ENTITY = 'ProjectManagement.Project';
16
+ const key = (suffix) => `${I18N}.${suffix}`;
17
+ //#endregion
18
+ //#region ----- Layout -----
19
+ function field(label, child, extra, visible) {
20
+ return {
21
+ type: 'form-field',
22
+ ...(visible ? { visible } : {}),
23
+ options: {
24
+ label,
25
+ showLabel: true,
26
+ ...(visible ? { visible } : {}),
27
+ ...extra,
28
+ },
29
+ children: [child],
30
+ };
31
+ }
32
+ function gridItem(child, visible) {
33
+ return {
34
+ type: 'grid-item-layout',
35
+ ...(visible ? { visible } : {}),
36
+ options: {
37
+ colSpan: 12,
38
+ ...(visible ? { visible } : {}),
39
+ },
40
+ children: [child],
41
+ };
42
+ }
43
+ function lookup(path, options) {
44
+ return {
45
+ type: 'lookup-editor',
46
+ path,
47
+ name: path,
48
+ options,
49
+ };
50
+ }
51
+ /** Same shape as entity-form visibility, for example `{{ context.eval("hasAttachments") }}`. */
52
+ function sourceIs(source) {
53
+ return `{{ context.eval("contentSource") == "${source}" }}`;
54
+ }
55
+ function buildJobDocSetupLayout() {
56
+ return {
57
+ type: 'grid-layout',
58
+ mode: 'edit',
59
+ options: {
60
+ grid: {
61
+ default: {
62
+ columns: 'repeat(12, 1fr)',
63
+ rows: 'repeat(9, auto)',
64
+ gap: '20px',
65
+ },
66
+ },
67
+ },
68
+ children: [
69
+ gridItem(field(key('setup.source'), {
70
+ type: 'selection-list-editor',
71
+ path: 'contentSource',
72
+ name: 'contentSource',
73
+ options: {
74
+ multiple: false,
75
+ direction: { id: 'horizontal' },
76
+ valueField: 'id',
77
+ textField: 'title',
78
+ dataSource: [
79
+ { id: 'questionnaire', title: key('setup.sources.questionnaire') },
80
+ { id: 'form', title: key('setup.sources.form') },
81
+ ],
82
+ validations: REQUIRED,
83
+ },
84
+ triggers: [
85
+ {
86
+ event: "{{ events.context('contentSource') }}",
87
+ action: "{{ context.set('questionnaireId', context.eval('contentSource') == 'questionnaire' ? context.eval('questionnaireId') : null); context.set('templateId', context.eval('contentSource') == 'form' ? context.eval('templateId') : null); }}",
88
+ },
89
+ ],
90
+ })),
91
+ gridItem(field(key('setup.questionnaire'), lookup('questionnaireId', {
92
+ entity: 'AssessmentManagement.Questionnaire',
93
+ textField: 'title',
94
+ valueField: 'id',
95
+ look: 'select',
96
+ expose: [{ source: 'id', target: 'questionnaireId' }],
97
+ validations: REQUIRED,
98
+ }), undefined, sourceIs('questionnaire')), sourceIs('questionnaire')),
99
+ gridItem(field(key('setup.form'), lookup('templateId', {
100
+ entity: 'AssessmentManagement.Template',
101
+ textField: 'title',
102
+ valueField: 'id',
103
+ look: 'select',
104
+ expose: [
105
+ { source: 'id', target: 'templateId' },
106
+ { source: 'title', target: 'templateTitle' },
107
+ ],
108
+ filter: {
109
+ logic: 'and',
110
+ filters: [
111
+ {
112
+ field: 'type.id',
113
+ operator: { type: 'equal' },
114
+ value: AXMFormTemplateTypes.Form.id,
115
+ },
116
+ ],
117
+ },
118
+ validations: REQUIRED,
119
+ }), undefined, sourceIs('form')), sourceIs('form')),
120
+ gridItem(field(key('setup.assignee'), lookup('assigneeUserId', {
121
+ entity: 'SecurityManagement.User',
122
+ textField: 'displayName',
123
+ valueField: 'id',
124
+ look: 'select',
125
+ columns: ['displayName', 'username'],
126
+ expose: [
127
+ { source: 'id', target: 'assigneeUserId' },
128
+ { source: 'displayName', target: 'assigneeUser.displayName' },
129
+ ],
130
+ validations: REQUIRED,
131
+ }))),
132
+ gridItem(field(key('setup.sign-offs'), lookup('signOffUserIds', {
133
+ entity: 'SecurityManagement.User',
134
+ textField: 'displayName',
135
+ valueField: 'id',
136
+ look: 'select',
137
+ multiple: true,
138
+ allowClear: true,
139
+ columns: ['displayName', 'username'],
140
+ expose: [{ source: 'id', target: 'signOffUserIds' }],
141
+ }), { description: key('setup.sign-off-help') })),
142
+ gridItem(field(key('setup.project'), lookup('projectId', {
143
+ entity: PROJECT_ENTITY,
144
+ textField: 'title',
145
+ valueField: 'id',
146
+ look: 'select',
147
+ columns: [
148
+ 'code',
149
+ 'title',
150
+ { name: 'customerId', visible: false },
151
+ { name: 'contactAssignmentId', visible: false },
152
+ { name: 'locationAssignmentId', visible: false },
153
+ ],
154
+ expose: [
155
+ { source: 'id', target: 'projectId' },
156
+ { source: 'title', target: 'projectTitle' },
157
+ { source: 'customerId', target: 'customerId' },
158
+ { source: 'customer.partyId', target: 'customer.partyId' },
159
+ { source: 'contactAssignmentId', target: 'projectContactAssignmentId' },
160
+ { source: 'locationAssignmentId', target: 'projectLocationAssignmentId' },
161
+ ],
162
+ validations: REQUIRED,
163
+ }))),
164
+ gridItem(field(key('setup.customer'), lookup('customerId', {
165
+ entity: 'CustomerManagement.Customer',
166
+ textField: 'party.title',
167
+ valueField: 'id',
168
+ look: 'select',
169
+ columns: ['party.code', 'party.title', { name: 'partyId', visible: false }],
170
+ expose: [
171
+ { source: 'id', target: 'customer.id' },
172
+ { source: 'party.title', target: 'customer.title' },
173
+ { source: 'partyId', target: 'customer.partyId' },
174
+ ],
175
+ }))),
176
+ gridItem(field(key('setup.contact'), {
177
+ ...lookup('contactAssignmentId', {
178
+ entity: 'PersonCore.ContactAssignment',
179
+ textField: 'person.fullName',
180
+ valueField: 'id',
181
+ look: 'select',
182
+ disabled: '{{ !context.eval("customerId") }}',
183
+ columns: ['person.fullName', 'role.title'],
184
+ expose: [
185
+ { source: 'id', target: 'contactAssignment.id' },
186
+ { source: 'person.fullName', target: 'contactAssignment.person.fullName' },
187
+ ],
188
+ filter: {
189
+ logic: 'and',
190
+ filters: [
191
+ {
192
+ field: 'partyId',
193
+ operator: { type: 'equal' },
194
+ value: `{{ context.eval("customer.partyId") || "${IMPOSSIBLE_PARTY_ID}" }}`,
195
+ },
196
+ ],
197
+ },
198
+ }),
199
+ triggers: [
200
+ {
201
+ event: "{{ events.context('customerId') }}",
202
+ action: "{{ widget.setValue(null); context.set('contactAssignmentId', null); context.set('contactAssignment', null); widget.refresh(); }}",
203
+ },
204
+ {
205
+ event: "{{ events.context('customer.partyId') }}",
206
+ action: '{{ widget.refresh(); }}',
207
+ },
208
+ {
209
+ event: "{{ events.context('projectContactAssignmentId') }}",
210
+ action: "{{ setTimeout(() => { widget.setValue(context.eval('projectContactAssignmentId')); context.set('contactAssignmentId', context.eval('projectContactAssignmentId')); widget.refresh(); }, 0); }}",
211
+ },
212
+ ],
213
+ })),
214
+ gridItem(field(key('setup.location'), {
215
+ ...lookup('locationAssignmentId', {
216
+ entity: 'LocationManagement.LocationAssignment',
217
+ textField: 'location.title',
218
+ valueField: 'id',
219
+ look: 'select',
220
+ disabled: '{{ !context.eval("customerId") }}',
221
+ columns: ['location.title', 'role.title', 'location.street1', 'location.city.title'],
222
+ expose: [
223
+ { source: 'id', target: 'locationAssignment.id' },
224
+ { source: 'location.title', target: 'locationAssignment.title' },
225
+ ],
226
+ filter: {
227
+ logic: 'and',
228
+ filters: [
229
+ {
230
+ field: 'ownerRef.type',
231
+ operator: { type: 'equal' },
232
+ value: 'CustomerManagement.Customer',
233
+ },
234
+ {
235
+ field: 'ownerRef.id',
236
+ operator: { type: 'equal' },
237
+ value: '{{ context.eval("customerId") }}',
238
+ },
239
+ ],
240
+ },
241
+ }),
242
+ triggers: [
243
+ {
244
+ event: "{{ events.context('customerId') }}",
245
+ action: "{{ widget.setValue(null); context.set('locationAssignmentId', null); context.set('locationAssignment', null); widget.refresh(); }}",
246
+ },
247
+ {
248
+ event: "{{ events.context('projectLocationAssignmentId') }}",
249
+ action: "{{ setTimeout(() => { widget.setValue(context.eval('projectLocationAssignmentId')); context.set('locationAssignmentId', context.eval('projectLocationAssignmentId')); widget.refresh(); }, 0); }}",
250
+ },
251
+ ],
252
+ })),
253
+ ],
254
+ };
255
+ }
256
+ const setupActions = {
257
+ prefix: [],
258
+ suffix: [
259
+ {
260
+ title: '@general:actions.cancel.title',
261
+ icon: 'fa-times',
262
+ color: 'default',
263
+ command: { name: 'cancel' },
264
+ },
265
+ {
266
+ title: '@general:actions.submit.title',
267
+ icon: 'fa-check',
268
+ color: 'primary',
269
+ command: { name: 'submit', options: { validate: true } },
270
+ },
271
+ ],
272
+ };
273
+ //#endregion
274
+ //#region ----- Command -----
275
+ class AXMShowJobDocSetupCommand {
276
+ constructor() {
277
+ //#region ----- Services & Dependencies -----
278
+ this.popupService = inject(AXPopupService);
279
+ }
280
+ //#endregion
281
+ //#region ----- Command -----
282
+ async execute() {
283
+ const dialogConfig = {
284
+ title: key('setup.title'),
285
+ context: { contentSource: 'questionnaire' },
286
+ definition: buildJobDocSetupLayout(),
287
+ actions: {
288
+ footer: {
289
+ prefix: setupActions.prefix,
290
+ suffix: setupActions.suffix,
291
+ },
292
+ },
293
+ };
294
+ const dialogResult = await new Promise((resolve) => {
295
+ this.popupService.open(AXPDialogRendererComponent, {
296
+ title: dialogConfig.title,
297
+ size: 'md',
298
+ closeButton: true,
299
+ closeOnBackdropClick: false,
300
+ draggable: true,
301
+ data: {
302
+ config: dialogConfig,
303
+ callBack: (result) => {
304
+ if (typeof result?.close === 'function') {
305
+ result.close();
306
+ }
307
+ const actionName = result?.action?.();
308
+ resolve({
309
+ context: result?.context?.() ?? dialogConfig.context,
310
+ action: typeof actionName === 'string' && actionName.length > 0 ? actionName : 'cancel',
311
+ });
312
+ },
313
+ },
314
+ });
315
+ });
316
+ const data = (dialogResult?.context ?? {});
317
+ const rawAction = dialogResult?.action;
318
+ let action = 'cancel';
319
+ if (typeof rawAction === 'string' && rawAction.length > 0) {
320
+ action = rawAction;
321
+ }
322
+ else if (rawAction && typeof rawAction === 'object' && 'name' in rawAction) {
323
+ const name = rawAction.name;
324
+ action = name && name.length > 0 ? name : 'cancel';
325
+ }
326
+ return {
327
+ success: true,
328
+ kind: 'object',
329
+ data,
330
+ metadata: { outcome: action },
331
+ };
332
+ }
333
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMShowJobDocSetupCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
334
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMShowJobDocSetupCommand }); }
335
+ }
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMShowJobDocSetupCommand, decorators: [{
337
+ type: Injectable
338
+ }] });
339
+
340
+ export { AXMShowJobDocSetupCommand, SHOW_JOB_DOC_SETUP_COMMAND_KEY };
341
+ //# sourceMappingURL=acorex-platform-module-workplacesafety-management-client-show-job-doc-setup.command-UlWyzIXQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-workplacesafety-management-client-show-job-doc-setup.command-UlWyzIXQ.mjs","sources":["../../../../libs/modules/workplacesafety-management/client/src/lib/features/job-doc/show-job-doc-setup.command.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport {\n AXPDialogRendererComponent,\n type DialogRendererConfig,\n type DialogRendererResult,\n} from '@acorex-platform/framework-client/layout/builder';\nimport type { AXPActionMenuItem, AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport type { AXPCommand, AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXMFormTemplateTypes } from '@acorex-platform/module-assessment-management-client/contracts';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { Injectable, inject } from '@angular/core';\n\n//#endregion\n\n//#region ----- Constants -----\n\n/** Frontend workflow activity. Layout is built here so dialog expressions are not pre-evaluated. */\nexport const SHOW_JOB_DOC_SETUP_COMMAND_KEY = 'WorkplaceSafetyManagement.JobDoc:ShowSetup';\n\nconst I18N = '@workplacesafety-management:job-doc';\nconst REQUIRED = [{ rule: 'required', message: '@general:validation.messages.required' }];\nconst IMPOSSIBLE_PARTY_ID = '00000000-0000-0000-0000-000000000000';\nconst PROJECT_ENTITY = 'ProjectManagement.Project';\n\nconst key = (suffix: string): string => `${I18N}.${suffix}`;\n\n//#endregion\n\n//#region ----- Layout -----\n\nfunction field(\n label: string,\n child: AXPWidgetNode,\n extra?: AXPWidgetNode['options'],\n visible?: string,\n): AXPWidgetNode {\n return {\n type: 'form-field',\n ...(visible ? { visible } : {}),\n options: {\n label,\n showLabel: true,\n ...(visible ? { visible } : {}),\n ...extra,\n },\n children: [child],\n };\n}\n\nfunction gridItem(child: AXPWidgetNode, visible?: string): AXPWidgetNode {\n return {\n type: 'grid-item-layout',\n ...(visible ? { visible } : {}),\n options: {\n colSpan: 12,\n ...(visible ? { visible } : {}),\n },\n children: [child],\n };\n}\n\nfunction lookup(path: string, options: AXPWidgetNode['options']): AXPWidgetNode {\n return {\n type: 'lookup-editor',\n path,\n name: path,\n options,\n };\n}\n\n/** Same shape as entity-form visibility, for example `{{ context.eval(\"hasAttachments\") }}`. */\nfunction sourceIs(source: 'questionnaire' | 'form'): string {\n return `{{ context.eval(\"contentSource\") == \"${source}\" }}`;\n}\n\nfunction buildJobDocSetupLayout(): AXPWidgetNode {\n return {\n type: 'grid-layout',\n mode: 'edit',\n options: {\n grid: {\n default: {\n columns: 'repeat(12, 1fr)',\n rows: 'repeat(9, auto)',\n gap: '20px',\n },\n },\n },\n children: [\n gridItem(\n field(key('setup.source'), {\n type: 'selection-list-editor',\n path: 'contentSource',\n name: 'contentSource',\n options: {\n multiple: false,\n direction: { id: 'horizontal' },\n valueField: 'id',\n textField: 'title',\n dataSource: [\n { id: 'questionnaire', title: key('setup.sources.questionnaire') },\n { id: 'form', title: key('setup.sources.form') },\n ],\n validations: REQUIRED,\n },\n triggers: [\n {\n event: \"{{ events.context('contentSource') }}\",\n action:\n \"{{ context.set('questionnaireId', context.eval('contentSource') == 'questionnaire' ? context.eval('questionnaireId') : null); context.set('templateId', context.eval('contentSource') == 'form' ? context.eval('templateId') : null); }}\",\n },\n ],\n }),\n ),\n gridItem(\n field(\n key('setup.questionnaire'),\n lookup('questionnaireId', {\n entity: 'AssessmentManagement.Questionnaire',\n textField: 'title',\n valueField: 'id',\n look: 'select',\n expose: [{ source: 'id', target: 'questionnaireId' }],\n validations: REQUIRED,\n }),\n undefined,\n sourceIs('questionnaire'),\n ),\n sourceIs('questionnaire'),\n ),\n gridItem(\n field(\n key('setup.form'),\n lookup('templateId', {\n entity: 'AssessmentManagement.Template',\n textField: 'title',\n valueField: 'id',\n look: 'select',\n expose: [\n { source: 'id', target: 'templateId' },\n { source: 'title', target: 'templateTitle' },\n ],\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'type.id',\n operator: { type: 'equal' },\n value: AXMFormTemplateTypes.Form.id,\n },\n ],\n },\n validations: REQUIRED,\n }),\n undefined,\n sourceIs('form'),\n ),\n sourceIs('form'),\n ),\n gridItem(\n field(\n key('setup.assignee'),\n lookup('assigneeUserId', {\n entity: 'SecurityManagement.User',\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n columns: ['displayName', 'username'],\n expose: [\n { source: 'id', target: 'assigneeUserId' },\n { source: 'displayName', target: 'assigneeUser.displayName' },\n ],\n validations: REQUIRED,\n }),\n ),\n ),\n gridItem(\n field(\n key('setup.sign-offs'),\n lookup('signOffUserIds', {\n entity: 'SecurityManagement.User',\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n multiple: true,\n allowClear: true,\n columns: ['displayName', 'username'],\n expose: [{ source: 'id', target: 'signOffUserIds' }],\n }),\n { description: key('setup.sign-off-help') },\n ),\n ),\n gridItem(\n field(\n key('setup.project'),\n lookup('projectId', {\n entity: PROJECT_ENTITY,\n textField: 'title',\n valueField: 'id',\n look: 'select',\n columns: [\n 'code',\n 'title',\n { name: 'customerId', visible: false },\n { name: 'contactAssignmentId', visible: false },\n { name: 'locationAssignmentId', visible: false },\n ],\n expose: [\n { source: 'id', target: 'projectId' },\n { source: 'title', target: 'projectTitle' },\n { source: 'customerId', target: 'customerId' },\n { source: 'customer.partyId', target: 'customer.partyId' },\n { source: 'contactAssignmentId', target: 'projectContactAssignmentId' },\n { source: 'locationAssignmentId', target: 'projectLocationAssignmentId' },\n ],\n validations: REQUIRED,\n }),\n ),\n ),\n gridItem(\n field(\n key('setup.customer'),\n lookup('customerId', {\n entity: 'CustomerManagement.Customer',\n textField: 'party.title',\n valueField: 'id',\n look: 'select',\n columns: ['party.code', 'party.title', { name: 'partyId', visible: false }],\n expose: [\n { source: 'id', target: 'customer.id' },\n { source: 'party.title', target: 'customer.title' },\n { source: 'partyId', target: 'customer.partyId' },\n ],\n }),\n ),\n ),\n gridItem(\n field(key('setup.contact'), {\n ...lookup('contactAssignmentId', {\n entity: 'PersonCore.ContactAssignment',\n textField: 'person.fullName',\n valueField: 'id',\n look: 'select',\n disabled: '{{ !context.eval(\"customerId\") }}',\n columns: ['person.fullName', 'role.title'],\n expose: [\n { source: 'id', target: 'contactAssignment.id' },\n { source: 'person.fullName', target: 'contactAssignment.person.fullName' },\n ],\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'partyId',\n operator: { type: 'equal' },\n value: `{{ context.eval(\"customer.partyId\") || \"${IMPOSSIBLE_PARTY_ID}\" }}`,\n },\n ],\n },\n }),\n triggers: [\n {\n event: \"{{ events.context('customerId') }}\",\n action:\n \"{{ widget.setValue(null); context.set('contactAssignmentId', null); context.set('contactAssignment', null); widget.refresh(); }}\",\n },\n {\n event: \"{{ events.context('customer.partyId') }}\",\n action: '{{ widget.refresh(); }}',\n },\n {\n event: \"{{ events.context('projectContactAssignmentId') }}\",\n action:\n \"{{ setTimeout(() => { widget.setValue(context.eval('projectContactAssignmentId')); context.set('contactAssignmentId', context.eval('projectContactAssignmentId')); widget.refresh(); }, 0); }}\",\n },\n ],\n }),\n ),\n gridItem(\n field(key('setup.location'), {\n ...lookup('locationAssignmentId', {\n entity: 'LocationManagement.LocationAssignment',\n textField: 'location.title',\n valueField: 'id',\n look: 'select',\n disabled: '{{ !context.eval(\"customerId\") }}',\n columns: ['location.title', 'role.title', 'location.street1', 'location.city.title'],\n expose: [\n { source: 'id', target: 'locationAssignment.id' },\n { source: 'location.title', target: 'locationAssignment.title' },\n ],\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'ownerRef.type',\n operator: { type: 'equal' },\n value: 'CustomerManagement.Customer',\n },\n {\n field: 'ownerRef.id',\n operator: { type: 'equal' },\n value: '{{ context.eval(\"customerId\") }}',\n },\n ],\n },\n }),\n triggers: [\n {\n event: \"{{ events.context('customerId') }}\",\n action:\n \"{{ widget.setValue(null); context.set('locationAssignmentId', null); context.set('locationAssignment', null); widget.refresh(); }}\",\n },\n {\n event: \"{{ events.context('projectLocationAssignmentId') }}\",\n action:\n \"{{ setTimeout(() => { widget.setValue(context.eval('projectLocationAssignmentId')); context.set('locationAssignmentId', context.eval('projectLocationAssignmentId')); widget.refresh(); }, 0); }}\",\n },\n ],\n }),\n ),\n ],\n };\n}\n\nconst setupActions: { prefix: AXPActionMenuItem[]; suffix: AXPActionMenuItem[] } = {\n prefix: [],\n suffix: [\n {\n title: '@general:actions.cancel.title',\n icon: 'fa-times',\n color: 'default',\n command: { name: 'cancel' },\n },\n {\n title: '@general:actions.submit.title',\n icon: 'fa-check',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n },\n ],\n};\n\n//#endregion\n\n//#region ----- Command -----\n\n@Injectable()\nexport class AXMShowJobDocSetupCommand implements AXPCommand<void, Record<string, unknown>> {\n //#region ----- Services & Dependencies -----\n\n private readonly popupService = inject(AXPopupService);\n\n //#endregion\n\n //#region ----- Command -----\n\n async execute(): AXPCommandExecuteResultPromise<Record<string, unknown>> {\n const dialogConfig: DialogRendererConfig = {\n title: key('setup.title'),\n context: { contentSource: 'questionnaire' },\n definition: buildJobDocSetupLayout(),\n actions: {\n footer: {\n prefix: setupActions.prefix,\n suffix: setupActions.suffix,\n },\n },\n };\n\n const dialogResult = await new Promise<DialogRendererResult>((resolve) => {\n this.popupService.open(AXPDialogRendererComponent, {\n title: dialogConfig.title,\n size: 'md',\n closeButton: true,\n closeOnBackdropClick: false,\n draggable: true,\n data: {\n config: dialogConfig,\n callBack: (result: { close?: () => void; context?: () => Record<string, unknown>; action?: () => string | undefined }) => {\n if (typeof result?.close === 'function') {\n result.close();\n }\n const actionName = result?.action?.();\n resolve({\n context: result?.context?.() ?? dialogConfig.context,\n action: typeof actionName === 'string' && actionName.length > 0 ? actionName : 'cancel',\n });\n },\n },\n });\n });\n\n const data = (dialogResult?.context ?? {}) as Record<string, unknown>;\n const rawAction = dialogResult?.action;\n let action = 'cancel';\n if (typeof rawAction === 'string' && rawAction.length > 0) {\n action = rawAction;\n } else if (rawAction && typeof rawAction === 'object' && 'name' in rawAction) {\n const name = (rawAction as { name?: string }).name;\n action = name && name.length > 0 ? name : 'cancel';\n }\n\n return {\n success: true,\n kind: 'object',\n data,\n metadata: { outcome: action },\n };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { A as AXMWorkplaceSafetyManagementMenuProvider, a as AXMWorkplaceSafetyManagementModule, b as AXMWorkplaceSafetyManagementSearchCommandProvider } from './acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-C3a08xjg.mjs';
1
+ export { A as AXMWorkplaceSafetyManagementMenuProvider, a as AXMWorkplaceSafetyManagementModule, b as AXMWorkplaceSafetyManagementSearchCommandProvider } from './acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-C2CZZwOj.mjs';
2
2
  //# sourceMappingURL=acorex-platform-module-workplacesafety-management-client.mjs.map
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-workplacesafety-management-client",
3
- "version": "0.0.46",
3
+ "version": "0.0.49",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/module-data-management-client": "0.0.46",
6
+ "@acorex-platform/module-data-management-client": "0.0.49",
7
7
  "@angular/common": "^21.0.0 || ^22.0.0",
8
8
  "@angular/core": "^21.0.0 || ^22.0.0"
9
9
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-workplacesafety-management-client-acorex-platform-module-workplacesafety-management-client-C3a08xjg.mjs","sources":["../../../../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/features/ppe-item-viewer/ppe-item-viewer.types.ts","../../../../libs/modules/workplacesafety-management/client/src/lib/features/ppe-item-viewer/ppe-item-viewer-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/features/onboarding/workplace-safety-onboarding-steps.hook.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":["//#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.SafetyPlanActivities,\n text: RootConfig.entities.safetyPlanActivity.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.safetyPlanActivity.name),\n icon: RootConfig.entities.safetyPlanActivity.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 ----- Types -----\n\nexport const PPE_ITEM_VIEWER_WIDGET_NAME = 'ppe-item-viewer';\n\nexport type AXMPpeItemViewerLayout = 'horizontal' | 'vertical';\n\nexport type AXMPpeItemViewerLayoutOption =\n | AXMPpeItemViewerLayout\n | { id: AXMPpeItemViewerLayout; title?: string };\n\nexport type AXMPpeItemViewerLook = 'card' | 'list';\n\nexport interface AXMPpeItemViewerDisplayItem {\n id: string;\n title: string;\n code?: string;\n serialNumber?: string;\n imageUrl: string | null;\n}\n\nexport interface AXMPpeItemViewerWidgetOptions {\n ppeItems?: unknown;\n layout?: AXMPpeItemViewerLayoutOption;\n disabled?: boolean;\n readonly?: boolean;\n label?: string;\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum, createSelectProperty } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_EDITOR_SUB_CHOICE } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_BEHAVIOR_PROPERTY_GROUP,\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_NAME_PROPERTY,\n AXP_READONLY_PROPERTY,\n AXP_REQUIRED_VALIDATION_PROPERTY,\n AXP_TRIGGERS_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\nimport { RootConfig } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\nimport { PPE_ITEM_VIEWER_WIDGET_NAME } from './ppe-item-viewer.types';\n\n//#endregion\n\n//#region ----- Widget Config -----\n\nexport const AXMPpeItemViewerWidget: AXPWidgetConfig = {\n name: PPE_ITEM_VIEWER_WIDGET_NAME,\n title: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.widget-title',\n description: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.widget-description',\n icon: 'fa-light fa-helmet-safety',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,\n groups: [AXPWidgetGroupEnum.FormElement],\n defaultFilterWidgetName: 'lookup-filter',\n type: 'editor',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n {\n name: 'ppeItems',\n title: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.fields.ppe-items.title',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n dataType: 'array',\n interface: {\n name: 'ppeItems',\n path: 'options.ppeItems',\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.ppeItem.name}`,\n look: 'select',\n multiple: true,\n allowSearch: true,\n valueField: 'id',\n textField: 'title',\n },\n },\n },\n visible: true,\n },\n createSelectProperty({\n name: 'layout',\n title: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.fields.layout.title',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n path: 'options.layout',\n defaultValue: {\n id: 'horizontal',\n title: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.layouts.horizontal',\n },\n dataSource: [\n {\n id: 'horizontal',\n title: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.layouts.horizontal',\n },\n {\n id: 'vertical',\n title: '@workplacesafety-management:ppe-items.components.ppe-item-viewer.layouts.vertical',\n },\n ],\n }),\n AXP_READONLY_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_TRIGGERS_PROPERTY,\n AXP_REQUIRED_VALIDATION_PROPERTY,\n ],\n components: {\n edit: {\n component: () =>\n import('./ppe-item-viewer-widget-edit.component').then((c) => c.AXMPpeItemViewerWidgetEditComponent),\n },\n view: {\n component: () =>\n import('./ppe-item-viewer-widget-edit.component').then((c) => c.AXMPpeItemViewerWidgetEditComponent),\n },\n designer: {\n component: () =>\n import('./ppe-item-viewer-widget-edit.component').then((c) => c.AXMPpeItemViewerWidgetEditComponent),\n },\n print: {\n component: () =>\n import('./ppe-item-viewer-widget-edit.component').then((c) => c.AXMPpeItemViewerWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./ppe-item-viewer-widget-column.component').then((c) => c.AXMPpeItemViewerWidgetColumnComponent),\n },\n },\n};\n\ndeclare module '@acorex-platform/framework-shared/widget-core' {\n interface AXPWidgetTypesMap {\n ppeItemViewer: 'ppe-item-viewer';\n }\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';\nimport { AXMPpeItemViewerWidget } from './features/ppe-item-viewer/ppe-item-viewer-widget.config';\n\n//#endregion\n\n//#region ---- Widget Provider ----\n\n@Injectable()\nexport class AXMWorkplaceSafetyManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMControlHierarchyDiagramWidget, AXMPpeItemViewerWidget];\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 { AXPHookProvider } from '@acorex-platform/framework-client/core';\nimport {\n ONBOARDING_STEPS_HOOK,\n type AXPOnboardingStepsPayload,\n} from '@acorex-platform/module-auth-client';\nimport { RootConfig } from '@acorex-platform/module-workplacesafety-management-client/contracts';\n\n//#region ----- Workplace safety orientation step -----\n\nconst MODULE_NAME = RootConfig.module.name;\nconst SAFETY_PLAN_ENTITY = RootConfig.entities.safetyPlan.name;\n\n/**\n * Application-scoped Workplace Safety orientation when WHS is loaded\n * (e.g. Safetyminder). Regular-user safe: where to find day-to-day safety\n * tools — not admin register/plan configuration.\n */\nexport const WorkplaceSafetyOnboardingStepsHookProvider: AXPHookProvider<\n AXPOnboardingStepsPayload,\n AXPOnboardingStepsPayload\n> = {\n key: ONBOARDING_STEPS_HOOK,\n priority: 45,\n execute: (payload) => ({\n ...payload,\n steps: [\n ...payload.steps,\n {\n id: 'whs-orientation',\n scope: 'application',\n title: '@workplacesafety-management:onboarding.steps.whs-orientation.title',\n description:\n '@workplacesafety-management:onboarding.steps.whs-orientation.description',\n icon: 'far fa-helmet-safety',\n priority: 45,\n actions: [\n {\n text: '@workplacesafety-management:onboarding.steps.whs-orientation.open-safety-plans',\n icon: 'fa-regular fa-file-shield',\n command: {\n name: 'navigate',\n options: {\n path: `/{app}/m/${MODULE_NAME}/e/${SAFETY_PLAN_ENTITY}/list`,\n },\n },\n },\n {\n text: '@workplacesafety-management:onboarding.steps.whs-orientation.open-my-drive',\n icon: 'fa-regular fa-folder-open',\n command: {\n name: 'navigate',\n options: { path: '/{app}/drive/user' },\n },\n },\n ],\n },\n ],\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 {\n AXP_HOOK_PROVIDER,\n provideLazyProvider,\n} 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 { 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';\nimport { WorkplaceSafetyOnboardingStepsHookProvider } from './features/onboarding/workplace-safety-onboarding-steps.hook';\n\n@NgModule({\n imports: [AXPWidgetCoreModule],\n providers: [\n\n {\n provide: AXP_HOOK_PROVIDER,\n useValue: WorkplaceSafetyOnboardingStepsHookProvider,\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/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}:Preview`,\n command: () =>\n import('./features/safety-plan/commands/preview-safety-plan.command').then(\n (c) => c.AXMPreviewSafetyPlanCommand,\n ),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.safetyPlan.name}:Fill`,\n command: () =>\n import('./features/safety-plan/commands/fill-safety-plan.command').then(\n (c) => c.AXMFillSafetyPlanCommand,\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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"}