@acorex-platform/module-maintenance-management-client 2.0.0-next.1 → 2.0.0-next.10

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.
Files changed (87) hide show
  1. package/fesm2022/{acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs → acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-DFQ1G-hG.mjs} +37 -16
  2. package/fesm2022/acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-DFQ1G-hG.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-order.mjs +1 -1
  4. package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-order.mjs.map +1 -1
  5. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-Dgu63wyv.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-DizPNs_s.mjs} +27 -27
  6. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-Dgu63wyv.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-DizPNs_s.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-CePSpBHM.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-kR0oSO4e.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-CePSpBHM.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-kR0oSO4e.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-Bfvk4GcQ.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-ClwDi_Jb.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-Bfvk4GcQ.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-ClwDi_Jb.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-Jy3BDuNN.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-DP5sZxs_.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-Jy3BDuNN.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-DP5sZxs_.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-CCgWn686.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-BmeTCrwN.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-CCgWn686.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-BmeTCrwN.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-r_GaKV4C.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-CDpUhYiN.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-r_GaKV4C.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-CDpUhYiN.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-BC8cmP-E.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-Cdk-qtLE.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-BC8cmP-E.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-Cdk-qtLE.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DkyVyX8d.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-C44dK6qu.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DkyVyX8d.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-C44dK6qu.mjs.map} +1 -1
  21. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-WxiHq42o.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-CjSaac8w.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-WxiHq42o.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-CjSaac8w.mjs.map} +1 -1
  23. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-B1yGBbFQ.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-Be5DyJW3.mjs} +2 -2
  24. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-B1yGBbFQ.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-Be5DyJW3.mjs.map} +1 -1
  25. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-Bquvs5zg.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-NVDxs4Jg.mjs} +2 -2
  26. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-Bquvs5zg.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-NVDxs4Jg.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DU4i03Hi.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DPxL9xPT.mjs} +2 -2
  28. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DU4i03Hi.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DPxL9xPT.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-DvO7KoEq.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-D6eRyfNF.mjs} +2 -2
  30. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-DvO7KoEq.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-D6eRyfNF.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-DK702y8j.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-B8hemq03.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-DK702y8j.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-B8hemq03.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-Dua1ufeE.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-DbZv4ND1.mjs} +2 -2
  34. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-Dua1ufeE.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-DbZv4ND1.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-Cs-SLfHm.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-DY1wDu57.mjs} +2 -2
  36. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-Cs-SLfHm.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-DY1wDu57.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-C-vkhC0g.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-CNEyZP8a.mjs} +2 -2
  38. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-C-vkhC0g.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-CNEyZP8a.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-DEcLe9MD.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-CzCbAfmc.mjs} +2 -2
  40. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-DEcLe9MD.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-CzCbAfmc.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-R0UVSWKi.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-CbNGgF1g.mjs} +2 -2
  42. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-R0UVSWKi.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-CbNGgF1g.mjs.map} +1 -1
  43. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-C3KERG4U.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-CbdP4Qru.mjs} +2 -2
  44. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-C3KERG4U.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-CbdP4Qru.mjs.map} +1 -1
  45. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-EXXJjDYH.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-UmQTCcp5.mjs} +2 -2
  46. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-EXXJjDYH.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-UmQTCcp5.mjs.map} +1 -1
  47. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-CrMPuOD8.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-Ca41hUCB.mjs} +2 -2
  48. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-CrMPuOD8.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-Ca41hUCB.mjs.map} +1 -1
  49. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-Bn2DAaNN.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-pJH1271_.mjs} +2 -2
  50. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-Bn2DAaNN.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-pJH1271_.mjs.map} +1 -1
  51. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-DS8_oRB7.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-CILIRWU2.mjs} +2 -2
  52. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-DS8_oRB7.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-CILIRWU2.mjs.map} +1 -1
  53. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-DS1RPQ-I.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-B52SPa32.mjs} +3 -3
  54. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-DS1RPQ-I.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-B52SPa32.mjs.map} +1 -1
  55. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-BUMsgLTC.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-D981EFzG.mjs} +2 -2
  56. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-BUMsgLTC.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-D981EFzG.mjs.map} +1 -1
  57. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-V0CqICBq.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-DhlbPwc1.mjs} +2 -2
  58. package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-V0CqICBq.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-DhlbPwc1.mjs.map} +1 -1
  59. package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog.mjs +1 -1
  60. package/fesm2022/acorex-platform-module-maintenance-management-client-contracts.mjs +450 -1
  61. package/fesm2022/acorex-platform-module-maintenance-management-client-contracts.mjs.map +1 -1
  62. package/fesm2022/{acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-BXKKfu4I.mjs → acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-C33pzC76.mjs} +2 -2
  63. package/fesm2022/{acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-BXKKfu4I.mjs.map → acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-C33pzC76.mjs.map} +1 -1
  64. package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-Be1Nup4H.mjs → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-yQWSRSqF.mjs} +2 -2
  65. package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-Be1Nup4H.mjs.map → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-yQWSRSqF.mjs.map} +1 -1
  66. package/fesm2022/acorex-platform-module-maintenance-management-client-open-work-order-checklist-form.command-BWzoBPoP.mjs +597 -0
  67. package/fesm2022/acorex-platform-module-maintenance-management-client-open-work-order-checklist-form.command-BWzoBPoP.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BJUgm59a.mjs → acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BsWJRAfF.mjs} +2 -2
  69. package/fesm2022/{acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BJUgm59a.mjs.map → acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BsWJRAfF.mjs.map} +1 -1
  70. package/fesm2022/acorex-platform-module-maintenance-management-client-sign-off-work-order.command-Ca8WbM3R.mjs +217 -0
  71. package/fesm2022/acorex-platform-module-maintenance-management-client-sign-off-work-order.command-Ca8WbM3R.mjs.map +1 -0
  72. package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow-id.util-CuUi8LBT.mjs +123 -0
  73. package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow-id.util-CuUi8LBT.mjs.map +1 -0
  74. package/fesm2022/{acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs → acorex-platform-module-maintenance-management-client-start-work-order-flow.command-C4vMm8Mu.mjs} +249 -129
  75. package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow.command-C4vMm8Mu.mjs.map +1 -0
  76. package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs → acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-CIU_evCh.mjs} +2 -2
  77. package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs.map → acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-CIU_evCh.mjs.map} +1 -1
  78. package/fesm2022/{acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs → acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DiUfIHO9.mjs} +2 -2
  79. package/fesm2022/{acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs.map → acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DiUfIHO9.mjs.map} +1 -1
  80. package/fesm2022/acorex-platform-module-maintenance-management-client.mjs +1 -1
  81. package/i18n/en-AU/maintenance-management.json +47 -1
  82. package/i18n/en-US/maintenance-management.json +47 -1
  83. package/i18n/fa-IR/maintenance-management.json +47 -1
  84. package/package.json +2 -2
  85. package/types/acorex-platform-module-maintenance-management-client-contracts.d.ts +153 -2
  86. package/fesm2022/acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs.map +0 -1
@@ -0,0 +1,597 @@
1
+ import { AXToastService } from '@acorex/components/toast';
2
+ import { AXTranslationService } from '@acorex/core/translation';
3
+ import { AXPSessionService } from '@acorex-platform/framework-client/auth';
4
+ import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
5
+ import { AXPCommandService } from '@acorex-platform/framework-client/runtime';
6
+ import * as i0 from '@angular/core';
7
+ import { inject, Injectable } from '@angular/core';
8
+ import { get, defaultTo, isString } from 'lodash';
9
+ import { RootConfig, resolveChecklistId, readIntervalChecklistId, pickCanonicalChecklistRow, AXM_INTERVAL_CHECKLIST_QUESTIONNAIRE_ID, AXM_INTERVAL_CHECKLIST_CASE_ID, AXM_INTERVAL_CHECKLIST_SESSION_ID, isWorkOrderChecklistOccurrence, AXM_INTERVAL_CHECKLIST_CLAIM, resolveIntervalChecklistViewerMode } from '@acorex-platform/module-maintenance-management-client/contracts';
10
+ import { W as WORK_ORDER_CHECKLIST_ASSET_PREFILL_KEYS } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-DFQ1G-hG.mjs';
11
+ import { r as resolveStartWorkOrderFlowIds, p as persistIntervalTaskCard } from './acorex-platform-module-maintenance-management-client-start-work-order-flow-id.util-CuUi8LBT.mjs';
12
+
13
+ //#region ---- Imports ----
14
+ //#endregion
15
+ //#region ---- Types ----
16
+ const FILL_ASSESSMENT_COMMAND = 'AssessmentManagement.AssessmentCase:Fill';
17
+ const VIEW_ANSWERS_COMMAND = 'AssessmentManagement.AssessmentSession:ViewAnswers';
18
+ const ASSESSMENT_MODULE = 'AssessmentManagement';
19
+ const ASSESSMENT_CASE = 'AssessmentCase';
20
+ const ASSESSMENT_SESSION = 'AssessmentSession';
21
+ const WORK_ORDER_SUBJECT_TYPE = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;
22
+ const CLAIM_TTL_MS = 15_000;
23
+ //#endregion
24
+ /**
25
+ * Opens the interval work-order checklist in the assessment viewer.
26
+ * In Progress creates one AssessmentCase and AssessmentSession, then reuses them and keeps the form editable.
27
+ * Completed opens that same session with ViewAnswers and does not create, save, or change the card.
28
+ * The task-board card stays active.
29
+ */
30
+ class OpenWorkOrderChecklistFormCommand {
31
+ constructor() {
32
+ //#region ---- Services & Dependencies ----
33
+ this.entityService = inject(AXPEntityService);
34
+ this.commandService = inject(AXPCommandService);
35
+ this.sessionService = inject(AXPSessionService);
36
+ this.toastService = inject(AXToastService);
37
+ this.translationService = inject(AXTranslationService);
38
+ }
39
+ //#endregion
40
+ //#region ---- Command Implementation ----
41
+ async execute(input) {
42
+ const ids = resolveStartWorkOrderFlowIds(input);
43
+ const workOrderId = ids.workOrderId;
44
+ if (!workOrderId) {
45
+ return this.fail('Work order id is required.');
46
+ }
47
+ const workOrder = await this.loadWorkOrder(workOrderId);
48
+ if (!workOrder) {
49
+ return this.fail('Work order not found.');
50
+ }
51
+ const currentUserId = this.resolveText(this.sessionService.user?.id);
52
+ const assigneeUserId = await this.resolveAssigneeUserId(this.resolveText(workOrder.assignedToId));
53
+ if (!currentUserId || !assigneeUserId || currentUserId !== assigneeUserId) {
54
+ return this.failKey('@maintenance-management:work-orders.messages.checklist-assignee-only');
55
+ }
56
+ const instanceId = ids.sourceInstanceId;
57
+ if (!instanceId) {
58
+ return this.fail('Workflow instance id is required.');
59
+ }
60
+ const instance = await this.readWorkflowInstance(instanceId);
61
+ if (!instance) {
62
+ return this.fail('Workflow instance not found.');
63
+ }
64
+ const viewerMode = this.resolveViewerMode(workOrder, instance, ids.sourceBookmarkId, workOrderId);
65
+ const completed = viewerMode === 'readonly';
66
+ if (viewerMode === 'unavailable') {
67
+ return this.failKey('@maintenance-management:work-orders.messages.checklist-requires-in-progress');
68
+ }
69
+ const requestedChecklist = resolveChecklistId(get(input, 'checklist')) || resolveChecklistId(get(input, 'options.checklist'));
70
+ const questionnaireId = readIntervalChecklistId(instance, requestedChecklist);
71
+ if (!questionnaireId) {
72
+ return this.failKey('@maintenance-management:work-orders.messages.checklist-missing');
73
+ }
74
+ const questionnaire = await this.entityService
75
+ .withEntity(ASSESSMENT_MODULE, 'Questionnaire')
76
+ .data()
77
+ .byKey(questionnaireId);
78
+ if (!questionnaire) {
79
+ return this.failKey('@maintenance-management:work-orders.messages.checklist-missing');
80
+ }
81
+ try {
82
+ if (!completed) {
83
+ await persistIntervalTaskCard(this.entityService, {
84
+ instanceId,
85
+ workOrderId,
86
+ sourceBookmarkId: ids.sourceBookmarkId,
87
+ mode: 'in-progress',
88
+ assigneeUserId,
89
+ });
90
+ }
91
+ const occurrence = completed
92
+ ? await this.findExistingOccurrence(instanceId, workOrderId, questionnaireId)
93
+ : await this.ensureOccurrence({
94
+ instanceId,
95
+ bookmarkId: ids.sourceBookmarkId,
96
+ workOrderId,
97
+ workOrderNo: this.resolveText(workOrder.workOrderNo),
98
+ questionnaireId,
99
+ responderId: currentUserId,
100
+ });
101
+ if (!occurrence) {
102
+ return this.failKey('@maintenance-management:work-orders.messages.checklist-occurrence-invalid');
103
+ }
104
+ const validated = await this.loadValidatedOccurrence(occurrence, workOrderId, questionnaireId);
105
+ if (!validated) {
106
+ return this.failKey('@maintenance-management:work-orders.messages.checklist-occurrence-invalid');
107
+ }
108
+ if (completed) {
109
+ const viewed = await this.commandService.execute(VIEW_ANSWERS_COMMAND, {
110
+ caseId: validated.caseId,
111
+ sessionId: validated.sessionId,
112
+ });
113
+ return viewed ?? { success: false, message: { text: 'Checklist form could not be opened.' } };
114
+ }
115
+ const result = await this.commandService.execute(FILL_ASSESSMENT_COMMAND, {
116
+ caseId: validated.caseId,
117
+ sessionId: validated.sessionId,
118
+ showAs: 'popup',
119
+ responderId: currentUserId,
120
+ role: 'responder',
121
+ allowEditSubmitted: true,
122
+ readonlyAnswerKeys: [...WORK_ORDER_CHECKLIST_ASSET_PREFILL_KEYS],
123
+ });
124
+ return result ?? { success: false, message: { text: 'Checklist form could not be opened.' } };
125
+ }
126
+ catch (error) {
127
+ const message = error instanceof Error
128
+ ? error.message
129
+ : await this.translationService.translateAsync('@general:messages.generic.error.description');
130
+ console.error('[OpenWorkOrderChecklistFormCommand]', error);
131
+ return this.fail(message);
132
+ }
133
+ }
134
+ //#endregion
135
+ //#region ---- Occurrence ----
136
+ /**
137
+ * Reuses stored or work-order-linked case/session ids.
138
+ * A claim on the workflow instance stops a second click from creating another pair.
139
+ */
140
+ async ensureOccurrence(input, attempt = 0) {
141
+ const existing = await this.findExistingOccurrence(input.instanceId, input.workOrderId, input.questionnaireId);
142
+ if (existing) {
143
+ await this.persistOccurrenceIds(input.instanceId, input.bookmarkId, input.workOrderId, input.questionnaireId, existing);
144
+ return existing;
145
+ }
146
+ if (attempt > 4) {
147
+ throw new Error('Checklist form could not be opened.');
148
+ }
149
+ const token = crypto.randomUUID();
150
+ const owned = await this.tryClaim(input.instanceId, {
151
+ token,
152
+ at: new Date().toISOString(),
153
+ workOrderId: input.workOrderId,
154
+ questionnaireId: input.questionnaireId,
155
+ });
156
+ if (!owned) {
157
+ const waited = await this.waitForOccurrence(input.instanceId, input.workOrderId, input.questionnaireId);
158
+ if (waited) {
159
+ await this.persistOccurrenceIds(input.instanceId, input.bookmarkId, input.workOrderId, input.questionnaireId, waited);
160
+ return waited;
161
+ }
162
+ return this.ensureOccurrence(input, attempt + 1);
163
+ }
164
+ let created = null;
165
+ try {
166
+ const chosen = await this.createOrReuseOccurrence(input);
167
+ created = chosen.created;
168
+ if (created && created.caseId === chosen.ids.caseId && created.sessionId !== chosen.ids.sessionId) {
169
+ try {
170
+ await this.deleteEmptySession(created.sessionId);
171
+ }
172
+ catch (error) {
173
+ console.warn('[OpenWorkOrderChecklistFormCommand] unused checklist session was kept', error);
174
+ }
175
+ }
176
+ else if (created && created.caseId !== chosen.ids.caseId) {
177
+ try {
178
+ await this.deleteEmptyOccurrence(created);
179
+ }
180
+ catch (error) {
181
+ console.warn('[OpenWorkOrderChecklistFormCommand] unused checklist duplicate was kept', error);
182
+ }
183
+ }
184
+ await this.persistOccurrenceIds(input.instanceId, input.bookmarkId, input.workOrderId, input.questionnaireId, chosen.ids);
185
+ return chosen.ids;
186
+ }
187
+ finally {
188
+ await this.clearClaim(input.instanceId, token);
189
+ }
190
+ }
191
+ /**
192
+ * Attaches a session to the earliest case for this work order and questionnaire.
193
+ * A new case is created only when that pair does not exist yet.
194
+ */
195
+ async createOrReuseOccurrence(input) {
196
+ const caseId = await this.findCanonicalCaseId(input.workOrderId, input.questionnaireId);
197
+ if (caseId) {
198
+ const existingSessionId = await this.findSessionIdForCase(caseId);
199
+ if (existingSessionId) {
200
+ return { ids: { caseId, sessionId: existingSessionId }, created: null };
201
+ }
202
+ const sessionId = await this.createSession(caseId, input.responderId);
203
+ const canonicalSessionId = (await this.findSessionIdForCase(caseId)) || sessionId;
204
+ return {
205
+ ids: { caseId, sessionId: canonicalSessionId },
206
+ created: canonicalSessionId === sessionId
207
+ ? null
208
+ : { caseId, sessionId },
209
+ };
210
+ }
211
+ const created = await this.createOccurrence(input);
212
+ const canonicalCaseId = (await this.findCanonicalCaseId(input.workOrderId, input.questionnaireId)) || created.caseId;
213
+ if (canonicalCaseId === created.caseId) {
214
+ return { ids: created, created: null };
215
+ }
216
+ const existingSessionId = await this.findSessionIdForCase(canonicalCaseId);
217
+ const sessionId = existingSessionId || (await this.createSession(canonicalCaseId, input.responderId));
218
+ return {
219
+ ids: { caseId: canonicalCaseId, sessionId },
220
+ created,
221
+ };
222
+ }
223
+ async findExistingOccurrence(instanceId, workOrderId, questionnaireId) {
224
+ const stored = await this.readStoredOccurrence(instanceId, workOrderId, questionnaireId);
225
+ if (stored) {
226
+ return stored;
227
+ }
228
+ const caseId = await this.findCanonicalCaseId(workOrderId, questionnaireId);
229
+ if (!caseId) {
230
+ return null;
231
+ }
232
+ const sessionId = await this.findSessionIdForCase(caseId);
233
+ if (!sessionId) {
234
+ return null;
235
+ }
236
+ return { caseId, sessionId };
237
+ }
238
+ async findCanonicalCaseId(workOrderId, questionnaireId) {
239
+ const page = await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_CASE).data().query({
240
+ skip: 0,
241
+ take: 50,
242
+ filter: {
243
+ logic: 'and',
244
+ filters: [{ field: 'subjectRef.id', operator: { type: 'equal' }, value: workOrderId }],
245
+ },
246
+ });
247
+ const rows = defaultTo(get(page, 'items'), []).filter((row) => this.caseMatchesWorkOrderChecklist(row, workOrderId, questionnaireId));
248
+ return this.resolveText(pickCanonicalChecklistRow(rows)?.['id']);
249
+ }
250
+ async readStoredOccurrence(instanceId, workOrderId, questionnaireId) {
251
+ const instance = await this.readWorkflowInstance(instanceId);
252
+ const properties = this.readProperties(instance);
253
+ const storedQuestionnaire = resolveChecklistId(properties[AXM_INTERVAL_CHECKLIST_QUESTIONNAIRE_ID]);
254
+ if (storedQuestionnaire && storedQuestionnaire !== questionnaireId) {
255
+ return null;
256
+ }
257
+ const caseId = this.resolveText(properties[AXM_INTERVAL_CHECKLIST_CASE_ID]);
258
+ const sessionId = this.resolveText(properties[AXM_INTERVAL_CHECKLIST_SESSION_ID]);
259
+ if (!caseId || !sessionId) {
260
+ return null;
261
+ }
262
+ return (await this.loadValidatedOccurrence({ caseId, sessionId }, workOrderId, questionnaireId)) ?? null;
263
+ }
264
+ async loadValidatedOccurrence(ids, workOrderId, questionnaireId) {
265
+ const assessmentCase = this.asRecord(await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_CASE).data().byKey(ids.caseId));
266
+ const session = this.asRecord(await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION).data().byKey(ids.sessionId));
267
+ if (!isWorkOrderChecklistOccurrence({
268
+ assessmentCase,
269
+ session,
270
+ workOrderId,
271
+ questionnaireId,
272
+ subjectType: WORK_ORDER_SUBJECT_TYPE,
273
+ })) {
274
+ return null;
275
+ }
276
+ return { caseId: ids.caseId, sessionId: ids.sessionId };
277
+ }
278
+ caseMatchesWorkOrderChecklist(row, workOrderId, questionnaireId) {
279
+ const subject = this.asRecord(row['subjectRef']);
280
+ return (this.resolveText(row['questionnaireId']) === questionnaireId &&
281
+ this.resolveText(subject?.['type']) === WORK_ORDER_SUBJECT_TYPE &&
282
+ this.resolveText(subject?.['id']) === workOrderId);
283
+ }
284
+ /** Sessions are located by case id. Questionnaire id is never the lookup key. */
285
+ async findSessionIdForCase(caseId) {
286
+ const page = await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION).data().query({
287
+ skip: 0,
288
+ take: 20,
289
+ filter: {
290
+ logic: 'and',
291
+ filters: [{ field: 'caseId', operator: { type: 'equal' }, value: caseId }],
292
+ },
293
+ });
294
+ const rows = defaultTo(get(page, 'items'), []);
295
+ const session = pickCanonicalChecklistRow(rows);
296
+ return this.resolveText(session?.['id']);
297
+ }
298
+ async createOccurrence(input) {
299
+ const caseKey = await this.entityService
300
+ .withEntity(ASSESSMENT_MODULE, ASSESSMENT_CASE)
301
+ .data()
302
+ .create({
303
+ questionnaireId: input.questionnaireId,
304
+ title: input.workOrderNo ? `${input.workOrderNo} — checklist` : 'Checklist',
305
+ subjectRef: {
306
+ type: WORK_ORDER_SUBJECT_TYPE,
307
+ id: input.workOrderId,
308
+ title: input.workOrderNo,
309
+ },
310
+ statusId: 'active',
311
+ });
312
+ const caseId = this.resolveCreatedId(caseKey);
313
+ if (!caseId) {
314
+ throw new Error('Checklist case could not be created.');
315
+ }
316
+ const sessionId = await this.createSession(caseId, input.responderId);
317
+ return { caseId, sessionId };
318
+ }
319
+ async createSession(caseId, responderId) {
320
+ const now = new Date();
321
+ const sessionKey = await this.entityService
322
+ .withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION)
323
+ .data()
324
+ .create({
325
+ caseId,
326
+ responderId,
327
+ role: 'responder',
328
+ answers: {},
329
+ progressPercentage: 0,
330
+ answeredQuestionsCount: 0,
331
+ lastSavedAt: now,
332
+ startedAt: now,
333
+ statusId: 'not-started',
334
+ });
335
+ const sessionId = this.resolveCreatedId(sessionKey);
336
+ if (!sessionId) {
337
+ throw new Error('Checklist session could not be created.');
338
+ }
339
+ return sessionId;
340
+ }
341
+ async deleteEmptySession(sessionId) {
342
+ const session = this.asRecord(await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION).data().byKey(sessionId));
343
+ const answers = this.asRecord(session?.['answers']) ?? {};
344
+ if (Object.keys(answers).length > 0) {
345
+ return;
346
+ }
347
+ await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION).data().delete(sessionId);
348
+ }
349
+ async deleteEmptyOccurrence(ids) {
350
+ const session = this.asRecord(await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION).data().byKey(ids.sessionId));
351
+ const answers = this.asRecord(session?.['answers']) ?? {};
352
+ if (Object.keys(answers).length > 0) {
353
+ return;
354
+ }
355
+ await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_SESSION).data().delete(ids.sessionId);
356
+ await this.entityService.withEntity(ASSESSMENT_MODULE, ASSESSMENT_CASE).data().delete(ids.caseId);
357
+ }
358
+ //#endregion
359
+ //#region ---- Claim & persistence ----
360
+ async tryClaim(instanceId, claim) {
361
+ const instance = await this.readWorkflowInstance(instanceId);
362
+ const current = this.readClaim(this.readProperties(instance));
363
+ if (current &&
364
+ current.token !== claim.token &&
365
+ current.workOrderId === claim.workOrderId &&
366
+ current.questionnaireId === claim.questionnaireId &&
367
+ !this.isClaimStale(current)) {
368
+ return false;
369
+ }
370
+ await this.patchProperties(instanceId, { [AXM_INTERVAL_CHECKLIST_CLAIM]: claim });
371
+ const reread = this.readClaim(this.readProperties(await this.readWorkflowInstance(instanceId)));
372
+ return reread?.token === claim.token;
373
+ }
374
+ async clearClaim(instanceId, token) {
375
+ const instance = await this.readWorkflowInstance(instanceId);
376
+ const current = this.readClaim(this.readProperties(instance));
377
+ if (!current || current.token !== token) {
378
+ return;
379
+ }
380
+ await this.patchProperties(instanceId, { [AXM_INTERVAL_CHECKLIST_CLAIM]: null });
381
+ }
382
+ async waitForOccurrence(instanceId, workOrderId, questionnaireId) {
383
+ for (let attempt = 0; attempt < 20; attempt += 1) {
384
+ const found = await this.findExistingOccurrence(instanceId, workOrderId, questionnaireId);
385
+ if (found) {
386
+ return found;
387
+ }
388
+ const claim = this.readClaim(this.readProperties(await this.readWorkflowInstance(instanceId)));
389
+ if (!claim || this.isClaimStale(claim)) {
390
+ return null;
391
+ }
392
+ await this.delay(250);
393
+ }
394
+ return null;
395
+ }
396
+ isClaimStale(claim) {
397
+ const at = Date.parse(claim.at);
398
+ return Number.isNaN(at) || Date.now() - at > CLAIM_TTL_MS;
399
+ }
400
+ async persistOccurrenceIds(instanceId, bookmarkId, workOrderId, questionnaireId, ids) {
401
+ await this.patchProperties(instanceId, {
402
+ [AXM_INTERVAL_CHECKLIST_CASE_ID]: ids.caseId,
403
+ [AXM_INTERVAL_CHECKLIST_SESSION_ID]: ids.sessionId,
404
+ [AXM_INTERVAL_CHECKLIST_QUESTIONNAIRE_ID]: questionnaireId,
405
+ }, (bookmark) => {
406
+ const payload = this.readBookmarkPayload(bookmark);
407
+ if (!payload) {
408
+ return bookmark;
409
+ }
410
+ const context = this.asRecord(payload['context']) ?? {};
411
+ if (bookmarkId && this.resolveText(bookmark['id']) !== bookmarkId) {
412
+ return bookmark;
413
+ }
414
+ if (!bookmarkId && this.resolveText(context['workOrderId']) !== workOrderId) {
415
+ return bookmark;
416
+ }
417
+ payload['context'] = {
418
+ ...context,
419
+ workOrderId,
420
+ checklist: questionnaireId,
421
+ [AXM_INTERVAL_CHECKLIST_CASE_ID]: ids.caseId,
422
+ [AXM_INTERVAL_CHECKLIST_SESSION_ID]: ids.sessionId,
423
+ [AXM_INTERVAL_CHECKLIST_QUESTIONNAIRE_ID]: questionnaireId,
424
+ };
425
+ return { ...bookmark, payload, payloadJson: JSON.stringify(payload) };
426
+ });
427
+ }
428
+ async patchProperties(instanceId, propertyPatch, mapBookmark) {
429
+ const instance = await this.readWorkflowInstance(instanceId);
430
+ if (!instance) {
431
+ throw new Error('Workflow instance not found.');
432
+ }
433
+ const workflowInstance = this.asRecord(instance['workflowInstance']);
434
+ if (!workflowInstance) {
435
+ throw new Error('Workflow instance payload is missing.');
436
+ }
437
+ const workflowState = { ...(this.asRecord(workflowInstance['workflowState']) ?? {}) };
438
+ const properties = { ...(this.asRecord(workflowState['properties']) ?? {}), ...propertyPatch };
439
+ workflowState['properties'] = properties;
440
+ const bookmarks = this.readBookmarks(instance).map((bookmark) => (mapBookmark ? mapBookmark(bookmark) : bookmark));
441
+ await this.entityService
442
+ .withEntity('WorkflowManagement', 'WorkflowInstance')
443
+ .data()
444
+ .update(instanceId, {
445
+ workflowInstance: {
446
+ ...workflowInstance,
447
+ workflowState,
448
+ bookmarks,
449
+ },
450
+ });
451
+ }
452
+ //#endregion
453
+ //#region ---- Helpers ----
454
+ /**
455
+ * Work-order status wins. A completed card bookmark is used when the stored status is not a plain string.
456
+ */
457
+ resolveViewerMode(workOrder, instance, bookmarkId, workOrderId) {
458
+ const record = workOrder;
459
+ const fromWorkOrder = resolveIntervalChecklistViewerMode(record['statusId'] ?? record['status']);
460
+ if (fromWorkOrder !== 'unavailable') {
461
+ return fromWorkOrder;
462
+ }
463
+ return resolveIntervalChecklistViewerMode(this.readCardStatus(instance, bookmarkId, workOrderId));
464
+ }
465
+ readCardStatus(instance, bookmarkId, workOrderId) {
466
+ for (const bookmark of this.readBookmarks(instance)) {
467
+ if (bookmark['isConsumed'] === true || bookmark['consumed'] === true) {
468
+ continue;
469
+ }
470
+ const payload = this.readBookmarkPayload(bookmark);
471
+ const context = this.asRecord(payload?.['context']);
472
+ const bookmarkMatches = bookmarkId
473
+ ? this.resolveText(bookmark['id']) === bookmarkId
474
+ : this.resolveText(context?.['workOrderId']) === workOrderId;
475
+ if (!bookmarkMatches) {
476
+ continue;
477
+ }
478
+ return context?.['statusId'];
479
+ }
480
+ return undefined;
481
+ }
482
+ async loadWorkOrder(workOrderId) {
483
+ const loaded = await this.entityService
484
+ .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)
485
+ .data()
486
+ .byKey(workOrderId);
487
+ return loaded ?? null;
488
+ }
489
+ async resolveAssigneeUserId(personId) {
490
+ if (!personId) {
491
+ return '';
492
+ }
493
+ const page = await this.entityService
494
+ .withEntity('HumanCapitalManagement', 'Employee')
495
+ .data()
496
+ .query({
497
+ skip: 0,
498
+ take: 1,
499
+ filter: {
500
+ logic: 'and',
501
+ filters: [{ field: 'personId', operator: { type: 'equal' }, value: personId }],
502
+ },
503
+ });
504
+ const employee = defaultTo(get(page, 'items[0]'), null);
505
+ return this.resolveText(employee?.userId);
506
+ }
507
+ async readWorkflowInstance(instanceId) {
508
+ const loaded = await this.entityService.withEntity('WorkflowManagement', 'WorkflowInstance').data().byKey(instanceId);
509
+ return this.asRecord(loaded);
510
+ }
511
+ readProperties(instance) {
512
+ const workflowInstance = this.asRecord(instance?.['workflowInstance']);
513
+ const workflowState = this.asRecord(workflowInstance?.['workflowState']);
514
+ return this.asRecord(workflowState?.['properties']) ?? {};
515
+ }
516
+ readClaim(properties) {
517
+ const claim = this.asRecord(properties[AXM_INTERVAL_CHECKLIST_CLAIM]);
518
+ const token = this.resolveText(claim?.['token']);
519
+ const at = this.resolveText(claim?.['at']);
520
+ const workOrderId = this.resolveText(claim?.['workOrderId']);
521
+ const questionnaireId = this.resolveText(claim?.['questionnaireId']);
522
+ if (!claim || !token || !at || !workOrderId || !questionnaireId) {
523
+ return null;
524
+ }
525
+ return { token, at, workOrderId, questionnaireId };
526
+ }
527
+ readBookmarks(instance) {
528
+ const workflowInstance = this.asRecord(instance?.['workflowInstance']);
529
+ const bookmarks = workflowInstance?.['bookmarks'];
530
+ if (!Array.isArray(bookmarks)) {
531
+ return [];
532
+ }
533
+ return bookmarks
534
+ .map((bookmark) => this.asRecord(bookmark))
535
+ .filter((bookmark) => !!bookmark);
536
+ }
537
+ readBookmarkPayload(bookmark) {
538
+ const payload = this.asRecord(bookmark['payload']);
539
+ if (payload) {
540
+ return { ...payload };
541
+ }
542
+ const payloadJson = bookmark['payloadJson'];
543
+ if (typeof payloadJson !== 'string' || !payloadJson.trim()) {
544
+ return null;
545
+ }
546
+ try {
547
+ return this.asRecord(JSON.parse(payloadJson));
548
+ }
549
+ catch {
550
+ return null;
551
+ }
552
+ }
553
+ resolveCreatedId(created) {
554
+ if (typeof created === 'string') {
555
+ return created.trim();
556
+ }
557
+ return this.resolveText(get(created, 'id'));
558
+ }
559
+ resolveText(value) {
560
+ if (!isString(value)) {
561
+ return '';
562
+ }
563
+ return value.trim();
564
+ }
565
+ asRecord(value) {
566
+ if (value != null && typeof value === 'object' && !Array.isArray(value)) {
567
+ return value;
568
+ }
569
+ return null;
570
+ }
571
+ delay(ms) {
572
+ return new Promise((resolve) => setTimeout(resolve, ms));
573
+ }
574
+ async failKey(key) {
575
+ const text = await this.translationService.translateAsync(key);
576
+ return this.fail(text);
577
+ }
578
+ async fail(text) {
579
+ this.toastService.show({
580
+ color: 'warning',
581
+ title: await this.translationService.translateAsync('@general:messages.generic.warning.title'),
582
+ content: text,
583
+ closeButton: true,
584
+ timeOut: 8000,
585
+ });
586
+ return { success: false, message: { text } };
587
+ }
588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OpenWorkOrderChecklistFormCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
589
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OpenWorkOrderChecklistFormCommand, providedIn: 'root' }); }
590
+ }
591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OpenWorkOrderChecklistFormCommand, decorators: [{
592
+ type: Injectable,
593
+ args: [{ providedIn: 'root' }]
594
+ }] });
595
+
596
+ export { OpenWorkOrderChecklistFormCommand };
597
+ //# sourceMappingURL=acorex-platform-module-maintenance-management-client-open-work-order-checklist-form.command-BWzoBPoP.mjs.map