@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.
- package/fesm2022/acorex-modules-ai-management.mjs +108 -16
- package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
- 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
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-D7bHX4-0.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B95yBXgi.mjs → acorex-modules-assessment-management-assessment-case.entity-Cpbj5sCP.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B95yBXgi.mjs.map → acorex-modules-assessment-management-assessment-case.entity-Cpbj5sCP.mjs.map} +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DBhBxqh1.mjs → acorex-modules-assessment-management-assessment-session.entity-CMW7wsoN.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DBhBxqh1.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CMW7wsoN.mjs.map} +1 -1
- 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
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-C-dGKO7p.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs → acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-B29oj3WB.mjs.map → acorex-modules-assessment-management-preview-question.command-CBewUZSF.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-Sd4gRHo5.mjs → acorex-modules-assessment-management-preview-questionnaire.command-DlwBZ7mO.mjs} +18 -9
- package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-DlwBZ7mO.mjs.map +1 -0
- 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
- 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
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-RLIfWCzq.mjs → acorex-modules-assessment-management-question-bank-item.entity-CfCWKqN5.mjs} +3 -2
- package/fesm2022/acorex-modules-assessment-management-question-bank-item.entity-CfCWKqN5.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-B8LMKqVO.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-C03wF6Oy.mjs} +19 -5
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-C03wF6Oy.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CZBnfCYE.mjs → acorex-modules-assessment-management-questionnaire.entity-CPMGkhGu.mjs} +4 -2
- package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-CPMGkhGu.mjs.map +1 -0
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-Bf9nJTkD.mjs → acorex-modules-asset-management-asset-system-assignment.entity-B0sf4MzL.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-Cbzu3bqC.mjs → acorex-modules-asset-management-asset-system-type.entity-Cpcgr3KS.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-DA7dO3eE.mjs → acorex-modules-asset-management-asset-system.entity-CEuEjyuQ.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-DA7dO3eE.mjs.map → acorex-modules-asset-management-asset-system.entity-CEuEjyuQ.mjs.map} +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-BNz1Zfox.mjs → acorex-modules-asset-management-asset-type-section.entity-CK0dAIU4.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-D_bBxBKI.mjs → acorex-modules-asset-management-asset-type.entity-DexywYoA.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-asset-management-asset.entity-Cf_H7edH.mjs → acorex-modules-asset-management-asset.entity-BNj3kuHC.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset.entity-Cf_H7edH.mjs.map → acorex-modules-asset-management-asset.entity-BNj3kuHC.mjs.map} +1 -1
- package/fesm2022/acorex-modules-asset-management.mjs +1 -1
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-JEkso4J7.mjs +1580 -0
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-JEkso4J7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DnmLfX5x.mjs → acorex-modules-auth-app-chooser.component-MjGWaBI0.mjs} +5 -6
- package/fesm2022/acorex-modules-auth-app-chooser.component-MjGWaBI0.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-change-password.command-Ctyw3WfE.mjs +32 -0
- package/fesm2022/acorex-modules-auth-change-password.command-Ctyw3WfE.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-change-photo.command-_vxTFH0X.mjs +32 -0
- package/fesm2022/acorex-modules-auth-change-photo.command-_vxTFH0X.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-edit-signature.command-CcTJJwAX.mjs +32 -0
- package/fesm2022/acorex-modules-auth-edit-signature.command-CcTJJwAX.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-login.module-D1-POhQk.mjs → acorex-modules-auth-login.module-FJxkiTeX.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-D1-POhQk.mjs.map → acorex-modules-auth-login.module-FJxkiTeX.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-master.layout-B4Vpqg2F.mjs +25 -0
- package/fesm2022/acorex-modules-auth-master.layout-B4Vpqg2F.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-BhfFPeWT.mjs → acorex-modules-auth-oauth-callback.component-It5tkYuf.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-BhfFPeWT.mjs.map → acorex-modules-auth-oauth-callback.component-It5tkYuf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-gJSHI_eh.mjs → acorex-modules-auth-open-sessions.command-Qik0eKUR.mjs} +32 -7
- package/fesm2022/acorex-modules-auth-open-sessions.command-Qik0eKUR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-BMVSHYy7.mjs → acorex-modules-auth-password.component-B2BIaXZ_.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-BMVSHYy7.mjs.map → acorex-modules-auth-password.component-B2BIaXZ_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-Cm8DsDvu.mjs → acorex-modules-auth-password.component-BRnlp4j1.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-password.component-Cm8DsDvu.mjs.map → acorex-modules-auth-password.component-BRnlp4j1.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-profile-activity-chart.component-CmtkTEI5.mjs +177 -0
- package/fesm2022/acorex-modules-auth-profile-activity-chart.component-CmtkTEI5.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-profile-coming-soon.command-DBbFbzAx.mjs +31 -0
- package/fesm2022/acorex-modules-auth-profile-coming-soon.command-DBbFbzAx.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-profile-delete-account-danger-zone.component-62K4A_lM.mjs +78 -0
- package/fesm2022/acorex-modules-auth-profile-delete-account-danger-zone.component-62K4A_lM.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-profile-page-component.provider-Dz9yFSnA.mjs +27 -0
- package/fesm2022/acorex-modules-auth-profile-page-component.provider-Dz9yFSnA.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-profile-page.component-BGkPr1_o.mjs +370 -0
- package/fesm2022/acorex-modules-auth-profile-page.component-BGkPr1_o.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-B85OzgW1.mjs → acorex-modules-auth-routes-D6PLdcTC.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-B85OzgW1.mjs.map → acorex-modules-auth-routes-D6PLdcTC.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-signout-command-IUSkq50M.mjs +24 -0
- package/fesm2022/acorex-modules-auth-signout-command-IUSkq50M.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-D6_rL2WP.mjs → acorex-modules-auth-tenant-chooser.component-qGfNSQ6H.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-D6_rL2WP.mjs.map → acorex-modules-auth-tenant-chooser.component-qGfNSQ6H.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-DfyDQIw-.mjs → acorex-modules-auth-two-factor.module-DcvqZOIq.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-DfyDQIw-.mjs.map → acorex-modules-auth-two-factor.module-DcvqZOIq.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-business-core.mjs +2 -2
- package/fesm2022/acorex-modules-business-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-calendar-management-datasource.provider-CnxTy81J.mjs +225 -0
- package/fesm2022/acorex-modules-calendar-management-datasource.provider-CnxTy81J.mjs.map +1 -0
- package/fesm2022/acorex-modules-calendar-management.mjs +481 -392
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common.mjs +524 -30
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- 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
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-Bc_tCoHa.mjs.map +1 -0
- package/fesm2022/{acorex-modules-content-management-permission-definition.provider-D9woYm2m.mjs → acorex-modules-content-management-permission-definition.provider-2-_i1Kxd.mjs} +2 -2
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-modules-content-management.mjs +1 -1
- package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-DYW31fEm.mjs → acorex-modules-conversation-acorex-modules-conversation-BX09r8Xj.mjs} +801 -237
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-BX09r8Xj.mjs.map +1 -0
- package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-hMiSfvL2.mjs +329 -0
- package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-hMiSfvL2.mjs.map +1 -0
- package/fesm2022/{acorex-modules-conversation-comments-page.component-CNqL-HdS.mjs → acorex-modules-conversation-comments-page.component-BJu6CoNR.mjs} +18 -6
- package/fesm2022/acorex-modules-conversation-comments-page.component-BJu6CoNR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CuYYEqhb.mjs → acorex-modules-conversation-send-assist-chat-message.command-B471NQRh.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-BKwrZJDs.mjs → acorex-modules-conversation-start-assist-chat.command-CasClVbR.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-BKwrZJDs.mjs.map → acorex-modules-conversation-start-assist-chat.command-CasClVbR.mjs.map} +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-kk0CINL1.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-9MoalNjW.mjs} +53 -21
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-9MoalNjW.mjs.map +1 -0
- package/fesm2022/{acorex-modules-dashboard-management-index-Bhm8mAON.mjs → acorex-modules-dashboard-management-index-Dsu3Yw8O.mjs} +2 -2
- package/fesm2022/{acorex-modules-dashboard-management-index-Bhm8mAON.mjs.map → acorex-modules-dashboard-management-index-Dsu3Yw8O.mjs.map} +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/{acorex-modules-data-management-index-DEm_BsbE.mjs → acorex-modules-data-management-index-CxVSgxTM.mjs} +4 -1
- package/fesm2022/acorex-modules-data-management-index-CxVSgxTM.mjs.map +1 -0
- package/fesm2022/acorex-modules-data-management.mjs +2 -2
- package/fesm2022/acorex-modules-document-management.mjs +7 -4
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-financial-core.mjs +7 -7
- package/fesm2022/acorex-modules-financial-core.mjs.map +1 -1
- 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
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Cb7_mEJt.mjs.map +1 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-CrVU_3Jv.mjs → acorex-modules-human-capital-management-employee.entity-sq1G--OE.mjs} +22 -18
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-sq1G--OE.mjs.map +1 -0
- 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
- 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
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-QeY6lcUY.mjs → acorex-modules-human-capital-management-leave-request.entity-DcdYnwyN.mjs} +19 -24
- package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-DcdYnwyN.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D7B3adkZ.mjs → acorex-modules-human-capital-management-leave-type.entity-Dr5YHs8p.mjs} +10 -4
- package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-Dr5YHs8p.mjs.map +1 -0
- 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
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-Bni4vgt5.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-lifecycle-event.entity-3HtYOKrY.mjs → acorex-modules-human-capital-management-lifecycle-event.entity-ds4Iq82f.mjs} +6 -6
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-ds4Iq82f.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-Byxt921P.mjs → acorex-modules-human-capital-management-position-assignment.entity-CalDJQrD.mjs} +2 -2
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-modules-human-capital-management-start-leave-request-flow.command-DjkzwxHN.mjs +242 -0
- package/fesm2022/acorex-modules-human-capital-management-start-leave-request-flow.command-DjkzwxHN.mjs.map +1 -0
- 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
- package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-x8J2kneo.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/{acorex-modules-learning-management-course.entity-DUUgeikJ.mjs → acorex-modules-learning-management-course.entity-BG6TaQk4.mjs} +4 -4
- package/fesm2022/acorex-modules-learning-management-course.entity-BG6TaQk4.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-enrollment.entity-CdJafrUh.mjs → acorex-modules-learning-management-enrollment.entity-DjpUDcLv.mjs} +5 -5
- package/fesm2022/acorex-modules-learning-management-enrollment.entity-DjpUDcLv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-learning-path.entity-Zo--bDto.mjs → acorex-modules-learning-management-learning-path.entity-C2S0VVeq.mjs} +2 -2
- package/fesm2022/acorex-modules-learning-management-learning-path.entity-C2S0VVeq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-skill.entity-VXkLbaD4.mjs → acorex-modules-learning-management-skill.entity-DAM-_nuT.mjs} +2 -2
- package/fesm2022/acorex-modules-learning-management-skill.entity-DAM-_nuT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-training.entity-C4KDv1uh.mjs → acorex-modules-learning-management-training.entity-THsY3DiM.mjs} +4 -4
- package/fesm2022/acorex-modules-learning-management-training.entity-THsY3DiM.mjs.map +1 -0
- package/fesm2022/acorex-modules-learning-management.mjs +5 -5
- package/fesm2022/{acorex-modules-locale-management-profiles-BOveGIcE.mjs → acorex-modules-locale-management-profiles-BYZa_Ti0.mjs} +23 -8
- package/fesm2022/acorex-modules-locale-management-profiles-BYZa_Ti0.mjs.map +1 -0
- package/fesm2022/acorex-modules-locale-management.mjs +31 -15
- package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +4 -4
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-acorex-modules-maintenance-management-DiM2aFgg.mjs → acorex-modules-maintenance-management-acorex-modules-maintenance-management-Xyu3jpEh.mjs} +14 -14
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-Xyu3jpEh.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-BCMeHmxS.mjs → acorex-modules-maintenance-management-failure-effect.entity-CYQ3ExC3.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-BCMeHmxS.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-CYQ3ExC3.mjs.map} +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-BJs4KhkU.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-vqX88zIA.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-rw24sQxb.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-CpefPKAY.mjs} +2 -2
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DCIAzSYQ.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-BRssxEl6.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-DlXr6A4i.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-YyBWG00N.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-C4J3um7j.mjs → acorex-modules-maintenance-management-failure-register.entity-CH-C6Q7m.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-C-spQtYx.mjs → acorex-modules-maintenance-management-failure-severity.entity-BMoUEcVC.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-Huahnjhd.mjs → acorex-modules-maintenance-management-maintenance-template.entity-CBayAtRD.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-Huahnjhd.mjs.map → acorex-modules-maintenance-management-maintenance-template.entity-CBayAtRD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-work-order-list-command-1YsWctqu.mjs → acorex-modules-maintenance-management-work-order-list-command-mMZGiG3q.mjs} +2 -2
- 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
- package/fesm2022/acorex-modules-maintenance-management.mjs +1 -1
- package/fesm2022/acorex-modules-measurement-core.mjs +4 -4
- package/fesm2022/acorex-modules-measurement-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management-acorex-modules-notification-management-BSf1wd6j.mjs +3836 -0
- package/fesm2022/acorex-modules-notification-management-acorex-modules-notification-management-BSf1wd6j.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-ATFOFL7C.mjs +548 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-ATFOFL7C.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management.mjs +1 -3590
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- 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
- package/fesm2022/acorex-modules-order-management-bulk-buy-order-item.entity-63BpszqL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-order-management-entity.provider-DVHBXOCD.mjs → acorex-modules-order-management-entity.provider-DGwVhM91.mjs} +3 -3
- package/fesm2022/{acorex-modules-order-management-entity.provider-DVHBXOCD.mjs.map → acorex-modules-order-management-entity.provider-DGwVhM91.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-order-management-member-order-line.entity-DZJ90WHI.mjs → acorex-modules-order-management-member-order-line.entity-Czu7qE7i.mjs} +2 -2
- package/fesm2022/acorex-modules-order-management-member-order-line.entity-Czu7qE7i.mjs.map +1 -0
- package/fesm2022/acorex-modules-order-management.mjs +2 -2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-CBjAC9Ip.mjs → acorex-modules-organization-management-business-unit.entity-BkeFPaIT.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-CBjAC9Ip.mjs.map → acorex-modules-organization-management-business-unit.entity-BkeFPaIT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-chart.entity-CaY_5LGN.mjs → acorex-modules-organization-management-chart.entity-bWx4IFSv.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-chart.entity-CaY_5LGN.mjs.map → acorex-modules-organization-management-chart.entity-bWx4IFSv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-company.entity-BUBhqyCn.mjs → acorex-modules-organization-management-company.entity-yPUVhIzy.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-company.entity-BUBhqyCn.mjs.map → acorex-modules-organization-management-company.entity-yPUVhIzy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BZsy_wi6.mjs → acorex-modules-organization-management-entity.provider-IhJwnzd-.mjs} +15 -15
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BZsy_wi6.mjs.map → acorex-modules-organization-management-entity.provider-IhJwnzd-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-CEO1nSFP.mjs → acorex-modules-organization-management-feature-definition.provider-B5yqFa4Z.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-CEO1nSFP.mjs.map → acorex-modules-organization-management-feature-definition.provider-B5yqFa4Z.mjs.map} +1 -1
- 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
- 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
- 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
- package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-EEWB5VUq.mjs.map +1 -0
- 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
- package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-L2GmFRra.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-BoM49wYi.mjs → acorex-modules-organization-management-job-definition.entity-CDXsJADe.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-BoM49wYi.mjs.map → acorex-modules-organization-management-job-definition.entity-CDXsJADe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DbQG79uR.mjs → acorex-modules-organization-management-job-level.datasource-C84zFgVo.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DbQG79uR.mjs.map → acorex-modules-organization-management-job-level.datasource-C84zFgVo.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-XO-NsBG-.mjs → acorex-modules-organization-management-job-level.entity-BqjP04k-.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-organization-management-menu.provider-DXW6aUIX.mjs → acorex-modules-organization-management-menu.provider-ChR3Rh4W.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-menu.provider-DXW6aUIX.mjs.map → acorex-modules-organization-management-menu.provider-ChR3Rh4W.mjs.map} +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CuPEM-_N.mjs → acorex-modules-organization-management-org-chart.page-BzKPjJwY.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-BNthP0QV.mjs → acorex-modules-organization-management-permission-definition.provider-DShSa-Wp.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-organization-management-position.entity-Cja3CYmL.mjs → acorex-modules-organization-management-position.entity-DyF02saN.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-position.entity-Cja3CYmL.mjs.map → acorex-modules-organization-management-position.entity-DyF02saN.mjs.map} +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-nJuP6fA0.mjs → acorex-modules-organization-management-responsibilities-matrix.component-CBfTsRx4.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-nJuP6fA0.mjs.map → acorex-modules-organization-management-responsibilities-matrix.component-CBfTsRx4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-CvvzIjvE.mjs → acorex-modules-organization-management-responsibility-level.entity-BAm1en5A.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-CvvzIjvE.mjs.map → acorex-modules-organization-management-responsibility-level.entity-BAm1en5A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-Cc0Ou-hc.mjs → acorex-modules-organization-management-responsibility.entity-DTCMbqNy.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-Cc0Ou-hc.mjs.map → acorex-modules-organization-management-responsibility.entity-DTCMbqNy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-settings.provider-C33ZatCD.mjs → acorex-modules-organization-management-settings.provider-C6op-yff.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-settings.provider-C33ZatCD.mjs.map → acorex-modules-organization-management-settings.provider-C6op-yff.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-DGuF5ux1.mjs → acorex-modules-organization-management-team-business-unit.entity-B4Wra1YB.mjs} +3 -3
- package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-B4Wra1YB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-BMXkNavp.mjs → acorex-modules-organization-management-team-member-role.entity-CVH2m8uw.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-organization-management-team-member.entity-Deem7M3N.mjs → acorex-modules-organization-management-team-member.entity-By97LISn.mjs} +3 -3
- package/fesm2022/acorex-modules-organization-management-team-member.entity-By97LISn.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-team.entity-CNmpaJ3F.mjs → acorex-modules-organization-management-team.entity-Cezsw5Vq.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team.entity-CNmpaJ3F.mjs.map → acorex-modules-organization-management-team.entity-Cezsw5Vq.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +1 -1
- package/fesm2022/acorex-modules-person-core.mjs +1 -1
- package/fesm2022/acorex-modules-person-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-platform-dev-tools.mjs +3 -3
- package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-Cbf1rlEK.mjs → acorex-modules-platform-management-acorex-modules-platform-management-LJBIjN39.mjs} +5 -5
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-LJBIjN39.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-DIf_-oaM.mjs → acorex-modules-platform-management-menu-list.component-SXuHsuj0.mjs} +3 -3
- 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
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-procurement-management.mjs +2 -2
- package/fesm2022/acorex-modules-procurement-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-product-catalog-product-sku.entity-C3ynevYI.mjs → acorex-modules-product-catalog-product-sku.entity-DNgCnDtL.mjs} +2 -2
- package/fesm2022/acorex-modules-product-catalog-product-sku.entity-DNgCnDtL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-product-catalog-product.entity-BbB7GAg7.mjs → acorex-modules-product-catalog-product.entity-CBwSFTL2.mjs} +2 -2
- package/fesm2022/acorex-modules-product-catalog-product.entity-CBwSFTL2.mjs.map +1 -0
- package/fesm2022/acorex-modules-product-catalog.mjs +2 -2
- package/fesm2022/acorex-modules-report-management.mjs +7 -7
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-D7YtuAbZ.mjs} +7 -7
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-CrwUrIrC.mjs} +2 -2
- 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
- package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +4 -4
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-Dj9u0VEL.mjs → acorex-modules-settings-management-acorex-modules-settings-management-O8kBegUF.mjs} +136 -65
- package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-O8kBegUF.mjs.map +1 -0
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-DpRn1jAo.mjs → acorex-modules-settings-management-permission-definition.provider-CU7SEx6v.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-DpRn1jAo.mjs.map → acorex-modules-settings-management-permission-definition.provider-CU7SEx6v.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-C9wPgm_P.mjs → acorex-modules-settings-management-setting-page.component-D8_cjOzW.mjs} +181 -19
- package/fesm2022/acorex-modules-settings-management-setting-page.component-D8_cjOzW.mjs.map +1 -0
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-BQ69Bx8C.mjs → acorex-modules-settings-management-setting-view.component-DIvERzMC.mjs} +65 -17
- package/fesm2022/acorex-modules-settings-management-setting-view.component-DIvERzMC.mjs.map +1 -0
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/acorex-modules-subscription-management.mjs +2 -2
- package/fesm2022/acorex-modules-subscription-management.mjs.map +1 -1
- 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
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-Bp-9vZdR.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management-task-board.page-Brgg9wJa.mjs +3368 -0
- package/fesm2022/acorex-modules-task-management-task-board.page-Brgg9wJa.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/fesm2022/acorex-modules-tenant-management.mjs +2 -2
- package/fesm2022/acorex-modules-tenant-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-gXP-srRO.mjs +5600 -0
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-gXP-srRO.mjs.map +1 -0
- 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
- 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
- package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs → acorex-modules-workflow-management-activity-definition.entity-BlK-sL_3.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-workflow-management-automation.entity-BigK8yE2.mjs → acorex-modules-workflow-management-automation.entity-C9q24TPu.mjs} +3 -3
- package/fesm2022/acorex-modules-workflow-management-automation.entity-C9q24TPu.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-index-1B7oRAKX.mjs → acorex-modules-workflow-management-index-BFdyFvcu.mjs} +8 -5
- package/fesm2022/acorex-modules-workflow-management-index-BFdyFvcu.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-index-DC_9M9dk.mjs → acorex-modules-workflow-management-index-BbVGViSE.mjs} +7 -163
- package/fesm2022/acorex-modules-workflow-management-index-BbVGViSE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-index-34UZrsxw.mjs → acorex-modules-workflow-management-index-Bq5tBgif.mjs} +2 -2
- package/fesm2022/{acorex-modules-workflow-management-index-34UZrsxw.mjs.map → acorex-modules-workflow-management-index-Bq5tBgif.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-index-CxheG2ry.mjs → acorex-modules-workflow-management-index-CIV7Abnc.mjs} +115 -7
- package/fesm2022/acorex-modules-workflow-management-index-CIV7Abnc.mjs.map +1 -0
- 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
- 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
- package/fesm2022/acorex-modules-workflow-management-workflow-activity-instance-rows.utils-L8W4ogSI.mjs +172 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-activity-instance-rows.utils-L8W4ogSI.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-column.component-CPOQZxsq.mjs +79 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-column.component-CPOQZxsq.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-edit.component-CqF3z8Xq.mjs +466 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-edit.component-CqF3z8Xq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-DISpkWE4.mjs → acorex-modules-workflow-management-workflow-definition.entity-BbnGGXZs.mjs} +3 -2
- package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-BbnGGXZs.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-BnKT3Wgh.mjs → acorex-modules-workflow-management-workflow-instance.entity-Ci6c4VoI.mjs} +3 -3
- package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-BnKT3Wgh.mjs.map → acorex-modules-workflow-management-workflow-instance.entity-Ci6c4VoI.mjs.map} +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-CJ0cRwUE.mjs +579 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-CJ0cRwUE.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CHv2_W75.mjs +285 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CHv2_W75.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +1 -5212
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-D1a0CBhs.mjs +42 -0
- package/fesm2022/acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-D1a0CBhs.mjs.map +1 -0
- package/fesm2022/acorex-modules-workplacesafety-management-ppe-item-status.provider-VH_Bp0l5.mjs +70 -0
- package/fesm2022/acorex-modules-workplacesafety-management-ppe-item-status.provider-VH_Bp0l5.mjs.map +1 -0
- package/fesm2022/acorex-modules-workplacesafety-management.mjs +1229 -67
- package/fesm2022/acorex-modules-workplacesafety-management.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-ai-management.d.ts +23 -4
- package/types/acorex-modules-assessment-management.d.ts +214 -188
- package/types/acorex-modules-asset-management.d.ts +1 -0
- package/types/acorex-modules-calendar-management.d.ts +61 -33
- package/types/acorex-modules-common.d.ts +14 -4
- package/types/acorex-modules-conversation.d.ts +59 -14
- package/types/acorex-modules-dashboard-management.d.ts +14 -2
- package/types/acorex-modules-document-management.d.ts +8 -0
- package/types/acorex-modules-human-capital-management.d.ts +28 -14
- package/types/acorex-modules-notification-management.d.ts +32 -3
- package/types/acorex-modules-report-management.d.ts +3 -0
- package/types/acorex-modules-settings-management.d.ts +12 -2
- package/types/acorex-modules-task-management.d.ts +196 -47
- package/types/acorex-modules-workflow-management.d.ts +41 -39
- package/types/acorex-modules-workplacesafety-management.d.ts +124 -4
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-IHgQ8RVH.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-nkFpnKE2.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-Sd4gRHo5.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-question-bank-item.entity-RLIfWCzq.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-B8LMKqVO.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-CZBnfCYE.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-BUuEzfsI.mjs +0 -803
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-BUuEzfsI.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-DnmLfX5x.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-master.layout-DMP4RC6L.mjs +0 -25
- package/fesm2022/acorex-modules-auth-master.layout-DMP4RC6L.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-user-sessions.component-gJSHI_eh.mjs.map +0 -1
- package/fesm2022/acorex-modules-calendar-management-datasource.provider-C_iazC89.mjs +0 -95
- package/fesm2022/acorex-modules-calendar-management-datasource.provider-C_iazC89.mjs.map +0 -1
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-txpooXrE.mjs.map +0 -1
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DYW31fEm.mjs.map +0 -1
- package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQlE8l4c.mjs +0 -329
- package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQlE8l4c.mjs.map +0 -1
- package/fesm2022/acorex-modules-conversation-comments-page.component-CNqL-HdS.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-kk0CINL1.mjs.map +0 -1
- package/fesm2022/acorex-modules-data-management-index-DEm_BsbE.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-DrKulwY-.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-CrVU_3Jv.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-QeY6lcUY.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-D7B3adkZ.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-Dim-8hT7.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-3HtYOKrY.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-Bz2SZcmm.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-course.entity-DUUgeikJ.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-enrollment.entity-CdJafrUh.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-learning-path.entity-Zo--bDto.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-skill.entity-VXkLbaD4.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-training.entity-C4KDv1uh.mjs.map +0 -1
- package/fesm2022/acorex-modules-locale-management-profiles-BOveGIcE.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DiM2aFgg.mjs.map +0 -1
- package/fesm2022/acorex-modules-notification-management-notification-page.component-6YOiGgKm.mjs +0 -858
- package/fesm2022/acorex-modules-notification-management-notification-page.component-6YOiGgKm.mjs.map +0 -1
- package/fesm2022/acorex-modules-order-management-bulk-buy-order-item.entity-DGtHoqqj.mjs.map +0 -1
- package/fesm2022/acorex-modules-order-management-member-order-line.entity-DZJ90WHI.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-aWZO09Xw.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-DJcFhQM9.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-DGuF5ux1.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team-member.entity-Deem7M3N.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-Cbf1rlEK.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-product-sku.entity-C3ynevYI.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-product.entity-BbB7GAg7.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-Dj9u0VEL.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-page.component-C9wPgm_P.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-view.component-BQ69Bx8C.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-BB7eeaYX.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-BmUIngWk.mjs +0 -2284
- package/fesm2022/acorex-modules-task-management-task-board.page-BmUIngWk.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-automation.entity-BigK8yE2.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-index-1B7oRAKX.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-index-CxheG2ry.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-index-DC_9M9dk.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DISpkWE4.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-B4hEv2-a.mjs +0 -255
- 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,
|
|
6
|
-
import {
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
*
|
|
1210
|
+
* Create a default section
|
|
1215
1211
|
*/
|
|
1216
|
-
function
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
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
|
-
*
|
|
1225
|
+
* All questionnaire item names currently in the structure (for uniqueness when allocating new names).
|
|
1227
1226
|
*/
|
|
1228
|
-
function
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
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
|
|
1235
|
+
return set;
|
|
1236
1236
|
}
|
|
1237
1237
|
/**
|
|
1238
|
-
*
|
|
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
|
|
1241
|
-
|
|
1242
|
-
|
|
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
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
4496
|
-
this.
|
|
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()?.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
<
|
|
6644
|
-
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
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
|
-
<
|
|
6775
|
-
|
|
6776
|
-
|
|
6777
|
-
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
6929
|
-
}]
|
|
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
|
|
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
|
|
6966
|
-
}]
|
|
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
|
-
|
|
7008
|
-
|
|
7009
|
-
|
|
7010
|
-
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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: [
|
|
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
|
|
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
|
|
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="
|
|
9045
|
-
|
|
9046
|
-
|
|
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="
|
|
9165
|
-
|
|
9166
|
-
|
|
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,
|
|
9221
|
-
//# sourceMappingURL=acorex-modules-assessment-management-acorex-modules-assessment-management-
|
|
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
|