@acorex/modules 21.0.0-next.70 → 21.0.0-next.72

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 (448) hide show
  1. package/fesm2022/acorex-modules-ai-management.mjs +108 -16
  2. package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
  3. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-IHgQ8RVH.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-D7bHX4-0.mjs} +665 -496
  4. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-D7bHX4-0.mjs.map +1 -0
  5. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B95yBXgi.mjs → acorex-modules-assessment-management-assessment-case.entity-Cpbj5sCP.mjs} +2 -2
  6. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B95yBXgi.mjs.map → acorex-modules-assessment-management-assessment-case.entity-Cpbj5sCP.mjs.map} +1 -1
  7. package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-Jhy94fgV.mjs → acorex-modules-assessment-management-assessment-session-answers-view.util-ALsxM0ww.mjs} +2 -2
  8. package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-Jhy94fgV.mjs.map → acorex-modules-assessment-management-assessment-session-answers-view.util-ALsxM0ww.mjs.map} +1 -1
  9. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DBhBxqh1.mjs → acorex-modules-assessment-management-assessment-session.entity-CMW7wsoN.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DBhBxqh1.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CMW7wsoN.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs → acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs} +3 -3
  12. package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs.map +1 -0
  13. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs → acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs.map → acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Sd4gRHo5.mjs → acorex-modules-assessment-management-preview-questionnaire.command-DlwBZ7mO.mjs} +18 -9
  16. package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-DlwBZ7mO.mjs.map +1 -0
  17. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BCtQO_j7.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BEhxeR8A.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BCtQO_j7.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BEhxeR8A.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-RLIfWCzq.mjs → acorex-modules-assessment-management-question-bank-item.entity-CfCWKqN5.mjs} +3 -2
  20. package/fesm2022/acorex-modules-assessment-management-question-bank-item.entity-CfCWKqN5.mjs.map +1 -0
  21. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-B8LMKqVO.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-C03wF6Oy.mjs} +19 -5
  22. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-C03wF6Oy.mjs.map +1 -0
  23. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CZBnfCYE.mjs → acorex-modules-assessment-management-questionnaire.entity-CPMGkhGu.mjs} +4 -2
  24. package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-CPMGkhGu.mjs.map +1 -0
  25. package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-hB_LFUSE.mjs → acorex-modules-assessment-management-review-assessment-session.command-XK3IK3MH.mjs} +3 -3
  26. package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-hB_LFUSE.mjs.map → acorex-modules-assessment-management-review-assessment-session.command-XK3IK3MH.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BN-nYHha.mjs → acorex-modules-assessment-management-view-session-answers.command-BPoF0v9C.mjs} +3 -3
  28. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BN-nYHha.mjs.map → acorex-modules-assessment-management-view-session-answers.command-BPoF0v9C.mjs.map} +1 -1
  29. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  30. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BdiaXlkx.mjs → acorex-modules-asset-management-acorex-modules-asset-management-BCs0QS-r.mjs} +11 -8
  31. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BdiaXlkx.mjs.map → acorex-modules-asset-management-acorex-modules-asset-management-BCs0QS-r.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-Bf9nJTkD.mjs → acorex-modules-asset-management-asset-system-assignment.entity-B0sf4MzL.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-Bf9nJTkD.mjs.map → acorex-modules-asset-management-asset-system-assignment.entity-B0sf4MzL.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-Cbzu3bqC.mjs → acorex-modules-asset-management-asset-system-type.entity-Cpcgr3KS.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-Cbzu3bqC.mjs.map → acorex-modules-asset-management-asset-system-type.entity-Cpcgr3KS.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-asset-management-asset-system.entity-DA7dO3eE.mjs → acorex-modules-asset-management-asset-system.entity-CEuEjyuQ.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-asset-management-asset-system.entity-DA7dO3eE.mjs.map → acorex-modules-asset-management-asset-system.entity-CEuEjyuQ.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-C9B-TUQD.mjs → acorex-modules-asset-management-asset-type-section-component.entity-CwaPrUlk.mjs} +2 -2
  39. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-C9B-TUQD.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-CwaPrUlk.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-BNz1Zfox.mjs → acorex-modules-asset-management-asset-type-section.entity-CK0dAIU4.mjs} +2 -2
  41. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-BNz1Zfox.mjs.map → acorex-modules-asset-management-asset-type-section.entity-CK0dAIU4.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-D_bBxBKI.mjs → acorex-modules-asset-management-asset-type.entity-DexywYoA.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-D_bBxBKI.mjs.map → acorex-modules-asset-management-asset-type.entity-DexywYoA.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-asset-management-asset.entity-Cf_H7edH.mjs → acorex-modules-asset-management-asset.entity-BNj3kuHC.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-asset-management-asset.entity-Cf_H7edH.mjs.map → acorex-modules-asset-management-asset.entity-BNj3kuHC.mjs.map} +1 -1
  46. package/fesm2022/acorex-modules-asset-management.mjs +1 -1
  47. package/fesm2022/acorex-modules-auth-acorex-modules-auth-JEkso4J7.mjs +1580 -0
  48. package/fesm2022/acorex-modules-auth-acorex-modules-auth-JEkso4J7.mjs.map +1 -0
  49. package/fesm2022/{acorex-modules-auth-app-chooser.component-DnmLfX5x.mjs → acorex-modules-auth-app-chooser.component-MjGWaBI0.mjs} +5 -6
  50. package/fesm2022/acorex-modules-auth-app-chooser.component-MjGWaBI0.mjs.map +1 -0
  51. package/fesm2022/acorex-modules-auth-change-password.command-Ctyw3WfE.mjs +32 -0
  52. package/fesm2022/acorex-modules-auth-change-password.command-Ctyw3WfE.mjs.map +1 -0
  53. package/fesm2022/acorex-modules-auth-change-photo.command-_vxTFH0X.mjs +32 -0
  54. package/fesm2022/acorex-modules-auth-change-photo.command-_vxTFH0X.mjs.map +1 -0
  55. package/fesm2022/acorex-modules-auth-edit-signature.command-CcTJJwAX.mjs +32 -0
  56. package/fesm2022/acorex-modules-auth-edit-signature.command-CcTJJwAX.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-auth-login.module-D1-POhQk.mjs → acorex-modules-auth-login.module-FJxkiTeX.mjs} +4 -4
  58. package/fesm2022/{acorex-modules-auth-login.module-D1-POhQk.mjs.map → acorex-modules-auth-login.module-FJxkiTeX.mjs.map} +1 -1
  59. package/fesm2022/acorex-modules-auth-master.layout-B4Vpqg2F.mjs +25 -0
  60. package/fesm2022/acorex-modules-auth-master.layout-B4Vpqg2F.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-auth-oauth-callback.component-BhfFPeWT.mjs → acorex-modules-auth-oauth-callback.component-It5tkYuf.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-auth-oauth-callback.component-BhfFPeWT.mjs.map → acorex-modules-auth-oauth-callback.component-It5tkYuf.mjs.map} +1 -1
  63. package/fesm2022/{acorex-modules-auth-user-sessions.component-gJSHI_eh.mjs → acorex-modules-auth-open-sessions.command-Qik0eKUR.mjs} +32 -7
  64. package/fesm2022/acorex-modules-auth-open-sessions.command-Qik0eKUR.mjs.map +1 -0
  65. package/fesm2022/{acorex-modules-auth-password.component-BMVSHYy7.mjs → acorex-modules-auth-password.component-B2BIaXZ_.mjs} +2 -2
  66. package/fesm2022/{acorex-modules-auth-password.component-BMVSHYy7.mjs.map → acorex-modules-auth-password.component-B2BIaXZ_.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-auth-password.component-Cm8DsDvu.mjs → acorex-modules-auth-password.component-BRnlp4j1.mjs} +6 -6
  68. package/fesm2022/{acorex-modules-auth-password.component-Cm8DsDvu.mjs.map → acorex-modules-auth-password.component-BRnlp4j1.mjs.map} +1 -1
  69. package/fesm2022/acorex-modules-auth-profile-activity-chart.component-CmtkTEI5.mjs +177 -0
  70. package/fesm2022/acorex-modules-auth-profile-activity-chart.component-CmtkTEI5.mjs.map +1 -0
  71. package/fesm2022/acorex-modules-auth-profile-coming-soon.command-DBbFbzAx.mjs +31 -0
  72. package/fesm2022/acorex-modules-auth-profile-coming-soon.command-DBbFbzAx.mjs.map +1 -0
  73. package/fesm2022/acorex-modules-auth-profile-delete-account-danger-zone.component-62K4A_lM.mjs +78 -0
  74. package/fesm2022/acorex-modules-auth-profile-delete-account-danger-zone.component-62K4A_lM.mjs.map +1 -0
  75. package/fesm2022/acorex-modules-auth-profile-page-component.provider-Dz9yFSnA.mjs +27 -0
  76. package/fesm2022/acorex-modules-auth-profile-page-component.provider-Dz9yFSnA.mjs.map +1 -0
  77. package/fesm2022/acorex-modules-auth-profile-page.component-BGkPr1_o.mjs +370 -0
  78. package/fesm2022/acorex-modules-auth-profile-page.component-BGkPr1_o.mjs.map +1 -0
  79. package/fesm2022/{acorex-modules-auth-routes-B85OzgW1.mjs → acorex-modules-auth-routes-D6PLdcTC.mjs} +2 -2
  80. package/fesm2022/{acorex-modules-auth-routes-B85OzgW1.mjs.map → acorex-modules-auth-routes-D6PLdcTC.mjs.map} +1 -1
  81. package/fesm2022/acorex-modules-auth-signout-command-IUSkq50M.mjs +24 -0
  82. package/fesm2022/acorex-modules-auth-signout-command-IUSkq50M.mjs.map +1 -0
  83. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-D6_rL2WP.mjs → acorex-modules-auth-tenant-chooser.component-qGfNSQ6H.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-D6_rL2WP.mjs.map → acorex-modules-auth-tenant-chooser.component-qGfNSQ6H.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-auth-two-factor.module-DfyDQIw-.mjs → acorex-modules-auth-two-factor.module-DcvqZOIq.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-auth-two-factor.module-DfyDQIw-.mjs.map → acorex-modules-auth-two-factor.module-DcvqZOIq.mjs.map} +1 -1
  87. package/fesm2022/acorex-modules-auth.mjs +1 -1
  88. package/fesm2022/acorex-modules-business-core.mjs +2 -2
  89. package/fesm2022/acorex-modules-business-core.mjs.map +1 -1
  90. package/fesm2022/acorex-modules-calendar-management-datasource.provider-CnxTy81J.mjs +225 -0
  91. package/fesm2022/acorex-modules-calendar-management-datasource.provider-CnxTy81J.mjs.map +1 -0
  92. package/fesm2022/acorex-modules-calendar-management.mjs +481 -392
  93. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  94. package/fesm2022/acorex-modules-common.mjs +524 -30
  95. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  96. package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-txpooXrE.mjs → acorex-modules-content-management-acorex-modules-content-management-Bc_tCoHa.mjs} +6 -6
  97. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-Bc_tCoHa.mjs.map +1 -0
  98. package/fesm2022/{acorex-modules-content-management-permission-definition.provider-D9woYm2m.mjs → acorex-modules-content-management-permission-definition.provider-2-_i1Kxd.mjs} +2 -2
  99. package/fesm2022/{acorex-modules-content-management-permission-definition.provider-D9woYm2m.mjs.map → acorex-modules-content-management-permission-definition.provider-2-_i1Kxd.mjs.map} +1 -1
  100. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-CQa1h31v.mjs → acorex-modules-content-management-template-content-editor-widget-edit.component-BdNwhaJ8.mjs} +2 -2
  101. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-CQa1h31v.mjs.map → acorex-modules-content-management-template-content-editor-widget-edit.component-BdNwhaJ8.mjs.map} +1 -1
  102. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-DzM4oMNV.mjs → acorex-modules-content-management-template-content-editor-widget-view.component-Cwnqyt0U.mjs} +2 -2
  103. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-DzM4oMNV.mjs.map → acorex-modules-content-management-template-content-editor-widget-view.component-Cwnqyt0U.mjs.map} +1 -1
  104. package/fesm2022/acorex-modules-content-management.mjs +1 -1
  105. package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-DYW31fEm.mjs → acorex-modules-conversation-acorex-modules-conversation-BX09r8Xj.mjs} +801 -237
  106. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-BX09r8Xj.mjs.map +1 -0
  107. package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-hMiSfvL2.mjs +329 -0
  108. package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-hMiSfvL2.mjs.map +1 -0
  109. package/fesm2022/{acorex-modules-conversation-comments-page.component-CNqL-HdS.mjs → acorex-modules-conversation-comments-page.component-BJu6CoNR.mjs} +18 -6
  110. package/fesm2022/acorex-modules-conversation-comments-page.component-BJu6CoNR.mjs.map +1 -0
  111. package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CuYYEqhb.mjs → acorex-modules-conversation-send-assist-chat-message.command-B471NQRh.mjs} +2 -2
  112. package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CuYYEqhb.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-B471NQRh.mjs.map} +1 -1
  113. package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-BKwrZJDs.mjs → acorex-modules-conversation-start-assist-chat.command-CasClVbR.mjs} +2 -2
  114. package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-BKwrZJDs.mjs.map → acorex-modules-conversation-start-assist-chat.command-CasClVbR.mjs.map} +1 -1
  115. package/fesm2022/acorex-modules-conversation.mjs +1 -1
  116. package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-kk0CINL1.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-9MoalNjW.mjs} +53 -21
  117. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-9MoalNjW.mjs.map +1 -0
  118. package/fesm2022/{acorex-modules-dashboard-management-index-Bhm8mAON.mjs → acorex-modules-dashboard-management-index-Dsu3Yw8O.mjs} +2 -2
  119. package/fesm2022/{acorex-modules-dashboard-management-index-Bhm8mAON.mjs.map → acorex-modules-dashboard-management-index-Dsu3Yw8O.mjs.map} +1 -1
  120. package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
  121. package/fesm2022/{acorex-modules-data-management-index-DEm_BsbE.mjs → acorex-modules-data-management-index-CxVSgxTM.mjs} +4 -1
  122. package/fesm2022/acorex-modules-data-management-index-CxVSgxTM.mjs.map +1 -0
  123. package/fesm2022/acorex-modules-data-management.mjs +2 -2
  124. package/fesm2022/acorex-modules-document-management.mjs +7 -4
  125. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  126. package/fesm2022/acorex-modules-financial-core.mjs +7 -7
  127. package/fesm2022/acorex-modules-financial-core.mjs.map +1 -1
  128. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-DrKulwY-.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-Cb7_mEJt.mjs} +237 -52
  129. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Cb7_mEJt.mjs.map +1 -0
  130. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-TavX6h7z.mjs → acorex-modules-human-capital-management-approve-leave-request.command-wO2u1IKg.mjs} +2 -2
  131. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-TavX6h7z.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-wO2u1IKg.mjs.map} +1 -1
  132. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-ZEmi88vf.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-BDesaehJ.mjs} +2 -2
  133. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-ZEmi88vf.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-BDesaehJ.mjs.map} +1 -1
  134. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DzIMYIhe.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-D8u45bHk.mjs} +2 -2
  135. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DzIMYIhe.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-D8u45bHk.mjs.map} +1 -1
  136. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-CrVU_3Jv.mjs → acorex-modules-human-capital-management-employee.entity-sq1G--OE.mjs} +22 -18
  137. package/fesm2022/acorex-modules-human-capital-management-employee.entity-sq1G--OE.mjs.map +1 -0
  138. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-BeiaEsNZ.mjs → acorex-modules-human-capital-management-employment-type.entity-qgNm-AAZ.mjs} +2 -2
  139. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-BeiaEsNZ.mjs.map → acorex-modules-human-capital-management-employment-type.entity-qgNm-AAZ.mjs.map} +1 -1
  140. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-QeY6lcUY.mjs → acorex-modules-human-capital-management-leave-request.entity-DcdYnwyN.mjs} +19 -24
  141. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-DcdYnwyN.mjs.map +1 -0
  142. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D7B3adkZ.mjs → acorex-modules-human-capital-management-leave-type.entity-Dr5YHs8p.mjs} +10 -4
  143. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-Dr5YHs8p.mjs.map +1 -0
  144. package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event-type.entity-Dim-8hT7.mjs → acorex-modules-human-capital-management-lifecycle-event-type.entity-Bni4vgt5.mjs} +19 -74
  145. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-Bni4vgt5.mjs.map +1 -0
  146. package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event.entity-3HtYOKrY.mjs → acorex-modules-human-capital-management-lifecycle-event.entity-ds4Iq82f.mjs} +6 -6
  147. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-ds4Iq82f.mjs.map +1 -0
  148. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-Byxt921P.mjs → acorex-modules-human-capital-management-position-assignment.entity-CalDJQrD.mjs} +2 -2
  149. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-Byxt921P.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-CalDJQrD.mjs.map} +1 -1
  150. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-CAvjZTG9.mjs → acorex-modules-human-capital-management-reject-leave-request.command-CshyWVLH.mjs} +2 -2
  151. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-CAvjZTG9.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-CshyWVLH.mjs.map} +1 -1
  152. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BeWrsQo8.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-BENxT4Qg.mjs} +2 -2
  153. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BeWrsQo8.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-BENxT4Qg.mjs.map} +1 -1
  154. package/fesm2022/acorex-modules-human-capital-management-start-leave-request-flow.command-DjkzwxHN.mjs +242 -0
  155. package/fesm2022/acorex-modules-human-capital-management-start-leave-request-flow.command-DjkzwxHN.mjs.map +1 -0
  156. package/fesm2022/{acorex-modules-human-capital-management-start-lifecycle-event-flow.command-Bz2SZcmm.mjs → acorex-modules-human-capital-management-start-lifecycle-event-flow.command-x8J2kneo.mjs} +9 -14
  157. package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-x8J2kneo.mjs.map +1 -0
  158. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  159. package/fesm2022/{acorex-modules-learning-management-course.entity-DUUgeikJ.mjs → acorex-modules-learning-management-course.entity-BG6TaQk4.mjs} +4 -4
  160. package/fesm2022/acorex-modules-learning-management-course.entity-BG6TaQk4.mjs.map +1 -0
  161. package/fesm2022/{acorex-modules-learning-management-enrollment.entity-CdJafrUh.mjs → acorex-modules-learning-management-enrollment.entity-DjpUDcLv.mjs} +5 -5
  162. package/fesm2022/acorex-modules-learning-management-enrollment.entity-DjpUDcLv.mjs.map +1 -0
  163. package/fesm2022/{acorex-modules-learning-management-learning-path.entity-Zo--bDto.mjs → acorex-modules-learning-management-learning-path.entity-C2S0VVeq.mjs} +2 -2
  164. package/fesm2022/acorex-modules-learning-management-learning-path.entity-C2S0VVeq.mjs.map +1 -0
  165. package/fesm2022/{acorex-modules-learning-management-skill.entity-VXkLbaD4.mjs → acorex-modules-learning-management-skill.entity-DAM-_nuT.mjs} +2 -2
  166. package/fesm2022/acorex-modules-learning-management-skill.entity-DAM-_nuT.mjs.map +1 -0
  167. package/fesm2022/{acorex-modules-learning-management-training.entity-C4KDv1uh.mjs → acorex-modules-learning-management-training.entity-THsY3DiM.mjs} +4 -4
  168. package/fesm2022/acorex-modules-learning-management-training.entity-THsY3DiM.mjs.map +1 -0
  169. package/fesm2022/acorex-modules-learning-management.mjs +5 -5
  170. package/fesm2022/{acorex-modules-locale-management-profiles-BOveGIcE.mjs → acorex-modules-locale-management-profiles-BYZa_Ti0.mjs} +23 -8
  171. package/fesm2022/acorex-modules-locale-management-profiles-BYZa_Ti0.mjs.map +1 -0
  172. package/fesm2022/acorex-modules-locale-management.mjs +31 -15
  173. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
  174. package/fesm2022/acorex-modules-location-management.mjs +4 -4
  175. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  176. package/fesm2022/{acorex-modules-maintenance-management-acorex-modules-maintenance-management-DiM2aFgg.mjs → acorex-modules-maintenance-management-acorex-modules-maintenance-management-Xyu3jpEh.mjs} +14 -14
  177. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-Xyu3jpEh.mjs.map +1 -0
  178. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-BCMeHmxS.mjs → acorex-modules-maintenance-management-failure-effect.entity-CYQ3ExC3.mjs} +2 -2
  179. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-BCMeHmxS.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-CYQ3ExC3.mjs.map} +1 -1
  180. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-ByBoVQ8D.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-Cz0tQkwZ.mjs} +2 -2
  181. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-ByBoVQ8D.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-Cz0tQkwZ.mjs.map} +1 -1
  182. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-BJs4KhkU.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-vqX88zIA.mjs} +2 -2
  183. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-BJs4KhkU.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-vqX88zIA.mjs.map} +1 -1
  184. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-rw24sQxb.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-CpefPKAY.mjs} +2 -2
  185. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-rw24sQxb.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-CpefPKAY.mjs.map} +1 -1
  186. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-C_6sjW8z.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-C1_4BQBR.mjs} +2 -2
  187. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-C_6sjW8z.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-C1_4BQBR.mjs.map} +1 -1
  188. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DCIAzSYQ.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-BRssxEl6.mjs} +2 -2
  189. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DCIAzSYQ.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-BRssxEl6.mjs.map} +1 -1
  190. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-DlXr6A4i.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-YyBWG00N.mjs} +2 -2
  191. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-DlXr6A4i.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-YyBWG00N.mjs.map} +1 -1
  192. package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-C4J3um7j.mjs → acorex-modules-maintenance-management-failure-register.entity-CH-C6Q7m.mjs} +2 -2
  193. package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-C4J3um7j.mjs.map → acorex-modules-maintenance-management-failure-register.entity-CH-C6Q7m.mjs.map} +1 -1
  194. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-C-spQtYx.mjs → acorex-modules-maintenance-management-failure-severity.entity-BMoUEcVC.mjs} +2 -2
  195. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-C-spQtYx.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-BMoUEcVC.mjs.map} +1 -1
  196. package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-Huahnjhd.mjs → acorex-modules-maintenance-management-maintenance-template.entity-CBayAtRD.mjs} +2 -2
  197. package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-Huahnjhd.mjs.map → acorex-modules-maintenance-management-maintenance-template.entity-CBayAtRD.mjs.map} +1 -1
  198. package/fesm2022/{acorex-modules-maintenance-management-work-order-list-command-1YsWctqu.mjs → acorex-modules-maintenance-management-work-order-list-command-mMZGiG3q.mjs} +2 -2
  199. package/fesm2022/{acorex-modules-maintenance-management-work-order-list-command-1YsWctqu.mjs.map → acorex-modules-maintenance-management-work-order-list-command-mMZGiG3q.mjs.map} +1 -1
  200. package/fesm2022/acorex-modules-maintenance-management.mjs +1 -1
  201. package/fesm2022/acorex-modules-measurement-core.mjs +4 -4
  202. package/fesm2022/acorex-modules-measurement-core.mjs.map +1 -1
  203. package/fesm2022/acorex-modules-notification-management-acorex-modules-notification-management-BSf1wd6j.mjs +3836 -0
  204. package/fesm2022/acorex-modules-notification-management-acorex-modules-notification-management-BSf1wd6j.mjs.map +1 -0
  205. package/fesm2022/acorex-modules-notification-management-notification-page.component-ATFOFL7C.mjs +548 -0
  206. package/fesm2022/acorex-modules-notification-management-notification-page.component-ATFOFL7C.mjs.map +1 -0
  207. package/fesm2022/acorex-modules-notification-management.mjs +1 -3590
  208. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  209. package/fesm2022/{acorex-modules-order-management-bulk-buy-order-item.entity-DGtHoqqj.mjs → acorex-modules-order-management-bulk-buy-order-item.entity-63BpszqL.mjs} +2 -2
  210. package/fesm2022/acorex-modules-order-management-bulk-buy-order-item.entity-63BpszqL.mjs.map +1 -0
  211. package/fesm2022/{acorex-modules-order-management-entity.provider-DVHBXOCD.mjs → acorex-modules-order-management-entity.provider-DGwVhM91.mjs} +3 -3
  212. package/fesm2022/{acorex-modules-order-management-entity.provider-DVHBXOCD.mjs.map → acorex-modules-order-management-entity.provider-DGwVhM91.mjs.map} +1 -1
  213. package/fesm2022/{acorex-modules-order-management-member-order-line.entity-DZJ90WHI.mjs → acorex-modules-order-management-member-order-line.entity-Czu7qE7i.mjs} +2 -2
  214. package/fesm2022/acorex-modules-order-management-member-order-line.entity-Czu7qE7i.mjs.map +1 -0
  215. package/fesm2022/acorex-modules-order-management.mjs +2 -2
  216. package/fesm2022/{acorex-modules-organization-management-acorex-modules-organization-management-Iopv_G-d.mjs → acorex-modules-organization-management-acorex-modules-organization-management-smWojO0l.mjs} +40 -40
  217. package/fesm2022/{acorex-modules-organization-management-acorex-modules-organization-management-Iopv_G-d.mjs.map → acorex-modules-organization-management-acorex-modules-organization-management-smWojO0l.mjs.map} +1 -1
  218. package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-D7NChP_A.mjs → acorex-modules-organization-management-add-business-unit-to-business-unit.command-BLifgeRF.mjs} +2 -2
  219. package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-D7NChP_A.mjs.map → acorex-modules-organization-management-add-business-unit-to-business-unit.command-BLifgeRF.mjs.map} +1 -1
  220. package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-PkeqXFt1.mjs → acorex-modules-organization-management-add-position-to-business-unit.command-CKFqYBLD.mjs} +2 -2
  221. package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-PkeqXFt1.mjs.map → acorex-modules-organization-management-add-position-to-business-unit.command-CKFqYBLD.mjs.map} +1 -1
  222. package/fesm2022/{acorex-modules-organization-management-add-team-to-business-unit.command-jalyX-F4.mjs → acorex-modules-organization-management-add-team-to-business-unit.command-DfaLXvTw.mjs} +2 -2
  223. package/fesm2022/{acorex-modules-organization-management-add-team-to-business-unit.command-jalyX-F4.mjs.map → acorex-modules-organization-management-add-team-to-business-unit.command-DfaLXvTw.mjs.map} +1 -1
  224. package/fesm2022/{acorex-modules-organization-management-business-unit.entity-CBjAC9Ip.mjs → acorex-modules-organization-management-business-unit.entity-BkeFPaIT.mjs} +2 -2
  225. package/fesm2022/{acorex-modules-organization-management-business-unit.entity-CBjAC9Ip.mjs.map → acorex-modules-organization-management-business-unit.entity-BkeFPaIT.mjs.map} +1 -1
  226. package/fesm2022/{acorex-modules-organization-management-chart.entity-CaY_5LGN.mjs → acorex-modules-organization-management-chart.entity-bWx4IFSv.mjs} +2 -2
  227. package/fesm2022/{acorex-modules-organization-management-chart.entity-CaY_5LGN.mjs.map → acorex-modules-organization-management-chart.entity-bWx4IFSv.mjs.map} +1 -1
  228. package/fesm2022/{acorex-modules-organization-management-company.entity-BUBhqyCn.mjs → acorex-modules-organization-management-company.entity-yPUVhIzy.mjs} +2 -2
  229. package/fesm2022/{acorex-modules-organization-management-company.entity-BUBhqyCn.mjs.map → acorex-modules-organization-management-company.entity-yPUVhIzy.mjs.map} +1 -1
  230. package/fesm2022/{acorex-modules-organization-management-entity.provider-BZsy_wi6.mjs → acorex-modules-organization-management-entity.provider-IhJwnzd-.mjs} +15 -15
  231. package/fesm2022/{acorex-modules-organization-management-entity.provider-BZsy_wi6.mjs.map → acorex-modules-organization-management-entity.provider-IhJwnzd-.mjs.map} +1 -1
  232. package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-CEO1nSFP.mjs → acorex-modules-organization-management-feature-definition.provider-B5yqFa4Z.mjs} +2 -2
  233. package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-CEO1nSFP.mjs.map → acorex-modules-organization-management-feature-definition.provider-B5yqFa4Z.mjs.map} +1 -1
  234. package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-ChRGp5ZI.mjs → acorex-modules-organization-management-job-definition-pages-component.provider-C51sgWyG.mjs} +3 -3
  235. package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-ChRGp5ZI.mjs.map → acorex-modules-organization-management-job-definition-pages-component.provider-C51sgWyG.mjs.map} +1 -1
  236. package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-aWZO09Xw.mjs → acorex-modules-organization-management-job-definition-responsibilities-page.component-EEWB5VUq.mjs} +8 -3
  237. package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-EEWB5VUq.mjs.map +1 -0
  238. package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-DJcFhQM9.mjs → acorex-modules-organization-management-job-definition-skills-page.component-L2GmFRra.mjs} +7 -2
  239. package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-L2GmFRra.mjs.map +1 -0
  240. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-BoM49wYi.mjs → acorex-modules-organization-management-job-definition.entity-CDXsJADe.mjs} +2 -2
  241. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-BoM49wYi.mjs.map → acorex-modules-organization-management-job-definition.entity-CDXsJADe.mjs.map} +1 -1
  242. package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DbQG79uR.mjs → acorex-modules-organization-management-job-level.datasource-C84zFgVo.mjs} +2 -2
  243. package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DbQG79uR.mjs.map → acorex-modules-organization-management-job-level.datasource-C84zFgVo.mjs.map} +1 -1
  244. package/fesm2022/{acorex-modules-organization-management-job-level.entity-XO-NsBG-.mjs → acorex-modules-organization-management-job-level.entity-BqjP04k-.mjs} +2 -2
  245. package/fesm2022/{acorex-modules-organization-management-job-level.entity-XO-NsBG-.mjs.map → acorex-modules-organization-management-job-level.entity-BqjP04k-.mjs.map} +1 -1
  246. package/fesm2022/{acorex-modules-organization-management-menu.provider-DXW6aUIX.mjs → acorex-modules-organization-management-menu.provider-ChR3Rh4W.mjs} +2 -2
  247. package/fesm2022/{acorex-modules-organization-management-menu.provider-DXW6aUIX.mjs.map → acorex-modules-organization-management-menu.provider-ChR3Rh4W.mjs.map} +1 -1
  248. package/fesm2022/{acorex-modules-organization-management-org-chart-default-node-contribution.provider-ClKr6K6Y.mjs → acorex-modules-organization-management-org-chart-default-node-contribution.provider-DFVts4Q2.mjs} +2 -2
  249. package/fesm2022/{acorex-modules-organization-management-org-chart-default-node-contribution.provider-ClKr6K6Y.mjs.map → acorex-modules-organization-management-org-chart-default-node-contribution.provider-DFVts4Q2.mjs.map} +1 -1
  250. package/fesm2022/{acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-BjIDzwXF.mjs → acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-D1r0YQbL.mjs} +2 -2
  251. package/fesm2022/{acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-BjIDzwXF.mjs.map → acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-D1r0YQbL.mjs.map} +1 -1
  252. package/fesm2022/{acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-DRAlUmIa.mjs → acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-Df1x_VF0.mjs} +2 -2
  253. package/fesm2022/{acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-DRAlUmIa.mjs.map → acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-Df1x_VF0.mjs.map} +1 -1
  254. package/fesm2022/{acorex-modules-organization-management-org-chart-ux-node-contribution.provider-DwSjov_Z.mjs → acorex-modules-organization-management-org-chart-ux-node-contribution.provider-BPWFJSx2.mjs} +2 -2
  255. package/fesm2022/{acorex-modules-organization-management-org-chart-ux-node-contribution.provider-DwSjov_Z.mjs.map → acorex-modules-organization-management-org-chart-ux-node-contribution.provider-BPWFJSx2.mjs.map} +1 -1
  256. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CuPEM-_N.mjs → acorex-modules-organization-management-org-chart.page-BzKPjJwY.mjs} +2 -2
  257. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CuPEM-_N.mjs.map → acorex-modules-organization-management-org-chart.page-BzKPjJwY.mjs.map} +1 -1
  258. package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-BNthP0QV.mjs → acorex-modules-organization-management-permission-definition.provider-DShSa-Wp.mjs} +2 -2
  259. package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-BNthP0QV.mjs.map → acorex-modules-organization-management-permission-definition.provider-DShSa-Wp.mjs.map} +1 -1
  260. package/fesm2022/{acorex-modules-organization-management-position.entity-Cja3CYmL.mjs → acorex-modules-organization-management-position.entity-DyF02saN.mjs} +2 -2
  261. package/fesm2022/{acorex-modules-organization-management-position.entity-Cja3CYmL.mjs.map → acorex-modules-organization-management-position.entity-DyF02saN.mjs.map} +1 -1
  262. package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-Dm1a6-uO.mjs → acorex-modules-organization-management-remove-position-from-business-unit.command-CGYBDMLJ.mjs} +2 -2
  263. package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-Dm1a6-uO.mjs.map → acorex-modules-organization-management-remove-position-from-business-unit.command-CGYBDMLJ.mjs.map} +1 -1
  264. package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-BWtzQZyW.mjs → acorex-modules-organization-management-replace-position-assignee.command-DgR5-k3v.mjs} +2 -2
  265. package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-BWtzQZyW.mjs.map → acorex-modules-organization-management-replace-position-assignee.command-DgR5-k3v.mjs.map} +1 -1
  266. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-C4W0VlL5.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-oqrqfc2t.mjs} +2 -2
  267. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-C4W0VlL5.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-oqrqfc2t.mjs.map} +1 -1
  268. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CaPqjai7.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BEZm8HRq.mjs} +2 -2
  269. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CaPqjai7.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BEZm8HRq.mjs.map} +1 -1
  270. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-nJuP6fA0.mjs → acorex-modules-organization-management-responsibilities-matrix.component-CBfTsRx4.mjs} +2 -2
  271. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-nJuP6fA0.mjs.map → acorex-modules-organization-management-responsibilities-matrix.component-CBfTsRx4.mjs.map} +1 -1
  272. package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-CvvzIjvE.mjs → acorex-modules-organization-management-responsibility-level.entity-BAm1en5A.mjs} +2 -2
  273. package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-CvvzIjvE.mjs.map → acorex-modules-organization-management-responsibility-level.entity-BAm1en5A.mjs.map} +1 -1
  274. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-Cc0Ou-hc.mjs → acorex-modules-organization-management-responsibility.entity-DTCMbqNy.mjs} +2 -2
  275. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-Cc0Ou-hc.mjs.map → acorex-modules-organization-management-responsibility.entity-DTCMbqNy.mjs.map} +1 -1
  276. package/fesm2022/{acorex-modules-organization-management-settings.provider-C33ZatCD.mjs → acorex-modules-organization-management-settings.provider-C6op-yff.mjs} +2 -2
  277. package/fesm2022/{acorex-modules-organization-management-settings.provider-C33ZatCD.mjs.map → acorex-modules-organization-management-settings.provider-C6op-yff.mjs.map} +1 -1
  278. package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-DGuF5ux1.mjs → acorex-modules-organization-management-team-business-unit.entity-B4Wra1YB.mjs} +3 -3
  279. package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-B4Wra1YB.mjs.map +1 -0
  280. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-BMXkNavp.mjs → acorex-modules-organization-management-team-member-role.entity-CVH2m8uw.mjs} +2 -2
  281. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-BMXkNavp.mjs.map → acorex-modules-organization-management-team-member-role.entity-CVH2m8uw.mjs.map} +1 -1
  282. package/fesm2022/{acorex-modules-organization-management-team-member.entity-Deem7M3N.mjs → acorex-modules-organization-management-team-member.entity-By97LISn.mjs} +3 -3
  283. package/fesm2022/acorex-modules-organization-management-team-member.entity-By97LISn.mjs.map +1 -0
  284. package/fesm2022/{acorex-modules-organization-management-team.entity-CNmpaJ3F.mjs → acorex-modules-organization-management-team.entity-Cezsw5Vq.mjs} +2 -2
  285. package/fesm2022/{acorex-modules-organization-management-team.entity-CNmpaJ3F.mjs.map → acorex-modules-organization-management-team.entity-Cezsw5Vq.mjs.map} +1 -1
  286. package/fesm2022/acorex-modules-organization-management.mjs +1 -1
  287. package/fesm2022/acorex-modules-person-core.mjs +1 -1
  288. package/fesm2022/acorex-modules-person-core.mjs.map +1 -1
  289. package/fesm2022/acorex-modules-platform-dev-tools.mjs +3 -3
  290. package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
  291. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-Cbf1rlEK.mjs → acorex-modules-platform-management-acorex-modules-platform-management-LJBIjN39.mjs} +5 -5
  292. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-LJBIjN39.mjs.map +1 -0
  293. package/fesm2022/{acorex-modules-platform-management-menu-list.component-DIf_-oaM.mjs → acorex-modules-platform-management-menu-list.component-SXuHsuj0.mjs} +3 -3
  294. package/fesm2022/{acorex-modules-platform-management-menu-list.component-DIf_-oaM.mjs.map → acorex-modules-platform-management-menu-list.component-SXuHsuj0.mjs.map} +1 -1
  295. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  296. package/fesm2022/acorex-modules-procurement-management.mjs +2 -2
  297. package/fesm2022/acorex-modules-procurement-management.mjs.map +1 -1
  298. package/fesm2022/{acorex-modules-product-catalog-product-sku.entity-C3ynevYI.mjs → acorex-modules-product-catalog-product-sku.entity-DNgCnDtL.mjs} +2 -2
  299. package/fesm2022/acorex-modules-product-catalog-product-sku.entity-DNgCnDtL.mjs.map +1 -0
  300. package/fesm2022/{acorex-modules-product-catalog-product.entity-BbB7GAg7.mjs → acorex-modules-product-catalog-product.entity-CBwSFTL2.mjs} +2 -2
  301. package/fesm2022/acorex-modules-product-catalog-product.entity-CBwSFTL2.mjs.map +1 -0
  302. package/fesm2022/acorex-modules-product-catalog.mjs +2 -2
  303. package/fesm2022/acorex-modules-report-management.mjs +7 -7
  304. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  305. package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-D7YtuAbZ.mjs} +7 -7
  306. package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs.map → acorex-modules-reservation-management-acorex-modules-reservation-management-D7YtuAbZ.mjs.map} +1 -1
  307. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs → acorex-modules-reservation-management-reservation-class-status.entity-D4insz8u.mjs} +2 -2
  308. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs.map → acorex-modules-reservation-management-reservation-class-status.entity-D4insz8u.mjs.map} +1 -1
  309. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs → acorex-modules-reservation-management-reservation-resource-type.entity-Dn2CMqO9.mjs} +2 -2
  310. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs.map → acorex-modules-reservation-management-reservation-resource-type.entity-Dn2CMqO9.mjs.map} +1 -1
  311. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-CrwUrIrC.mjs} +2 -2
  312. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs.map → acorex-modules-reservation-management-reservation-status-transition.entity-CrwUrIrC.mjs.map} +1 -1
  313. package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
  314. package/fesm2022/acorex-modules-security-management.mjs +4 -4
  315. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  316. package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-Dj9u0VEL.mjs → acorex-modules-settings-management-acorex-modules-settings-management-O8kBegUF.mjs} +136 -65
  317. package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-O8kBegUF.mjs.map +1 -0
  318. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-DpRn1jAo.mjs → acorex-modules-settings-management-permission-definition.provider-CU7SEx6v.mjs} +2 -2
  319. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-DpRn1jAo.mjs.map → acorex-modules-settings-management-permission-definition.provider-CU7SEx6v.mjs.map} +1 -1
  320. package/fesm2022/{acorex-modules-settings-management-setting-page.component-C9wPgm_P.mjs → acorex-modules-settings-management-setting-page.component-D8_cjOzW.mjs} +181 -19
  321. package/fesm2022/acorex-modules-settings-management-setting-page.component-D8_cjOzW.mjs.map +1 -0
  322. package/fesm2022/{acorex-modules-settings-management-setting-view.component-BQ69Bx8C.mjs → acorex-modules-settings-management-setting-view.component-DIvERzMC.mjs} +65 -17
  323. package/fesm2022/acorex-modules-settings-management-setting-view.component-DIvERzMC.mjs.map +1 -0
  324. package/fesm2022/acorex-modules-settings-management.mjs +1 -1
  325. package/fesm2022/acorex-modules-subscription-management.mjs +2 -2
  326. package/fesm2022/acorex-modules-subscription-management.mjs.map +1 -1
  327. package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-BB7eeaYX.mjs → acorex-modules-task-management-acorex-modules-task-management-Bp-9vZdR.mjs} +939 -383
  328. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-Bp-9vZdR.mjs.map +1 -0
  329. package/fesm2022/acorex-modules-task-management-task-board.page-Brgg9wJa.mjs +3368 -0
  330. package/fesm2022/acorex-modules-task-management-task-board.page-Brgg9wJa.mjs.map +1 -0
  331. package/fesm2022/acorex-modules-task-management.mjs +1 -1
  332. package/fesm2022/acorex-modules-tenant-management.mjs +2 -2
  333. package/fesm2022/acorex-modules-tenant-management.mjs.map +1 -1
  334. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-gXP-srRO.mjs +5600 -0
  335. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-gXP-srRO.mjs.map +1 -0
  336. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-B4DLmioy.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BW6kK9Av.mjs} +3 -3
  337. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-B4DLmioy.mjs.map → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BW6kK9Av.mjs.map} +1 -1
  338. package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs → acorex-modules-workflow-management-activity-definition.entity-BlK-sL_3.mjs} +2 -2
  339. package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs.map → acorex-modules-workflow-management-activity-definition.entity-BlK-sL_3.mjs.map} +1 -1
  340. package/fesm2022/{acorex-modules-workflow-management-automation.entity-BigK8yE2.mjs → acorex-modules-workflow-management-automation.entity-C9q24TPu.mjs} +3 -3
  341. package/fesm2022/acorex-modules-workflow-management-automation.entity-C9q24TPu.mjs.map +1 -0
  342. package/fesm2022/{acorex-modules-workflow-management-index-1B7oRAKX.mjs → acorex-modules-workflow-management-index-BFdyFvcu.mjs} +8 -5
  343. package/fesm2022/acorex-modules-workflow-management-index-BFdyFvcu.mjs.map +1 -0
  344. package/fesm2022/{acorex-modules-workflow-management-index-DC_9M9dk.mjs → acorex-modules-workflow-management-index-BbVGViSE.mjs} +7 -163
  345. package/fesm2022/acorex-modules-workflow-management-index-BbVGViSE.mjs.map +1 -0
  346. package/fesm2022/{acorex-modules-workflow-management-index-34UZrsxw.mjs → acorex-modules-workflow-management-index-Bq5tBgif.mjs} +2 -2
  347. package/fesm2022/{acorex-modules-workflow-management-index-34UZrsxw.mjs.map → acorex-modules-workflow-management-index-Bq5tBgif.mjs.map} +1 -1
  348. package/fesm2022/{acorex-modules-workflow-management-index-CxheG2ry.mjs → acorex-modules-workflow-management-index-CIV7Abnc.mjs} +115 -7
  349. package/fesm2022/acorex-modules-workflow-management-index-CIV7Abnc.mjs.map +1 -0
  350. package/fesm2022/{acorex-modules-workflow-management-save-workflow-definition-activities.command-CGNwslcn.mjs → acorex-modules-workflow-management-save-workflow-definition-activities.command-B_tjSneV.mjs} +2 -2
  351. package/fesm2022/{acorex-modules-workflow-management-save-workflow-definition-activities.command-CGNwslcn.mjs.map → acorex-modules-workflow-management-save-workflow-definition-activities.command-B_tjSneV.mjs.map} +1 -1
  352. package/fesm2022/acorex-modules-workflow-management-workflow-activity-instance-rows.utils-L8W4ogSI.mjs +172 -0
  353. package/fesm2022/acorex-modules-workflow-management-workflow-activity-instance-rows.utils-L8W4ogSI.mjs.map +1 -0
  354. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-column.component-CPOQZxsq.mjs +79 -0
  355. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-column.component-CPOQZxsq.mjs.map +1 -0
  356. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-edit.component-CqF3z8Xq.mjs +466 -0
  357. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-edit.component-CqF3z8Xq.mjs.map +1 -0
  358. package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-DISpkWE4.mjs → acorex-modules-workflow-management-workflow-definition.entity-BbnGGXZs.mjs} +3 -2
  359. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-BbnGGXZs.mjs.map +1 -0
  360. package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-BnKT3Wgh.mjs → acorex-modules-workflow-management-workflow-instance.entity-Ci6c4VoI.mjs} +3 -3
  361. package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-BnKT3Wgh.mjs.map → acorex-modules-workflow-management-workflow-instance.entity-Ci6c4VoI.mjs.map} +1 -1
  362. package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-CJ0cRwUE.mjs +579 -0
  363. package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-CJ0cRwUE.mjs.map +1 -0
  364. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CHv2_W75.mjs +285 -0
  365. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CHv2_W75.mjs.map +1 -0
  366. package/fesm2022/acorex-modules-workflow-management.mjs +1 -5212
  367. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  368. package/fesm2022/acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-D1a0CBhs.mjs +42 -0
  369. package/fesm2022/acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-D1a0CBhs.mjs.map +1 -0
  370. package/fesm2022/acorex-modules-workplacesafety-management-ppe-item-status.provider-VH_Bp0l5.mjs +70 -0
  371. package/fesm2022/acorex-modules-workplacesafety-management-ppe-item-status.provider-VH_Bp0l5.mjs.map +1 -0
  372. package/fesm2022/acorex-modules-workplacesafety-management.mjs +1229 -67
  373. package/fesm2022/acorex-modules-workplacesafety-management.mjs.map +1 -1
  374. package/package.json +2 -2
  375. package/types/acorex-modules-ai-management.d.ts +23 -4
  376. package/types/acorex-modules-assessment-management.d.ts +214 -188
  377. package/types/acorex-modules-asset-management.d.ts +1 -0
  378. package/types/acorex-modules-calendar-management.d.ts +61 -33
  379. package/types/acorex-modules-common.d.ts +14 -4
  380. package/types/acorex-modules-conversation.d.ts +59 -14
  381. package/types/acorex-modules-dashboard-management.d.ts +14 -2
  382. package/types/acorex-modules-document-management.d.ts +8 -0
  383. package/types/acorex-modules-human-capital-management.d.ts +28 -14
  384. package/types/acorex-modules-notification-management.d.ts +32 -3
  385. package/types/acorex-modules-report-management.d.ts +3 -0
  386. package/types/acorex-modules-settings-management.d.ts +12 -2
  387. package/types/acorex-modules-task-management.d.ts +196 -47
  388. package/types/acorex-modules-workflow-management.d.ts +41 -39
  389. package/types/acorex-modules-workplacesafety-management.d.ts +124 -4
  390. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-IHgQ8RVH.mjs.map +0 -1
  391. package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs.map +0 -1
  392. package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-Sd4gRHo5.mjs.map +0 -1
  393. package/fesm2022/acorex-modules-assessment-management-question-bank-item.entity-RLIfWCzq.mjs.map +0 -1
  394. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-B8LMKqVO.mjs.map +0 -1
  395. package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-CZBnfCYE.mjs.map +0 -1
  396. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BUuEzfsI.mjs +0 -803
  397. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BUuEzfsI.mjs.map +0 -1
  398. package/fesm2022/acorex-modules-auth-app-chooser.component-DnmLfX5x.mjs.map +0 -1
  399. package/fesm2022/acorex-modules-auth-master.layout-DMP4RC6L.mjs +0 -25
  400. package/fesm2022/acorex-modules-auth-master.layout-DMP4RC6L.mjs.map +0 -1
  401. package/fesm2022/acorex-modules-auth-user-sessions.component-gJSHI_eh.mjs.map +0 -1
  402. package/fesm2022/acorex-modules-calendar-management-datasource.provider-C_iazC89.mjs +0 -95
  403. package/fesm2022/acorex-modules-calendar-management-datasource.provider-C_iazC89.mjs.map +0 -1
  404. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-txpooXrE.mjs.map +0 -1
  405. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DYW31fEm.mjs.map +0 -1
  406. package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQlE8l4c.mjs +0 -329
  407. package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQlE8l4c.mjs.map +0 -1
  408. package/fesm2022/acorex-modules-conversation-comments-page.component-CNqL-HdS.mjs.map +0 -1
  409. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-kk0CINL1.mjs.map +0 -1
  410. package/fesm2022/acorex-modules-data-management-index-DEm_BsbE.mjs.map +0 -1
  411. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-DrKulwY-.mjs.map +0 -1
  412. package/fesm2022/acorex-modules-human-capital-management-employee.entity-CrVU_3Jv.mjs.map +0 -1
  413. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-QeY6lcUY.mjs.map +0 -1
  414. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-D7B3adkZ.mjs.map +0 -1
  415. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-Dim-8hT7.mjs.map +0 -1
  416. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-3HtYOKrY.mjs.map +0 -1
  417. package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-Bz2SZcmm.mjs.map +0 -1
  418. package/fesm2022/acorex-modules-learning-management-course.entity-DUUgeikJ.mjs.map +0 -1
  419. package/fesm2022/acorex-modules-learning-management-enrollment.entity-CdJafrUh.mjs.map +0 -1
  420. package/fesm2022/acorex-modules-learning-management-learning-path.entity-Zo--bDto.mjs.map +0 -1
  421. package/fesm2022/acorex-modules-learning-management-skill.entity-VXkLbaD4.mjs.map +0 -1
  422. package/fesm2022/acorex-modules-learning-management-training.entity-C4KDv1uh.mjs.map +0 -1
  423. package/fesm2022/acorex-modules-locale-management-profiles-BOveGIcE.mjs.map +0 -1
  424. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DiM2aFgg.mjs.map +0 -1
  425. package/fesm2022/acorex-modules-notification-management-notification-page.component-6YOiGgKm.mjs +0 -858
  426. package/fesm2022/acorex-modules-notification-management-notification-page.component-6YOiGgKm.mjs.map +0 -1
  427. package/fesm2022/acorex-modules-order-management-bulk-buy-order-item.entity-DGtHoqqj.mjs.map +0 -1
  428. package/fesm2022/acorex-modules-order-management-member-order-line.entity-DZJ90WHI.mjs.map +0 -1
  429. package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-aWZO09Xw.mjs.map +0 -1
  430. package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-DJcFhQM9.mjs.map +0 -1
  431. package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-DGuF5ux1.mjs.map +0 -1
  432. package/fesm2022/acorex-modules-organization-management-team-member.entity-Deem7M3N.mjs.map +0 -1
  433. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-Cbf1rlEK.mjs.map +0 -1
  434. package/fesm2022/acorex-modules-product-catalog-product-sku.entity-C3ynevYI.mjs.map +0 -1
  435. package/fesm2022/acorex-modules-product-catalog-product.entity-BbB7GAg7.mjs.map +0 -1
  436. package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-Dj9u0VEL.mjs.map +0 -1
  437. package/fesm2022/acorex-modules-settings-management-setting-page.component-C9wPgm_P.mjs.map +0 -1
  438. package/fesm2022/acorex-modules-settings-management-setting-view.component-BQ69Bx8C.mjs.map +0 -1
  439. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-BB7eeaYX.mjs.map +0 -1
  440. package/fesm2022/acorex-modules-task-management-task-board.page-BmUIngWk.mjs +0 -2284
  441. package/fesm2022/acorex-modules-task-management-task-board.page-BmUIngWk.mjs.map +0 -1
  442. package/fesm2022/acorex-modules-workflow-management-automation.entity-BigK8yE2.mjs.map +0 -1
  443. package/fesm2022/acorex-modules-workflow-management-index-1B7oRAKX.mjs.map +0 -1
  444. package/fesm2022/acorex-modules-workflow-management-index-CxheG2ry.mjs.map +0 -1
  445. package/fesm2022/acorex-modules-workflow-management-index-DC_9M9dk.mjs.map +0 -1
  446. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DISpkWE4.mjs.map +0 -1
  447. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-B4hEv2-a.mjs +0 -255
  448. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-B4hEv2-a.mjs.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injector, Injectable, NgModule, input, output, signal, viewChild, computed, effect, untracked, ChangeDetectionStrategy, Component, ViewEncapsulation, ElementRef, afterNextRender } from '@angular/core';
3
3
  import { AXPCommonMenuKeys } from '@acorex/modules/common';
4
- import { AXPEntityService, AXPEntityDefinitionRegistryService, AXPEntityEventsKeys, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
5
- import { AXPSearchCommandProvider, createEntityCommandOptions, AXPFileStorageService, AXPStickyDirective, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXPSystemStatusType } from '@acorex/platform/common';
6
- import { AXPAuthGuard, AXP_PERMISSION_DEFINITION_PROVIDER, AXPSessionService } from '@acorex/platform/auth';
4
+ import { AXPEntityService, AXPEntityDefinitionRegistryService, AXPEntityEventsKeys, AXPFileListComponent, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
5
+ import { AXPSearchCommandProvider, createEntityCommandOptions, AXPStickyDirective, AXP_PROTECTED_ROUTE_GUARDS, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXPSystemStatusType } from '@acorex/platform/common';
6
+ import { AXP_PERMISSION_DEFINITION_PROVIDER, AXPSessionService } from '@acorex/platform/auth';
7
7
  import { AXPDataSelectorService, AXPPropertyViewerService, AXPStandardSectionItemsBuilderComponent, AXPStateMessageComponent, AXP_PAGE_COMPONENT_PROVIDER, AXPOutcomeResultsViewerComponent, AXPThemeLayoutBlockComponent, AXPStopwatchComponent } from '@acorex/platform/layout/components';
8
8
  import { AXPCommandService, provideCommandSetups, provideCommand } from '@acorex/platform/runtime';
9
9
  import { AXPExpressionEvaluatorService, AXPDeviceService, AXPBroadcastEventService, AXPContextStore, AXPDataGenerator, containsHtmlMarkup, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex/platform/core';
@@ -48,6 +48,8 @@ import * as i3$1 from '@acorex/components/drawer';
48
48
  import { AXDrawerModule } from '@acorex/components/drawer';
49
49
  import * as i1$2 from '@acorex/components/tabs';
50
50
  import { AXTabsComponent, AXTabsModule } from '@acorex/components/tabs';
51
+ import * as i3$2 from '@acorex/components/popover';
52
+ import { AXPopoverModule } from '@acorex/components/popover';
51
53
  import { DomSanitizer } from '@angular/platform-browser';
52
54
 
53
55
  //#region ---- Root Configuration ----
@@ -101,13 +103,13 @@ class AXMAssessmentManagementEntityProvider {
101
103
  if (moduleName === RootConfig.module.name) {
102
104
  switch (entityName) {
103
105
  case RootConfig.entities.questionBankItem.name:
104
- return (await import('./acorex-modules-assessment-management-question-bank-item.entity-RLIfWCzq.mjs')).factory(this.injector);
106
+ return (await import('./acorex-modules-assessment-management-question-bank-item.entity-CfCWKqN5.mjs')).factory(this.injector);
105
107
  case RootConfig.entities.questionnaire.name:
106
- return (await import('./acorex-modules-assessment-management-questionnaire.entity-CZBnfCYE.mjs')).factory();
108
+ return (await import('./acorex-modules-assessment-management-questionnaire.entity-CPMGkhGu.mjs')).factory();
107
109
  case RootConfig.entities.assessmentCase.name:
108
- return (await import('./acorex-modules-assessment-management-assessment-case.entity-B95yBXgi.mjs')).factory(this.injector);
110
+ return (await import('./acorex-modules-assessment-management-assessment-case.entity-Cpbj5sCP.mjs')).factory(this.injector);
109
111
  case RootConfig.entities.assessmentSession.name:
110
- return (await import('./acorex-modules-assessment-management-assessment-session.entity-DBhBxqh1.mjs')).factory(this.injector);
112
+ return (await import('./acorex-modules-assessment-management-assessment-session.entity-CMW7wsoN.mjs')).factory(this.injector);
111
113
  }
112
114
  }
113
115
  return null;
@@ -430,10 +432,10 @@ const AXMQuestionBankInterfaceEditorWidget = {
430
432
  ],
431
433
  components: {
432
434
  edit: {
433
- component: () => import('./acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BCtQO_j7.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
435
+ component: () => import('./acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BEhxeR8A.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
434
436
  },
435
437
  designer: {
436
- component: () => import('./acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BCtQO_j7.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
438
+ component: () => import('./acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BEhxeR8A.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
437
439
  },
438
440
  column: {
439
441
  component: () => import('@acorex/platform/layout/widgets').then((m) => m.AXPWidgetFieldConfiguratorWidgetColumnComponent),
@@ -762,224 +764,6 @@ function parseQuestionHintPartialFromRecord(row) {
762
764
  }
763
765
  //#endregion
764
766
 
765
- //#region ---- Imports ----
766
- /**
767
- * Answer map key for a questionnaire item (matches viewer session).
768
- */
769
- function getQuestionnaireItemAnswerKey(item) {
770
- return typeof item.name === 'string' ? item.name.trim() : '';
771
- }
772
- /**
773
- * Storage key for answers — matches viewer `answerKey` fallback when item name is empty.
774
- */
775
- function resolveQuestionnaireItemAnswerStorageKey(item, itemIndex) {
776
- const fromName = getQuestionnaireItemAnswerKey(item);
777
- if (fromName) {
778
- return fromName;
779
- }
780
- const legacyId = typeof item.id === 'string' ? item.id.trim() : '';
781
- return legacyId || `item-${itemIndex}`;
782
- }
783
- //#endregion
784
- //#region ---- Utility Functions ----
785
- /**
786
- * True only when the item is statically required (boolean true), not expression-based.
787
- */
788
- function isQuestionnaireItemStaticallyRequired(isRequired) {
789
- return isRequired === true;
790
- }
791
- /**
792
- * True when the UI should indicate required (static true or non-empty expression).
793
- */
794
- function isQuestionnaireItemRequiredForDisplay(isRequired) {
795
- if (isRequired === true) {
796
- return true;
797
- }
798
- if (typeof isRequired === 'string' && isRequired.trim() !== '') {
799
- return true;
800
- }
801
- return false;
802
- }
803
- function getQuestionnaireItemRequiredBadgeMode(isRequired) {
804
- if (isRequired === true) {
805
- return 'required';
806
- }
807
- if (typeof isRequired === 'string') {
808
- const t = isRequired.trim();
809
- if (!t) {
810
- return 'optional';
811
- }
812
- const tl = t.toLowerCase();
813
- if (tl === 'true' || tl === '1') {
814
- return 'required';
815
- }
816
- if (tl === 'false' || tl === '0') {
817
- return 'optional';
818
- }
819
- return 'conditional';
820
- }
821
- return 'optional';
822
- }
823
- function getQuestionnaireItemVisibilityBadgeMode(isVisible) {
824
- if (isVisible === false) {
825
- return 'hidden';
826
- }
827
- if (isVisible === true || isVisible === undefined || isVisible === null) {
828
- return 'visible';
829
- }
830
- if (typeof isVisible === 'string') {
831
- const t = isVisible.trim();
832
- if (!t) {
833
- return 'visible';
834
- }
835
- const tl = t.toLowerCase();
836
- if (tl === 'true' || tl === '1') {
837
- return 'visible';
838
- }
839
- if (tl === 'false' || tl === '0') {
840
- return 'hidden';
841
- }
842
- return 'conditional';
843
- }
844
- return 'visible';
845
- }
846
- /**
847
- * Convert raw value to builder state
848
- */
849
- function convertValueToState(value) {
850
- // Handle null/undefined or empty sections
851
- if (!value || !value.sections || value.sections.length === 0) {
852
- // Always return at least one default section
853
- const defaultSection = createDefaultSection();
854
- defaultSection.order = 0;
855
- return {
856
- sections: [defaultSection],
857
- displaySettings: value?.displaySettings,
858
- };
859
- }
860
- // Handle structure (sections with nested items)
861
- return {
862
- sections: value.sections.map((section, sectionIndex) => {
863
- const legacy = section;
864
- const sectionName = (typeof section.name === 'string' && section.name.trim()) ||
865
- (typeof legacy.id === 'string' && legacy.id.trim()) ||
866
- `section-${sectionIndex}`;
867
- return {
868
- name: sectionName,
869
- title: section.title,
870
- description: section.description,
871
- order: section.order ?? sectionIndex,
872
- tags: section.tags,
873
- isVisible: section.isVisible,
874
- items: (section.items || []).map((item, itemIndex) => {
875
- const itemLegacy = item;
876
- const itemName = (typeof item.name === 'string' && item.name.trim()) ||
877
- (typeof itemLegacy.id === 'string' && itemLegacy.id.trim()) ||
878
- `item-${itemIndex}`;
879
- return {
880
- name: itemName,
881
- questionBankItemId: item.questionBankItemId,
882
- order: item.order ?? itemIndex,
883
- isRequired: item.isRequired,
884
- isVisible: item.isVisible,
885
- interfaceOverride: item.interfaceOverride,
886
- hint: parseQuestionHintPartialFromRecord(item),
887
- comment: item.comment,
888
- tags: item.tags,
889
- isNewlyAdded: false,
890
- };
891
- }),
892
- isNewlyAdded: false,
893
- };
894
- }),
895
- displaySettings: value.displaySettings,
896
- };
897
- }
898
- /**
899
- * Convert builder state to value for persistence
900
- */
901
- function convertStateToValue(state, existingValue) {
902
- const result = {
903
- sections: state.sections.map((section) => {
904
- return {
905
- name: section.name,
906
- title: section.title,
907
- description: section.description,
908
- order: section.order,
909
- tags: section.tags,
910
- isVisible: section.isVisible,
911
- items: section.items.map((item) => ({
912
- name: item.name,
913
- questionBankItemId: item.questionBankItemId,
914
- order: item.order,
915
- isRequired: item.isRequired,
916
- isVisible: item.isVisible,
917
- interfaceOverride: item.interfaceOverride,
918
- hint: item.hint,
919
- comment: item.comment,
920
- tags: item.tags,
921
- })),
922
- };
923
- }),
924
- };
925
- // Preserve displaySettings from state first, then from existing value if state doesn't have it
926
- if (state.displaySettings) {
927
- result.displaySettings = state.displaySettings;
928
- }
929
- else if (existingValue?.displaySettings) {
930
- result.displaySettings = existingValue.displaySettings;
931
- }
932
- return result;
933
- }
934
- /**
935
- * Create a default section
936
- */
937
- function createDefaultSection() {
938
- const name = `section-${Date.now()}`;
939
- return {
940
- name,
941
- title: 'New Section',
942
- description: undefined,
943
- order: 0,
944
- isVisible: undefined,
945
- items: [],
946
- isNewlyAdded: true,
947
- };
948
- }
949
- /**
950
- * All questionnaire item names currently in the structure (for uniqueness when allocating new names).
951
- */
952
- function collectQuestionnaireItemNames(sections) {
953
- const set = new Set();
954
- for (const sec of sections) {
955
- for (const it of sec.items) {
956
- if (it.name)
957
- set.add(it.name);
958
- }
959
- }
960
- return set;
961
- }
962
- /**
963
- * Allocates the next user-friendly name (`q1`, `q2`, …) not present in `used`.
964
- * Increments from the highest existing `q<number>` name, then skips collisions.
965
- */
966
- function allocateNextQuestionItemName(used) {
967
- let maxQ = 0;
968
- for (const id of used) {
969
- const m = /^q(\d+)$/i.exec(id.trim());
970
- if (m)
971
- maxQ = Math.max(maxQ, parseInt(m[1], 10));
972
- }
973
- let n = maxQ + 1;
974
- let candidate = `q${n}`;
975
- while (used.has(candidate)) {
976
- n++;
977
- candidate = `q${n}`;
978
- }
979
- return candidate;
980
- }
981
- //#endregion
982
-
983
767
  //#region ---- Imports ----
984
768
  const DEFAULT_PRE_QUESTIONNAIRE_CONFIG = { enabled: false };
985
769
  const DEFAULT_POST_QUESTIONNAIRE_CONFIG = {
@@ -1208,48 +992,266 @@ function normalizeViewMode(value) {
1208
992
  if (value != null && typeof value === 'object' && 'id' in value && typeof value.id === 'string') {
1209
993
  return normalizeViewMode(value.id);
1210
994
  }
1211
- return 'single-page';
995
+ return 'single-page';
996
+ }
997
+ /**
998
+ * Coerces stored validation strategy (string or SelectBox `{ id }`) to a known value.
999
+ */
1000
+ function normalizeValidationStrategy$1(value) {
1001
+ if (typeof value === 'string' && VALIDATION_STRATEGY_VALUES.includes(value)) {
1002
+ return value;
1003
+ }
1004
+ if (value != null && typeof value === 'object' && 'id' in value && typeof value.id === 'string') {
1005
+ return normalizeValidationStrategy$1(value.id);
1006
+ }
1007
+ return 'step';
1008
+ }
1009
+ /**
1010
+ * Coerces stored completion mode (string or SelectBox `{ id }`) to a known value.
1011
+ */
1012
+ function normalizeCompletionMode(value) {
1013
+ if (typeof value === 'string' && COMPLETION_MODE_VALUES.includes(value)) {
1014
+ return value;
1015
+ }
1016
+ if (value != null && typeof value === 'object' && 'id' in value && typeof value.id === 'string') {
1017
+ return normalizeCompletionMode(value.id);
1018
+ }
1019
+ return 'submit-only';
1020
+ }
1021
+ /**
1022
+ * Maps entity `display` to {@link QuestionnaireDisplaySettings} (defaults when omitted).
1023
+ */
1024
+ function toDisplaySettings(q) {
1025
+ if (!q) {
1026
+ return null;
1027
+ }
1028
+ const d = { ...DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY, ...q.display };
1029
+ return {
1030
+ viewMode: normalizeViewMode(d.viewMode),
1031
+ showProgressBar: d.showProgressBar ?? true,
1032
+ showTimer: d.showTimer ?? false,
1033
+ showQuestionNumbers: d.showQuestionNumbers ?? true,
1034
+ validationStrategy: normalizeValidationStrategy$1(d.validationStrategy),
1035
+ completionMode: normalizeCompletionMode(d.completionMode),
1036
+ };
1037
+ }
1038
+ //#endregion
1039
+
1040
+ //#region ---- Imports ----
1041
+ /**
1042
+ * Answer map key for a questionnaire item (matches viewer session).
1043
+ */
1044
+ function getQuestionnaireItemAnswerKey(item) {
1045
+ return typeof item.name === 'string' ? item.name.trim() : '';
1046
+ }
1047
+ /**
1048
+ * Storage key for answers — matches viewer `answerKey` fallback when item name is empty.
1049
+ */
1050
+ function resolveQuestionnaireItemAnswerStorageKey(item, itemIndex) {
1051
+ const fromName = getQuestionnaireItemAnswerKey(item);
1052
+ if (fromName) {
1053
+ return fromName;
1054
+ }
1055
+ const legacyId = typeof item.id === 'string' ? item.id.trim() : '';
1056
+ return legacyId || `item-${itemIndex}`;
1057
+ }
1058
+ //#endregion
1059
+ //#region ---- Utility Functions ----
1060
+ /**
1061
+ * True only when the item is statically required (boolean true), not expression-based.
1062
+ */
1063
+ function isQuestionnaireItemStaticallyRequired(isRequired) {
1064
+ return isRequired === true;
1065
+ }
1066
+ /**
1067
+ * True when the UI should indicate required (static true or non-empty expression).
1068
+ */
1069
+ function isQuestionnaireItemRequiredForDisplay(isRequired) {
1070
+ if (isRequired === true) {
1071
+ return true;
1072
+ }
1073
+ if (typeof isRequired === 'string' && isRequired.trim() !== '') {
1074
+ return true;
1075
+ }
1076
+ return false;
1077
+ }
1078
+ function getQuestionnaireItemRequiredBadgeMode(isRequired) {
1079
+ if (isRequired === true) {
1080
+ return 'required';
1081
+ }
1082
+ if (typeof isRequired === 'string') {
1083
+ const t = isRequired.trim();
1084
+ if (!t) {
1085
+ return 'optional';
1086
+ }
1087
+ const tl = t.toLowerCase();
1088
+ if (tl === 'true' || tl === '1') {
1089
+ return 'required';
1090
+ }
1091
+ if (tl === 'false' || tl === '0') {
1092
+ return 'optional';
1093
+ }
1094
+ return 'conditional';
1095
+ }
1096
+ return 'optional';
1097
+ }
1098
+ function getQuestionnaireItemVisibilityBadgeMode(isVisible) {
1099
+ if (isVisible === false) {
1100
+ return 'hidden';
1101
+ }
1102
+ if (isVisible === true || isVisible === undefined || isVisible === null) {
1103
+ return 'visible';
1104
+ }
1105
+ if (typeof isVisible === 'string') {
1106
+ const t = isVisible.trim();
1107
+ if (!t) {
1108
+ return 'visible';
1109
+ }
1110
+ const tl = t.toLowerCase();
1111
+ if (tl === 'true' || tl === '1') {
1112
+ return 'visible';
1113
+ }
1114
+ if (tl === 'false' || tl === '0') {
1115
+ return 'hidden';
1116
+ }
1117
+ return 'conditional';
1118
+ }
1119
+ return 'visible';
1120
+ }
1121
+ /**
1122
+ * Convert raw value to builder state
1123
+ */
1124
+ function convertValueToState(value) {
1125
+ // Handle null/undefined or empty sections
1126
+ if (!value || !value.sections || value.sections.length === 0) {
1127
+ // Always return at least one default section
1128
+ const defaultSection = createDefaultSection();
1129
+ defaultSection.order = 0;
1130
+ return {
1131
+ sections: [defaultSection],
1132
+ displaySettings: value?.displaySettings,
1133
+ };
1134
+ }
1135
+ // Handle structure (sections with nested items)
1136
+ return {
1137
+ sections: value.sections.map((section, sectionIndex) => {
1138
+ const legacy = section;
1139
+ const sectionName = (typeof section.name === 'string' && section.name.trim()) ||
1140
+ (typeof legacy.id === 'string' && legacy.id.trim()) ||
1141
+ `section-${sectionIndex}`;
1142
+ return {
1143
+ name: sectionName,
1144
+ title: section.title,
1145
+ description: section.description,
1146
+ order: section.order ?? sectionIndex,
1147
+ tags: section.tags,
1148
+ isVisible: section.isVisible,
1149
+ items: (section.items || []).map((item, itemIndex) => {
1150
+ const itemLegacy = item;
1151
+ const itemName = (typeof item.name === 'string' && item.name.trim()) ||
1152
+ (typeof itemLegacy.id === 'string' && itemLegacy.id.trim()) ||
1153
+ `item-${itemIndex}`;
1154
+ return {
1155
+ name: itemName,
1156
+ questionBankItemId: item.questionBankItemId,
1157
+ order: item.order ?? itemIndex,
1158
+ isRequired: item.isRequired,
1159
+ isVisible: item.isVisible,
1160
+ interfaceOverride: item.interfaceOverride,
1161
+ hint: parseQuestionHintPartialFromRecord(item),
1162
+ comment: item.comment,
1163
+ tags: item.tags,
1164
+ isNewlyAdded: false,
1165
+ };
1166
+ }),
1167
+ isNewlyAdded: false,
1168
+ };
1169
+ }),
1170
+ displaySettings: value.displaySettings,
1171
+ };
1172
+ }
1173
+ /**
1174
+ * Convert builder state to value for persistence
1175
+ */
1176
+ function convertStateToValue(state, existingValue) {
1177
+ const result = {
1178
+ sections: state.sections.map((section) => {
1179
+ return {
1180
+ name: section.name,
1181
+ title: section.title,
1182
+ description: section.description,
1183
+ order: section.order,
1184
+ tags: section.tags,
1185
+ isVisible: section.isVisible,
1186
+ items: section.items.map((item) => ({
1187
+ name: item.name,
1188
+ questionBankItemId: item.questionBankItemId,
1189
+ order: item.order,
1190
+ isRequired: item.isRequired,
1191
+ isVisible: item.isVisible,
1192
+ interfaceOverride: item.interfaceOverride,
1193
+ hint: item.hint,
1194
+ comment: item.comment,
1195
+ tags: item.tags,
1196
+ })),
1197
+ };
1198
+ }),
1199
+ };
1200
+ // Preserve displaySettings from state first, then from existing value if state doesn't have it
1201
+ if (state.displaySettings) {
1202
+ result.displaySettings = state.displaySettings;
1203
+ }
1204
+ else if (existingValue?.displaySettings) {
1205
+ result.displaySettings = existingValue.displaySettings;
1206
+ }
1207
+ return result;
1212
1208
  }
1213
1209
  /**
1214
- * Coerces stored validation strategy (string or SelectBox `{ id }`) to a known value.
1210
+ * Create a default section
1215
1211
  */
1216
- function normalizeValidationStrategy$1(value) {
1217
- if (typeof value === 'string' && VALIDATION_STRATEGY_VALUES.includes(value)) {
1218
- return value;
1219
- }
1220
- if (value != null && typeof value === 'object' && 'id' in value && typeof value.id === 'string') {
1221
- return normalizeValidationStrategy$1(value.id);
1222
- }
1223
- return 'step';
1212
+ function createDefaultSection() {
1213
+ const name = `section-${Date.now()}`;
1214
+ return {
1215
+ name,
1216
+ title: 'New Section',
1217
+ description: undefined,
1218
+ order: 0,
1219
+ isVisible: undefined,
1220
+ items: [],
1221
+ isNewlyAdded: true,
1222
+ };
1224
1223
  }
1225
1224
  /**
1226
- * Coerces stored completion mode (string or SelectBox `{ id }`) to a known value.
1225
+ * All questionnaire item names currently in the structure (for uniqueness when allocating new names).
1227
1226
  */
1228
- function normalizeCompletionMode(value) {
1229
- if (typeof value === 'string' && COMPLETION_MODE_VALUES.includes(value)) {
1230
- return value;
1231
- }
1232
- if (value != null && typeof value === 'object' && 'id' in value && typeof value.id === 'string') {
1233
- return normalizeCompletionMode(value.id);
1227
+ function collectQuestionnaireItemNames(sections) {
1228
+ const set = new Set();
1229
+ for (const sec of sections) {
1230
+ for (const it of sec.items) {
1231
+ if (it.name)
1232
+ set.add(it.name);
1233
+ }
1234
1234
  }
1235
- return 'submit-only';
1235
+ return set;
1236
1236
  }
1237
1237
  /**
1238
- * Maps entity `display` to {@link QuestionnaireDisplaySettings} (defaults when omitted).
1238
+ * Allocates the next user-friendly name (`q1`, `q2`, …) not present in `used`.
1239
+ * Increments from the highest existing `q<number>` name, then skips collisions.
1239
1240
  */
1240
- function toDisplaySettings(q) {
1241
- if (!q) {
1242
- return null;
1241
+ function allocateNextQuestionItemName(used) {
1242
+ let maxQ = 0;
1243
+ for (const id of used) {
1244
+ const m = /^q(\d+)$/i.exec(id.trim());
1245
+ if (m)
1246
+ maxQ = Math.max(maxQ, parseInt(m[1], 10));
1243
1247
  }
1244
- const d = { ...DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY, ...q.display };
1245
- return {
1246
- viewMode: normalizeViewMode(d.viewMode),
1247
- showProgressBar: d.showProgressBar ?? true,
1248
- showTimer: d.showTimer ?? false,
1249
- showQuestionNumbers: d.showQuestionNumbers ?? true,
1250
- validationStrategy: normalizeValidationStrategy$1(d.validationStrategy),
1251
- completionMode: normalizeCompletionMode(d.completionMode),
1252
- };
1248
+ let n = maxQ + 1;
1249
+ let candidate = `q${n}`;
1250
+ while (used.has(candidate)) {
1251
+ n++;
1252
+ candidate = `q${n}`;
1253
+ }
1254
+ return candidate;
1253
1255
  }
1254
1256
  //#endregion
1255
1257
 
@@ -1376,7 +1378,7 @@ class AXMQuestionnaireViewerService {
1376
1378
  * Open questionnaire viewer in a dialog
1377
1379
  */
1378
1380
  async open(config) {
1379
- const { AXMQuestionnaireViewerPopupComponent } = await import('./acorex-modules-assessment-management-questionnaire-viewer-popup.component-B8LMKqVO.mjs');
1381
+ const { AXMQuestionnaireViewerPopupComponent } = await import('./acorex-modules-assessment-management-questionnaire-viewer-popup.component-C03wF6Oy.mjs');
1380
1382
  const structure = config.structure;
1381
1383
  const submitHandler = config.submitHandler ??
1382
1384
  ((answers) => this.buildSummaryPlaceholderValues(structure, answers, {
@@ -1892,6 +1894,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1892
1894
  }]
1893
1895
  }] });
1894
1896
 
1897
+ //#region ---- Preview dialog title ----
1898
+ /**
1899
+ * Formats popup title as `Preview: {questionnaire name}` when a name is available.
1900
+ */
1901
+ function formatQuestionnairePreviewDialogTitle(previewLabel, questionnaireName) {
1902
+ const base = previewLabel.trim() || 'Preview';
1903
+ const name = questionnaireName?.trim();
1904
+ return name ? `${base}: ${name}` : base;
1905
+ }
1906
+ //#endregion
1907
+
1895
1908
  //#region ---- Imports ----
1896
1909
  //#endregion
1897
1910
  //#region ---- Groups ----
@@ -2208,6 +2221,8 @@ class AXMQuestionnaireQuestionsBuilderComponent {
2208
2221
  * Persisted questionnaire id (e.g. from entity form) — enables questionnaire outcomes in preview.
2209
2222
  */
2210
2223
  this.questionnaireEntityId = input(undefined, ...(ngDevMode ? [{ debugName: "questionnaireEntityId" }] : /* istanbul ignore next */ []));
2224
+ /** Questionnaire display name for preview dialog title (`Preview: {name}`). */
2225
+ this.questionnaireTitle = input(undefined, ...(ngDevMode ? [{ debugName: "questionnaireTitle" }] : /* istanbul ignore next */ []));
2211
2226
  /**
2212
2227
  * Value change event
2213
2228
  */
@@ -3009,7 +3024,8 @@ class AXMQuestionnaireQuestionsBuilderComponent {
3009
3024
  const currentValue = convertStateToValue(this.builderState(), this.value() || undefined);
3010
3025
  // Always use the current displaySettings from the computed property to ensure preview uses latest settings
3011
3026
  currentValue.displaySettings = this.displaySettings();
3012
- const previewTitle = (await this.translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title')) || 'Preview';
3027
+ const previewTitleBase = (await this.translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title')) || 'Preview';
3028
+ const previewTitle = formatQuestionnairePreviewDialogTitle(previewTitleBase, this.questionnaireTitle());
3013
3029
  const result = await this.questionnaireViewerService.open({
3014
3030
  title: previewTitle,
3015
3031
  structure: currentValue,
@@ -3035,7 +3051,7 @@ class AXMQuestionnaireQuestionsBuilderComponent {
3035
3051
  }
3036
3052
  }
3037
3053
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireQuestionsBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3038
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireQuestionsBuilderComponent, isStandalone: true, selector: "axm-questionnaire-questions-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, prePostConfig: { classPropertyName: "prePostConfig", publicName: "prePostConfig", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, displaySettingsInput: { classPropertyName: "displaySettingsInput", publicName: "displaySettingsInput", isSignal: true, isRequired: false, transformFunction: null }, questionnaireEntityId: { classPropertyName: "questionnaireEntityId", publicName: "questionnaireEntityId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "fullscreenDirective", first: true, predicate: ["fullscreen"], descendants: true, isSignal: true }, { propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axm-questionnaire-questions-builder\" axFullscreen #fullscreen=\"axFullscreen\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button class=\"ax-sm\" [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \" [color]=\"'primary'\" (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title'\n | translate\n | async) || 'Preview'\n \" [disabled]=\"isPreviewDisabled()\" (onClick)=\"handlePreview()\">\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-button>\n }\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.fullscreen.title'\n | translate\n | async) || 'Full Screen'\n \" (onClick)=\"handleFullscreen()\">\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder #standardRef class=\"ax-block ax-min-h-[200px]\" [value]=\"builderValue()\"\n [config]=\"standardConfig()\" [readonly]=\"readonly()\" (valueChange)=\"onBuilderValueChange($event)\" />\n</div>", styles: [".axm-questionnaire-questions-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-questions-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom-width:1px;padding:.75rem}.axm-questionnaire-questions-builder .__header .__header-left,.axm-questionnaire-questions-builder .__header .__header-right{display:flex;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "directive", type: AXFullScreenDirective, selector: "[axFullscreen]", outputs: ["fullscreenChange"], exportAs: ["axFullscreen"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3054
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireQuestionsBuilderComponent, isStandalone: true, selector: "axm-questionnaire-questions-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, prePostConfig: { classPropertyName: "prePostConfig", publicName: "prePostConfig", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, displaySettingsInput: { classPropertyName: "displaySettingsInput", publicName: "displaySettingsInput", isSignal: true, isRequired: false, transformFunction: null }, questionnaireEntityId: { classPropertyName: "questionnaireEntityId", publicName: "questionnaireEntityId", isSignal: true, isRequired: false, transformFunction: null }, questionnaireTitle: { classPropertyName: "questionnaireTitle", publicName: "questionnaireTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "fullscreenDirective", first: true, predicate: ["fullscreen"], descendants: true, isSignal: true }, { propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axm-questionnaire-questions-builder\" axFullscreen #fullscreen=\"axFullscreen\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button class=\"ax-sm\" [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \" [color]=\"'primary'\" (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title'\n | translate\n | async) || 'Preview'\n \" [disabled]=\"isPreviewDisabled()\" (onClick)=\"handlePreview()\">\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-button>\n }\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.fullscreen.title'\n | translate\n | async) || 'Full Screen'\n \" (onClick)=\"handleFullscreen()\">\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder #standardRef class=\"ax-block ax-min-h-[200px]\" [value]=\"builderValue()\"\n [config]=\"standardConfig()\" [readonly]=\"readonly()\" (valueChange)=\"onBuilderValueChange($event)\" />\n</div>", styles: [".axm-questionnaire-questions-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-questions-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom-width:1px;padding:.75rem}.axm-questionnaire-questions-builder .__header .__header-left,.axm-questionnaire-questions-builder .__header .__header-right{display:flex;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "directive", type: AXFullScreenDirective, selector: "[axFullscreen]", outputs: ["fullscreenChange"], exportAs: ["axFullscreen"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3039
3055
  }
3040
3056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireQuestionsBuilderComponent, decorators: [{
3041
3057
  type: Component,
@@ -3052,7 +3068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
3052
3068
  AXPStandardSectionItemsBuilderComponent,
3053
3069
  AXFullScreenDirective,
3054
3070
  ], template: "<div class=\"axm-questionnaire-questions-builder\" axFullscreen #fullscreen=\"axFullscreen\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button class=\"ax-sm\" [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \" [color]=\"'primary'\" (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title'\n | translate\n | async) || 'Preview'\n \" [disabled]=\"isPreviewDisabled()\" (onClick)=\"handlePreview()\">\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-button>\n }\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.fullscreen.title'\n | translate\n | async) || 'Full Screen'\n \" (onClick)=\"handleFullscreen()\">\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder #standardRef class=\"ax-block ax-min-h-[200px]\" [value]=\"builderValue()\"\n [config]=\"standardConfig()\" [readonly]=\"readonly()\" (valueChange)=\"onBuilderValueChange($event)\" />\n</div>", styles: [".axm-questionnaire-questions-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-questions-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom-width:1px;padding:.75rem}.axm-questionnaire-questions-builder .__header .__header-left,.axm-questionnaire-questions-builder .__header .__header-right{display:flex;gap:.5rem}\n"] }]
3055
- }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], prePostConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "prePostConfig", required: false }] }], showHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHeader", required: false }] }], displaySettingsInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "displaySettingsInput", required: false }] }], questionnaireEntityId: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionnaireEntityId", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], fullscreenDirective: [{ type: i0.ViewChild, args: ['fullscreen', { isSignal: true }] }], standardRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPStandardSectionItemsBuilderComponent), { isSignal: true }] }] } });
3071
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], prePostConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "prePostConfig", required: false }] }], showHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHeader", required: false }] }], displaySettingsInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "displaySettingsInput", required: false }] }], questionnaireEntityId: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionnaireEntityId", required: false }] }], questionnaireTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionnaireTitle", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], fullscreenDirective: [{ type: i0.ViewChild, args: ['fullscreen', { isSignal: true }] }], standardRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPStandardSectionItemsBuilderComponent), { isSignal: true }] }] } });
3056
3072
 
3057
3073
  /** Component key for the questionnaire Questions page tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */
3058
3074
  const QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY = 'questionnaire-questions-page';
@@ -3176,7 +3192,8 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3176
3192
  * Root/API `questions` often differs from the normalized object emitted by the builder (defaults, ordering, derived fields), which would otherwise keep `isDirty` true on load and after discard/save.
3177
3193
  */
3178
3194
  this.questionsBaselinePendingReconcile = signal(false, ...(ngDevMode ? [{ debugName: "questionsBaselinePendingReconcile" }] : /* istanbul ignore next */ []));
3179
- this.isDirty = signal(false, ...(ngDevMode ? [{ debugName: "isDirty" }] : /* istanbul ignore next */ []));
3195
+ /** Avoid naming `isDirty` collides with {@link AXPContextStore.isDirty} on injected stores. */
3196
+ this.unsavedChanges = signal(false, ...(ngDevMode ? [{ debugName: "unsavedChanges" }] : /* istanbul ignore next */ []));
3180
3197
  //#endregion
3181
3198
  //#region ---- Computed State ----
3182
3199
  /** Current context: prefer local updates so edits are preserved. */
@@ -3201,6 +3218,13 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3201
3218
  const ctx = this.context();
3202
3219
  return resolvePersistedEntityId(ctx);
3203
3220
  }, ...(ngDevMode ? [{ debugName: "questionnaireEntityId" }] : /* istanbul ignore next */ []));
3221
+ /** Resolved questionnaire name for preview popup title. */
3222
+ this.questionnaireDisplayTitle = computed(() => {
3223
+ const title = this.context()['title'];
3224
+ const locale = this.translateService.getActiveLang?.() ?? 'en-US';
3225
+ const resolved = resolveMultiLanguageString(title, locale).trim();
3226
+ return resolved || undefined;
3227
+ }, ...(ngDevMode ? [{ debugName: "questionnaireDisplayTitle" }] : /* istanbul ignore next */ []));
3204
3228
  let previousRootId = undefined;
3205
3229
  effect(() => {
3206
3230
  const ctx = this.rootContext();
@@ -3210,7 +3234,7 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3210
3234
  this.localContext.set(null);
3211
3235
  const rootQuestions = ctx?.['questions'];
3212
3236
  this.baselineQuestions.set(this.cloneQuestions(rootQuestions));
3213
- this.isDirty.set(false);
3237
+ this.unsavedChanges.set(false);
3214
3238
  this.questionsBaselinePendingReconcile.set(true);
3215
3239
  }
3216
3240
  });
@@ -3226,6 +3250,11 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3226
3250
  });
3227
3251
  }
3228
3252
  //#endregion
3253
+ //#region ---- Unsaved Changes ----
3254
+ hasUnsavedChanges() {
3255
+ return this.unsavedChanges();
3256
+ }
3257
+ //#endregion
3229
3258
  //#region ---- Page Actions ----
3230
3259
  async getPrimaryMenuItems() {
3231
3260
  const addSectionTitle = (await this.translateService.translateAsync('@assessment-management:questionnaires.components.questionnaire-builder.actions.add-section.title')) || 'Add Section';
@@ -3260,7 +3289,7 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3260
3289
  zone: 'footer',
3261
3290
  priority: 'secondary',
3262
3291
  color: 'default',
3263
- visible: this.isDirty(),
3292
+ visible: this.unsavedChanges(),
3264
3293
  command: {
3265
3294
  name: QUESTIONNAIRE_QUESTIONS_DISCARD_COMMAND,
3266
3295
  options: {},
@@ -3272,7 +3301,7 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3272
3301
  zone: 'footer',
3273
3302
  priority: 'primary',
3274
3303
  color: 'primary',
3275
- visible: this.isDirty(),
3304
+ visible: this.unsavedChanges(),
3276
3305
  command: {
3277
3306
  name: QUESTIONNAIRE_QUESTIONS_SAVE_COMMAND,
3278
3307
  options: {},
@@ -3286,7 +3315,7 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3286
3315
  if (command.name === QUESTIONNAIRE_QUESTIONS_DISCARD_COMMAND) {
3287
3316
  this.ignoreNextValueChange.set(true);
3288
3317
  this.localContext.set(null);
3289
- this.isDirty.set(false);
3318
+ this.unsavedChanges.set(false);
3290
3319
  this.questionsBaselinePendingReconcile.set(true);
3291
3320
  this.recompute();
3292
3321
  return;
@@ -3327,7 +3356,7 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3327
3356
  const savedQuestions = questions ?? { sections: [] };
3328
3357
  this.baselineQuestions.set(this.cloneQuestions(savedQuestions));
3329
3358
  this.localContext.set(null);
3330
- this.isDirty.set(false);
3359
+ this.unsavedChanges.set(false);
3331
3360
  this.questionsBaselinePendingReconcile.set(true);
3332
3361
  this.recompute();
3333
3362
  this.eventService.publish(AXPEntityEventsKeys.REFRESH_LAYOUT, {
@@ -3351,26 +3380,26 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3351
3380
  const aligned = current ?? value;
3352
3381
  this.baselineQuestions.set(this.cloneQuestions(aligned ?? undefined));
3353
3382
  this.questionsBaselinePendingReconcile.set(false);
3354
- this.isDirty.set(false);
3383
+ this.unsavedChanges.set(false);
3355
3384
  }
3356
3385
  return;
3357
3386
  }
3358
3387
  const base = this.localContext() ?? this.rootContext() ?? {};
3359
3388
  if (this.questionsBaselinePendingReconcile() && this.localContext() == null) {
3360
3389
  this.baselineQuestions.set(this.cloneQuestions(value));
3361
- this.isDirty.set(false);
3390
+ this.unsavedChanges.set(false);
3362
3391
  this.questionsBaselinePendingReconcile.set(false);
3363
3392
  this.localContext.set({ ...base, questions: value });
3364
- this.contextStore.update('questions', value);
3393
+ this.contextStore.update('questions', value, { origin: 'system' });
3365
3394
  this.recompute();
3366
3395
  return;
3367
3396
  }
3368
3397
  const nextContext = { ...base, questions: value };
3369
3398
  this.localContext.set(nextContext);
3370
- this.contextStore.update('questions', value);
3399
+ this.contextStore.update('questions', value, { origin: 'user' });
3371
3400
  const baseline = this.baselineQuestions();
3372
3401
  const dirty = !this.areQuestionsEqual(baseline, value);
3373
- this.isDirty.set(dirty);
3402
+ this.unsavedChanges.set(dirty);
3374
3403
  this.recompute();
3375
3404
  }
3376
3405
  //#endregion
@@ -3414,11 +3443,12 @@ class AXMQuestionnaireQuestionsPageComponent extends AXPPageLayoutBaseComponent
3414
3443
  [prePostConfig]="prePostConfig()"
3415
3444
  [displaySettingsInput]="entityDisplaySettings()"
3416
3445
  [questionnaireEntityId]="questionnaireEntityId()"
3446
+ [questionnaireTitle]="questionnaireDisplayTitle()"
3417
3447
  [showHeader]="false"
3418
3448
  (valueChange)="onQuestionsChange($event)"
3419
3449
  >
3420
3450
  </axm-questionnaire-questions-builder>
3421
- `, isInline: true, dependencies: [{ kind: "component", type: AXMQuestionnaireQuestionsBuilderComponent, selector: "axm-questionnaire-questions-builder", inputs: ["value", "readonly", "prePostConfig", "showHeader", "displaySettingsInput", "questionnaireEntityId"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3451
+ `, isInline: true, dependencies: [{ kind: "component", type: AXMQuestionnaireQuestionsBuilderComponent, selector: "axm-questionnaire-questions-builder", inputs: ["value", "readonly", "prePostConfig", "showHeader", "displaySettingsInput", "questionnaireEntityId", "questionnaireTitle"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3422
3452
  }
3423
3453
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireQuestionsPageComponent, decorators: [{
3424
3454
  type: Component,
@@ -3433,6 +3463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
3433
3463
  [prePostConfig]="prePostConfig()"
3434
3464
  [displaySettingsInput]="entityDisplaySettings()"
3435
3465
  [questionnaireEntityId]="questionnaireEntityId()"
3466
+ [questionnaireTitle]="questionnaireDisplayTitle()"
3436
3467
  [showHeader]="false"
3437
3468
  (valueChange)="onQuestionsChange($event)"
3438
3469
  >
@@ -3985,10 +4016,6 @@ class AXMQuestionnaireOutcomesBuilderComponent {
3985
4016
  this.externalBuilderValue = signal({ sections: [] }, ...(ngDevMode ? [{ debugName: "externalBuilderValue" }] : /* istanbul ignore next */ []));
3986
4017
  /** Skips one `[value]` input sync per local commit echo from the page. */
3987
4018
  this.externalSyncSkipCount = 0;
3988
- //#endregion
3989
- //#region ---- Computed ----
3990
- /** Whether the underlying section-items builder has unsaved edits. */
3991
- this.isDirty = computed(() => this.standardRef()?.isDirty() ?? false, ...(ngDevMode ? [{ debugName: "isDirty" }] : /* istanbul ignore next */ []));
3992
4019
  this.standardConfig = computed(() => ({
3993
4020
  showSectionTechnicalName: true,
3994
4021
  minSectionCount: 1,
@@ -4020,6 +4047,12 @@ class AXMQuestionnaireOutcomesBuilderComponent {
4020
4047
  });
4021
4048
  }
4022
4049
  //#endregion
4050
+ //#region ---- Computed ----
4051
+ /** Whether the underlying section-items builder has unsaved edits. */
4052
+ hasUnsavedChanges() {
4053
+ return this.standardRef()?.isDirty() ?? false;
4054
+ }
4055
+ //#endregion
4023
4056
  //#region ---- Public API ----
4024
4057
  /** Page header command: delegates to standard builder add-section dialog. */
4025
4058
  async addSection() {
@@ -4042,6 +4075,7 @@ class AXMQuestionnaireOutcomesBuilderComponent {
4042
4075
  const domain = normalizeQuestionnaireOutcomesValue(this.value());
4043
4076
  const mapped = this.ensureMinOneSection(outcomesValueToBuilderValue(domain));
4044
4077
  this.externalBuilderValue.set(mapped);
4078
+ queueMicrotask(() => this.standardRef()?.markClean());
4045
4079
  }
4046
4080
  //#endregion
4047
4081
  //#region ---- Builder handlers ----
@@ -4492,8 +4526,8 @@ class AXMQuestionnaireOutcomesPageComponent extends AXPPageLayoutBaseComponent {
4492
4526
  const ctx = this.context();
4493
4527
  return normalizeQuestionnaireOutcomesValue(ctx['outcomes']);
4494
4528
  }, ...(ngDevMode ? [{ debugName: "outcomesValue" }] : /* istanbul ignore next */ []));
4495
- /** Dirty state owned by {@link AXPSectionItemsBuilderComponent}, read via the hosted builder. */
4496
- this.isDirty = computed(() => this.builderRef()?.isDirty() ?? false, ...(ngDevMode ? [{ debugName: "isDirty" }] : /* istanbul ignore next */ []));
4529
+ /** Dirty state owned by the hosted builder (not named `isDirty` — collides with {@link AXPContextStore.isDirty}). */
4530
+ this.unsavedChanges = computed(() => this.builderRef()?.hasUnsavedChanges() ?? false, ...(ngDevMode ? [{ debugName: "unsavedChanges" }] : /* istanbul ignore next */ []));
4497
4531
  let previousRootId = undefined;
4498
4532
  effect(() => {
4499
4533
  const ctx = this.rootContext();
@@ -4504,11 +4538,16 @@ class AXMQuestionnaireOutcomesPageComponent extends AXPPageLayoutBaseComponent {
4504
4538
  }
4505
4539
  });
4506
4540
  effect(() => {
4507
- this.builderRef()?.isDirty();
4541
+ this.builderRef()?.hasUnsavedChanges();
4508
4542
  untracked(() => this.recompute());
4509
4543
  });
4510
4544
  }
4511
4545
  //#endregion
4546
+ //#region ---- Unsaved Changes ----
4547
+ hasUnsavedChanges() {
4548
+ return this.unsavedChanges();
4549
+ }
4550
+ //#endregion
4512
4551
  //#region ---- Page Actions ----
4513
4552
  async getPrimaryMenuItems() {
4514
4553
  const addSectionTitle = (await this.translateService.translateAsync('@assessment-management:questionnaires.components.questionnaire-outcomes-builder.actions.add-section.title')) || 'Add Section';
@@ -4531,7 +4570,7 @@ class AXMQuestionnaireOutcomesPageComponent extends AXPPageLayoutBaseComponent {
4531
4570
  zone: 'footer',
4532
4571
  priority: 'secondary',
4533
4572
  color: 'default',
4534
- visible: this.isDirty(),
4573
+ visible: this.unsavedChanges(),
4535
4574
  command: {
4536
4575
  name: QUESTIONNAIRE_OUTCOMES_DISCARD_COMMAND,
4537
4576
  options: {},
@@ -4543,7 +4582,7 @@ class AXMQuestionnaireOutcomesPageComponent extends AXPPageLayoutBaseComponent {
4543
4582
  zone: 'footer',
4544
4583
  priority: 'primary',
4545
4584
  color: 'primary',
4546
- visible: this.isDirty(),
4585
+ visible: this.unsavedChanges(),
4547
4586
  command: {
4548
4587
  name: QUESTIONNAIRE_OUTCOMES_SAVE_COMMAND,
4549
4588
  options: {},
@@ -4617,7 +4656,8 @@ class AXMQuestionnaireOutcomesPageComponent extends AXPPageLayoutBaseComponent {
4617
4656
  }
4618
4657
  const base = this.localContext() ?? this.rootContext() ?? {};
4619
4658
  this.localContext.set({ ...base, outcomes: value });
4620
- this.contextStore.update('outcomes', value);
4659
+ // Builder owns dirty state; keep shared context in sync without marking the entity form dirty.
4660
+ this.contextStore.update('outcomes', value, { origin: 'system' });
4621
4661
  this.recompute();
4622
4662
  }
4623
4663
  //#endregion
@@ -4716,6 +4756,55 @@ var index = /*#__PURE__*/Object.freeze({
4716
4756
  //#region ---- Questionnaire builder feature exports ----
4717
4757
  //#endregion
4718
4758
 
4759
+ //#region ---- Imports ----
4760
+ //#endregion
4761
+ //#region ---- Normalization ----
4762
+ /**
4763
+ * Normalize entity attachments (string[] or file list items) to viewer attachment list.
4764
+ * Prefers `source.kind === 'fileId'` over row `id` (row id is often a client UUID, not storage id).
4765
+ */
4766
+ function normalizeQuestionnaireViewerAttachments(raw) {
4767
+ if (raw == null)
4768
+ return [];
4769
+ if (!Array.isArray(raw))
4770
+ return [];
4771
+ return raw
4772
+ .map((item) => {
4773
+ if (typeof item === 'string') {
4774
+ return { id: item, name: undefined };
4775
+ }
4776
+ if (!item || typeof item !== 'object') {
4777
+ return null;
4778
+ }
4779
+ const row = item;
4780
+ if (row.status === 'deleted') {
4781
+ return null;
4782
+ }
4783
+ const src = row.source;
4784
+ if (src?.kind === 'fileId' && typeof src.value === 'string' && src.value.trim()) {
4785
+ return { id: src.value, name: typeof row.name === 'string' ? row.name : undefined };
4786
+ }
4787
+ if (typeof row.id === 'string' && row.id.trim()) {
4788
+ return { id: row.id, name: typeof row.name === 'string' ? row.name : undefined };
4789
+ }
4790
+ return null;
4791
+ })
4792
+ .filter((a) => a != null);
4793
+ }
4794
+ /**
4795
+ * Map viewer attachments to `AXPFileListItem` for `axp-file-list` (links look).
4796
+ */
4797
+ function questionnaireViewerAttachmentsToFileListItems(attachments) {
4798
+ return attachments.map((att) => ({
4799
+ id: att.id,
4800
+ name: att.name ?? att.id,
4801
+ status: 'attached',
4802
+ source: { kind: 'fileId', value: att.id },
4803
+ readOnly: true,
4804
+ }));
4805
+ }
4806
+ //#endregion
4807
+
4719
4808
  //#region ---- Imports ----
4720
4809
  //#endregion
4721
4810
  /** Guards concurrent `refreshVisibility` runs; incremented on each refresh. */
@@ -4749,33 +4838,6 @@ function normalizeValidationStrategy(value) {
4749
4838
  return 'step';
4750
4839
  }
4751
4840
  //#region ---- Helpers ----
4752
- /**
4753
- * Normalize question bank attachments (string[] or AXPFileListItem[]) to viewer attachment list.
4754
- */
4755
- function normalizeAttachments(raw) {
4756
- if (raw == null)
4757
- return [];
4758
- if (!Array.isArray(raw))
4759
- return [];
4760
- return raw
4761
- .map((item) => {
4762
- if (typeof item === 'string')
4763
- return { id: item, name: undefined };
4764
- if (item && typeof item === 'object' && 'id' in item && typeof item.id === 'string') {
4765
- const obj = item;
4766
- return { id: obj.id, name: typeof obj.name === 'string' ? obj.name : undefined };
4767
- }
4768
- if (item && typeof item === 'object' && 'source' in item) {
4769
- const src = item.source;
4770
- if (src?.kind === 'fileId' && typeof src.value === 'string') {
4771
- const name = item.name;
4772
- return { id: src.value, name: typeof name === 'string' ? name : undefined };
4773
- }
4774
- }
4775
- return null;
4776
- })
4777
- .filter((a) => a != null);
4778
- }
4779
4841
  function resolvedCommentPolicyForBuilderItem(item, questionDetails) {
4780
4842
  const bank = normalizeQuestionCommentConfig(questionDetails?.comment);
4781
4843
  const override = item.comment;
@@ -4858,6 +4920,10 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
4858
4920
  const data = store.questionnaireData();
4859
4921
  return data?.sections || [];
4860
4922
  }),
4923
+ questionnaireAttachments: computed(() => {
4924
+ const data = store.questionnaireData();
4925
+ return data?.attachments ?? [];
4926
+ }),
4861
4927
  /** Section indices that have at least one visible question (for side-menu tabs, etc.). */
4862
4928
  sectionIndicesWithVisibleContent: computed(() => {
4863
4929
  const data = store.questionnaireData();
@@ -5341,7 +5407,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5341
5407
  },
5342
5408
  //#endregion
5343
5409
  //#region ---- Data Loading ----
5344
- async loadQuestionnaire(id, initialAnswers, config) {
5410
+ async loadQuestionnaire(id, initialAnswers, config, structureDisplaySettings) {
5345
5411
  patchState(store, { isLoading: true, error: null, config: config || null });
5346
5412
  try {
5347
5413
  const questionnaire = await entityService
@@ -5352,6 +5418,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5352
5418
  throw new Error('Questionnaire not found');
5353
5419
  }
5354
5420
  const structure = questionnaire.questions || { sections: [] };
5421
+ const displaySettings = structureDisplaySettings ?? toDisplaySettings(questionnaire) ?? undefined;
5355
5422
  const sectionsWithQuestions = await Promise.all(structure.sections.map(async (section, sectionIndex) => {
5356
5423
  const sectionName = persistedSectionName(section, sectionIndex);
5357
5424
  const questions = await Promise.all(section.items.map(async (item, itemIndex) => {
@@ -5395,7 +5462,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5395
5462
  },
5396
5463
  };
5397
5464
  }
5398
- const attachments = normalizeAttachments(questionDetails?.['attachments']);
5465
+ const attachments = normalizeQuestionnaireViewerAttachments(questionDetails?.['attachments']);
5399
5466
  return {
5400
5467
  name: persistedItemName(item, itemIndex),
5401
5468
  questionBankItemId: item.questionBankItemId,
@@ -5434,12 +5501,18 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5434
5501
  questions: questions.sort((a, b) => a.order - b.order),
5435
5502
  };
5436
5503
  }));
5504
+ const questionnaireAttachments = normalizeQuestionnaireViewerAttachments(questionnaire.attachments);
5437
5505
  patchState(store, {
5506
+ structure: {
5507
+ sections: structure.sections ?? [],
5508
+ displaySettings,
5509
+ },
5438
5510
  questionnaireData: {
5439
5511
  id: questionnaire.id,
5440
5512
  title: questionnaire.title,
5441
5513
  description: questionnaire.description,
5442
5514
  type: questionnaire.type,
5515
+ attachments: questionnaireAttachments.length > 0 ? questionnaireAttachments : undefined,
5443
5516
  sections: sectionsWithQuestions.sort((a, b) => a.order - b.order),
5444
5517
  },
5445
5518
  isLoading: false,
@@ -5541,7 +5614,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5541
5614
  difficulty: undefined,
5542
5615
  interface: widgetInterface,
5543
5616
  };
5544
- const attachmentsLoadStructure = normalizeAttachments(questionDetails?.['attachments']);
5617
+ const attachmentsLoadStructure = normalizeQuestionnaireViewerAttachments(questionDetails?.['attachments']);
5545
5618
  return {
5546
5619
  name: persistedItemName(item, itemIndex),
5547
5620
  questionBankItemId: item.questionBankItemId,
@@ -6366,7 +6439,6 @@ class AXMQuestionnaireViewerQuestionComponent {
6366
6439
  /** Exposed for template `@if (containsHtmlMarkup(...))`. */
6367
6440
  this.containsHtmlMarkup = containsHtmlMarkup;
6368
6441
  this.vm = inject(AXMQuestionnaireViewerViewModel, { optional: true });
6369
- this.fileStorageService = inject(AXPFileStorageService, { optional: true });
6370
6442
  //#endregion
6371
6443
  //#region ---- Inputs ----
6372
6444
  this.question = input.required(...(ngDevMode ? [{ debugName: "question" }] : /* istanbul ignore next */ []));
@@ -6450,6 +6522,7 @@ class AXMQuestionnaireViewerQuestionComponent {
6450
6522
  const q = this.question();
6451
6523
  return q?.attachments ?? [];
6452
6524
  }, ...(ngDevMode ? [{ debugName: "questionAttachments" }] : /* istanbul ignore next */ []));
6525
+ this.questionAttachmentFiles = computed(() => questionnaireViewerAttachmentsToFileListItems(this.questionAttachments()), ...(ngDevMode ? [{ debugName: "questionAttachmentFiles" }] : /* istanbul ignore next */ []));
6453
6526
  /**
6454
6527
  * Storage path for respondent comment text (`answers.comments.<questionItemName>`).
6455
6528
  */
@@ -6485,54 +6558,6 @@ class AXMQuestionnaireViewerQuestionComponent {
6485
6558
  const next = e.value ?? '';
6486
6559
  cs.update(path, next);
6487
6560
  }
6488
- /**
6489
- * Open/download attachment using the same approach as axp-file-list (file-uploader):
6490
- * - If storage returns a URL: use an anchor with href + target _blank + programmatic click.
6491
- * - If storage returns binary only: create object URL from blob and trigger download.
6492
- * Avoids window.open() which can open an empty tab when url is undefined.
6493
- */
6494
- async openAttachment(event, att) {
6495
- event.preventDefault();
6496
- if (!this.fileStorageService || !att?.id)
6497
- return;
6498
- try {
6499
- const info = await this.fileStorageService.getInfo(att.id);
6500
- const fileName = att.name ?? info.name ?? 'download';
6501
- if (info && info.binary instanceof Blob) {
6502
- const blob = info.binary;
6503
- this.triggerDownload(blob, fileName);
6504
- return;
6505
- }
6506
- if (info && typeof info.url === 'string' && info.url) {
6507
- const url = info.url;
6508
- const link = document.createElement('a');
6509
- link.href = url;
6510
- link.download = fileName;
6511
- link.target = '_blank';
6512
- link.rel = 'noopener noreferrer';
6513
- document.body.appendChild(link);
6514
- link.click();
6515
- document.body.removeChild(link);
6516
- return;
6517
- }
6518
- }
6519
- catch (err) {
6520
- console.error('[QuestionnaireViewerQuestion] Error opening attachment:', att.id, err);
6521
- }
6522
- }
6523
- /**
6524
- * Trigger file download from blob (same as file-list triggerDownload).
6525
- */
6526
- triggerDownload(blob, fileName) {
6527
- const url = URL.createObjectURL(blob);
6528
- const link = document.createElement('a');
6529
- link.href = url;
6530
- link.download = fileName;
6531
- document.body.appendChild(link);
6532
- link.click();
6533
- document.body.removeChild(link);
6534
- URL.revokeObjectURL(url);
6535
- }
6536
6561
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerQuestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6537
6562
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerQuestionComponent, isStandalone: true, selector: "axm-questionnaire-viewer-question", inputs: { question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: true, transformFunction: null }, contextData: { classPropertyName: "contextData", publicName: "contextData", isSignal: true, isRequired: false, transformFunction: null }, sectionOrder: { classPropertyName: "sectionOrder", publicName: "sectionOrder", isSignal: true, isRequired: true, transformFunction: null }, questionIndex: { classPropertyName: "questionIndex", publicName: "questionIndex", isSignal: true, isRequired: true, transformFunction: null }, showQuestionNumbers: { classPropertyName: "showQuestionNumbers", publicName: "showQuestionNumbers", isSignal: true, isRequired: false, transformFunction: null }, showQuestionCounter: { classPropertyName: "showQuestionCounter", publicName: "showQuestionCounter", isSignal: true, isRequired: false, transformFunction: null }, currentPosition: { classPropertyName: "currentPosition", publicName: "currentPosition", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
6538
6563
  <div class="__question-item" [class.__answered]="isAnswered()" [class.__view-mode]="effectiveMode() === 'view'">
@@ -6640,28 +6665,16 @@ class AXMQuestionnaireViewerQuestionComponent {
6640
6665
  }
6641
6666
 
6642
6667
  @if (questionAttachments().length > 0) {
6643
- <div class="__attachments">
6644
- <span class="__attachments-label"
6645
- >{{
6646
- '@assessment-management:questionnaires.components.questionnaire-viewer.attachments.title'
6647
- | translate
6648
- | async
6649
- }}:</span
6650
- >
6651
- <ul class="__attachments-list">
6652
- @for (att of questionAttachments(); track att.id) {
6653
- <li>
6654
- <a class="__attachment-link" href="#" (click)="openAttachment($event, att)" role="button">
6655
- <i class="fa-light fa-paperclip"></i>
6656
- {{ att.name || att.id }}
6657
- </a>
6658
- </li>
6659
- }
6660
- </ul>
6661
- </div>
6668
+ <axp-file-list
6669
+ [files]="questionAttachmentFiles()"
6670
+ look="links"
6671
+ linksLayout="inline"
6672
+ [readonly]="true"
6673
+ titleKey="@assessment-management:questionnaires.components.questionnaire-viewer.attachments.title"
6674
+ />
6662
6675
  }
6663
6676
  </div>
6664
- `, isInline: true, styles: ["axm-questionnaire-viewer-question{display:block}axm-questionnaire-viewer-question .__question-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}axm-questionnaire-viewer-question .__question-item.__answered{border-radius:.5rem;background:rgba(var(--ax-sys-color-primary-surface),.14)}axm-questionnaire-viewer-question .__question-item.__answered:not(.__view-mode){border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1))}axm-questionnaire-viewer-question .__question-item .__question-header{display:flex;width:100%;min-width:0px;align-items:flex-start;justify-content:space-between;gap:1rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right{display:flex;min-width:0px;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block{min-width:0px;flex:1 1 0%;text-align:start}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title{margin:0;min-width:0px;flex:1 1 0%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block h3.__question-title{font-weight:500}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich{width:100%;max-width:100%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul ul{list-style-type:circle;margin-block:.25rem 0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title.__question-title--rich{font-weight:400}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-note{font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-note p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-note p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-note ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note li{margin-block:.125rem}axm-questionnaire-viewer-question .__question-item .__question-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-widget{text-align:start}axm-questionnaire-viewer-question .__question-item .__question-widget>*{margin-bottom:0}axm-questionnaire-viewer-question .__question-item .__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;color:rgb(var(--ax-sys-color-on-surface-variant));--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-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment{display:flex;width:100%;flex-direction:column;gap:.25rem}axm-questionnaire-viewer-question .__question-item .__question-comment ax-text-area{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment--readonly{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment-text{margin:0;width:100%;font-size:.875rem;line-height:1.25rem;white-space:pre-wrap;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment-label{font-size:.875rem;line-height:1.25rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-comment-required{color:rgb(var(--ax-sys-color-danger-600))}axm-questionnaire-viewer-question .__question-item .__attachments{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding-top:.75rem}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-label{margin-inline-end:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list{margin:0;margin-top:.25rem;list-style-type:none;padding-left:0}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li{margin-top:.25rem}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li .__attachment-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;text-decoration-line:underline;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-primary-dark-surface))}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li .__attachment-link:hover{opacity:.9}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li .__attachment-link i{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i2$1.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { 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: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4$1.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6677
+ `, isInline: true, styles: ["axm-questionnaire-viewer-question{display:block}axm-questionnaire-viewer-question .__question-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-questionnaire-viewer-question .__question-item:hover{background:rgba(var(--ax-sys-color-primary-surface),.08);border-color:rgba(var(--ax-sys-color-primary-surface),.14)}axm-questionnaire-viewer-question .__question-item.__answered{background:rgba(var(--ax-sys-color-primary-surface),.14);border-color:rgba(var(--ax-sys-color-primary-surface),.5)}axm-questionnaire-viewer-question .__question-item .__question-header{display:flex;width:100%;min-width:0px;align-items:flex-start;justify-content:space-between;gap:1rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right{display:flex;min-width:0px;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block{min-width:0px;flex:1 1 0%;text-align:start}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title{margin:0;min-width:0px;flex:1 1 0%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block h3.__question-title{font-weight:500}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich{width:100%;max-width:100%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul ul{list-style-type:circle;margin-block:.25rem 0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title.__question-title--rich{font-weight:400}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-note{font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-note p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-note p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-note ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note li{margin-block:.125rem}axm-questionnaire-viewer-question .__question-item .__question-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-widget{text-align:start}axm-questionnaire-viewer-question .__question-item .__question-widget>*{margin-bottom:0}axm-questionnaire-viewer-question .__question-item .__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;color:rgb(var(--ax-sys-color-on-surface-variant));--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-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment{display:flex;width:100%;flex-direction:column;gap:.25rem}axm-questionnaire-viewer-question .__question-item .__question-comment ax-text-area{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment--readonly{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment-text{margin:0;width:100%;font-size:.875rem;line-height:1.25rem;white-space:pre-wrap;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment-label{font-size:.875rem;line-height:1.25rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-comment-required{color:rgb(var(--ax-sys-color-danger-600))}axm-questionnaire-viewer-question .__question-item axp-file-list.--look-links.--links-inline{display:block;padding-top:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i2$1.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { 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: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4$1.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXPFileListComponent, selector: "axp-file-list", inputs: ["readonly", "fileEditable", "enableTitleDescription", "multiple", "look", "titleKey", "showLabel", "linksLayout", "files", "plugins", "excludePlugins", "capabilities"], outputs: ["onRemove", "onRevert", "onRename"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6665
6678
  }
6666
6679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerQuestionComponent, decorators: [{
6667
6680
  type: Component,
@@ -6771,25 +6784,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6771
6784
  }
6772
6785
 
6773
6786
  @if (questionAttachments().length > 0) {
6774
- <div class="__attachments">
6775
- <span class="__attachments-label"
6776
- >{{
6777
- '@assessment-management:questionnaires.components.questionnaire-viewer.attachments.title'
6778
- | translate
6779
- | async
6780
- }}:</span
6781
- >
6782
- <ul class="__attachments-list">
6783
- @for (att of questionAttachments(); track att.id) {
6784
- <li>
6785
- <a class="__attachment-link" href="#" (click)="openAttachment($event, att)" role="button">
6786
- <i class="fa-light fa-paperclip"></i>
6787
- {{ att.name || att.id }}
6788
- </a>
6789
- </li>
6790
- }
6791
- </ul>
6792
- </div>
6787
+ <axp-file-list
6788
+ [files]="questionAttachmentFiles()"
6789
+ look="links"
6790
+ linksLayout="inline"
6791
+ [readonly]="true"
6792
+ titleKey="@assessment-management:questionnaires.components.questionnaire-viewer.attachments.title"
6793
+ />
6793
6794
  }
6794
6795
  </div>
6795
6796
  `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
@@ -6802,7 +6803,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6802
6803
  AXTextAreaModule,
6803
6804
  AXFormModule,
6804
6805
  FormsModule,
6805
- ], encapsulation: ViewEncapsulation.None, styles: ["axm-questionnaire-viewer-question{display:block}axm-questionnaire-viewer-question .__question-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}axm-questionnaire-viewer-question .__question-item.__answered{border-radius:.5rem;background:rgba(var(--ax-sys-color-primary-surface),.14)}axm-questionnaire-viewer-question .__question-item.__answered:not(.__view-mode){border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1))}axm-questionnaire-viewer-question .__question-item .__question-header{display:flex;width:100%;min-width:0px;align-items:flex-start;justify-content:space-between;gap:1rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right{display:flex;min-width:0px;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block{min-width:0px;flex:1 1 0%;text-align:start}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title{margin:0;min-width:0px;flex:1 1 0%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block h3.__question-title{font-weight:500}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich{width:100%;max-width:100%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul ul{list-style-type:circle;margin-block:.25rem 0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title.__question-title--rich{font-weight:400}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-note{font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-note p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-note p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-note ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note li{margin-block:.125rem}axm-questionnaire-viewer-question .__question-item .__question-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-widget{text-align:start}axm-questionnaire-viewer-question .__question-item .__question-widget>*{margin-bottom:0}axm-questionnaire-viewer-question .__question-item .__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;color:rgb(var(--ax-sys-color-on-surface-variant));--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-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment{display:flex;width:100%;flex-direction:column;gap:.25rem}axm-questionnaire-viewer-question .__question-item .__question-comment ax-text-area{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment--readonly{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment-text{margin:0;width:100%;font-size:.875rem;line-height:1.25rem;white-space:pre-wrap;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment-label{font-size:.875rem;line-height:1.25rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-comment-required{color:rgb(var(--ax-sys-color-danger-600))}axm-questionnaire-viewer-question .__question-item .__attachments{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding-top:.75rem}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-label{margin-inline-end:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list{margin:0;margin-top:.25rem;list-style-type:none;padding-left:0}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li{margin-top:.25rem}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li .__attachment-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;text-decoration-line:underline;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-primary-dark-surface))}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li .__attachment-link:hover{opacity:.9}axm-questionnaire-viewer-question .__question-item .__attachments .__attachments-list li .__attachment-link i{flex-shrink:0}\n"] }]
6806
+ AXPFileListComponent,
6807
+ ], encapsulation: ViewEncapsulation.None, styles: ["axm-questionnaire-viewer-question{display:block}axm-questionnaire-viewer-question .__question-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-questionnaire-viewer-question .__question-item:hover{background:rgba(var(--ax-sys-color-primary-surface),.08);border-color:rgba(var(--ax-sys-color-primary-surface),.14)}axm-questionnaire-viewer-question .__question-item.__answered{background:rgba(var(--ax-sys-color-primary-surface),.14);border-color:rgba(var(--ax-sys-color-primary-surface),.5)}axm-questionnaire-viewer-question .__question-item .__question-header{display:flex;width:100%;min-width:0px;align-items:flex-start;justify-content:space-between;gap:1rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right{display:flex;min-width:0px;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block{min-width:0px;flex:1 1 0%;text-align:start}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title{margin:0;min-width:0px;flex:1 1 0%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block h3.__question-title{font-weight:500}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich{width:100%;max-width:100%;text-align:start;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul ul{list-style-type:circle;margin-block:.25rem 0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title.__question-title--rich{font-weight:400}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-note{font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-note p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-note p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-note ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note li{margin-block:.125rem}axm-questionnaire-viewer-question .__question-item .__question-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-widget{text-align:start}axm-questionnaire-viewer-question .__question-item .__question-widget>*{margin-bottom:0}axm-questionnaire-viewer-question .__question-item .__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;color:rgb(var(--ax-sys-color-on-surface-variant));--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-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment{display:flex;width:100%;flex-direction:column;gap:.25rem}axm-questionnaire-viewer-question .__question-item .__question-comment ax-text-area{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment--readonly{margin-top:.5rem}axm-questionnaire-viewer-question .__question-item .__question-comment-text{margin:0;width:100%;font-size:.875rem;line-height:1.25rem;white-space:pre-wrap;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment-label{font-size:.875rem;line-height:1.25rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-comment-required{color:rgb(var(--ax-sys-color-danger-600))}axm-questionnaire-viewer-question .__question-item axp-file-list.--look-links.--links-inline{display:block;padding-top:.75rem}\n"] }]
6806
6808
  }], propDecorators: { question: [{ type: i0.Input, args: [{ isSignal: true, alias: "question", required: true }] }], contextData: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextData", required: false }] }], sectionOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionOrder", required: true }] }], questionIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionIndex", required: true }] }], showQuestionNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showQuestionNumbers", required: false }] }], showQuestionCounter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showQuestionCounter", required: false }] }], currentPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPosition", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }] } });
6807
6809
 
6808
6810
  //#region ---- Imports ----
@@ -6898,35 +6900,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6898
6900
  * Displays all sections and questions on a single page
6899
6901
  */
6900
6902
  class AXMQuestionnaireViewerSinglePageViewComponent {
6901
- //#endregion
6902
- //#region ---- Sticky parent initialization ----
6903
6903
  constructor() {
6904
6904
  //#region ---- Services & Dependencies ----
6905
6905
  this.vm = inject(AXMQuestionnaireViewerViewModel);
6906
- this.host = inject((ElementRef));
6907
- this.stickyParent = signal(null, ...(ngDevMode ? [{ debugName: "stickyParent" }] : /* istanbul ignore next */ []));
6908
- afterNextRender(() => {
6909
- this.stickyParent.set(this.findScrollParent(this.host.nativeElement));
6910
- });
6911
- }
6912
- findScrollParent(from) {
6913
- let node = from?.parentElement ?? null;
6914
- while (node) {
6915
- const { overflowY } = getComputedStyle(node);
6916
- if (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') {
6917
- return node;
6918
- }
6919
- node = node.parentElement;
6920
- }
6921
- return null;
6922
6906
  }
6923
6907
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerSinglePageViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6924
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerSinglePageViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-single-page-view", ngImport: i0, template: "@for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n}\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;min-height:0px;width:100%;flex-direction:column;gap:1.5rem;padding:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-bottom-width:1px;padding-top:.5rem;padding-bottom:.5rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}@media(prefers-reduced-motion:reduce){axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky{transition-duration:1ms;transition-timing-function:linear}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky:before{transition-duration:1ms;transition-timing-function:linear}}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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-single-page-view .__single-page-section .__section-title-sticky.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex;flex-direction:column;gap:.5rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6908
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerSinglePageViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-single-page-view", ngImport: i0, template: "<div #viewerScroll class=\"__viewer-scroll\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex;flex-direction:column;gap:.5rem;padding-left:1rem;padding-right:1rem;padding-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6925
6909
  }
6926
6910
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerSinglePageViewComponent, decorators: [{
6927
6911
  type: Component,
6928
- args: [{ selector: 'axm-questionnaire-viewer-single-page-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "@for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n}\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;min-height:0px;width:100%;flex-direction:column;gap:1.5rem;padding:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-bottom-width:1px;padding-top:.5rem;padding-bottom:.5rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}@media(prefers-reduced-motion:reduce){axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky{transition-duration:1ms;transition-timing-function:linear}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky:before{transition-duration:1ms;transition-timing-function:linear}}axm-questionnaire-viewer-single-page-view .__single-page-section .__section-title-sticky.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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-single-page-view .__single-page-section .__section-title-sticky.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex;flex-direction:column;gap:.5rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}\n"] }]
6929
- }], ctorParameters: () => [] });
6912
+ args: [{ selector: 'axm-questionnaire-viewer-single-page-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div #viewerScroll class=\"__viewer-scroll\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex;flex-direction:column;gap:.5rem;padding-left:1rem;padding-right:1rem;padding-bottom:1rem}\n"] }]
6913
+ }] });
6930
6914
 
6931
6915
  //#region ---- Imports ----
6932
6916
  //#endregion
@@ -6936,34 +6920,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6936
6920
  * Displays one section (group) per page
6937
6921
  */
6938
6922
  class AXMQuestionnaireViewerPagePerGroupViewComponent {
6939
- //#endregion
6940
6923
  constructor() {
6941
6924
  //#region ---- Services & Dependencies ----
6942
6925
  this.vm = inject(AXMQuestionnaireViewerViewModel);
6943
- this.host = inject((ElementRef));
6944
- this.stickyParent = signal(null, ...(ngDevMode ? [{ debugName: "stickyParent" }] : /* istanbul ignore next */ []));
6945
- afterNextRender(() => {
6946
- this.stickyParent.set(this.findScrollParent(this.host.nativeElement));
6947
- });
6948
- }
6949
- findScrollParent(from) {
6950
- let node = from?.parentElement ?? null;
6951
- while (node) {
6952
- const { overflowY } = getComputedStyle(node);
6953
- if (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') {
6954
- return node;
6955
- }
6956
- node = node.parentElement;
6957
- }
6958
- return null;
6959
6926
  }
6960
6927
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerPagePerGroupViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6961
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerPagePerGroupViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page-per-group-view", ngImport: i0, template: "@if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-section\">\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n}\n", styles: ["axm-questionnaire-viewer-page-per-group-view{display:flex;min-height:0px;width:100%;flex-direction:column;gap:1rem;padding:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-bottom-width:1px;padding-top:.5rem;padding-bottom:.5rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}@media(prefers-reduced-motion:reduce){axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky{transition-duration:1ms;transition-timing-function:linear}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky:before{transition-duration:1ms;transition-timing-function:linear}}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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-page-per-group-view .__page-section .__section-title-sticky.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;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))}\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6928
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerPagePerGroupViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page-per-group-view", ngImport: i0, template: "<div #viewerScroll class=\"__viewer-scroll\">\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-group-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-page-per-group-view .__page-group-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex;flex-shrink:0;flex-direction:column;gap:1rem;padding-left:1rem;padding-right:1rem;padding-bottom:1rem}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;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))}\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6962
6929
  }
6963
6930
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerPagePerGroupViewComponent, decorators: [{
6964
6931
  type: Component,
6965
- args: [{ selector: 'axm-questionnaire-viewer-page-per-group-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "@if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-section\">\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n}\n", styles: ["axm-questionnaire-viewer-page-per-group-view{display:flex;min-height:0px;width:100%;flex-direction:column;gap:1rem;padding:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-bottom-width:1px;padding-top:.5rem;padding-bottom:.5rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}@media(prefers-reduced-motion:reduce){axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky{transition-duration:1ms;transition-timing-function:linear}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky:before{transition-duration:1ms;transition-timing-function:linear}}axm-questionnaire-viewer-page-per-group-view .__page-section .__section-title-sticky.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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-page-per-group-view .__page-section .__section-title-sticky.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;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))}\n"] }]
6966
- }], ctorParameters: () => [] });
6932
+ args: [{ selector: 'axm-questionnaire-viewer-page-per-group-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div #viewerScroll class=\"__viewer-scroll\">\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-group-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-page-per-group-view .__page-group-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex;flex-shrink:0;flex-direction:column;gap:1rem;padding-left:1rem;padding-right:1rem;padding-bottom:1rem}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:1rem;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))}\n"] }]
6933
+ }] });
6967
6934
 
6968
6935
  //#region ---- Imports ----
6969
6936
  //#endregion
@@ -6985,6 +6952,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
6985
6952
  args: [{ selector: 'axm-questionnaire-viewer-page-per-question-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "@if (vm.currentQuestion(); as question) {\n <div class=\"__page-question\">\n @if (vm.currentSection(); as currentSection) {\n <axm-questionnaire-viewer-section-header\n [title]=\"currentSection.title\"\n [description]=\"currentSection.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n }\n\n <axm-questionnaire-viewer-question\n class=\"ax-mt-8\"\n [question]=\"question\"\n [sectionOrder]=\"vm.currentSectionIndex() + 1\"\n [questionIndex]=\"vm.currentQuestionIndex() + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"vm.showQuestionCounter()\"\n [currentPosition]=\"vm.currentQuestionPosition()\"\n >\n </axm-questionnaire-viewer-question>\n </div>\n}\n", styles: ["axm-questionnaire-viewer-page-per-question-view{display:flex;flex-direction:column;gap:1rem;padding:1rem;flex-shrink:0;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))}\n"] }]
6986
6953
  }] });
6987
6954
 
6955
+ //#endregion
6956
+ //#region ---- Scroll parent resolution ----
6957
+ /**
6958
+ * Resolves the scroll container for questionnaire viewer sticky section headers so
6959
+ * `axpSticky` listens to the same element as `position: sticky`.
6960
+ */
6961
+ function resolveQuestionnaireViewerStickyScrollParent(host, options = {}) {
6962
+ const stickySelector = options.stickySelector ?? '.__section-title-sticky, .__mobile-header-row';
6963
+ const preferred = options.preferredSelector
6964
+ ? host.querySelector(options.preferredSelector)
6965
+ : null;
6966
+ const stickyEl = host.querySelector(stickySelector);
6967
+ if (preferred && isScrollContainer(preferred)) {
6968
+ return preferred;
6969
+ }
6970
+ const overflowingAncestor = findOverflowingScrollParent(stickyEl ?? preferred ?? host);
6971
+ return overflowingAncestor ?? preferred ?? findScrollParent(host);
6972
+ }
6973
+ /**
6974
+ * Updates a sticky scroll-parent signal when layout or questionnaire content changes.
6975
+ */
6976
+ function bindQuestionnaireViewerStickyScrollParent(host, stickyParent, options = {}) {
6977
+ const next = resolveQuestionnaireViewerStickyScrollParent(host, options);
6978
+ if (next !== stickyParent()) {
6979
+ stickyParent.set(next);
6980
+ }
6981
+ }
6982
+ function isScrollContainer(element) {
6983
+ const { overflowY } = getComputedStyle(element);
6984
+ return overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay';
6985
+ }
6986
+ function isActiveScrollContainer(element) {
6987
+ return isScrollContainer(element) && element.scrollHeight > element.clientHeight;
6988
+ }
6989
+ function findOverflowingScrollParent(from) {
6990
+ let node = from?.parentElement ?? null;
6991
+ while (node) {
6992
+ if (isActiveScrollContainer(node)) {
6993
+ return node;
6994
+ }
6995
+ node = node.parentElement;
6996
+ }
6997
+ return null;
6998
+ }
6999
+ function findScrollParent(from) {
7000
+ let node = from?.parentElement ?? null;
7001
+ while (node) {
7002
+ const { overflowY } = getComputedStyle(node);
7003
+ if (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') {
7004
+ return node;
7005
+ }
7006
+ node = node.parentElement;
7007
+ }
7008
+ return null;
7009
+ }
7010
+ //#endregion
7011
+
6988
7012
  //#region ---- Imports ----
6989
7013
  //#endregion
6990
7014
  //#region ---- Component ----
@@ -7004,14 +7028,20 @@ class AXMQuestionnaireViewerSideMenuViewComponent {
7004
7028
  this.sectionNavigabilityCache = signal(new Map(), ...(ngDevMode ? [{ debugName: "sectionNavigabilityCache" }] : /* istanbul ignore next */ []));
7005
7029
  this.stickyParent = signal(null, ...(ngDevMode ? [{ debugName: "stickyParent" }] : /* istanbul ignore next */ []));
7006
7030
  this.tabRef = viewChild(AXTabsComponent, ...(ngDevMode ? [{ debugName: "tabRef" }] : /* istanbul ignore next */ []));
7007
- afterNextRender(() => {
7008
- const mainContent = this.host.nativeElement.querySelector('.__main-content');
7009
- // Side-menu scrolls inside .__main-content; axpSticky must listen to that element, not an outer ancestor.
7010
- this.stickyParent.set(mainContent ?? this.findScrollParent(this.host.nativeElement));
7011
- });
7031
+ const refreshStickyParent = () => {
7032
+ bindQuestionnaireViewerStickyScrollParent(this.host.nativeElement, this.stickyParent, {
7033
+ preferredSelector: '.__main-content',
7034
+ });
7035
+ };
7036
+ afterNextRender(() => refreshStickyParent());
7012
7037
  effect(() => {
7013
7038
  this.tabRef()?.select(this.vm.currentSectionIndex());
7014
7039
  });
7040
+ effect(() => {
7041
+ this.vm.currentSection();
7042
+ this.vm.questionnaireData();
7043
+ untracked(() => queueMicrotask(refreshStickyParent));
7044
+ });
7015
7045
  // Update navigability cache when validation state changes
7016
7046
  effect(async () => {
7017
7047
  const sections = this.vm.sections();
@@ -7084,19 +7114,8 @@ class AXMQuestionnaireViewerSideMenuViewComponent {
7084
7114
  const cache = this.sectionNavigabilityCache();
7085
7115
  return cache.has(sectionIndex) ? !cache.get(sectionIndex) : false;
7086
7116
  }
7087
- findScrollParent(from) {
7088
- let node = from?.parentElement ?? null;
7089
- while (node) {
7090
- const { overflowY } = getComputedStyle(node);
7091
- if (overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') {
7092
- return node;
7093
- }
7094
- node = node.parentElement;
7095
- }
7096
- return null;
7097
- }
7098
7117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerSideMenuViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7099
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerSideMenuViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-side-menu-view", viewQueries: [{ propertyName: "tabRef", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer ax-w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-section\">\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(min-width:640px){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(min-width:1024px){axm-questionnaire-viewer-side-menu-view{height:65vh}}.__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}.__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}.__sidebar-drawer{height:100%;border-inline-end-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))}.__sidebar-content{height:100%;overflow-y:auto}.__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-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))}.__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1 1 0%;overflow-y:auto}.__sidebar-tabs ax-tab-item{margin-top:0;margin-bottom:0;padding-top:.75rem;padding-bottom:.75rem;font-weight:600}.__main-content{display:flex;max-height:83vh;min-height:0px;flex:1 1 0%;flex-direction:column;overflow-y:auto}@media(min-width:768px){.__main-content{max-height:75vh}}.__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem;padding:1rem}.__page-section .__section-title-sticky{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-bottom-width:1px;padding-top:.5rem;padding-bottom:.5rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}.__page-section .__section-title-sticky:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}@media(prefers-reduced-motion:reduce){.__page-section .__section-title-sticky{transition-duration:1ms;transition-timing-function:linear}.__page-section .__section-title-sticky:before{transition-duration:1ms;transition-timing-function:linear}}.__page-section .__section-title-sticky.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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))}.__page-section .__section-title-sticky.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.__mobile-header-row{position:sticky;top:0;z-index:10;isolation:isolate;display:flex;flex-shrink:0;align-items:flex-start;gap:.5rem;border-bottom-width:1px;padding:.5rem 1rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}.__mobile-header-row:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}.__mobile-header-row.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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))}.__mobile-header-row.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.__mobile-menu-button{margin-inline-start:-.5rem;flex-shrink:0}.__questions-list{display:flex;flex-direction:column;gap:1rem}\n"], dependencies: [{ kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i1$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "transition", "closeOnBackdropClick", "backdropClass", "collapsed", "singleOpenMode"], outputs: ["onBackdropClick", "collapsedStateChanged"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "minWidth", "maxWidth", "dblClickAction", "width", "defaultWidth"], outputs: ["axResizableChange", "minWidthChange", "maxWidthChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { 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: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerSideMenuViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-side-menu-view", viewQueries: [{ propertyName: "tabRef", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\" [color]=\"'danger'\">\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer ax-w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(min-width:640px){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(min-width:1024px){axm-questionnaire-viewer-side-menu-view{height:65vh}}.__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}.__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}.__sidebar-drawer{height:100%;border-inline-end-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))}.__sidebar-content{height:100%;overflow-y:auto}.__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-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))}.__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1 1 0%;overflow-y:auto}.__sidebar-tabs ax-tab-item{margin-top:0;margin-bottom:0;padding-top:.75rem;padding-bottom:.75rem;font-weight:600}.__main-content{display:flex;max-height:83vh;min-height:0px;flex:1 1 0%;flex-direction:column;overflow-y:auto;overflow-x:hidden}@media(min-width:768px){.__main-content{max-height:75vh}}.__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem;padding:1rem}.__mobile-menu-button{margin-inline-start:-.5rem;flex-shrink:0}.__questions-list{display:flex;flex-direction:column;gap:1rem}\n"], dependencies: [{ kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i1$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "transition", "closeOnBackdropClick", "backdropClass", "collapsed", "singleOpenMode"], outputs: ["onBackdropClick", "collapsedStateChanged"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "minWidth", "maxWidth", "dblClickAction", "width", "defaultWidth"], outputs: ["axResizableChange", "minWidthChange", "maxWidthChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { 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: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7100
7119
  }
7101
7120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerSideMenuViewComponent, decorators: [{
7102
7121
  type: Component,
@@ -7113,7 +7132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
7113
7132
  AXPStickyDirective,
7114
7133
  AsyncPipe,
7115
7134
  AXTranslationModule,
7116
- ], template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer ax-w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-section\">\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(min-width:640px){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(min-width:1024px){axm-questionnaire-viewer-side-menu-view{height:65vh}}.__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}.__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}.__sidebar-drawer{height:100%;border-inline-end-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))}.__sidebar-content{height:100%;overflow-y:auto}.__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-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))}.__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1 1 0%;overflow-y:auto}.__sidebar-tabs ax-tab-item{margin-top:0;margin-bottom:0;padding-top:.75rem;padding-bottom:.75rem;font-weight:600}.__main-content{display:flex;max-height:83vh;min-height:0px;flex:1 1 0%;flex-direction:column;overflow-y:auto}@media(min-width:768px){.__main-content{max-height:75vh}}.__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem;padding:1rem}.__page-section .__section-title-sticky{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-bottom-width:1px;padding-top:.5rem;padding-bottom:.5rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}.__page-section .__section-title-sticky:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}@media(prefers-reduced-motion:reduce){.__page-section .__section-title-sticky{transition-duration:1ms;transition-timing-function:linear}.__page-section .__section-title-sticky:before{transition-duration:1ms;transition-timing-function:linear}}.__page-section .__section-title-sticky.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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))}.__page-section .__section-title-sticky.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.__mobile-header-row{position:sticky;top:0;z-index:10;isolation:isolate;display:flex;flex-shrink:0;align-items:flex-start;gap:.5rem;border-bottom-width:1px;padding:.5rem 1rem;transition:padding-block .28s cubic-bezier(.33,1,.68,1),border-color .22s ease-out}.__mobile-header-row:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;box-shadow:none;transition:inset-inline .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.33,1,.68,1)}.__mobile-header-row.--stuck{border-bottom-width:1px;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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))}.__mobile-header-row.--stuck:before{inset-inline:-1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.__mobile-menu-button{margin-inline-start:-.5rem;flex-shrink:0}.__questions-list{display:flex;flex-direction:column;gap:1rem}\n"] }]
7135
+ ], template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\" [color]=\"'danger'\">\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer ax-w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(min-width:640px){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(min-width:1024px){axm-questionnaire-viewer-side-menu-view{height:65vh}}.__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}.__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}.__sidebar-drawer{height:100%;border-inline-end-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))}.__sidebar-content{height:100%;overflow-y:auto}.__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-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))}.__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1 1 0%;overflow-y:auto}.__sidebar-tabs ax-tab-item{margin-top:0;margin-bottom:0;padding-top:.75rem;padding-bottom:.75rem;font-weight:600}.__main-content{display:flex;max-height:83vh;min-height:0px;flex:1 1 0%;flex-direction:column;overflow-y:auto;overflow-x:hidden}@media(min-width:768px){.__main-content{max-height:75vh}}.__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:1rem;padding:1rem}.__mobile-menu-button{margin-inline-start:-.5rem;flex-shrink:0}.__questions-list{display:flex;flex-direction:column;gap:1rem}\n"] }]
7117
7136
  }], ctorParameters: () => [], propDecorators: { tabRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXTabsComponent), { isSignal: true }] }] } });
7118
7137
 
7119
7138
  //#region ---- Imports ----
@@ -7198,7 +7217,7 @@ class AXMQuestionnaireViewerComponent {
7198
7217
  const config = this.config();
7199
7218
  const initialAnswers = this.initialAnswers();
7200
7219
  if (id) {
7201
- this.vm.loadQuestionnaire(id, initialAnswers, config);
7220
+ void this.vm.loadQuestionnaire(id, initialAnswers, config, structure?.displaySettings);
7202
7221
  }
7203
7222
  else if (structure) {
7204
7223
  if (structure.sections && structure.sections.length > 0) {
@@ -7361,7 +7380,7 @@ class AXMQuestionnaireViewerComponent {
7361
7380
  this.answersChanged.emit(answers);
7362
7381
  }
7363
7382
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7364
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerComponent, isStandalone: true, selector: "axm-questionnaire-viewer", inputs: { questionnaireId: { classPropertyName: "questionnaireId", publicName: "questionnaireId", isSignal: true, isRequired: false, transformFunction: null }, structure: { classPropertyName: "structure", publicName: "structure", 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 } }, outputs: { answersChanged: "answersChanged", questionAnswered: "questionAnswered" }, host: { classAttribute: "axm-questionnaire-viewer" }, providers: [AXMQuestionnaireViewerViewModel], viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, isSignal: true }, { propertyName: "widgetContainer", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<axp-widgets-container #widgetContainer [attr.dir]=\"layoutDirection()\" [context]=\"{}\"\n (onContextChanged)=\"handleContextChanged()\">\n @if (vm.isLoading()) {\n <div class=\"__loading\">\n <axp-state-message icon=\"fa-light fa-spinner fa-spin\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async) || ''\"\n [description]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.description' | translate | async) || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.error()) {\n <div class=\"__error\">\n <axp-state-message icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.error.title' | translate | async) || ''\"\n [description]=\"vm.error() || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.questionnaireData()) {\n <div class=\"__questionnaire-container\">\n <ax-form #form>\n @if (vm.viewMode() === 'single-page') {\n <axm-questionnaire-viewer-single-page-view></axm-questionnaire-viewer-single-page-view>\n } @else if (vm.viewMode() === 'page-per-group') {\n <axm-questionnaire-viewer-page-per-group-view></axm-questionnaire-viewer-page-per-group-view>\n } @else if (vm.viewMode() === 'page-per-question') {\n <axm-questionnaire-viewer-page-per-question-view></axm-questionnaire-viewer-page-per-question-view>\n } @else if (vm.viewMode() === 'side-menu') {\n <axm-questionnaire-viewer-side-menu-view></axm-questionnaire-viewer-side-menu-view>\n }\n </ax-form>\n </div>\n }\n</axp-widgets-container>\n", styles: [".axm-questionnaire-viewer{display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer .__loading,.axm-questionnaire-viewer .__error{display:flex;height:100%;align-items:center;justify-content:center}.axm-questionnaire-viewer .__questionnaire-container{display:flex;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "look"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1$3.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "component", type:
7383
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerComponent, isStandalone: true, selector: "axm-questionnaire-viewer", inputs: { questionnaireId: { classPropertyName: "questionnaireId", publicName: "questionnaireId", isSignal: true, isRequired: false, transformFunction: null }, structure: { classPropertyName: "structure", publicName: "structure", 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 } }, outputs: { answersChanged: "answersChanged", questionAnswered: "questionAnswered" }, host: { classAttribute: "axm-questionnaire-viewer" }, providers: [AXMQuestionnaireViewerViewModel], viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, isSignal: true }, { propertyName: "widgetContainer", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<axp-widgets-container #widgetContainer [attr.dir]=\"layoutDirection()\" [context]=\"{}\"\n (onContextChanged)=\"handleContextChanged()\">\n @if (vm.isLoading()) {\n <div class=\"__loading\">\n <axp-state-message icon=\"fa-light fa-spinner fa-spin\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async) || ''\"\n [description]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.description' | translate | async) || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.error()) {\n <div class=\"__error\">\n <axp-state-message icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.error.title' | translate | async) || ''\"\n [description]=\"vm.error() || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.questionnaireData()) {\n <div class=\"__questionnaire-container\">\n <ax-form #form>\n @if (vm.viewMode() === 'single-page') {\n <axm-questionnaire-viewer-single-page-view></axm-questionnaire-viewer-single-page-view>\n } @else if (vm.viewMode() === 'page-per-group') {\n <axm-questionnaire-viewer-page-per-group-view></axm-questionnaire-viewer-page-per-group-view>\n } @else if (vm.viewMode() === 'page-per-question') {\n <axm-questionnaire-viewer-page-per-question-view></axm-questionnaire-viewer-page-per-question-view>\n } @else if (vm.viewMode() === 'side-menu') {\n <axm-questionnaire-viewer-side-menu-view></axm-questionnaire-viewer-side-menu-view>\n }\n </ax-form>\n </div>\n }\n</axp-widgets-container>\n", styles: [".axm-questionnaire-viewer{display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer .__loading,.axm-questionnaire-viewer .__error{display:flex;height:100%;align-items:center;justify-content:center}.axm-questionnaire-viewer .__questionnaire-container{display:flex;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}.axm-questionnaire-viewer ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}\n", ".__section-title-sticky,.__mobile-header-row{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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))}.__section-title-sticky:before,.__mobile-header-row:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;background-color:rgb(var(--ax-sys-color-lightest-surface));border-bottom:1px solid transparent;box-shadow:none;transition:box-shadow .2s ease-out,border-color .2s ease-out}@media(prefers-reduced-motion:reduce){.__section-title-sticky:before,.__mobile-header-row:before{transition-duration:1ms}}.__section-title-sticky:after,.__mobile-header-row:after{content:\"\";position:absolute;bottom:0;left:1rem;right:1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-surface));pointer-events:none;opacity:1;transition:opacity .2s ease-out}@media(prefers-reduced-motion:reduce){.__section-title-sticky:after,.__mobile-header-row:after{transition-duration:1ms}}.__section-title-sticky.--stuck:after,.__mobile-header-row.--stuck:after{opacity:0}.__section-title-sticky.--stuck:before,.__mobile-header-row.--stuck:before{border-bottom-color:rgb(var(--ax-sys-color-border-surface));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.__mobile-header-row{display:flex;flex-shrink:0;align-items:flex-start;gap:.5rem}.__section-title-sticky,.__mobile-header-row{padding-left:1rem;padding-right:1rem}.__section-title-sticky.--stuck:before,.__mobile-header-row.--stuck:before{inset-inline:-1rem}.__viewer-scroll{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow-y:auto;overflow-x:hidden;max-height:83vh}@media(min-width:768px){.__viewer-scroll{max-height:75vh}}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll){display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll) .__questionnaire-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll) ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-popup .__content:has(.__viewer-scroll){overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll){display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll) .__questionnaire-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll) ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content:has(.__viewer-scroll){overflow:hidden}axm-questionnaire-viewer-single-page-view,axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "look"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1$3.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "component", type:
7365
7384
  // View components
7366
7385
  AXMQuestionnaireViewerSinglePageViewComponent, selector: "axm-questionnaire-viewer-single-page-view" }, { kind: "component", type: AXMQuestionnaireViewerPagePerGroupViewComponent, selector: "axm-questionnaire-viewer-page-per-group-view" }, { kind: "component", type: AXMQuestionnaireViewerPagePerQuestionViewComponent, selector: "axm-questionnaire-viewer-page-per-question-view" }, { kind: "component", type: AXMQuestionnaireViewerSideMenuViewComponent, selector: "axm-questionnaire-viewer-side-menu-view" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7367
7386
  }
@@ -7381,7 +7400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
7381
7400
  AXMQuestionnaireViewerSideMenuViewComponent,
7382
7401
  ], providers: [AXMQuestionnaireViewerViewModel], encapsulation: ViewEncapsulation.None, host: {
7383
7402
  class: 'axm-questionnaire-viewer',
7384
- }, template: "<axp-widgets-container #widgetContainer [attr.dir]=\"layoutDirection()\" [context]=\"{}\"\n (onContextChanged)=\"handleContextChanged()\">\n @if (vm.isLoading()) {\n <div class=\"__loading\">\n <axp-state-message icon=\"fa-light fa-spinner fa-spin\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async) || ''\"\n [description]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.description' | translate | async) || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.error()) {\n <div class=\"__error\">\n <axp-state-message icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.error.title' | translate | async) || ''\"\n [description]=\"vm.error() || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.questionnaireData()) {\n <div class=\"__questionnaire-container\">\n <ax-form #form>\n @if (vm.viewMode() === 'single-page') {\n <axm-questionnaire-viewer-single-page-view></axm-questionnaire-viewer-single-page-view>\n } @else if (vm.viewMode() === 'page-per-group') {\n <axm-questionnaire-viewer-page-per-group-view></axm-questionnaire-viewer-page-per-group-view>\n } @else if (vm.viewMode() === 'page-per-question') {\n <axm-questionnaire-viewer-page-per-question-view></axm-questionnaire-viewer-page-per-question-view>\n } @else if (vm.viewMode() === 'side-menu') {\n <axm-questionnaire-viewer-side-menu-view></axm-questionnaire-viewer-side-menu-view>\n }\n </ax-form>\n </div>\n }\n</axp-widgets-container>\n", styles: [".axm-questionnaire-viewer{display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer .__loading,.axm-questionnaire-viewer .__error{display:flex;height:100%;align-items:center;justify-content:center}.axm-questionnaire-viewer .__questionnaire-container{display:flex;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}\n"] }]
7403
+ }, template: "<axp-widgets-container #widgetContainer [attr.dir]=\"layoutDirection()\" [context]=\"{}\"\n (onContextChanged)=\"handleContextChanged()\">\n @if (vm.isLoading()) {\n <div class=\"__loading\">\n <axp-state-message icon=\"fa-light fa-spinner fa-spin\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async) || ''\"\n [description]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.description' | translate | async) || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.error()) {\n <div class=\"__error\">\n <axp-state-message icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.error.title' | translate | async) || ''\"\n [description]=\"vm.error() || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.questionnaireData()) {\n <div class=\"__questionnaire-container\">\n <ax-form #form>\n @if (vm.viewMode() === 'single-page') {\n <axm-questionnaire-viewer-single-page-view></axm-questionnaire-viewer-single-page-view>\n } @else if (vm.viewMode() === 'page-per-group') {\n <axm-questionnaire-viewer-page-per-group-view></axm-questionnaire-viewer-page-per-group-view>\n } @else if (vm.viewMode() === 'page-per-question') {\n <axm-questionnaire-viewer-page-per-question-view></axm-questionnaire-viewer-page-per-question-view>\n } @else if (vm.viewMode() === 'side-menu') {\n <axm-questionnaire-viewer-side-menu-view></axm-questionnaire-viewer-side-menu-view>\n }\n </ax-form>\n </div>\n }\n</axp-widgets-container>\n", styles: [".axm-questionnaire-viewer{display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column}.axm-questionnaire-viewer .__loading,.axm-questionnaire-viewer .__error{display:flex;height:100%;align-items:center;justify-content:center}.axm-questionnaire-viewer .__questionnaire-container{display:flex;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}.axm-questionnaire-viewer ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}\n", ".__section-title-sticky,.__mobile-header-row{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;border-style:none;padding-top:.75rem;padding-bottom:.75rem;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))}.__section-title-sticky:before,.__mobile-header-row:before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;background-color:rgb(var(--ax-sys-color-lightest-surface));border-bottom:1px solid transparent;box-shadow:none;transition:box-shadow .2s ease-out,border-color .2s ease-out}@media(prefers-reduced-motion:reduce){.__section-title-sticky:before,.__mobile-header-row:before{transition-duration:1ms}}.__section-title-sticky:after,.__mobile-header-row:after{content:\"\";position:absolute;bottom:0;left:1rem;right:1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-surface));pointer-events:none;opacity:1;transition:opacity .2s ease-out}@media(prefers-reduced-motion:reduce){.__section-title-sticky:after,.__mobile-header-row:after{transition-duration:1ms}}.__section-title-sticky.--stuck:after,.__mobile-header-row.--stuck:after{opacity:0}.__section-title-sticky.--stuck:before,.__mobile-header-row.--stuck:before{border-bottom-color:rgb(var(--ax-sys-color-border-surface));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.__mobile-header-row{display:flex;flex-shrink:0;align-items:flex-start;gap:.5rem}.__section-title-sticky,.__mobile-header-row{padding-left:1rem;padding-right:1rem}.__section-title-sticky.--stuck:before,.__mobile-header-row.--stuck:before{inset-inline:-1rem}.__viewer-scroll{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow-y:auto;overflow-x:hidden;max-height:83vh}@media(min-width:768px){.__viewer-scroll{max-height:75vh}}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll){display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll) .__questionnaire-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll) ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-popup .__content:has(.__viewer-scroll){overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll){display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll) .__questionnaire-container{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll) ax-form{display:flex;height:100%;min-height:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content:has(.__viewer-scroll){overflow:hidden}axm-questionnaire-viewer-single-page-view,axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}\n"] }]
7385
7404
  }], ctorParameters: () => [], propDecorators: { questionnaireId: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionnaireId", required: false }] }], structure: [{ type: i0.Input, args: [{ isSignal: true, alias: "structure", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], initialAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialAnswers", required: false }] }], answersChanged: [{ type: i0.Output, args: ["answersChanged"] }], questionAnswered: [{ type: i0.Output, args: ["questionAnswered"] }], form: [{ type: i0.ViewChild, args: ['form', { isSignal: true }] }], widgetContainer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
7386
7405
 
7387
7406
  //#region ---- Imports ----
@@ -7592,35 +7611,35 @@ class AXMQuestionnaireViewerFeatureModule {
7592
7611
  provideCommandSetups([
7593
7612
  {
7594
7613
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,
7595
- command: () => import('./acorex-modules-assessment-management-preview-questionnaire.command-Sd4gRHo5.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
7614
+ command: () => import('./acorex-modules-assessment-management-preview-questionnaire.command-DlwBZ7mO.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
7596
7615
  },
7597
7616
  {
7598
7617
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:PreviewQuestion`,
7599
- command: () => import('./acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs').then((c) => c.PreviewQuestionCommand),
7618
+ command: () => import('./acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs').then((c) => c.PreviewQuestionCommand),
7600
7619
  },
7601
7620
  {
7602
7621
  key: `${RootConfig.module.name}.${RootConfig.entities.questionBankItem.name}:Preview`,
7603
- command: () => import('./acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs').then((c) => c.PreviewQuestionCommand),
7622
+ command: () => import('./acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs').then((c) => c.PreviewQuestionCommand),
7604
7623
  },
7605
7624
  {
7606
7625
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ViewAnswers`,
7607
- command: () => import('./acorex-modules-assessment-management-view-session-answers.command-BN-nYHha.mjs').then((c) => c.ViewSessionAnswersCommand),
7626
+ command: () => import('./acorex-modules-assessment-management-view-session-answers.command-BPoF0v9C.mjs').then((c) => c.ViewSessionAnswersCommand),
7608
7627
  },
7609
7628
  {
7610
7629
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:Fill`,
7611
- command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs').then((c) => c.FillAssessmentSessionCommand),
7630
+ command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs').then((c) => c.FillAssessmentSessionCommand),
7612
7631
  },
7613
7632
  {
7614
7633
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:Fill`,
7615
- command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs').then((c) => c.FillAssessmentSessionCommand),
7634
+ command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs').then((c) => c.FillAssessmentSessionCommand),
7616
7635
  },
7617
7636
  {
7618
7637
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ReviewAnswers`,
7619
- command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-hB_LFUSE.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7638
+ command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-XK3IK3MH.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7620
7639
  },
7621
7640
  {
7622
7641
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:ReviewAnswers`,
7623
- command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-hB_LFUSE.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7642
+ command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-XK3IK3MH.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7624
7643
  },
7625
7644
  ]),
7626
7645
  ], imports: [AXPWidgetCoreModule,
@@ -7647,35 +7666,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
7647
7666
  provideCommandSetups([
7648
7667
  {
7649
7668
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,
7650
- command: () => import('./acorex-modules-assessment-management-preview-questionnaire.command-Sd4gRHo5.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
7669
+ command: () => import('./acorex-modules-assessment-management-preview-questionnaire.command-DlwBZ7mO.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
7651
7670
  },
7652
7671
  {
7653
7672
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:PreviewQuestion`,
7654
- command: () => import('./acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs').then((c) => c.PreviewQuestionCommand),
7673
+ command: () => import('./acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs').then((c) => c.PreviewQuestionCommand),
7655
7674
  },
7656
7675
  {
7657
7676
  key: `${RootConfig.module.name}.${RootConfig.entities.questionBankItem.name}:Preview`,
7658
- command: () => import('./acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs').then((c) => c.PreviewQuestionCommand),
7677
+ command: () => import('./acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs').then((c) => c.PreviewQuestionCommand),
7659
7678
  },
7660
7679
  {
7661
7680
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ViewAnswers`,
7662
- command: () => import('./acorex-modules-assessment-management-view-session-answers.command-BN-nYHha.mjs').then((c) => c.ViewSessionAnswersCommand),
7681
+ command: () => import('./acorex-modules-assessment-management-view-session-answers.command-BPoF0v9C.mjs').then((c) => c.ViewSessionAnswersCommand),
7663
7682
  },
7664
7683
  {
7665
7684
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:Fill`,
7666
- command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs').then((c) => c.FillAssessmentSessionCommand),
7685
+ command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs').then((c) => c.FillAssessmentSessionCommand),
7667
7686
  },
7668
7687
  {
7669
7688
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:Fill`,
7670
- command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs').then((c) => c.FillAssessmentSessionCommand),
7689
+ command: () => import('./acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs').then((c) => c.FillAssessmentSessionCommand),
7671
7690
  },
7672
7691
  {
7673
7692
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ReviewAnswers`,
7674
- command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-hB_LFUSE.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7693
+ command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-XK3IK3MH.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7675
7694
  },
7676
7695
  {
7677
7696
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:ReviewAnswers`,
7678
- command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-hB_LFUSE.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7697
+ command: () => import('./acorex-modules-assessment-management-review-assessment-session.command-XK3IK3MH.mjs').then((c) => c.ReviewAssessmentSessionCommand),
7679
7698
  },
7680
7699
  ]),
7681
7700
  ],
@@ -7690,7 +7709,7 @@ function questionnaireViewerRoutesFactory() {
7690
7709
  return [
7691
7710
  {
7692
7711
  path: `:app/${route}/questionnaire/fill/:caseId`,
7693
- canActivate: [AXPAuthGuard],
7712
+ canActivate: [...AXP_PROTECTED_ROUTE_GUARDS],
7694
7713
  loadComponent: () => AXPRootLayoutComponent,
7695
7714
  children: [
7696
7715
  {
@@ -7905,6 +7924,128 @@ async function persistAssessmentSession(input) {
7905
7924
  }
7906
7925
  //#endregion
7907
7926
 
7927
+ //#region ---- Imports ----
7928
+ //#endregion
7929
+ //#region ---- Component ----
7930
+ /**
7931
+ * Footer control for questionnaire-level reference documents (popover list).
7932
+ */
7933
+ class AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent {
7934
+ constructor() {
7935
+ //#region ---- Inputs ----
7936
+ this.attachments = input.required(...(ngDevMode ? [{ debugName: "attachments" }] : /* istanbul ignore next */ []));
7937
+ //#endregion
7938
+ //#region ---- Computed ----
7939
+ this.files = computed(() => questionnaireViewerAttachmentsToFileListItems(this.attachments()), ...(ngDevMode ? [{ debugName: "files" }] : /* istanbul ignore next */ []));
7940
+ }
7941
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7942
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, isStandalone: true, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: { attachments: { classPropertyName: "attachments", publicName: "attachments", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "axm-questionnaire-viewer-questionnaire-attachments-footer" }, ngImport: i0, template: `
7943
+ @if (attachments().length > 0) {
7944
+ <div class="__questionnaire-attachments-footer">
7945
+ <span #trigger class="__trigger">
7946
+ <ax-button
7947
+ look="link"
7948
+ color="primary"
7949
+ [text]="
7950
+ '@assessment-management:questionnaires.components.questionnaire-viewer.questionnaire-attachments.footer-action.title'
7951
+ | translate
7952
+ | async
7953
+ "
7954
+ >
7955
+ <ax-icon><i class="fa-light fa-paperclip"></i></ax-icon>
7956
+ </ax-button>
7957
+ </span>
7958
+
7959
+ <ax-popover [target]="trigger" [openOn]="'toggle'" [closeOn]="'clickOut'" [offsetY]="8">
7960
+ <div
7961
+ class="axm-questionnaire-viewer-attachments-popover ax-lightest-surface ax-min-w-[17.5rem] ax-max-w-[26rem] ax-overflow-hidden"
7962
+ >
7963
+ <div class="ax-border-b ax-border-surface ax-px-4 ax-py-3">
7964
+ <h3 class="ax-m-0 ax-text-sm ax-font-semibold ax-leading-normal ax-text-on-lightest-surface">
7965
+ {{
7966
+ '@assessment-management:questionnaires.components.questionnaire-viewer.questionnaire-attachments.title'
7967
+ | translate
7968
+ | async
7969
+ }}
7970
+ </h3>
7971
+ </div>
7972
+ <div class="ax-max-h-64 ax-overflow-y-auto ax-px-3 ax-py-3" style="max-height: max(30dvh, 12rem)">
7973
+ <axp-file-list
7974
+ [files]="files()"
7975
+ look="links"
7976
+ linksLayout="menu"
7977
+ [showLabel]="false"
7978
+ [readonly]="true"
7979
+ />
7980
+ </div>
7981
+ </div>
7982
+ </ax-popover>
7983
+ </div>
7984
+ }
7985
+ `, isInline: true, dependencies: [{ 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: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPFileListComponent, selector: "axp-file-list", inputs: ["readonly", "fileEditable", "enableTitleDescription", "multiple", "look", "titleKey", "showLabel", "linksLayout", "files", "plugins", "excludePlugins", "capabilities"], outputs: ["onRemove", "onRevert", "onRename"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7986
+ }
7987
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, decorators: [{
7988
+ type: Component,
7989
+ args: [{
7990
+ selector: 'axm-questionnaire-viewer-questionnaire-attachments-footer',
7991
+ template: `
7992
+ @if (attachments().length > 0) {
7993
+ <div class="__questionnaire-attachments-footer">
7994
+ <span #trigger class="__trigger">
7995
+ <ax-button
7996
+ look="link"
7997
+ color="primary"
7998
+ [text]="
7999
+ '@assessment-management:questionnaires.components.questionnaire-viewer.questionnaire-attachments.footer-action.title'
8000
+ | translate
8001
+ | async
8002
+ "
8003
+ >
8004
+ <ax-icon><i class="fa-light fa-paperclip"></i></ax-icon>
8005
+ </ax-button>
8006
+ </span>
8007
+
8008
+ <ax-popover [target]="trigger" [openOn]="'toggle'" [closeOn]="'clickOut'" [offsetY]="8">
8009
+ <div
8010
+ class="axm-questionnaire-viewer-attachments-popover ax-lightest-surface ax-min-w-[17.5rem] ax-max-w-[26rem] ax-overflow-hidden"
8011
+ >
8012
+ <div class="ax-border-b ax-border-surface ax-px-4 ax-py-3">
8013
+ <h3 class="ax-m-0 ax-text-sm ax-font-semibold ax-leading-normal ax-text-on-lightest-surface">
8014
+ {{
8015
+ '@assessment-management:questionnaires.components.questionnaire-viewer.questionnaire-attachments.title'
8016
+ | translate
8017
+ | async
8018
+ }}
8019
+ </h3>
8020
+ </div>
8021
+ <div class="ax-max-h-64 ax-overflow-y-auto ax-px-3 ax-py-3" style="max-height: max(30dvh, 12rem)">
8022
+ <axp-file-list
8023
+ [files]="files()"
8024
+ look="links"
8025
+ linksLayout="menu"
8026
+ [showLabel]="false"
8027
+ [readonly]="true"
8028
+ />
8029
+ </div>
8030
+ </div>
8031
+ </ax-popover>
8032
+ </div>
8033
+ }
8034
+ `,
8035
+ changeDetection: ChangeDetectionStrategy.OnPush,
8036
+ imports: [
8037
+ AsyncPipe,
8038
+ AXTranslationModule,
8039
+ AXButtonModule,
8040
+ AXDecoratorModule,
8041
+ AXPopoverModule,
8042
+ AXPFileListComponent,
8043
+ ],
8044
+ encapsulation: ViewEncapsulation.None,
8045
+ host: { class: 'axm-questionnaire-viewer-questionnaire-attachments-footer' },
8046
+ }]
8047
+ }], propDecorators: { attachments: [{ type: i0.Input, args: [{ isSignal: true, alias: "attachments", required: true }] }] } });
8048
+
7908
8049
  //#region ---- Imports ----
7909
8050
  //#endregion
7910
8051
  //#region ---- Component ----
@@ -8432,6 +8573,13 @@ class AXMQuestionnaireViewerPageComponent extends AXPPageLayoutBaseComponent {
8432
8573
  this.timerElapsed = computed(() => this.viewerViewModel()?.timerElapsed() ?? 0, ...(ngDevMode ? [{ debugName: "timerElapsed" }] : /* istanbul ignore next */ []));
8433
8574
  this.showProgressBar = computed(() => this.viewerViewModel()?.showProgressBar() ?? false, ...(ngDevMode ? [{ debugName: "showProgressBar" }] : /* istanbul ignore next */ []));
8434
8575
  this.answeredQuestionsCount = computed(() => this.viewerViewModel()?.answeredQuestionsCount() ?? 0, ...(ngDevMode ? [{ debugName: "answeredQuestionsCount" }] : /* istanbul ignore next */ []));
8576
+ this.questionnaireAttachments = computed(() => {
8577
+ const fromViewer = this.viewerViewModel()?.questionnaireAttachments();
8578
+ if (fromViewer && fromViewer.length > 0) {
8579
+ return fromViewer;
8580
+ }
8581
+ return normalizeQuestionnaireViewerAttachments(this.questionnaire()?.attachments);
8582
+ }, ...(ngDevMode ? [{ debugName: "questionnaireAttachments" }] : /* istanbul ignore next */ []));
8435
8583
  this.isReadonly = computed(() => this.viewerConfig()?.readonly ?? false, ...(ngDevMode ? [{ debugName: "isReadonly" }] : /* istanbul ignore next */ []));
8436
8584
  this.showReviewButton = computed(() => this.isLastStep() && (this.prePostConfig()?.post?.reviewEnabled ?? false) && this.flowStep() === 'questions', ...(ngDevMode ? [{ debugName: "showReviewButton" }] : /* istanbul ignore next */ []));
8437
8585
  /** Use answers from review context when returning from review; otherwise use initial answers. */
@@ -8685,9 +8833,9 @@ class AXMQuestionnaireViewerPageComponent extends AXPPageLayoutBaseComponent {
8685
8833
  this.router.navigateByUrl(this.getCasesListPath());
8686
8834
  }
8687
8835
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8688
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerPageComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page", host: { classAttribute: "axm-questionnaire-viewer-page" }, providers: [{ provide: AXPPageLayoutBase, useExisting: AXMQuestionnaireViewerPageComponent }], viewQueries: [{ propertyName: "viewer", first: true, predicate: ["viewer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Page shell layout -->\n<axp-page-layout>\n <!-- Main content area -->\n <axp-page-content class=\"ax-flex ax-flex-col ax-flex-1 ax-min-h-0\"\n [class.ax-overflow-hidden]=\"flowStep() === 'questions'\" [class.ax-overflow-y-auto]=\"flowStep() !== 'questions'\">\n <!-- Loading state -->\n @if (isLoading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-min-h-[200px]\">\n <span>{{ '@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async\n }}</span>\n </div>\n }\n <!-- Error state -->\n @else if (loadError()) {\n <div class=\"ax-p-4 ax-text-error-600\">\n {{ loadError() }}\n </div>\n }\n <!-- Content state -->\n @else if (structure()) {\n <!-- Pre-questionnaire introduction content -->\n @if (flowStep() === 'pre') {\n <axm-pre-questionnaire-content [content]=\"prePostConfig()?.pre?.content\"></axm-pre-questionnaire-content>\n }\n <!-- Post-submit results content -->\n @else if (flowStep() === 'results') {\n <axm-post-questionnaire-content mode=\"results\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Post-submit summary content -->\n @else if (flowStep() === 'summary') {\n <axm-post-questionnaire-content mode=\"summary\" [summaryContent]=\"prePostConfig()?.post?.summaryContent\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Questionnaire and review flow -->\n @else {\n <!-- Review mode content -->\n @if (flowStep() === 'review') {\n <axm-post-questionnaire-content mode=\"review\" [questionsWithAnswers]=\"reviewSnapshot()\"\n [reviewContext]=\"reviewContext()\"></axm-post-questionnaire-content>\n }\n\n <!-- Questionnaire workspace (hidden while in review mode) -->\n <div class=\"__questions ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-hidden\"\n [class.ax-invisible]=\"flowStep() === 'review'\" [style.position]=\"flowStep() === 'review' ? 'fixed' : null\"\n [style.left]=\"flowStep() === 'review' ? '-9999px' : null\" [class.ax-size-0]=\"flowStep() === 'review'\"\n [class.ax-overflow-hidden]=\"flowStep() === 'review'\">\n\n <!-- Questionnaire rendering container -->\n <div class=\"__content ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-y-auto ax-overflow-x-hidden\">\n <axm-questionnaire-viewer #viewer [structure]=\"structure()!\" [config]=\"viewerConfig()\"\n [initialAnswers]=\"effectiveInitialAnswers()\"\n (answersChanged)=\"handleAnswersChanged($event)\"></axm-questionnaire-viewer>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer actions (only when content is ready) -->\n @if (structure() && !isLoading() && !loadError()) {\n <axp-page-footer class=\"--animated\">\n <!-- Footer prefix: progress indicator -->\n <axp-layout-prefix>\n @if (flowStep() === 'questions') {\n <div class=\"__footer-progress ax-text-sm ax-font-mono ax-tabular-nums\" dir=\"ltr\">\n @if (showProgressBar()) {\n {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}\n }\n </div>\n }\n <!-- @if (showTimer()) {\n <axp-stopwatch [mode]=\"timerTimeLimit() ? 'count-down' : 'count-up'\" [timeLimit]=\"timerTimeLimit()\"\n [format]=\"timerTimeLimit() && timerTimeLimit()! >= 3600 ? 'hh:mm:ss' : 'mm:ss'\" [autoStart]=\"true\"\n [showControls]=\"false\" [value]=\"timerElapsed()\"\n (valueChange)=\"viewerViewModel()!.updateTimerElapsed($event)\"></axp-stopwatch>\n } -->\n </axp-layout-prefix>\n\n <!-- Footer suffix: flow action buttons -->\n <axp-layout-suffix>\n @if (flowStep() === 'pre') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n }\n <!-- Question step actions -->\n @else if (flowStep() === 'questions') {\n <!-- Question navigation buttons -->\n @if (showNavigationButtons()) {\n <ax-button look=\"solid\" [disabled]=\"!canNavigatePrevious()\"\n [text]=\"'@general:actions.previous.title' | translate | async\" (onClick)=\"handlePreviousClick()\"></ax-button>\n @if (!isLastStep()) {\n <ax-button look=\"solid\" color=\"primary\" [disabled]=\"!canNavigateNext()\"\n [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"handleNextClick()\"></ax-button>\n }\n }\n\n <!-- Final-step actions -->\n @if (isLastStep() && showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async\"\n [disabled]=\"!areAllRequiredQuestionsAnswered()\" (onClick)=\"handleReviewClick()\"></ax-button>\n }\n @if (isLastStep() && !showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isReadonly() || isSubmitting() || !areAllRequiredQuestionsAnswered()\"\n (onClick)=\"handleSubmitClick()\"></ax-button>\n }\n }\n <!-- Review step actions -->\n @else if (flowStep() === 'review') {\n <ax-button look=\"outline\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isSubmitting()\" (onClick)=\"handleReviewSubmit()\"></ax-button>\n }\n <!-- Results step actions -->\n @else if (flowStep() === 'results') {\n @if (prePostConfig()?.post?.summaryEnabled) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.next.title' | translate | async\"\n (onClick)=\"flowStep.set('summary')\"></ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n }\n <!-- Summary step action -->\n @else if (flowStep() === 'summary') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>", styles: ["axm-questionnaire-viewer-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-page .__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));position:sticky;top:0;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__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-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\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: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type:
8836
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMQuestionnaireViewerPageComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page", host: { classAttribute: "axm-questionnaire-viewer-page" }, providers: [{ provide: AXPPageLayoutBase, useExisting: AXMQuestionnaireViewerPageComponent }], viewQueries: [{ propertyName: "viewer", first: true, predicate: ["viewer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Page shell layout -->\n<axp-page-layout>\n <!-- Main content area -->\n <axp-page-content class=\"ax-flex ax-flex-col ax-flex-1 ax-min-h-0\"\n [class.ax-overflow-hidden]=\"flowStep() === 'questions'\" [class.ax-overflow-y-auto]=\"flowStep() !== 'questions'\">\n <!-- Loading state -->\n @if (isLoading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-min-h-[200px]\">\n <span>{{ '@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async\n }}</span>\n </div>\n }\n <!-- Error state -->\n @else if (loadError()) {\n <div class=\"ax-p-4 ax-text-error-600\">\n {{ loadError() }}\n </div>\n }\n <!-- Content state -->\n @else if (structure()) {\n <!-- Pre-questionnaire introduction content -->\n @if (flowStep() === 'pre') {\n <axm-pre-questionnaire-content [content]=\"prePostConfig()?.pre?.content\"></axm-pre-questionnaire-content>\n }\n <!-- Post-submit results content -->\n @else if (flowStep() === 'results') {\n <axm-post-questionnaire-content mode=\"results\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Post-submit summary content -->\n @else if (flowStep() === 'summary') {\n <axm-post-questionnaire-content mode=\"summary\" [summaryContent]=\"prePostConfig()?.post?.summaryContent\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Questionnaire and review flow -->\n @else {\n <!-- Review mode content -->\n @if (flowStep() === 'review') {\n <axm-post-questionnaire-content mode=\"review\" [questionsWithAnswers]=\"reviewSnapshot()\"\n [reviewContext]=\"reviewContext()\"></axm-post-questionnaire-content>\n }\n\n <!-- Questionnaire workspace (hidden while in review mode) -->\n <div class=\"__questions ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-hidden\"\n [class.ax-invisible]=\"flowStep() === 'review'\" [style.position]=\"flowStep() === 'review' ? 'fixed' : null\"\n [style.left]=\"flowStep() === 'review' ? '-9999px' : null\" [class.ax-size-0]=\"flowStep() === 'review'\"\n [class.ax-overflow-hidden]=\"flowStep() === 'review'\">\n\n <!-- Questionnaire rendering container -->\n <div class=\"__content ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-y-auto ax-overflow-x-hidden\">\n <axm-questionnaire-viewer\n #viewer\n [questionnaireId]=\"questionnaire()?.id\"\n [structure]=\"structure()!\"\n [config]=\"viewerConfig()\"\n [initialAnswers]=\"effectiveInitialAnswers()\"\n (answersChanged)=\"handleAnswersChanged($event)\"\n ></axm-questionnaire-viewer>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer actions (only when content is ready) -->\n @if (structure() && !isLoading() && !loadError()) {\n <axp-page-footer class=\"--animated\">\n <!-- Footer prefix: progress indicator -->\n <axp-layout-prefix>\n @if (flowStep() === 'questions') {\n <div class=\"ax-flex ax-items-center ax-gap-4 ax-min-w-0\">\n <axm-questionnaire-viewer-questionnaire-attachments-footer\n [attachments]=\"questionnaireAttachments()\"\n />\n <div class=\"__footer-progress ax-text-sm ax-font-mono ax-tabular-nums\" dir=\"ltr\">\n @if (showProgressBar()) {\n {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}\n }\n </div>\n </div>\n }\n <!-- @if (showTimer()) {\n <axp-stopwatch [mode]=\"timerTimeLimit() ? 'count-down' : 'count-up'\" [timeLimit]=\"timerTimeLimit()\"\n [format]=\"timerTimeLimit() && timerTimeLimit()! >= 3600 ? 'hh:mm:ss' : 'mm:ss'\" [autoStart]=\"true\"\n [showControls]=\"false\" [value]=\"timerElapsed()\"\n (valueChange)=\"viewerViewModel()!.updateTimerElapsed($event)\"></axp-stopwatch>\n } -->\n </axp-layout-prefix>\n\n <!-- Footer suffix: flow action buttons -->\n <axp-layout-suffix>\n @if (flowStep() === 'pre') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n }\n <!-- Question step actions -->\n @else if (flowStep() === 'questions') {\n <!-- Question navigation buttons -->\n @if (showNavigationButtons()) {\n <ax-button look=\"solid\" [disabled]=\"!canNavigatePrevious()\"\n [text]=\"'@general:actions.previous.title' | translate | async\" (onClick)=\"handlePreviousClick()\"></ax-button>\n @if (!isLastStep()) {\n <ax-button look=\"solid\" color=\"primary\" [disabled]=\"!canNavigateNext()\"\n [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"handleNextClick()\"></ax-button>\n }\n }\n\n <!-- Final-step actions -->\n @if (isLastStep() && showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async\"\n [disabled]=\"!areAllRequiredQuestionsAnswered()\" (onClick)=\"handleReviewClick()\"></ax-button>\n }\n @if (isLastStep() && !showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isReadonly() || isSubmitting() || !areAllRequiredQuestionsAnswered()\"\n (onClick)=\"handleSubmitClick()\"></ax-button>\n }\n }\n <!-- Review step actions -->\n @else if (flowStep() === 'review') {\n <ax-button look=\"outline\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isSubmitting()\" (onClick)=\"handleReviewSubmit()\"></ax-button>\n }\n <!-- Results step actions -->\n @else if (flowStep() === 'results') {\n @if (prePostConfig()?.post?.summaryEnabled) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.next.title' | translate | async\"\n (onClick)=\"flowStep.set('summary')\"></ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n }\n <!-- Summary step action -->\n @else if (flowStep() === 'summary') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>", styles: ["axm-questionnaire-viewer-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-page .__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));position:sticky;top:0;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__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-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\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: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type:
8689
8837
  //AXPStopwatchComponent,
8690
- 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 }); }
8838
+ AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: ["attachments"] }, { 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 }); }
8691
8839
  }
8692
8840
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerPageComponent, decorators: [{
8693
8841
  type: Component,
@@ -8699,9 +8847,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
8699
8847
  AXPThemeLayoutBlockComponent,
8700
8848
  //AXPStopwatchComponent,
8701
8849
  AXMQuestionnaireViewerComponent,
8850
+ AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent,
8702
8851
  AXMPreQuestionnaireContentComponent,
8703
8852
  AXMPostQuestionnaireContentComponent,
8704
- ], providers: [{ provide: AXPPageLayoutBase, useExisting: AXMQuestionnaireViewerPageComponent }], encapsulation: ViewEncapsulation.None, host: { class: 'axm-questionnaire-viewer-page' }, template: "<!-- Page shell layout -->\n<axp-page-layout>\n <!-- Main content area -->\n <axp-page-content class=\"ax-flex ax-flex-col ax-flex-1 ax-min-h-0\"\n [class.ax-overflow-hidden]=\"flowStep() === 'questions'\" [class.ax-overflow-y-auto]=\"flowStep() !== 'questions'\">\n <!-- Loading state -->\n @if (isLoading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-min-h-[200px]\">\n <span>{{ '@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async\n }}</span>\n </div>\n }\n <!-- Error state -->\n @else if (loadError()) {\n <div class=\"ax-p-4 ax-text-error-600\">\n {{ loadError() }}\n </div>\n }\n <!-- Content state -->\n @else if (structure()) {\n <!-- Pre-questionnaire introduction content -->\n @if (flowStep() === 'pre') {\n <axm-pre-questionnaire-content [content]=\"prePostConfig()?.pre?.content\"></axm-pre-questionnaire-content>\n }\n <!-- Post-submit results content -->\n @else if (flowStep() === 'results') {\n <axm-post-questionnaire-content mode=\"results\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Post-submit summary content -->\n @else if (flowStep() === 'summary') {\n <axm-post-questionnaire-content mode=\"summary\" [summaryContent]=\"prePostConfig()?.post?.summaryContent\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Questionnaire and review flow -->\n @else {\n <!-- Review mode content -->\n @if (flowStep() === 'review') {\n <axm-post-questionnaire-content mode=\"review\" [questionsWithAnswers]=\"reviewSnapshot()\"\n [reviewContext]=\"reviewContext()\"></axm-post-questionnaire-content>\n }\n\n <!-- Questionnaire workspace (hidden while in review mode) -->\n <div class=\"__questions ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-hidden\"\n [class.ax-invisible]=\"flowStep() === 'review'\" [style.position]=\"flowStep() === 'review' ? 'fixed' : null\"\n [style.left]=\"flowStep() === 'review' ? '-9999px' : null\" [class.ax-size-0]=\"flowStep() === 'review'\"\n [class.ax-overflow-hidden]=\"flowStep() === 'review'\">\n\n <!-- Questionnaire rendering container -->\n <div class=\"__content ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-y-auto ax-overflow-x-hidden\">\n <axm-questionnaire-viewer #viewer [structure]=\"structure()!\" [config]=\"viewerConfig()\"\n [initialAnswers]=\"effectiveInitialAnswers()\"\n (answersChanged)=\"handleAnswersChanged($event)\"></axm-questionnaire-viewer>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer actions (only when content is ready) -->\n @if (structure() && !isLoading() && !loadError()) {\n <axp-page-footer class=\"--animated\">\n <!-- Footer prefix: progress indicator -->\n <axp-layout-prefix>\n @if (flowStep() === 'questions') {\n <div class=\"__footer-progress ax-text-sm ax-font-mono ax-tabular-nums\" dir=\"ltr\">\n @if (showProgressBar()) {\n {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}\n }\n </div>\n }\n <!-- @if (showTimer()) {\n <axp-stopwatch [mode]=\"timerTimeLimit() ? 'count-down' : 'count-up'\" [timeLimit]=\"timerTimeLimit()\"\n [format]=\"timerTimeLimit() && timerTimeLimit()! >= 3600 ? 'hh:mm:ss' : 'mm:ss'\" [autoStart]=\"true\"\n [showControls]=\"false\" [value]=\"timerElapsed()\"\n (valueChange)=\"viewerViewModel()!.updateTimerElapsed($event)\"></axp-stopwatch>\n } -->\n </axp-layout-prefix>\n\n <!-- Footer suffix: flow action buttons -->\n <axp-layout-suffix>\n @if (flowStep() === 'pre') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n }\n <!-- Question step actions -->\n @else if (flowStep() === 'questions') {\n <!-- Question navigation buttons -->\n @if (showNavigationButtons()) {\n <ax-button look=\"solid\" [disabled]=\"!canNavigatePrevious()\"\n [text]=\"'@general:actions.previous.title' | translate | async\" (onClick)=\"handlePreviousClick()\"></ax-button>\n @if (!isLastStep()) {\n <ax-button look=\"solid\" color=\"primary\" [disabled]=\"!canNavigateNext()\"\n [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"handleNextClick()\"></ax-button>\n }\n }\n\n <!-- Final-step actions -->\n @if (isLastStep() && showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async\"\n [disabled]=\"!areAllRequiredQuestionsAnswered()\" (onClick)=\"handleReviewClick()\"></ax-button>\n }\n @if (isLastStep() && !showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isReadonly() || isSubmitting() || !areAllRequiredQuestionsAnswered()\"\n (onClick)=\"handleSubmitClick()\"></ax-button>\n }\n }\n <!-- Review step actions -->\n @else if (flowStep() === 'review') {\n <ax-button look=\"outline\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isSubmitting()\" (onClick)=\"handleReviewSubmit()\"></ax-button>\n }\n <!-- Results step actions -->\n @else if (flowStep() === 'results') {\n @if (prePostConfig()?.post?.summaryEnabled) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.next.title' | translate | async\"\n (onClick)=\"flowStep.set('summary')\"></ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n }\n <!-- Summary step action -->\n @else if (flowStep() === 'summary') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>", styles: ["axm-questionnaire-viewer-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-page .__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));position:sticky;top:0;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__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-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\n"] }]
8853
+ ], providers: [{ provide: AXPPageLayoutBase, useExisting: AXMQuestionnaireViewerPageComponent }], encapsulation: ViewEncapsulation.None, host: { class: 'axm-questionnaire-viewer-page' }, template: "<!-- Page shell layout -->\n<axp-page-layout>\n <!-- Main content area -->\n <axp-page-content class=\"ax-flex ax-flex-col ax-flex-1 ax-min-h-0\"\n [class.ax-overflow-hidden]=\"flowStep() === 'questions'\" [class.ax-overflow-y-auto]=\"flowStep() !== 'questions'\">\n <!-- Loading state -->\n @if (isLoading()) {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-min-h-[200px]\">\n <span>{{ '@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async\n }}</span>\n </div>\n }\n <!-- Error state -->\n @else if (loadError()) {\n <div class=\"ax-p-4 ax-text-error-600\">\n {{ loadError() }}\n </div>\n }\n <!-- Content state -->\n @else if (structure()) {\n <!-- Pre-questionnaire introduction content -->\n @if (flowStep() === 'pre') {\n <axm-pre-questionnaire-content [content]=\"prePostConfig()?.pre?.content\"></axm-pre-questionnaire-content>\n }\n <!-- Post-submit results content -->\n @else if (flowStep() === 'results') {\n <axm-post-questionnaire-content mode=\"results\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Post-submit summary content -->\n @else if (flowStep() === 'summary') {\n <axm-post-questionnaire-content mode=\"summary\" [summaryContent]=\"prePostConfig()?.post?.summaryContent\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Questionnaire and review flow -->\n @else {\n <!-- Review mode content -->\n @if (flowStep() === 'review') {\n <axm-post-questionnaire-content mode=\"review\" [questionsWithAnswers]=\"reviewSnapshot()\"\n [reviewContext]=\"reviewContext()\"></axm-post-questionnaire-content>\n }\n\n <!-- Questionnaire workspace (hidden while in review mode) -->\n <div class=\"__questions ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-hidden\"\n [class.ax-invisible]=\"flowStep() === 'review'\" [style.position]=\"flowStep() === 'review' ? 'fixed' : null\"\n [style.left]=\"flowStep() === 'review' ? '-9999px' : null\" [class.ax-size-0]=\"flowStep() === 'review'\"\n [class.ax-overflow-hidden]=\"flowStep() === 'review'\">\n\n <!-- Questionnaire rendering container -->\n <div class=\"__content ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-y-auto ax-overflow-x-hidden\">\n <axm-questionnaire-viewer\n #viewer\n [questionnaireId]=\"questionnaire()?.id\"\n [structure]=\"structure()!\"\n [config]=\"viewerConfig()\"\n [initialAnswers]=\"effectiveInitialAnswers()\"\n (answersChanged)=\"handleAnswersChanged($event)\"\n ></axm-questionnaire-viewer>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer actions (only when content is ready) -->\n @if (structure() && !isLoading() && !loadError()) {\n <axp-page-footer class=\"--animated\">\n <!-- Footer prefix: progress indicator -->\n <axp-layout-prefix>\n @if (flowStep() === 'questions') {\n <div class=\"ax-flex ax-items-center ax-gap-4 ax-min-w-0\">\n <axm-questionnaire-viewer-questionnaire-attachments-footer\n [attachments]=\"questionnaireAttachments()\"\n />\n <div class=\"__footer-progress ax-text-sm ax-font-mono ax-tabular-nums\" dir=\"ltr\">\n @if (showProgressBar()) {\n {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}\n }\n </div>\n </div>\n }\n <!-- @if (showTimer()) {\n <axp-stopwatch [mode]=\"timerTimeLimit() ? 'count-down' : 'count-up'\" [timeLimit]=\"timerTimeLimit()\"\n [format]=\"timerTimeLimit() && timerTimeLimit()! >= 3600 ? 'hh:mm:ss' : 'mm:ss'\" [autoStart]=\"true\"\n [showControls]=\"false\" [value]=\"timerElapsed()\"\n (valueChange)=\"viewerViewModel()!.updateTimerElapsed($event)\"></axp-stopwatch>\n } -->\n </axp-layout-prefix>\n\n <!-- Footer suffix: flow action buttons -->\n <axp-layout-suffix>\n @if (flowStep() === 'pre') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n }\n <!-- Question step actions -->\n @else if (flowStep() === 'questions') {\n <!-- Question navigation buttons -->\n @if (showNavigationButtons()) {\n <ax-button look=\"solid\" [disabled]=\"!canNavigatePrevious()\"\n [text]=\"'@general:actions.previous.title' | translate | async\" (onClick)=\"handlePreviousClick()\"></ax-button>\n @if (!isLastStep()) {\n <ax-button look=\"solid\" color=\"primary\" [disabled]=\"!canNavigateNext()\"\n [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"handleNextClick()\"></ax-button>\n }\n }\n\n <!-- Final-step actions -->\n @if (isLastStep() && showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async\"\n [disabled]=\"!areAllRequiredQuestionsAnswered()\" (onClick)=\"handleReviewClick()\"></ax-button>\n }\n @if (isLastStep() && !showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isReadonly() || isSubmitting() || !areAllRequiredQuestionsAnswered()\"\n (onClick)=\"handleSubmitClick()\"></ax-button>\n }\n }\n <!-- Review step actions -->\n @else if (flowStep() === 'review') {\n <ax-button look=\"outline\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isSubmitting()\" (onClick)=\"handleReviewSubmit()\"></ax-button>\n }\n <!-- Results step actions -->\n @else if (flowStep() === 'results') {\n @if (prePostConfig()?.post?.summaryEnabled) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.next.title' | translate | async\"\n (onClick)=\"flowStep.set('summary')\"></ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n }\n <!-- Summary step action -->\n @else if (flowStep() === 'summary') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>", styles: ["axm-questionnaire-viewer-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-page .__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));position:sticky;top:0;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__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-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\n"] }]
8705
8854
  }], ctorParameters: () => [], propDecorators: { viewer: [{ type: i0.ViewChild, args: ['viewer', { isSignal: true }] }] } });
8706
8855
 
8707
8856
  var questionnaireViewerPage_component = /*#__PURE__*/Object.freeze({
@@ -8753,6 +8902,13 @@ class AXMQuestionnaireViewerStandalonePageComponent {
8753
8902
  this.timerElapsed = computed(() => this.viewerViewModel()?.timerElapsed() ?? 0, ...(ngDevMode ? [{ debugName: "timerElapsed" }] : /* istanbul ignore next */ []));
8754
8903
  this.showProgressBar = computed(() => this.viewerViewModel()?.showProgressBar() ?? false, ...(ngDevMode ? [{ debugName: "showProgressBar" }] : /* istanbul ignore next */ []));
8755
8904
  this.answeredQuestionsCount = computed(() => this.viewerViewModel()?.answeredQuestionsCount() ?? 0, ...(ngDevMode ? [{ debugName: "answeredQuestionsCount" }] : /* istanbul ignore next */ []));
8905
+ this.questionnaireAttachments = computed(() => {
8906
+ const fromViewer = this.viewerViewModel()?.questionnaireAttachments();
8907
+ if (fromViewer && fromViewer.length > 0) {
8908
+ return fromViewer;
8909
+ }
8910
+ return normalizeQuestionnaireViewerAttachments(this.questionnaire()?.attachments);
8911
+ }, ...(ngDevMode ? [{ debugName: "questionnaireAttachments" }] : /* istanbul ignore next */ []));
8756
8912
  this.isReadonly = computed(() => this.viewerConfig()?.readonly ?? false, ...(ngDevMode ? [{ debugName: "isReadonly" }] : /* istanbul ignore next */ []));
8757
8913
  this.showReviewButton = computed(() => this.isLastStep() && (this.prePostConfig()?.post?.reviewEnabled ?? false) && this.flowStep() === 'questions', ...(ngDevMode ? [{ debugName: "showReviewButton" }] : /* istanbul ignore next */ []));
8758
8914
  /** Use answers from review context when returning from review; otherwise use initial answers. */
@@ -9028,6 +9184,7 @@ class AXMQuestionnaireViewerStandalonePageComponent {
9028
9184
  <div class="__content ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-y-auto ax-overflow-x-hidden">
9029
9185
  <axm-questionnaire-viewer
9030
9186
  #viewer
9187
+ [questionnaireId]="questionnaire()?.id"
9031
9188
  [structure]="structure()!"
9032
9189
  [config]="viewerConfig()"
9033
9190
  [initialAnswers]="effectiveInitialAnswers()"
@@ -9041,10 +9198,15 @@ class AXMQuestionnaireViewerStandalonePageComponent {
9041
9198
  <ax-footer class="__standalone-footer ax-flex ax-items-center ax-justify-between ax-gap-4 ax-py-4 ax-mt-4 ax-px-4 ax-border-t ax-border-surface ax-lightest-surface">
9042
9199
  <ax-prefix>
9043
9200
  @if (flowStep() === 'questions') {
9044
- <div class="__footer-progress ax-text-sm ax-font-mono ax-tabular-nums" dir="ltr">
9045
- @if (showProgressBar()) {
9046
- {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}
9047
- }
9201
+ <div class="ax-flex ax-items-center ax-gap-4 ax-min-w-0">
9202
+ <axm-questionnaire-viewer-questionnaire-attachments-footer
9203
+ [attachments]="questionnaireAttachments()"
9204
+ />
9205
+ <div class="__footer-progress ax-text-sm ax-font-mono ax-tabular-nums" dir="ltr">
9206
+ @if (showProgressBar()) {
9207
+ {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}
9208
+ }
9209
+ </div>
9048
9210
  </div>
9049
9211
  }
9050
9212
  </ax-prefix>
@@ -9080,7 +9242,7 @@ class AXMQuestionnaireViewerStandalonePageComponent {
9080
9242
  </ax-footer>
9081
9243
  }
9082
9244
  </div>
9083
- `, isInline: true, styles: ["axm-questionnaire-viewer-standalone-page{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__body{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content-area{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:.375rem}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top .__header-meta .__meta-item span{font-weight:500}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-standalone-page .__content-wrapper{display:flex;min-height:0px;flex:1 1 0%;overflow:hidden}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-standalone-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-standalone-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPStopwatchComponent, selector: "axp-stopwatch", inputs: ["mode", "timeLimit", "format", "autoStart", "showControls", "value"], outputs: ["valueChange", "timeUp"] }, { kind: "component", type: 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 }); }
9245
+ `, isInline: true, styles: ["axm-questionnaire-viewer-standalone-page{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__body{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content-area{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:.375rem}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top .__header-meta .__meta-item span{font-weight:500}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-standalone-page .__content-wrapper{display:flex;min-height:0px;flex:1 1 0%;overflow:hidden}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-standalone-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-standalone-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPStopwatchComponent, selector: "axp-stopwatch", inputs: ["mode", "timeLimit", "format", "autoStart", "showControls", "value"], outputs: ["valueChange", "timeUp"] }, { kind: "component", type: AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: ["attachments"] }, { 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 }); }
9084
9246
  }
9085
9247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireViewerStandalonePageComponent, decorators: [{
9086
9248
  type: Component,
@@ -9148,6 +9310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9148
9310
  <div class="__content ax-flex ax-flex-col ax-flex-1 ax-min-h-0 ax-overflow-y-auto ax-overflow-x-hidden">
9149
9311
  <axm-questionnaire-viewer
9150
9312
  #viewer
9313
+ [questionnaireId]="questionnaire()?.id"
9151
9314
  [structure]="structure()!"
9152
9315
  [config]="viewerConfig()"
9153
9316
  [initialAnswers]="effectiveInitialAnswers()"
@@ -9161,10 +9324,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9161
9324
  <ax-footer class="__standalone-footer ax-flex ax-items-center ax-justify-between ax-gap-4 ax-py-4 ax-mt-4 ax-px-4 ax-border-t ax-border-surface ax-lightest-surface">
9162
9325
  <ax-prefix>
9163
9326
  @if (flowStep() === 'questions') {
9164
- <div class="__footer-progress ax-text-sm ax-font-mono ax-tabular-nums" dir="ltr">
9165
- @if (showProgressBar()) {
9166
- {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}
9167
- }
9327
+ <div class="ax-flex ax-items-center ax-gap-4 ax-min-w-0">
9328
+ <axm-questionnaire-viewer-questionnaire-attachments-footer
9329
+ [attachments]="questionnaireAttachments()"
9330
+ />
9331
+ <div class="__footer-progress ax-text-sm ax-font-mono ax-tabular-nums" dir="ltr">
9332
+ @if (showProgressBar()) {
9333
+ {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}
9334
+ }
9335
+ </div>
9168
9336
  </div>
9169
9337
  }
9170
9338
  </ax-prefix>
@@ -9208,6 +9376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9208
9376
  AXPWidgetCoreModule,
9209
9377
  AXPStopwatchComponent,
9210
9378
  AXMQuestionnaireViewerComponent,
9379
+ AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent,
9211
9380
  AXMPreQuestionnaireContentComponent,
9212
9381
  AXMPostQuestionnaireContentComponent,
9213
9382
  ], providers: [AXPWidgetCoreService, AXPContextStore], encapsulation: ViewEncapsulation.None, host: { class: 'axm-questionnaire-viewer-standalone-page' }, styles: ["axm-questionnaire-viewer-standalone-page{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__body{display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content-area{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:.375rem}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__header .__header-top .__header-meta .__meta-item span{font-weight:500}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-standalone-page .__content-wrapper{display:flex;min-height:0px;flex:1 1 0%;overflow:hidden}axm-questionnaire-viewer-standalone-page .__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-standalone-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-standalone-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-standalone-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}\n"] }]
@@ -9217,5 +9386,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9217
9386
  * Generated bundle index. Do not edit.
9218
9387
  */
9219
9388
 
9220
- export { AXMQuestionnaireViewerService as A, diffQuestionCommentOverride as B, diffQuestionHintOverride as C, DEFAULT_POST_QUESTIONNAIRE_CONFIG as D, findDuplicateOutcomeNames as E, flattenQuestionnaireOutcomeItems as F, getQuestionAnswerCommentStoragePath as G, isQuestionnaireOutcomeDisplayColorHex as H, matchesQuestionnaireOutcomeDisplayRule as I, mergeQuestionCommentConfig as J, mergeQuestionHintForViewer as K, normalizeQuestionCommentConfig as L, normalizeQuestionHintConfig as M, normalizeQuestionHintFromEntityRow as N, normalizeQuestionHintMode as O, normalizeQuestionnaireOutcomeDisplayRules as P, QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY as Q, RootConfig as R, normalizeQuestionnaireOutcomesValue as S, normalizeValidationStrategy$1 as T, normalizeViewMode as U, parseQuestionHintPartialFromRecord as V, parseQuestionnaireOutcomeDisplayColor as W, readHintFieldsFromRecord as X, QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY as a, AXMQuestionnaireViewerComponent as b, AXMPreQuestionnaireContentComponent as c, AXMPostQuestionnaireContentComponent as d, toDisplaySettings as e, AXMAssessmentManagementEntityProvider as f, AXMAssessmentManagementFeatureDefinitionProvider as g, AXMAssessmentManagementFeatureKeys as h, AXMAssessmentManagementMenuProvider as i, AXMAssessmentManagementModule as j, AXMAssessmentManagementPermissionDefinitionProvider as k, AXMAssessmentManagementPermissionKeys as l, AXMAssessmentManagementSearchCommandProvider as m, normalizeCompletionMode as n, AXMQuestionnaireViewerPageComponent as o, persistAssessmentSession as p, AXMQuestionnaireViewerStandalonePageComponent as q, resolveWidgetNodeFromMetaDataDefinitionInterface as r, stripQuestionBankInterfaceMetadata as s, toPrePostConfig as t, AXPAssessmentManagementMenuKeys as u, DEFAULT_PRE_QUESTIONNAIRE_CONFIG as v, DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY as w, DEFAULT_QUESTIONNAIRE_OUTCOMES as x, DEFAULT_QUESTION_COMMENT_CONFIG as y, DEFAULT_QUESTION_HINT_CONFIG as z };
9221
- //# sourceMappingURL=acorex-modules-assessment-management-acorex-modules-assessment-management-IHgQ8RVH.mjs.map
9389
+ export { AXMQuestionnaireViewerService as A, DEFAULT_QUESTION_COMMENT_CONFIG as B, DEFAULT_QUESTION_HINT_CONFIG as C, DEFAULT_POST_QUESTIONNAIRE_CONFIG as D, diffQuestionCommentOverride as E, diffQuestionHintOverride as F, findDuplicateOutcomeNames as G, flattenQuestionnaireOutcomeItems as H, getQuestionAnswerCommentStoragePath as I, isQuestionnaireOutcomeDisplayColorHex as J, matchesQuestionnaireOutcomeDisplayRule as K, mergeQuestionCommentConfig as L, mergeQuestionHintForViewer as M, normalizeQuestionCommentConfig as N, normalizeQuestionHintConfig as O, normalizeQuestionHintFromEntityRow as P, QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY as Q, RootConfig as R, normalizeQuestionHintMode as S, normalizeQuestionnaireOutcomeDisplayRules as T, normalizeQuestionnaireOutcomesValue as U, normalizeValidationStrategy$1 as V, normalizeViewMode as W, parseQuestionHintPartialFromRecord as X, parseQuestionnaireOutcomeDisplayColor as Y, readHintFieldsFromRecord as Z, QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY as a, AXMQuestionnaireViewerComponent as b, AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent as c, AXMPreQuestionnaireContentComponent as d, AXMPostQuestionnaireContentComponent as e, formatQuestionnairePreviewDialogTitle as f, toDisplaySettings as g, AXMAssessmentManagementEntityProvider as h, AXMAssessmentManagementFeatureDefinitionProvider as i, AXMAssessmentManagementFeatureKeys as j, AXMAssessmentManagementMenuProvider as k, AXMAssessmentManagementModule as l, AXMAssessmentManagementPermissionDefinitionProvider as m, normalizeCompletionMode as n, AXMAssessmentManagementPermissionKeys as o, persistAssessmentSession as p, AXMAssessmentManagementSearchCommandProvider as q, resolveWidgetNodeFromMetaDataDefinitionInterface as r, stripQuestionBankInterfaceMetadata as s, toPrePostConfig as t, AXMQuestionnaireViewerPageComponent as u, AXMQuestionnaireViewerStandalonePageComponent as v, AXPAssessmentManagementMenuKeys as w, DEFAULT_PRE_QUESTIONNAIRE_CONFIG as x, DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY as y, DEFAULT_QUESTIONNAIRE_OUTCOMES as z };
9390
+ //# sourceMappingURL=acorex-modules-assessment-management-acorex-modules-assessment-management-D7bHX4-0.mjs.map