@acorex/modules 21.0.0-next.63 → 21.0.0-next.65

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 (108) hide show
  1. package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-u1hZ4P5s.mjs → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BC6vzGG9.mjs} +25 -3
  2. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BC6vzGG9.mjs.map +1 -0
  3. package/fesm2022/acorex-modules-ai-management.mjs +43 -7
  4. package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
  5. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-DqmJVJ0z.mjs} +22 -37
  6. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DqmJVJ0z.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B6C2PRZw.mjs → acorex-modules-assessment-management-assessment-case.entity-DhVwPz0T.mjs} +8 -7
  8. package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-DhVwPz0T.mjs.map +1 -0
  9. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DquzZNaQ.mjs → acorex-modules-assessment-management-assessment-session.entity-BvV2Qgw1.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DquzZNaQ.mjs.map → acorex-modules-assessment-management-assessment-session.entity-BvV2Qgw1.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CRE8SxzC.mjs → acorex-modules-assessment-management-fill-assessment-session.command-4fkaeAG-.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CRE8SxzC.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-4fkaeAG-.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-Ce7yOnJY.mjs → acorex-modules-assessment-management-preview-question.command-6IGOdVVZ.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-Ce7yOnJY.mjs.map → acorex-modules-assessment-management-preview-question.command-6IGOdVVZ.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-S-8MDeB7.mjs → acorex-modules-assessment-management-preview-questionnaire.command-CRDBe_BS.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-S-8MDeB7.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-CRDBe_BS.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-wdHMGBxi.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-B2ES-zcL.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-wdHMGBxi.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-B2ES-zcL.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-1Pm9O0kv.mjs → acorex-modules-assessment-management-question-bank-item.entity-Cw2WCdYK.mjs} +2 -2
  20. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-1Pm9O0kv.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-Cw2WCdYK.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-Dwx0y7WY.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-D9I3S-ZT.mjs} +120 -7
  22. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-D9I3S-ZT.mjs.map +1 -0
  23. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-BI_jc4C6.mjs → acorex-modules-assessment-management-questionnaire.entity-D9nHUmQB.mjs} +2 -2
  24. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-BI_jc4C6.mjs.map → acorex-modules-assessment-management-questionnaire.entity-D9nHUmQB.mjs.map} +1 -1
  25. package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-BOeO3Dit.mjs +350 -0
  26. package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-BOeO3Dit.mjs.map +1 -0
  27. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  28. package/fesm2022/acorex-modules-common.mjs +0 -8
  29. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  30. package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-CO8lZb34.mjs → acorex-modules-content-management-acorex-modules-content-management-DMMKjUJP.mjs} +6 -6
  31. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-DMMKjUJP.mjs.map +1 -0
  32. package/fesm2022/{acorex-modules-content-management-permission-definition.provider-Bcq5uOVH.mjs → acorex-modules-content-management-permission-definition.provider-B9RvUa2y.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-content-management-permission-definition.provider-Bcq5uOVH.mjs.map → acorex-modules-content-management-permission-definition.provider-B9RvUa2y.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-D_q_xWeI.mjs → acorex-modules-content-management-template-content-editor-widget-edit.component-BAuczQJ_.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-D_q_xWeI.mjs.map → acorex-modules-content-management-template-content-editor-widget-edit.component-BAuczQJ_.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-DU5y6UxK.mjs → acorex-modules-content-management-template-content-editor-widget-view.component-BbAK7l89.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-DU5y6UxK.mjs.map → acorex-modules-content-management-template-content-editor-widget-view.component-BbAK7l89.mjs.map} +1 -1
  38. package/fesm2022/acorex-modules-content-management.mjs +1 -1
  39. package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-DkdNLMKa.mjs → acorex-modules-conversation-acorex-modules-conversation-CuaEuIdl.mjs} +122 -38
  40. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-CuaEuIdl.mjs.map +1 -0
  41. package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-VKPbkRqI.mjs → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-E0e9YjO9.mjs} +2 -2
  42. package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-VKPbkRqI.mjs.map → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-E0e9YjO9.mjs.map} +1 -1
  43. package/fesm2022/{acorex-modules-conversation-comments-page.component-ehUCjoFD.mjs → acorex-modules-conversation-comments-page.component-zaGnoDs-.mjs} +2 -2
  44. package/fesm2022/{acorex-modules-conversation-comments-page.component-ehUCjoFD.mjs.map → acorex-modules-conversation-comments-page.component-zaGnoDs-.mjs.map} +1 -1
  45. package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-ZNcVi54N.mjs → acorex-modules-conversation-send-assist-chat-message.command-D2vjfYtY.mjs} +2 -2
  46. package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-ZNcVi54N.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-D2vjfYtY.mjs.map} +1 -1
  47. package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-CX6lm1lG.mjs → acorex-modules-conversation-start-assist-chat.command-C2IEDIG9.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-CX6lm1lG.mjs.map → acorex-modules-conversation-start-assist-chat.command-C2IEDIG9.mjs.map} +1 -1
  49. package/fesm2022/acorex-modules-conversation.mjs +1 -1
  50. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-BWezAea1.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-uRz1c5Km.mjs} +20 -20
  51. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-BWezAea1.mjs.map → acorex-modules-human-capital-management-acorex-modules-human-capital-management-uRz1c5Km.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-Bh_Bbq5-.mjs → acorex-modules-human-capital-management-approve-leave-request.command-23klKnTy.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-Bh_Bbq5-.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-23klKnTy.mjs.map} +1 -1
  54. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-BpDdDG9i.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-BJ8xUiR2.mjs} +2 -2
  55. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-BpDdDG9i.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-BJ8xUiR2.mjs.map} +1 -1
  56. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CjtKaKFw.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-B3u1gXWI.mjs} +2 -2
  57. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CjtKaKFw.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-B3u1gXWI.mjs.map} +1 -1
  58. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-Cx_oY2aK.mjs → acorex-modules-human-capital-management-employee.entity-uhwOOw_y.mjs} +11 -3
  59. package/fesm2022/acorex-modules-human-capital-management-employee.entity-uhwOOw_y.mjs.map +1 -0
  60. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-B20Taa5x.mjs → acorex-modules-human-capital-management-employment-type.entity-BQe82rsr.mjs} +2 -2
  61. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-B20Taa5x.mjs.map → acorex-modules-human-capital-management-employment-type.entity-BQe82rsr.mjs.map} +1 -1
  62. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-BO8QXpZE.mjs → acorex-modules-human-capital-management-leave-request.entity-CE4hs4C8.mjs} +2 -2
  63. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-BO8QXpZE.mjs.map → acorex-modules-human-capital-management-leave-request.entity-CE4hs4C8.mjs.map} +1 -1
  64. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-CQwSWqSh.mjs → acorex-modules-human-capital-management-leave-type.entity-DJ4EEUKg.mjs} +2 -2
  65. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-CQwSWqSh.mjs.map → acorex-modules-human-capital-management-leave-type.entity-DJ4EEUKg.mjs.map} +1 -1
  66. package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event-type.entity-BPWJrvbN.mjs → acorex-modules-human-capital-management-lifecycle-event-type.entity-CB2hlyOP.mjs} +2 -2
  67. package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event-type.entity-BPWJrvbN.mjs.map → acorex-modules-human-capital-management-lifecycle-event-type.entity-CB2hlyOP.mjs.map} +1 -1
  68. package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event.entity-ZZuPu9KQ.mjs → acorex-modules-human-capital-management-lifecycle-event.entity-DWonFZpU.mjs} +2 -2
  69. package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event.entity-ZZuPu9KQ.mjs.map → acorex-modules-human-capital-management-lifecycle-event.entity-DWonFZpU.mjs.map} +1 -1
  70. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-BN1y0qhi.mjs → acorex-modules-human-capital-management-position-assignment.entity-o8PjggiT.mjs} +2 -2
  71. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-BN1y0qhi.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-o8PjggiT.mjs.map} +1 -1
  72. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-LczqOHP-.mjs → acorex-modules-human-capital-management-reject-leave-request.command-B6sr7oey.mjs} +2 -2
  73. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-LczqOHP-.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-B6sr7oey.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-Dm8YacDI.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-aH7qTRnr.mjs} +2 -2
  75. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-Dm8YacDI.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-aH7qTRnr.mjs.map} +1 -1
  76. package/fesm2022/{acorex-modules-human-capital-management-start-lifecycle-event-flow.command-DPwuyFz2.mjs → acorex-modules-human-capital-management-start-lifecycle-event-flow.command-B-VsXS4c.mjs} +2 -2
  77. package/fesm2022/{acorex-modules-human-capital-management-start-lifecycle-event-flow.command-DPwuyFz2.mjs.map → acorex-modules-human-capital-management-start-lifecycle-event-flow.command-B-VsXS4c.mjs.map} +1 -1
  78. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  79. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  80. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  81. package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management--mdNdYIs.mjs → acorex-modules-task-management-acorex-modules-task-management-DAh3IByo.mjs} +37 -19
  82. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-DAh3IByo.mjs.map +1 -0
  83. package/fesm2022/{acorex-modules-task-management-task-board.page-BIZ1qH7m.mjs → acorex-modules-task-management-task-board.page-C2hB9JPM.mjs} +21 -12
  84. package/fesm2022/acorex-modules-task-management-task-board.page-C2hB9JPM.mjs.map +1 -0
  85. package/fesm2022/acorex-modules-task-management.mjs +1 -1
  86. package/fesm2022/acorex-modules-workflow-management-index-BhVZ1Bcw.mjs.map +1 -1
  87. package/package.json +2 -2
  88. package/types/acorex-modules-ai-management.d.ts +1 -2
  89. package/types/acorex-modules-assessment-management.d.ts +8 -0
  90. package/types/acorex-modules-conversation.d.ts +23 -3
  91. package/types/acorex-modules-task-management.d.ts +14 -1
  92. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-u1hZ4P5s.mjs.map +0 -1
  93. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs.map +0 -1
  94. package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-B6C2PRZw.mjs.map +0 -1
  95. package/fesm2022/acorex-modules-assessment-management-assessment-session-answers-view.util-BRdwcIvw.mjs +0 -47
  96. package/fesm2022/acorex-modules-assessment-management-assessment-session-answers-view.util-BRdwcIvw.mjs.map +0 -1
  97. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-Dwx0y7WY.mjs.map +0 -1
  98. package/fesm2022/acorex-modules-assessment-management-view-case-last-session-answers.command-Ds-QGMPy.mjs +0 -157
  99. package/fesm2022/acorex-modules-assessment-management-view-case-last-session-answers.command-Ds-QGMPy.mjs.map +0 -1
  100. package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-COTVoRRG.mjs +0 -172
  101. package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-COTVoRRG.mjs.map +0 -1
  102. package/fesm2022/acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs +0 -239
  103. package/fesm2022/acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs.map +0 -1
  104. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-CO8lZb34.mjs.map +0 -1
  105. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DkdNLMKa.mjs.map +0 -1
  106. package/fesm2022/acorex-modules-human-capital-management-employee.entity-Cx_oY2aK.mjs.map +0 -1
  107. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management--mdNdYIs.mjs.map +0 -1
  108. package/fesm2022/acorex-modules-task-management-task-board.page-BIZ1qH7m.mjs.map +0 -1
@@ -12,7 +12,7 @@ import { CommonModule } from '@angular/common';
12
12
  import * as i0 from '@angular/core';
13
13
  import { inject, input, computed, signal, viewChild, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
14
14
  import { first } from 'lodash-es';
15
- import { A as AXMQuestionnaireViewerService, R as RootConfig, p as persistAssessmentSession, b as AXMQuestionnaireViewerComponent, c as AXMPreQuestionnaireContentComponent, d as AXMPostQuestionnaireContentComponent } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs';
15
+ import { A as AXMQuestionnaireViewerService, R as RootConfig, p as persistAssessmentSession, b as AXMQuestionnaireViewerComponent, c as AXMPreQuestionnaireContentComponent, d as AXMPostQuestionnaireContentComponent } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DqmJVJ0z.mjs';
16
16
 
17
17
  //#region ---- Imports ----
18
18
  //#endregion
@@ -64,6 +64,7 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
64
64
  this.assessmentFillContext = input(undefined, ...(ngDevMode ? [{ debugName: "assessmentFillContext" }] : /* istanbul ignore next */ []));
65
65
  this.questionnaireId = input(undefined, ...(ngDevMode ? [{ debugName: "questionnaireId" }] : /* istanbul ignore next */ []));
66
66
  this.outcomeRules = input(undefined, ...(ngDevMode ? [{ debugName: "outcomeRules" }] : /* istanbul ignore next */ []));
67
+ this.storedOutcomeResults = input(null, ...(ngDevMode ? [{ debugName: "storedOutcomeResults" }] : /* istanbul ignore next */ []));
67
68
  /** Safe accessors: popup framework may overwrite inputs with plain values. */
68
69
  this.prePostConfigValue = computed(() => this.safeInputValue(this.prePostConfig), ...(ngDevMode ? [{ debugName: "prePostConfigValue" }] : /* istanbul ignore next */ []));
69
70
  this.structureValue = computed(() => this.safeInputValue(this.structure), ...(ngDevMode ? [{ debugName: "structureValue" }] : /* istanbul ignore next */ []));
@@ -71,6 +72,12 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
71
72
  this.initialAnswersValue = computed(() => this.safeInputValue(this.initialAnswers), ...(ngDevMode ? [{ debugName: "initialAnswersValue" }] : /* istanbul ignore next */ []));
72
73
  this.questionnaireIdValue = computed(() => this.safeInputValue(this.questionnaireId), ...(ngDevMode ? [{ debugName: "questionnaireIdValue" }] : /* istanbul ignore next */ []));
73
74
  this.outcomeRulesValue = computed(() => this.safeInputValue(this.outcomeRules), ...(ngDevMode ? [{ debugName: "outcomeRulesValue" }] : /* istanbul ignore next */ []));
75
+ this.storedOutcomeResultsValue = computed(() => this.safeInputValue(this.storedOutcomeResults), ...(ngDevMode ? [{ debugName: "storedOutcomeResultsValue" }] : /* istanbul ignore next */ []));
76
+ /** Readonly entry step from viewer config (popup assigns plain object on `config`). */
77
+ this.readonlyInitialFlowStep = computed(() => {
78
+ const step = this.configValue()?.initialFlowStep;
79
+ return step === 'results' ? 'results' : 'questions';
80
+ }, ...(ngDevMode ? [{ debugName: "readonlyInitialFlowStep" }] : /* istanbul ignore next */ []));
74
81
  this.assessmentFillContextValue = computed(() => {
75
82
  const raw = this.safeInputValue(this.assessmentFillContext);
76
83
  if (raw && typeof raw === 'object' && typeof raw.caseId === 'string') {
@@ -119,6 +126,7 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
119
126
  //#endregion
120
127
  //#region ---- State ----
121
128
  this.flowStep = signal('questions', ...(ngDevMode ? [{ debugName: "flowStep" }] : /* istanbul ignore next */ []));
129
+ this.initialFlowApplied = signal(false, ...(ngDevMode ? [{ debugName: "initialFlowApplied" }] : /* istanbul ignore next */ []));
122
130
  this.reviewSnapshot = signal([], ...(ngDevMode ? [{ debugName: "reviewSnapshot" }] : /* istanbul ignore next */ []));
123
131
  this.reviewContext = signal(null, ...(ngDevMode ? [{ debugName: "reviewContext" }] : /* istanbul ignore next */ []));
124
132
  this.submitResult = signal(null, ...(ngDevMode ? [{ debugName: "submitResult" }] : /* istanbul ignore next */ []));
@@ -142,10 +150,40 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
142
150
  this.timerElapsed = computed(() => this.viewerViewModel()?.timerElapsed() ?? 0, ...(ngDevMode ? [{ debugName: "timerElapsed" }] : /* istanbul ignore next */ []));
143
151
  this.answeredQuestionsCount = computed(() => this.viewerViewModel()?.answeredQuestionsCount() ?? 0, ...(ngDevMode ? [{ debugName: "answeredQuestionsCount" }] : /* istanbul ignore next */ []));
144
152
  this.showReviewButton = computed(() => this.isLastStep() && (this.prePostConfigValue()?.post?.reviewEnabled ?? false) && this.flowStep() === 'questions', ...(ngDevMode ? [{ debugName: "showReviewButton" }] : /* istanbul ignore next */ []));
153
+ /** True when readonly view has stored outcome results to display. */
154
+ this.hasStoredOutcomeResults = computed(() => {
155
+ const result = this.storedOutcomeResultsValue() ?? this.submitResult();
156
+ if (!result) {
157
+ return false;
158
+ }
159
+ if ((result.outcomeSections?.length ?? 0) > 0) {
160
+ return true;
161
+ }
162
+ return Object.keys(result.outcomes ?? {}).length > 0;
163
+ }, ...(ngDevMode ? [{ debugName: "hasStoredOutcomeResults" }] : /* istanbul ignore next */ []));
164
+ /** Results navigation on any questions step (readonly session review only). */
165
+ this.showViewResultsButton = computed(() => this.isReadonly() && this.flowStep() === 'questions' && this.hasStoredOutcomeResults(), ...(ngDevMode ? [{ debugName: "showViewResultsButton" }] : /* istanbul ignore next */ []));
145
166
  this.showFooter = computed(() => ['pre', 'questions', 'review', 'summary', 'results'].includes(this.flowStep()), ...(ngDevMode ? [{ debugName: "showFooter" }] : /* istanbul ignore next */ []));
146
167
  effect(() => {
147
168
  const cfg = this.prePostConfigValue();
169
+ const initial = this.readonlyInitialFlowStep();
170
+ const stored = this.storedOutcomeResultsValue();
171
+ if (stored) {
172
+ this.submitResult.set(stored);
173
+ }
174
+ if (this.initialFlowApplied()) {
175
+ return;
176
+ }
177
+ if (initial === 'results') {
178
+ if (!stored) {
179
+ return;
180
+ }
181
+ this.flowStep.set('results');
182
+ this.initialFlowApplied.set(true);
183
+ return;
184
+ }
148
185
  this.flowStep.set(cfg?.pre.enabled === true ? 'pre' : 'questions');
186
+ this.initialFlowApplied.set(true);
149
187
  });
150
188
  effect(() => {
151
189
  const ctx = this.assessmentFillContextValue();
@@ -343,13 +381,28 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
343
381
  this.isSubmitting.set(false);
344
382
  }
345
383
  }
384
+ handleViewResultsClick() {
385
+ const stored = this.storedOutcomeResultsValue();
386
+ if (stored) {
387
+ this.submitResult.set(stored);
388
+ }
389
+ this.flowStep.set('results');
390
+ }
346
391
  handleDone() {
392
+ if (this.isReadonly()) {
393
+ this.close({
394
+ answers: this.effectiveInitialAnswers(),
395
+ questions: this.viewer()?.getQuestionsWithAnswers() ?? [],
396
+ submitted: false,
397
+ });
398
+ return;
399
+ }
347
400
  const answers = this.lastSubmittedAnswers();
348
401
  const questions = this.lastSubmittedQuestions();
349
402
  this.close({ answers, questions, submitted: true });
350
403
  }
351
404
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
352
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerPopupComponent, isStandalone: true, selector: "axm-questionnaire-viewer-popup", inputs: { structure: { classPropertyName: "structure", publicName: "structure", isSignal: true, isRequired: true, transformFunction: null }, prePostConfig: { classPropertyName: "prePostConfig", publicName: "prePostConfig", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, initialAnswers: { classPropertyName: "initialAnswers", publicName: "initialAnswers", isSignal: true, isRequired: false, transformFunction: null }, submitHandler: { classPropertyName: "submitHandler", publicName: "submitHandler", isSignal: true, isRequired: false, transformFunction: null }, saveHandler: { classPropertyName: "saveHandler", publicName: "saveHandler", isSignal: true, isRequired: false, transformFunction: null }, assessmentFillContext: { classPropertyName: "assessmentFillContext", publicName: "assessmentFillContext", isSignal: true, isRequired: false, transformFunction: null }, questionnaireId: { classPropertyName: "questionnaireId", publicName: "questionnaireId", isSignal: true, isRequired: false, transformFunction: null }, outcomeRules: { classPropertyName: "outcomeRules", publicName: "outcomeRules", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["viewer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
405
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerPopupComponent, isStandalone: true, selector: "axm-questionnaire-viewer-popup", inputs: { structure: { classPropertyName: "structure", publicName: "structure", isSignal: true, isRequired: true, transformFunction: null }, prePostConfig: { classPropertyName: "prePostConfig", publicName: "prePostConfig", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, initialAnswers: { classPropertyName: "initialAnswers", publicName: "initialAnswers", isSignal: true, isRequired: false, transformFunction: null }, submitHandler: { classPropertyName: "submitHandler", publicName: "submitHandler", isSignal: true, isRequired: false, transformFunction: null }, saveHandler: { classPropertyName: "saveHandler", publicName: "saveHandler", isSignal: true, isRequired: false, transformFunction: null }, assessmentFillContext: { classPropertyName: "assessmentFillContext", publicName: "assessmentFillContext", isSignal: true, isRequired: false, transformFunction: null }, questionnaireId: { classPropertyName: "questionnaireId", publicName: "questionnaireId", isSignal: true, isRequired: false, transformFunction: null }, outcomeRules: { classPropertyName: "outcomeRules", publicName: "outcomeRules", isSignal: true, isRequired: false, transformFunction: null }, storedOutcomeResults: { classPropertyName: "storedOutcomeResults", publicName: "storedOutcomeResults", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["viewer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
353
406
 
354
407
  <div
355
408
  class="__content-area ax-flex ax-flex-1 ax-min-h-0 ax-flex-col"
@@ -424,9 +477,11 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
424
477
  }
425
478
  </ax-prefix>
426
479
  <ax-suffix>
480
+ <!-- Pre-questionnaire welcome step -->
427
481
  @if (flowStep() === 'pre') {
428
482
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async" (onClick)="flowStep.set('questions')"></ax-button>
429
483
  } @else if (flowStep() === 'questions') {
484
+ <!-- Draft save (fill mode with save-and-continue) -->
430
485
  @if (showSaveButton()) {
431
486
  <ax-button
432
487
  look="outline"
@@ -436,34 +491,62 @@ class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {
436
491
  (onClick)="handleSaveClick()"
437
492
  ></ax-button>
438
493
  }
494
+ <!-- Section / page navigation (paginated view modes) -->
439
495
  @if (showNavigationButtons()) {
440
496
  <ax-button look="solid" [disabled]="!canNavigatePrevious()" [text]="'@general:actions.previous.title' | translate | async" (onClick)="handlePreviousClick()"></ax-button>
441
497
  @if (!isLastStep()) {
442
498
  <ax-button look="solid" color="primary" [disabled]="!canNavigateNext()" [text]="'@general:actions.next.title' | translate | async" (onClick)="handleNextClick()"></ax-button>
443
499
  }
444
500
  }
501
+ <!-- Last step: optional review before submit -->
445
502
  @if (isLastStep() && showReviewButton()) {
446
503
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async" [disabled]="isReadonly() || !areAllRequiredQuestionsAnswered()" (onClick)="handleReviewClick()"></ax-button>
447
504
  }
505
+ <!-- Last step: submit when review is disabled -->
448
506
  @if (isLastStep() && !showReviewButton() && showSubmitButton()) {
449
507
  <ax-button look="solid" color="primary" [text]="'@general:actions.submit.title' | translate | async" [disabled]="isSubmitting() || isReadonly() || !areAllRequiredQuestionsAnswered()" (onClick)="handleSubmitClick()"></ax-button>
450
508
  }
509
+ <!-- Readonly session review: jump to stored outcome results -->
510
+ @if (showViewResultsButton()) {
511
+ <ax-button
512
+ look="outline"
513
+ color="success"
514
+ [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.results' | translate | async"
515
+ (onClick)="handleViewResultsClick()"
516
+ >
517
+ <ax-icon class="fa-light fa-chart-simple"></ax-icon>
518
+ </ax-button>
519
+ }
451
520
  } @else if (flowStep() === 'review') {
521
+ <!-- Review step: return to questions or submit -->
452
522
  <ax-button look="outline" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async" (onClick)="flowStep.set('questions')"></ax-button>
453
523
  <ax-button look="solid" color="primary" [text]="'@general:actions.submit.title' | translate | async" [disabled]="isSubmitting()" (onClick)="handleReviewSubmit()"></ax-button>
454
524
  } @else if (flowStep() === 'results') {
455
- @if (prePostConfigValue()?.post?.summaryEnabled) {
525
+ <!-- Readonly session review: return to answers -->
526
+ @if (isReadonly() && hasStoredOutcomeResults()) {
527
+ <ax-button
528
+ look="outline"
529
+ [color]="'primary'"
530
+ [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.answers' | translate | async"
531
+ (onClick)="flowStep.set('questions')"
532
+ >
533
+ <ax-icon class="fa-light fa-clipboard-list-check"></ax-icon>
534
+ </ax-button>
535
+ }
536
+ <!-- Post-submit: summary next, or close / done -->
537
+ @if (prePostConfigValue()?.post?.summaryEnabled && !isReadonly()) {
456
538
  <ax-button look="solid" color="primary" [text]="'@general:actions.next.title' | translate | async" (onClick)="flowStep.set('summary')"></ax-button>
457
539
  } @else {
458
540
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async" (onClick)="handleDone()"></ax-button>
459
541
  }
460
542
  } @else if (flowStep() === 'summary') {
543
+ <!-- Post-submit summary: close -->
461
544
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async" (onClick)="handleDone()"></ax-button>
462
545
  }
463
546
  </ax-suffix>
464
547
  </ax-footer>
465
548
  }
466
- `, isInline: true, styles: ["axm-questionnaire-viewer-popup{display:flex;height:100%;max-height:90vh;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}@media(min-width:1024px){axm-questionnaire-viewer-popup{max-height:75vh}}axm-questionnaire-viewer-popup .__content-area{min-height:0px}axm-questionnaire-viewer-popup .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-popup .__header{z-index:20;display:flex;flex-shrink:0;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));color:rgb(var(--ax-sys-color-on-surface-variant));position:sticky;top:0}axm-questionnaire-viewer-popup .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta{display:flex;align-items:center;gap:1rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:.375rem}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item i{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item span{font-weight:500}axm-questionnaire-viewer-popup .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-popup .__content-wrapper{display:flex;min-height:0px;flex:1 1 0%;overflow:hidden}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer{display:flex;height:auto;max-height:none;min-height:0px;width:100%;max-width:100%;flex:none;flex-direction:column}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-popup .__popup-footer{position:sticky;bottom:0;z-index:20;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axm-questionnaire-viewer-popup .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-popup .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}axp-popup-content:has(axm-questionnaire-viewer-popup){display:flex;min-height:0px;flex-direction:column;overflow:hidden}axp-popup-content axm-questionnaire-viewer-popup{min-height:0px;flex:1 1 0%}axp-layout-container#axp-popup-layout:has(axm-questionnaire-viewer-popup){min-height:0px;overflow:hidden}axp-layout-container#axp-popup-layout:has(axm-questionnaire-viewer-popup) axp-page-content{min-height:0px;flex:1 1 0%;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type:
549
+ `, isInline: true, styles: ["axm-questionnaire-viewer-popup{display:flex;height:100%;max-height:90vh;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}@media(min-width:1024px){axm-questionnaire-viewer-popup{max-height:75vh}}axm-questionnaire-viewer-popup .__content-area{min-height:0px}axm-questionnaire-viewer-popup .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-popup .__header{z-index:20;display:flex;flex-shrink:0;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));color:rgb(var(--ax-sys-color-on-surface-variant));position:sticky;top:0}axm-questionnaire-viewer-popup .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta{display:flex;align-items:center;gap:1rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:.375rem}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item i{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item span{font-weight:500}axm-questionnaire-viewer-popup .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-popup .__content-wrapper{display:flex;min-height:0px;flex:1 1 0%;overflow:hidden}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer{display:flex;height:auto;max-height:none;min-height:0px;width:100%;max-width:100%;flex:none;flex-direction:column}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-popup .__popup-footer{position:sticky;bottom:0;z-index:20;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axm-questionnaire-viewer-popup .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-popup .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}axp-popup-content:has(axm-questionnaire-viewer-popup){display:flex;min-height:0px;flex-direction:column;overflow:hidden}axp-popup-content axm-questionnaire-viewer-popup{min-height:0px;flex:1 1 0%}axp-layout-container#axp-popup-layout:has(axm-questionnaire-viewer-popup){min-height:0px;overflow:hidden}axp-layout-container#axp-popup-layout:has(axm-questionnaire-viewer-popup) axp-page-content{min-height:0px;flex:1 1 0%;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type:
467
550
  //AXPStopwatchComponent,
468
551
  AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMPreQuestionnaireContentComponent, selector: "axm-pre-questionnaire-content", inputs: ["content"] }, { kind: "component", type: AXMPostQuestionnaireContentComponent, selector: "axm-post-questionnaire-content", inputs: ["mode", "questionsWithAnswers", "reviewContext", "summaryContent", "placeholderValues", "locale", "showQuestionNumbers"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
469
552
  }
@@ -544,9 +627,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
544
627
  }
545
628
  </ax-prefix>
546
629
  <ax-suffix>
630
+ <!-- Pre-questionnaire welcome step -->
547
631
  @if (flowStep() === 'pre') {
548
632
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async" (onClick)="flowStep.set('questions')"></ax-button>
549
633
  } @else if (flowStep() === 'questions') {
634
+ <!-- Draft save (fill mode with save-and-continue) -->
550
635
  @if (showSaveButton()) {
551
636
  <ax-button
552
637
  look="outline"
@@ -556,28 +641,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
556
641
  (onClick)="handleSaveClick()"
557
642
  ></ax-button>
558
643
  }
644
+ <!-- Section / page navigation (paginated view modes) -->
559
645
  @if (showNavigationButtons()) {
560
646
  <ax-button look="solid" [disabled]="!canNavigatePrevious()" [text]="'@general:actions.previous.title' | translate | async" (onClick)="handlePreviousClick()"></ax-button>
561
647
  @if (!isLastStep()) {
562
648
  <ax-button look="solid" color="primary" [disabled]="!canNavigateNext()" [text]="'@general:actions.next.title' | translate | async" (onClick)="handleNextClick()"></ax-button>
563
649
  }
564
650
  }
651
+ <!-- Last step: optional review before submit -->
565
652
  @if (isLastStep() && showReviewButton()) {
566
653
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async" [disabled]="isReadonly() || !areAllRequiredQuestionsAnswered()" (onClick)="handleReviewClick()"></ax-button>
567
654
  }
655
+ <!-- Last step: submit when review is disabled -->
568
656
  @if (isLastStep() && !showReviewButton() && showSubmitButton()) {
569
657
  <ax-button look="solid" color="primary" [text]="'@general:actions.submit.title' | translate | async" [disabled]="isSubmitting() || isReadonly() || !areAllRequiredQuestionsAnswered()" (onClick)="handleSubmitClick()"></ax-button>
570
658
  }
659
+ <!-- Readonly session review: jump to stored outcome results -->
660
+ @if (showViewResultsButton()) {
661
+ <ax-button
662
+ look="outline"
663
+ color="success"
664
+ [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.results' | translate | async"
665
+ (onClick)="handleViewResultsClick()"
666
+ >
667
+ <ax-icon class="fa-light fa-chart-simple"></ax-icon>
668
+ </ax-button>
669
+ }
571
670
  } @else if (flowStep() === 'review') {
671
+ <!-- Review step: return to questions or submit -->
572
672
  <ax-button look="outline" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async" (onClick)="flowStep.set('questions')"></ax-button>
573
673
  <ax-button look="solid" color="primary" [text]="'@general:actions.submit.title' | translate | async" [disabled]="isSubmitting()" (onClick)="handleReviewSubmit()"></ax-button>
574
674
  } @else if (flowStep() === 'results') {
575
- @if (prePostConfigValue()?.post?.summaryEnabled) {
675
+ <!-- Readonly session review: return to answers -->
676
+ @if (isReadonly() && hasStoredOutcomeResults()) {
677
+ <ax-button
678
+ look="outline"
679
+ [color]="'primary'"
680
+ [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.answers' | translate | async"
681
+ (onClick)="flowStep.set('questions')"
682
+ >
683
+ <ax-icon class="fa-light fa-clipboard-list-check"></ax-icon>
684
+ </ax-button>
685
+ }
686
+ <!-- Post-submit: summary next, or close / done -->
687
+ @if (prePostConfigValue()?.post?.summaryEnabled && !isReadonly()) {
576
688
  <ax-button look="solid" color="primary" [text]="'@general:actions.next.title' | translate | async" (onClick)="flowStep.set('summary')"></ax-button>
577
689
  } @else {
578
690
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async" (onClick)="handleDone()"></ax-button>
579
691
  }
580
692
  } @else if (flowStep() === 'summary') {
693
+ <!-- Post-submit summary: close -->
581
694
  <ax-button look="solid" color="primary" [text]="'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async" (onClick)="handleDone()"></ax-button>
582
695
  }
583
696
  </ax-suffix>
@@ -593,7 +706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
593
706
  AXMPreQuestionnaireContentComponent,
594
707
  AXMPostQuestionnaireContentComponent,
595
708
  ], encapsulation: ViewEncapsulation.None, styles: ["axm-questionnaire-viewer-popup{display:flex;height:100%;max-height:90vh;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}@media(min-width:1024px){axm-questionnaire-viewer-popup{max-height:75vh}}axm-questionnaire-viewer-popup .__content-area{min-height:0px}axm-questionnaire-viewer-popup .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-popup .__header{z-index:20;display:flex;flex-shrink:0;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));color:rgb(var(--ax-sys-color-on-surface-variant));position:sticky;top:0}axm-questionnaire-viewer-popup .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta{display:flex;align-items:center;gap:1rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:.375rem}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item i{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-popup .__header .__header-top .__header-meta .__meta-item span{font-weight:500}axm-questionnaire-viewer-popup .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-popup .__content-wrapper{display:flex;min-height:0px;flex:1 1 0%;overflow:hidden}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer{display:flex;height:auto;max-height:none;min-height:0px;width:100%;max-width:100%;flex:none;flex-direction:column}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-popup .__popup-footer{position:sticky;bottom:0;z-index:20;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axm-questionnaire-viewer-popup .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-popup .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}axp-popup-content:has(axm-questionnaire-viewer-popup){display:flex;min-height:0px;flex-direction:column;overflow:hidden}axp-popup-content axm-questionnaire-viewer-popup{min-height:0px;flex:1 1 0%}axp-layout-container#axp-popup-layout:has(axm-questionnaire-viewer-popup){min-height:0px;overflow:hidden}axp-layout-container#axp-popup-layout:has(axm-questionnaire-viewer-popup) axp-page-content{min-height:0px;flex:1 1 0%;overflow:hidden}\n"] }]
596
- }], ctorParameters: () => [], propDecorators: { structure: [{ type: i0.Input, args: [{ isSignal: true, alias: "structure", required: true }] }], prePostConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "prePostConfig", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], initialAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialAnswers", required: false }] }], submitHandler: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitHandler", required: false }] }], saveHandler: [{ type: i0.Input, args: [{ isSignal: true, alias: "saveHandler", required: false }] }], assessmentFillContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "assessmentFillContext", required: false }] }], questionnaireId: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionnaireId", required: false }] }], outcomeRules: [{ type: i0.Input, args: [{ isSignal: true, alias: "outcomeRules", required: false }] }], viewer: [{ type: i0.ViewChild, args: ['viewer', { isSignal: true }] }] } });
709
+ }], ctorParameters: () => [], propDecorators: { structure: [{ type: i0.Input, args: [{ isSignal: true, alias: "structure", required: true }] }], prePostConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "prePostConfig", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], initialAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialAnswers", required: false }] }], submitHandler: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitHandler", required: false }] }], saveHandler: [{ type: i0.Input, args: [{ isSignal: true, alias: "saveHandler", required: false }] }], assessmentFillContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "assessmentFillContext", required: false }] }], questionnaireId: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionnaireId", required: false }] }], outcomeRules: [{ type: i0.Input, args: [{ isSignal: true, alias: "outcomeRules", required: false }] }], storedOutcomeResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "storedOutcomeResults", required: false }] }], viewer: [{ type: i0.ViewChild, args: ['viewer', { isSignal: true }] }] } });
597
710
 
598
711
  export { AXMQuestionnaireViewerPopupComponent };
599
- //# sourceMappingURL=acorex-modules-assessment-management-questionnaire-viewer-popup.component-Dwx0y7WY.mjs.map
712
+ //# sourceMappingURL=acorex-modules-assessment-management-questionnaire-viewer-popup.component-D9I3S-ZT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-assessment-management-questionnaire-viewer-popup.component-D9I3S-ZT.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/pages/viewer-popup/questionnaire-viewer-popup.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPStopwatchComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { first } from 'lodash-es';\nimport { QuestionnaireBuilderValue } from '../../../questionnaire-builder';\nimport {\n QuestionnaireAssessmentFillContext,\n QuestionnaireViewerConfig,\n} from '../../questionnaire-viewer.types';\nimport type { AXMAssessmentManagementAssessmentSessionEntityModel } from '../../../../entities/assessment-session/assessment-session.types';\nimport { RootConfig } from '../../../../const';\nimport { persistAssessmentSession } from '../../utils/assessment-session-persistence.util';\nimport type { PrePostConfig, QuestionnaireOutcomeItem } from '../../../../entities/questionnaire/questionnaire.types';\nimport type { SummaryPlaceholderValues } from '../../utils/pre-post-content.utils';\nimport { AXMQuestionnaireViewerService } from '../../questionnaire-viewer.service';\nimport { AXMQuestionnaireViewerComponent } from '../../components/viewer-container';\nimport { AXMPreQuestionnaireContentComponent } from '../../components/pre-questionnaire-content';\nimport {\n AXMPostQuestionnaireContentComponent,\n type QuestionWithAnswer,\n} from '../../components/post-questionnaire-content';\n\n//#endregion\n\n//#region ---- Types ----\n\ntype FlowStep = 'pre' | 'questions' | 'review' | 'summary' | 'results';\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-questionnaire-viewer-popup',\n template: `\n \n <div\n class=\"__content-area ax-flex ax-flex-1 ax-min-h-0 ax-flex-col\"\n [class.ax-overflow-hidden]=\"flowStep() === 'questions'\"\n [class.ax-overflow-y-auto]=\"flowStep() !== 'questions'\"\n >\n @if (flowStep() === 'pre') {\n <axm-pre-questionnaire-content\n [content]=\"prePostConfigValue()?.pre?.content\"\n ></axm-pre-questionnaire-content>\n } @else if (flowStep() === 'results') {\n <axm-post-questionnaire-content mode=\"results\" [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n } @else if (flowStep() === 'summary') {\n <axm-post-questionnaire-content\n mode=\"summary\"\n [summaryContent]=\"prePostConfigValue()?.post?.summaryContent\"\n [placeholderValues]=\"submitResult()\"\n ></axm-post-questionnaire-content>\n } @else {\n @if (flowStep() === 'review') {\n <axm-post-questionnaire-content\n mode=\"review\"\n [questionsWithAnswers]=\"reviewSnapshot()\"\n [reviewContext]=\"reviewContext()\"\n [showQuestionNumbers]=\"configValue()?.showQuestionNumbers ?? true\"\n ></axm-post-questionnaire-content>\n }\n <div\n class=\"__questions ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-hidden\"\n [class.ax-invisible]=\"flowStep() === 'review'\"\n [style.position]=\"flowStep() === 'review' ? 'fixed' : null\"\n [style.left]=\"flowStep() === 'review' ? '-9999px' : null\"\n [class.ax-size-0]=\"flowStep() === 'review'\"\n [class.ax-overflow-hidden]=\"flowStep() === 'review'\"\n >\n <!-- <div class=\"__header ax-flex-shrink-0 ax-p-4 ax-border-b ax-border-surface\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"__toolbar-meta ax-flex ax-items-center ax-gap-4 ax-text-sm\">\n @if (totalQuestionsCount() > 0) {\n <span><i class=\"fa-light fa-list-check\"></i> {{ totalQuestionsCount() }} {{ totalQuestionsCount() === 1 ? 'Question' : 'Questions' }}</span>\n }\n @if (showTimer()) {\n <axp-stopwatch\n [mode]=\"'count-down'\"\n [timeLimit]=\"timerTimeLimit()\"\n [format]=\"timerTimeLimit() && timerTimeLimit()! >= 3600 ? 'hh:mm:ss' : 'mm:ss'\"\n [autoStart]=\"true\"\n [showControls]=\"false\"\n [value]=\"timerElapsed()\"\n (valueChange)=\"viewerViewModel()!.updateTimerElapsed($event)\"\n ></axp-stopwatch>\n }\n </div>\n </div>\n </div> -->\n <div class=\"__content ax-flex ax-flex-1 ax-min-h-0 ax-flex-col ax-overflow-y-auto ax-overflow-x-hidden\">\n <axm-questionnaire-viewer\n #viewer\n [structure]=\"structureValue()\"\n [config]=\"configValue()\"\n [initialAnswers]=\"effectiveInitialAnswers()\"\n ></axm-questionnaire-viewer>\n </div>\n </div>\n }\n </div>\n @if (showFooter()) {\n <ax-footer class=\"__popup-footer ax-flex-shrink-0 ax-border-t ax-px-4 ax-py-3\">\n <ax-prefix>\n @if (flowStep() === 'questions') {\n <div class=\"__footer-progress ax-text-sm ax-font-mono ax-tabular-nums\" dir=\"ltr\">{{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}</div>\n }\n </ax-prefix>\n <ax-suffix>\n <!-- Pre-questionnaire welcome step -->\n @if (flowStep() === 'pre') {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async\" (onClick)=\"flowStep.set('questions')\"></ax-button>\n } @else if (flowStep() === 'questions') {\n <!-- Draft save (fill mode with save-and-continue) -->\n @if (showSaveButton()) {\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.actions.save-as-draft.title' | translate | async\"\n [disabled]=\"isSubmitting() || isReadonly()\"\n (onClick)=\"handleSaveClick()\"\n ></ax-button>\n }\n <!-- Section / page navigation (paginated view modes) -->\n @if (showNavigationButtons()) {\n <ax-button look=\"solid\" [disabled]=\"!canNavigatePrevious()\" [text]=\"'@general:actions.previous.title' | translate | async\" (onClick)=\"handlePreviousClick()\"></ax-button>\n @if (!isLastStep()) {\n <ax-button look=\"solid\" color=\"primary\" [disabled]=\"!canNavigateNext()\" [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"handleNextClick()\"></ax-button>\n }\n }\n <!-- Last step: optional review before submit -->\n @if (isLastStep() && showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async\" [disabled]=\"isReadonly() || !areAllRequiredQuestionsAnswered()\" (onClick)=\"handleReviewClick()\"></ax-button>\n }\n <!-- Last step: submit when review is disabled -->\n @if (isLastStep() && !showReviewButton() && showSubmitButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\" [disabled]=\"isSubmitting() || isReadonly() || !areAllRequiredQuestionsAnswered()\" (onClick)=\"handleSubmitClick()\"></ax-button>\n }\n <!-- Readonly session review: jump to stored outcome results -->\n @if (showViewResultsButton()) {\n <ax-button\n look=\"outline\"\n color=\"success\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.results' | translate | async\"\n (onClick)=\"handleViewResultsClick()\"\n >\n <ax-icon class=\"fa-light fa-chart-simple\"></ax-icon>\n </ax-button>\n }\n } @else if (flowStep() === 'review') {\n <!-- Review step: return to questions or submit -->\n <ax-button look=\"outline\" [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async\" (onClick)=\"flowStep.set('questions')\"></ax-button>\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\" [disabled]=\"isSubmitting()\" (onClick)=\"handleReviewSubmit()\"></ax-button>\n } @else if (flowStep() === 'results') {\n <!-- Readonly session review: return to answers -->\n @if (isReadonly() && hasStoredOutcomeResults()) {\n <ax-button\n look=\"outline\"\n [color]=\"'primary'\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.answers' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"\n >\n <ax-icon class=\"fa-light fa-clipboard-list-check\"></ax-icon>\n </ax-button>\n }\n <!-- Post-submit: summary next, or close / done -->\n @if (prePostConfigValue()?.post?.summaryEnabled && !isReadonly()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"flowStep.set('summary')\"></ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\" (onClick)=\"handleDone()\"></ax-button>\n }\n } @else if (flowStep() === 'summary') {\n <!-- Post-submit summary: close -->\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\" (onClick)=\"handleDone()\"></ax-button>\n }\n </ax-suffix>\n </ax-footer>\n }\n `,\n styleUrl: './questionnaire-viewer-popup.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n imports: [\n CommonModule,\n AXTranslationModule,\n AXButtonModule,\n AXDecoratorModule,\n //AXPStopwatchComponent,\n AXMQuestionnaireViewerComponent,\n AXMPreQuestionnaireContentComponent,\n AXMPostQuestionnaireContentComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMQuestionnaireViewerPopupComponent extends AXBasePageComponent {\n //#region ---- Services & Dependencies ----\n\n private readonly questionnaireViewerService = inject(AXMQuestionnaireViewerService);\n private readonly entityService = inject(AXPEntityService);\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Inputs ----\n\n structure = input.required<QuestionnaireBuilderValue>();\n prePostConfig = input<PrePostConfig | null>(null);\n config = input<QuestionnaireViewerConfig | undefined>(undefined);\n initialAnswers = input<Record<string, any>>({});\n submitHandler = input<\n ((answers: Record<string, any>) => Promise<SummaryPlaceholderValues | null | void>) | undefined\n >();\n saveHandler = input<((answers: Record<string, any>) => Promise<void>) | undefined>();\n assessmentFillContext = input<QuestionnaireAssessmentFillContext | undefined>(undefined);\n questionnaireId = input<string | undefined>(undefined);\n outcomeRules = input<QuestionnaireOutcomeItem[] | undefined>(undefined);\n storedOutcomeResults = input<SummaryPlaceholderValues | null>(null);\n\n /** Safe accessors: popup framework may overwrite inputs with plain values. */\n protected readonly prePostConfigValue = computed(() => this.safeInputValue(this.prePostConfig));\n protected readonly structureValue = computed(() => this.safeInputValue(this.structure));\n protected readonly configValue = computed(() => this.safeInputValue(this.config));\n protected readonly initialAnswersValue = computed(() => this.safeInputValue(this.initialAnswers));\n protected readonly questionnaireIdValue = computed(() => this.safeInputValue(this.questionnaireId));\n protected readonly outcomeRulesValue = computed(() => this.safeInputValue(this.outcomeRules));\n protected readonly storedOutcomeResultsValue = computed(() => this.safeInputValue(this.storedOutcomeResults));\n\n /** Readonly entry step from viewer config (popup assigns plain object on `config`). */\n protected readonly readonlyInitialFlowStep = computed((): 'questions' | 'results' => {\n const step = this.configValue()?.initialFlowStep;\n return step === 'results' ? 'results' : 'questions';\n });\n protected readonly assessmentFillContextValue = computed((): QuestionnaireAssessmentFillContext | null => {\n const raw = this.safeInputValue(this.assessmentFillContext);\n if (raw && typeof raw === 'object' && typeof (raw as QuestionnaireAssessmentFillContext).caseId === 'string') {\n return raw as QuestionnaireAssessmentFillContext;\n }\n return null;\n });\n\n protected readonly submitHandlerValue = computed(() => {\n const handler = this.safeInputValue(this.submitHandler);\n if (typeof handler === 'function') return handler;\n if (this.assessmentFillContextValue()) {\n return (answers: Record<string, unknown>) => this.persistAssessmentAnswers(answers, true);\n }\n return this.getDefaultSubmitHandler();\n });\n\n protected readonly explicitSaveHandler = computed(() => {\n const handler = this.safeInputValue(this.saveHandler);\n return typeof handler === 'function' ? handler : undefined;\n });\n\n protected readonly isReadonly = computed(() => this.configValue()?.readonly === true);\n protected readonly completionMode = computed(() => {\n const fromConfig = this.configValue()?.completionMode;\n if (fromConfig) {\n return fromConfig;\n }\n return this.structureValue()?.displaySettings?.completionMode ?? 'submit-only';\n });\n protected readonly showSaveButton = computed(() => {\n if (this.isReadonly() || this.completionMode() !== 'save-and-continue') {\n return false;\n }\n return !!this.assessmentFillContextValue() || !!this.explicitSaveHandler();\n });\n protected readonly showSubmitButton = computed(() => !this.isReadonly());\n\n /** Session row loaded for fill persistence (popup cannot use command closures). */\n protected readonly existingSession = signal<AXMAssessmentManagementAssessmentSessionEntityModel | null>(null);\n protected readonly activeSessionId = signal<string | null>(null);\n\n /** Use answers from review context when returning from review; otherwise use initial input. */\n protected readonly effectiveInitialAnswers = computed(() => {\n const ctx = this.reviewContext();\n if (!ctx) return this.initialAnswersValue();\n return (ctx as { answers?: Record<string, any> }).answers ?? ctx;\n });\n\n private safeInputValue<T>(inputOrValue: T | (() => T)): T {\n return typeof inputOrValue === 'function' ? (inputOrValue as () => T)() : (inputOrValue as T);\n }\n\n /** Fallback when submitHandler is not passed (e.g. popup framework does not pass functions). */\n private getDefaultSubmitHandler(): (answers: Record<string, any>) => Promise<SummaryPlaceholderValues | null> {\n return async (answers: Record<string, any>) => {\n return this.questionnaireViewerService.buildSummaryPlaceholderValues(this.structureValue(), answers, {\n questionnaireId: this.questionnaireIdValue(),\n outcomeRules: this.outcomeRulesValue(),\n elapsedSeconds: this.timerElapsed(),\n });\n };\n }\n\n /**\n * First step after submit: outcomes (if enabled), else summary (if enabled), else close. Summary is always last when both are on.\n */\n protected resolvePostSubmitFirstStep(summary: SummaryPlaceholderValues | null): 'summary' | 'results' | null {\n if (!summary) return null;\n const cfg = this.prePostConfigValue();\n if (cfg?.post.showOutcomeResults === true) return 'results';\n if (cfg?.post.summaryEnabled === true) return 'summary';\n return null;\n }\n\n //#endregion\n\n //#region ---- State ----\n\n protected readonly flowStep = signal<FlowStep>('questions');\n protected readonly initialFlowApplied = signal(false);\n protected readonly reviewSnapshot = signal<QuestionWithAnswer[]>([]);\n protected readonly reviewContext = signal<Record<string, any> | null>(null);\n protected readonly submitResult = signal<SummaryPlaceholderValues | null>(null);\n protected readonly lastSubmittedAnswers = signal<Record<string, any>>({});\n protected readonly lastSubmittedQuestions = signal<Array<{ name: string; title: string; answer: any }>>([]);\n protected readonly isSubmitting = signal(false);\n protected readonly canNavigatePrevious = signal(false);\n protected readonly canNavigateNext = signal(false);\n protected readonly showNavigationButtons = signal(false);\n protected readonly isLastStep = signal(false);\n protected readonly areAllRequiredQuestionsAnswered = signal(false);\n\n //#endregion\n\n //#region ---- View References ----\n\n protected readonly viewer = viewChild<AXMQuestionnaireViewerComponent>('viewer');\n\n //#endregion\n\n //#region ---- Computed ----\n\n protected readonly viewerViewModel = computed(() => this.viewer()?.viewmodel);\n protected readonly totalQuestionsCount = computed(() => this.viewerViewModel()?.totalQuestionsCount() ?? 0);\n protected readonly showTimer = computed(() => this.viewerViewModel()?.showTimer() ?? false);\n protected readonly timerTimeLimit = computed(() => this.viewerViewModel()?.timerTimeLimit());\n protected readonly timerElapsed = computed(() => this.viewerViewModel()?.timerElapsed() ?? 0);\n protected readonly answeredQuestionsCount = computed(() => this.viewerViewModel()?.answeredQuestionsCount() ?? 0);\n\n protected readonly showReviewButton = computed(\n () => this.isLastStep() && (this.prePostConfigValue()?.post?.reviewEnabled ?? false) && this.flowStep() === 'questions'\n );\n\n /** True when readonly view has stored outcome results to display. */\n protected readonly hasStoredOutcomeResults = computed(() => {\n const result = this.storedOutcomeResultsValue() ?? this.submitResult();\n if (!result) {\n return false;\n }\n if ((result.outcomeSections?.length ?? 0) > 0) {\n return true;\n }\n return Object.keys(result.outcomes ?? {}).length > 0;\n });\n\n /** Results navigation on any questions step (readonly session review only). */\n protected readonly showViewResultsButton = computed(\n () => this.isReadonly() && this.flowStep() === 'questions' && this.hasStoredOutcomeResults(),\n );\n\n protected readonly showFooter = computed(() =>\n ['pre', 'questions', 'review', 'summary', 'results'].includes(this.flowStep())\n );\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n super();\n effect(() => {\n const cfg = this.prePostConfigValue();\n const initial = this.readonlyInitialFlowStep();\n const stored = this.storedOutcomeResultsValue();\n\n if (stored) {\n this.submitResult.set(stored);\n }\n\n if (this.initialFlowApplied()) {\n return;\n }\n\n if (initial === 'results') {\n if (!stored) {\n return;\n }\n this.flowStep.set('results');\n this.initialFlowApplied.set(true);\n return;\n }\n\n this.flowStep.set(cfg?.pre.enabled === true ? 'pre' : 'questions');\n this.initialFlowApplied.set(true);\n });\n effect(() => {\n const ctx = this.assessmentFillContextValue();\n const sessionId = ctx?.sessionId;\n if (sessionId) {\n this.activeSessionId.set(sessionId);\n void this.loadExistingSession(sessionId);\n }\n });\n effect(() => {\n const v = this.viewer();\n if (v) {\n const vm = v.viewmodel;\n this.canNavigatePrevious.set(vm.canNavigatePrevious());\n this.canNavigateNext.set(vm.canNavigateNext());\n const viewMode = v.viewMode;\n this.showNavigationButtons.set(viewMode === 'page-per-group' || viewMode === 'page-per-question' || viewMode === 'side-menu');\n this.isLastStep.set(v.isLastStep);\n this.areAllRequiredQuestionsAnswered.set(v.areAllRequiredQuestionsAnswered);\n }\n });\n }\n\n //#endregion\n\n //#region ---- Assessment persistence ----\n\n private async loadExistingSession(sessionId: string): Promise<void> {\n const sessionAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>();\n\n const listMatch = await sessionAccessor.query({\n skip: 0,\n take: 1,\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: sessionId,\n },\n });\n\n const fromQuery = first(listMatch.items);\n if (fromQuery) {\n this.existingSession.set(fromQuery);\n return;\n }\n\n const session = await sessionAccessor.byKey(sessionId);\n if (session) {\n this.existingSession.set(session);\n }\n }\n\n private async persistAssessmentAnswers(\n answers: Record<string, unknown>,\n finalize: boolean,\n ): Promise<SummaryPlaceholderValues | null> {\n const ctx = this.assessmentFillContextValue();\n const questionnaireId = this.questionnaireIdValue();\n if (!ctx || !questionnaireId) {\n return null;\n }\n\n const vm = this.viewerViewModel();\n const progressMetrics =\n vm != null\n ? {\n answeredQuestionsCount: vm.answeredQuestionsCount(),\n progressPercentage: vm.progressPercentage(),\n }\n : undefined;\n\n const result = await persistAssessmentSession({\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n caseId: ctx.caseId,\n sessionId: this.activeSessionId() ?? ctx.sessionId ?? null,\n existingSession: this.existingSession(),\n responderId: ctx.responderId,\n role: ctx.role,\n structure: this.structureValue(),\n questionnaireId,\n answers,\n finalize,\n progressMetrics,\n timeSpentSeconds: vm?.timerElapsed(),\n });\n this.activeSessionId.set(result.sessionId);\n await this.loadExistingSession(result.sessionId);\n if (!finalize) {\n this.toastService.show({\n color: 'success',\n title: await this.translationService.translateAsync('@general:messages.form.saved.success.title'),\n content: await this.translationService.translateAsync(\n '@assessment-management:questionnaires.components.questionnaire-viewer.actions.save-as-draft.success',\n ),\n });\n return null;\n }\n return this.questionnaireViewerService.buildSummaryPlaceholderValues(this.structureValue(), answers, {\n questionnaireId,\n elapsedSeconds: this.timerElapsed(),\n });\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n protected handleReviewClick(): void {\n const viewer = this.viewer();\n const items = viewer?.getQuestionsWithAnswers() ?? [];\n const context = viewer?.getReviewContext() ?? null;\n this.reviewSnapshot.set(\n items.map((q) => ({\n name: q.name,\n title: q.title,\n answer: q.answer,\n question: q.question,\n sectionName: q.sectionName,\n sectionOrder: q.sectionOrder,\n sectionTitle: q.sectionTitle,\n sectionDescription: q.sectionDescription,\n })),\n );\n this.reviewContext.set(context);\n this.flowStep.set('review');\n }\n\n protected async handleSaveClick(): Promise<void> {\n const viewer = this.viewer();\n if (!viewer || !this.showSaveButton()) {\n return;\n }\n this.isSubmitting.set(true);\n try {\n const result = viewer.saveDraft();\n if (result.success && result.answers) {\n const explicit = this.explicitSaveHandler();\n if (explicit) {\n await explicit(result.answers);\n } else {\n await this.persistAssessmentAnswers(result.answers, false);\n }\n this.close({\n answers: result.answers,\n questions: viewer.getQuestionsWithAnswers(),\n submitted: false,\n saved: true,\n });\n }\n } finally {\n this.isSubmitting.set(false);\n }\n }\n\n protected async handleReviewSubmit(): Promise<void> {\n const viewer = this.viewer();\n const handler = this.submitHandlerValue();\n if (!viewer || !handler) return;\n this.isSubmitting.set(true);\n try {\n const result = await viewer.submit();\n if (result.success && result.answers) {\n const summary = await handler(result.answers);\n const questions = viewer.getQuestionsWithAnswers();\n this.submitResult.set(summary ?? null);\n this.lastSubmittedAnswers.set(result.answers);\n this.lastSubmittedQuestions.set(questions);\n const step = this.resolvePostSubmitFirstStep(summary ?? null);\n if (step) {\n this.flowStep.set(step);\n } else {\n this.close({ answers: result.answers, questions, submitted: true });\n }\n }\n } finally {\n this.isSubmitting.set(false);\n }\n }\n\n protected async handlePreviousClick(): Promise<void> {\n await this.viewer()?.navigatePrevious();\n }\n\n protected async handleNextClick(): Promise<void> {\n await this.viewer()?.navigateNext();\n }\n\n protected async handleSubmitClick(): Promise<void> {\n const viewer = this.viewer();\n const handler = this.submitHandlerValue();\n if (!viewer || !handler) return;\n this.isSubmitting.set(true);\n try {\n const result = await viewer.submit();\n if (result.success && result.answers) {\n const summary = await handler(result.answers);\n const questions = viewer.getQuestionsWithAnswers();\n this.submitResult.set(summary ?? null);\n this.lastSubmittedAnswers.set(result.answers);\n this.lastSubmittedQuestions.set(questions);\n const step = this.resolvePostSubmitFirstStep(summary ?? null);\n if (step) {\n this.flowStep.set(step);\n } else {\n this.close({ answers: result.answers, questions, submitted: true });\n }\n }\n } finally {\n this.isSubmitting.set(false);\n }\n }\n\n protected handleViewResultsClick(): void {\n const stored = this.storedOutcomeResultsValue();\n if (stored) {\n this.submitResult.set(stored);\n }\n this.flowStep.set('results');\n }\n\n protected handleDone(): void {\n if (this.isReadonly()) {\n this.close({\n answers: this.effectiveInitialAnswers(),\n questions: this.viewer()?.getQuestionsWithAnswers() ?? [],\n submitted: false,\n });\n return;\n }\n\n const answers = this.lastSubmittedAnswers();\n const questions = this.lastSubmittedQuestions();\n this.close({ answers, questions, submitted: true });\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AA8CA;AAEA;AAoKM,MAAO,oCAAqC,SAAQ,mBAAmB,CAAA;AAwFnE,IAAA,cAAc,CAAI,YAA2B,EAAA;AACnD,QAAA,OAAO,OAAO,YAAY,KAAK,UAAU,GAAI,YAAwB,EAAE,GAAI,YAAkB;IAC/F;;IAGQ,uBAAuB,GAAA;AAC7B,QAAA,OAAO,OAAO,OAA4B,KAAI;AAC5C,YAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE;AACnG,gBAAA,eAAe,EAAE,IAAI,CAAC,oBAAoB,EAAE;AAC5C,gBAAA,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE;AACpC,aAAA,CAAC;AACJ,QAAA,CAAC;IACH;AAEA;;AAEG;AACO,IAAA,0BAA0B,CAAC,OAAwC,EAAA;AAC3E,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACrC,QAAA,IAAI,GAAG,EAAE,IAAI,CAAC,kBAAkB,KAAK,IAAI;AAAE,YAAA,OAAO,SAAS;AAC3D,QAAA,IAAI,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;AAAE,YAAA,OAAO,SAAS;AACvD,QAAA,OAAO,IAAI;IACb;;;AAkEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;AAhLQ,QAAA,IAAA,CAAA,0BAA0B,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAClE,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;;;AAMlE,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,+EAA6B;AACvD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAuB,IAAI,oFAAC;AACjD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAwC,SAAS,6EAAC;AAChE,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAsB,EAAE,qFAAC;QAC/C,IAAA,CAAA,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAElB;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAiE;AACpF,QAAA,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAiD,SAAS,4FAAC;AACxF,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAqB,SAAS,sFAAC;AACtD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAyC,SAAS,mFAAC;AACvE,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAkC,IAAI,2FAAC;;AAGhD,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,yFAAC;AAC5E,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,qFAAC;AACpE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,kFAAC;AAC9D,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,0FAAC;AAC9E,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,2FAAC;AAChF,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,wFAAC;AAC1E,QAAA,IAAA,CAAA,yBAAyB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,gGAAC;;AAG1F,QAAA,IAAA,CAAA,uBAAuB,GAAG,QAAQ,CAAC,MAA8B;YAClF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe;YAChD,OAAO,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,WAAW;AACrD,QAAA,CAAC,8FAAC;AACiB,QAAA,IAAA,CAAA,0BAA0B,GAAG,QAAQ,CAAC,MAAgD;YACvG,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAC3D,YAAA,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAA0C,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC5G,gBAAA,OAAO,GAAyC;YAClD;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,iGAAC;AAEiB,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;YACvD,IAAI,OAAO,OAAO,KAAK,UAAU;AAAE,gBAAA,OAAO,OAAO;AACjD,YAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE,EAAE;AACrC,gBAAA,OAAO,CAAC,OAAgC,KAAK,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3F;AACA,YAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE;AACvC,QAAA,CAAC,yFAAC;AAEiB,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACrD,YAAA,OAAO,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,GAAG,SAAS;AAC5D,QAAA,CAAC,0FAAC;AAEiB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,KAAK,IAAI,iFAAC;AAClE,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc;YACrD,IAAI,UAAU,EAAE;AACd,gBAAA,OAAO,UAAU;YACnB;YACA,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,cAAc,IAAI,aAAa;AAChF,QAAA,CAAC,qFAAC;AACiB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,mBAAmB,EAAE;AACtE,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC5E,QAAA,CAAC,qFAAC;AACiB,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;;AAGrD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAA6D,IAAI,sFAAC;AAC1F,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAgB,IAAI,sFAAC;;AAG7C,QAAA,IAAA,CAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;AACzD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,GAAG;AAAE,gBAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE;AAC3C,YAAA,OAAQ,GAAyC,CAAC,OAAO,IAAI,GAAG;AAClE,QAAA,CAAC,8FAAC;;;AAgCiB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,WAAW,+EAAC;AACxC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK,yFAAC;AAClC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAuB,EAAE,qFAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAA6B,IAAI,oFAAC;AACxD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAkC,IAAI,mFAAC;AAC5D,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAsB,EAAE,2FAAC;AACtD,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAsD,EAAE,6FAAC;AACxF,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK,mFAAC;AAC5B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,KAAK,0FAAC;AACnC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK,sFAAC;AAC/B,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,KAAK,4FAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,QAAA,IAAA,CAAA,+BAA+B,GAAG,MAAM,CAAC,KAAK,sGAAC;;;AAM/C,QAAA,IAAA,CAAA,MAAM,GAAG,SAAS,CAAkC,QAAQ,6EAAC;;;AAM7D,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,sFAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,0FAAC;AACxF,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,KAAK,gFAAC;AACxE,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,EAAE,qFAAC;AACzE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,mFAAC;AAC1E,QAAA,IAAA,CAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,sBAAsB,EAAE,IAAI,CAAC,6FAAC;AAE9F,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAC5C,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,aAAa,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,WAAW,uFACxH;;AAGkB,QAAA,IAAA,CAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;YACtE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;AAC7C,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;AACtD,QAAA,CAAC,8FAAC;;QAGiB,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CACjD,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,WAAW,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC7F;QAEkB,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MACvC,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC/E;QAQC,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE;AAC9C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE;YAE/C,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B;AAEA,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;gBAC7B;YACF;AAEA,YAAA,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,IAAI,CAAC,MAAM,EAAE;oBACX;gBACF;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;AAC5B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;gBACjC;YACF;YAEA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC;AAClE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,0BAA0B,EAAE;AAC7C,YAAA,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS;YAChC,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;AACnC,gBAAA,KAAK,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAC1C;AACF,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI,CAAC,EAAE;AACL,gBAAA,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS;gBACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;gBACtD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC;AAC9C,gBAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ;AAC3B,gBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,WAAW,CAAC;gBAC7H,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gBACjC,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B,CAAC;YAC7E;AACF,QAAA,CAAC,CAAC;IACJ;;;IAMQ,MAAM,mBAAmB,CAAC,SAAiB,EAAA;AACjD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;AAC1B,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI;AAC7E,aAAA,IAAI,EAA+D;AAEtE,QAAA,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC;AAC5C,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,gBAAA,KAAK,EAAE,SAAS;AACjB,aAAA;AACF,SAAA,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QACxC,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;YACnC;QACF;QAEA,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QACtD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;QACnC;IACF;AAEQ,IAAA,MAAM,wBAAwB,CACpC,OAAgC,EAChC,QAAiB,EAAA;AAEjB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,0BAA0B,EAAE;AAC7C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACnD,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE;AACjC,QAAA,MAAM,eAAe,GACnB,EAAE,IAAI;AACJ,cAAE;AACA,gBAAA,sBAAsB,EAAE,EAAE,CAAC,sBAAsB,EAAE;AACnD,gBAAA,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,EAAE;AAC5C;cACC,SAAS;AAEf,QAAA,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;YAC5C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI;AAC1D,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;YACvC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;AACd,YAAA,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;YAChC,eAAe;YACf,OAAO;YACP,QAAQ;YACR,eAAe;AACf,YAAA,gBAAgB,EAAE,EAAE,EAAE,YAAY,EAAE;AACrC,SAAA,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1C,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,gBAAA,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,4CAA4C,CAAC;gBACjG,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CACnD,qGAAqG,CACtG;AACF,aAAA,CAAC;AACF,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE;YACnG,eAAe;AACf,YAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE;AACpC,SAAA,CAAC;IACJ;;;IAMU,iBAAiB,GAAA;AACzB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,KAAK,GAAG,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,MAAM,EAAE,gBAAgB,EAAE,IAAI,IAAI;AAClD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;SACzC,CAAC,CAAC,CACJ;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7B;AAEU,IAAA,MAAM,eAAe,GAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YACrC;QACF;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;YACjC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AACpC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE;gBAC3C,IAAI,QAAQ,EAAE;AACZ,oBAAA,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChC;qBAAO;oBACL,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;gBAC5D;gBACA,IAAI,CAAC,KAAK,CAAC;oBACT,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,oBAAA,SAAS,EAAE,MAAM,CAAC,uBAAuB,EAAE;AAC3C,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA,CAAC;YACJ;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;IACF;AAEU,IAAA,MAAM,kBAAkB,GAAA;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACzC,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE;YACpC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;gBACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7C,gBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,uBAAuB,EAAE;gBAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;gBACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC7D,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB;qBAAO;AACL,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACrE;YACF;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;IACF;AAEU,IAAA,MAAM,mBAAmB,GAAA;AACjC,QAAA,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE;IACzC;AAEU,IAAA,MAAM,eAAe,GAAA;AAC7B,QAAA,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE;IACrC;AAEU,IAAA,MAAM,iBAAiB,GAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACzC,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE;YACpC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;gBACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7C,gBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,uBAAuB,EAAE;gBAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;gBACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC7D,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB;qBAAO;AACL,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACrE;YACF;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;IACF;IAEU,sBAAsB,GAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE;QAC/C,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;IAC9B;IAEU,UAAU,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC;AACT,gBAAA,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE;gBACvC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE;AACzD,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA,CAAC;YACF;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrD;8GAxbW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhKrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgJT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0nGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAKC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,cAAc,6XACd,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAEjB,+BAA+B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC/B,mCAAmC,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnC,oCAAoC,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAI3B,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAlKhD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,EAAA,QAAA,EAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgJT,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EAEtC;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,iBAAiB;;wBAEjB,+BAA+B;wBAC/B,mCAAmC;wBACnC,oCAAoC;qBACrC,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,0nGAAA,CAAA,EAAA;yoCA0IkC,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { AXPWidgetsList } from '@acorex/modules/common';
2
2
  import { createAllQueryView, createQueryView, AXPEntityCommandScope } from '@acorex/platform/common';
3
3
  import { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';
4
- import { R as RootConfig, Q as QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY, a as QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs';
4
+ import { R as RootConfig, Q as QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY, a as QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DqmJVJ0z.mjs';
5
5
 
6
6
  //#region ---- Imports ----
7
7
  //#endregion
@@ -687,4 +687,4 @@ async function factory() {
687
687
  //#endregion
688
688
 
689
689
  export { factory };
690
- //# sourceMappingURL=acorex-modules-assessment-management-questionnaire.entity-BI_jc4C6.mjs.map
690
+ //# sourceMappingURL=acorex-modules-assessment-management-questionnaire.entity-D9nHUmQB.mjs.map