@acorex/modules 21.0.0-next.56 → 21.0.0-next.59
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-application-management.mjs +1 -1
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-DcPnI9fZ.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-o8aFazwA.mjs} +72 -78
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-o8aFazwA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-D880d_qz.mjs → acorex-modules-assessment-management-assessment-case.entity-yrc_Yybq.mjs} +67 -71
- package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-yrc_Yybq.mjs.map +1 -0
- package/fesm2022/acorex-modules-assessment-management-assessment-session-answers-view.util-BUQa_TSY.mjs +47 -0
- package/fesm2022/acorex-modules-assessment-management-assessment-session-answers-view.util-BUQa_TSY.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-DvbocIN1.mjs → acorex-modules-assessment-management-assessment-session.entity-Cwf30iuu.mjs} +5 -41
- package/fesm2022/acorex-modules-assessment-management-assessment-session.entity-Cwf30iuu.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-BMJ54EPO.mjs → acorex-modules-assessment-management-fill-assessment-session.command-CJieLR5g.mjs} +32 -7
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-CJieLR5g.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-index-XdJCIYG3.mjs → acorex-modules-assessment-management-index-D8KjfHAH.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-index-XdJCIYG3.mjs.map → acorex-modules-assessment-management-index-D8KjfHAH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-CO8NfjEb.mjs → acorex-modules-assessment-management-preview-question.command-D0-FB1HH.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-CO8NfjEb.mjs.map → acorex-modules-assessment-management-preview-question.command-D0-FB1HH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-DSzbtU0e.mjs → acorex-modules-assessment-management-preview-questionnaire.command-wqPNgv7q.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-DSzbtU0e.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-wqPNgv7q.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DbvxAUgb.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DYyUhSWd.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DbvxAUgb.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DYyUhSWd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-DBfQhSKR.mjs → acorex-modules-assessment-management-question-bank-item.entity-DUf2ceKY.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-DBfQhSKR.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-DUf2ceKY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-CL9s20qR.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-CYF0k42_.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-CL9s20qR.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-CYF0k42_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-CH_cJlSf.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Cy5ElBmU.mjs} +111 -28
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-Cy5ElBmU.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CrryBMC2.mjs → acorex-modules-assessment-management-questionnaire.entity-RWSkzNbA.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CrryBMC2.mjs.map → acorex-modules-assessment-management-questionnaire.entity-RWSkzNbA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-Dq5VComh.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-koGmUbNE.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-Dq5VComh.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-koGmUbNE.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management-view-case-last-session-answers.command-NTuDdoYk.mjs +157 -0
- package/fesm2022/acorex-modules-assessment-management-view-case-last-session-answers.command-NTuDdoYk.mjs.map +1 -0
- package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-0btGV66_.mjs +172 -0
- package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-0btGV66_.mjs.map +1 -0
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-NPUjHz-F.mjs → acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs} +42 -33
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-h61xNtRT.mjs → acorex-modules-auth-app-chooser.component-BEktaBWD.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-h61xNtRT.mjs.map → acorex-modules-auth-app-chooser.component-BEktaBWD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-DF5AHqYe.mjs → acorex-modules-auth-login.module-aAwHzXPj.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-DF5AHqYe.mjs.map → acorex-modules-auth-login.module-aAwHzXPj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-00ZTMhc3.mjs → acorex-modules-auth-master.layout-BapDYFZ_.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-00ZTMhc3.mjs.map → acorex-modules-auth-master.layout-BapDYFZ_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-Ce5Fw8Qd.mjs → acorex-modules-auth-oauth-callback.component-Cyu2vqyK.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-Ce5Fw8Qd.mjs.map → acorex-modules-auth-oauth-callback.component-Cyu2vqyK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DQYCm8wg.mjs → acorex-modules-auth-password.component-DB-ac0Rn.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-DQYCm8wg.mjs.map → acorex-modules-auth-password.component-DB-ac0Rn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-CU0AY-Ia.mjs → acorex-modules-auth-password.component-cPmwNpuq.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-CU0AY-Ia.mjs.map → acorex-modules-auth-password.component-cPmwNpuq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-CM4fRaWb.mjs → acorex-modules-auth-routes-r72zIRTa.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-CM4fRaWb.mjs.map → acorex-modules-auth-routes-r72zIRTa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-BBztdcvq.mjs → acorex-modules-auth-tenant-chooser.component-AQA2o6Ty.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-BBztdcvq.mjs.map → acorex-modules-auth-tenant-chooser.component-AQA2o6Ty.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-C9AafF86.mjs → acorex-modules-auth-two-factor.module-Dx0CC5ic.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-C9AafF86.mjs.map → acorex-modules-auth-two-factor.module-Dx0CC5ic.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Qw2sgsEe.mjs → acorex-modules-auth-user-sessions.component-3Wr7DUDQ.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Qw2sgsEe.mjs.map → acorex-modules-auth-user-sessions.component-3Wr7DUDQ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/{acorex-modules-common-audit-info-column.component-SiqKcBMQ.mjs → acorex-modules-common-audit-info-column.component-MSYPMPZJ.mjs} +2 -2
- package/fesm2022/{acorex-modules-common-audit-info-column.component-SiqKcBMQ.mjs.map → acorex-modules-common-audit-info-column.component-MSYPMPZJ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-common.mjs +8 -4
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-UNhA-qi5.mjs → acorex-modules-conversation-acorex-modules-conversation-DkdNLMKa.mjs} +344 -1008
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DkdNLMKa.mjs.map +1 -0
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Be58gcns.mjs → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-VKPbkRqI.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Be58gcns.mjs.map → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-VKPbkRqI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-comments-page.component-3XBLeMW8.mjs → acorex-modules-conversation-comments-page.component-ehUCjoFD.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-comments-page.component-3XBLeMW8.mjs.map → acorex-modules-conversation-comments-page.component-ehUCjoFD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CSu-lJuu.mjs → acorex-modules-conversation-send-assist-chat-message.command-ZNcVi54N.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CSu-lJuu.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-ZNcVi54N.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-CyoncQB1.mjs → acorex-modules-conversation-start-assist-chat.command-CX6lm1lG.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-CyoncQB1.mjs.map → acorex-modules-conversation-start-assist-chat.command-CX6lm1lG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1 -1
- package/fesm2022/acorex-modules-customer-management.mjs +2 -0
- package/fesm2022/acorex-modules-customer-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +6 -5
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-Bfjo-ENr.mjs → acorex-modules-help-desk-acorex-modules-help-desk-DVlO9JZw.mjs} +3 -2
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-DVlO9JZw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-CsACFkPq.mjs → acorex-modules-help-desk-capture-screen.component-rNPehEf8.mjs} +2 -2
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-CsACFkPq.mjs.map → acorex-modules-help-desk-capture-screen.component-rNPehEf8.mjs.map} +1 -1
- package/fesm2022/acorex-modules-help-desk.mjs +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-XhV2JQXs.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-BWezAea1.mjs} +131 -112
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-BWezAea1.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-Cre30Kp7.mjs → acorex-modules-human-capital-management-approve-leave-request.command-Bh_Bbq5-.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-Cre30Kp7.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-Bh_Bbq5-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-NYgddiaD.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-BpDdDG9i.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-NYgddiaD.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-BpDdDG9i.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DPh-KQgN.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-CjtKaKFw.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-DPh-KQgN.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-CjtKaKFw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-znCbbQUd.mjs → acorex-modules-human-capital-management-employee.entity-Cx_oY2aK.mjs} +8 -8
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-Cx_oY2aK.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-DUNB3zAB.mjs → acorex-modules-human-capital-management-employment-type.entity-B20Taa5x.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-DUNB3zAB.mjs.map → acorex-modules-human-capital-management-employment-type.entity-B20Taa5x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-JyFrrCGE.mjs → acorex-modules-human-capital-management-leave-request.entity-BO8QXpZE.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-JyFrrCGE.mjs.map → acorex-modules-human-capital-management-leave-request.entity-BO8QXpZE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-B61MiEPu.mjs → acorex-modules-human-capital-management-leave-type.entity-CQwSWqSh.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-B61MiEPu.mjs.map → acorex-modules-human-capital-management-leave-type.entity-CQwSWqSh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-lifecycle-process-type.entity-DJqo2kTG.mjs → acorex-modules-human-capital-management-lifecycle-event-type.entity-BPWJrvbN.mjs} +13 -13
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-BPWJrvbN.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employee-lifecycle-process.entity-LX68KORg.mjs → acorex-modules-human-capital-management-lifecycle-event.entity-ZZuPu9KQ.mjs} +45 -56
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-ZZuPu9KQ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-CKCC6bKg.mjs → acorex-modules-human-capital-management-position-assignment.entity-BN1y0qhi.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-CKCC6bKg.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-BN1y0qhi.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-Blv08UQZ.mjs → acorex-modules-human-capital-management-reject-leave-request.command-LczqOHP-.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-Blv08UQZ.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-LczqOHP-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-lgEAbxYH.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-Dm8YacDI.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-lgEAbxYH.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-Dm8YacDI.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-DPwuyFz2.mjs +237 -0
- package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-DPwuyFz2.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/{acorex-modules-learning-management-enrollment.entity-B53AQq_9.mjs → acorex-modules-learning-management-enrollment.entity-CdJafrUh.mjs} +4 -22
- package/fesm2022/acorex-modules-learning-management-enrollment.entity-CdJafrUh.mjs.map +1 -0
- package/fesm2022/acorex-modules-learning-management.mjs +1 -1
- package/fesm2022/acorex-modules-learning-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-locale-management.mjs +27 -22
- package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +1 -0
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-platform-dev-tools.mjs +2 -2
- package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-5DJoQkx2.mjs → acorex-modules-platform-management-acorex-modules-platform-management-Cbf1rlEK.mjs} +4 -4
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-5DJoQkx2.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-Cbf1rlEK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-C3WBYbOt.mjs → acorex-modules-platform-management-menu-list.component-DIf_-oaM.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-C3WBYbOt.mjs.map → acorex-modules-platform-management-menu-list.component-DIf_-oaM.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +3 -0
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-Di6Sxtq3.mjs → acorex-modules-settings-management-acorex-modules-settings-management-B4Ee8USF.mjs} +6 -6
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-Di6Sxtq3.mjs.map → acorex-modules-settings-management-acorex-modules-settings-management-B4Ee8USF.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-Bml5VZUT.mjs → acorex-modules-settings-management-permission-definition.provider-nNhEFyc-.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-Bml5VZUT.mjs.map → acorex-modules-settings-management-permission-definition.provider-nNhEFyc-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-lN-7sTpD.mjs → acorex-modules-settings-management-setting-page.component-CEvWwS_a.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-lN-7sTpD.mjs.map → acorex-modules-settings-management-setting-page.component-CEvWwS_a.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-D17G4RNQ.mjs → acorex-modules-settings-management-setting-view.component-C6ftmjuK.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-D17G4RNQ.mjs.map → acorex-modules-settings-management-setting-view.component-C6ftmjuK.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/acorex-modules-supplier-management.mjs +1 -0
- package/fesm2022/acorex-modules-supplier-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-LQn5gZ6p.mjs → acorex-modules-task-management-acorex-modules-task-management--mdNdYIs.mjs} +32 -2
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management--mdNdYIs.mjs.map +1 -0
- package/fesm2022/{acorex-modules-task-management-task-board.page-BokG-G6Z.mjs → acorex-modules-task-management-task-board.page-BIZ1qH7m.mjs} +35 -5
- package/fesm2022/acorex-modules-task-management-task-board.page-BIZ1qH7m.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-OLbCD-7P.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-B4DLmioy.mjs} +3 -3
- package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-OLbCD-7P.mjs.map → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-B4DLmioy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-index-BxqOP8AA.mjs → acorex-modules-workflow-management-index-BhVZ1Bcw.mjs} +104 -23
- package/fesm2022/acorex-modules-workflow-management-index-BhVZ1Bcw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-workflow-management-index-Eh5DDK-V.mjs → acorex-modules-workflow-management-index-DC_9M9dk.mjs} +3 -3
- package/fesm2022/{acorex-modules-workflow-management-index-Eh5DDK-V.mjs.map → acorex-modules-workflow-management-index-DC_9M9dk.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-B_V3uMSI.mjs → acorex-modules-workflow-management-workflow-instance.entity-BnKT3Wgh.mjs} +2 -2
- package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-B_V3uMSI.mjs.map → acorex-modules-workflow-management-workflow-instance.entity-BnKT3Wgh.mjs.map} +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-DjYDwHWU.mjs +255 -0
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-DjYDwHWU.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +1819 -745
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-assessment-management.d.ts +4 -7
- package/types/acorex-modules-common.d.ts +1 -0
- package/types/acorex-modules-conversation.d.ts +35 -198
- package/types/acorex-modules-human-capital-management.d.ts +31 -30
- package/types/acorex-modules-learning-management.d.ts +0 -1
- package/types/acorex-modules-task-management.d.ts +41 -2
- package/types/acorex-modules-workflow-management.d.ts +280 -34
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DcPnI9fZ.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-D880d_qz.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-assessment-session.entity-DvbocIN1.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-BMJ54EPO.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-CH_cJlSf.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-DpppXekm.mjs +0 -112
- package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-DpppXekm.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-NPUjHz-F.mjs.map +0 -1
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-UNhA-qi5.mjs.map +0 -1
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-Bfjo-ENr.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-XhV2JQXs.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-employee-lifecycle-process.entity-LX68KORg.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-znCbbQUd.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-process-type.entity-DJqo2kTG.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-enrollment.entity-B53AQq_9.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-LQn5gZ6p.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-BokG-G6Z.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-index-BxqOP8AA.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-DMszilef.mjs +0 -356
- package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-DMszilef.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-master.layout-
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-master.layout-BapDYFZ_.mjs","sources":["../../../../libs/modules/auth/src/lib/shared/layouts/master/master.layout.ts","../../../../libs/modules/auth/src/lib/shared/layouts/master/master.layout.html"],"sourcesContent":["import { AXP_PLATFORM_CONFIG_TOKEN } from '@acorex/platform/common';\nimport { AXPLogoComponent } from '@acorex/platform/layout/components';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXM_AUTH_CONFIG_TOKEN } from '../../../auth.config';\nimport { AXPComponentSlotModule, AXPContextStore } from '@acorex/platform/core';\n\n@Component({\n templateUrl: 'master.layout.html',\n styleUrls: ['master.layout.scss'],\n imports: [RouterModule, AXPLogoComponent, AXPComponentSlotModule],\n providers: [AXPContextStore],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXPAuthMasterLayoutComponent {\n protected authConfig = inject(AXM_AUTH_CONFIG_TOKEN);\n protected platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);\n}\n","<div class=\"ax-w-full ax-h-full ax-flex\">\n <div\n class=\"ax-flex-1 ax-bg-lighter ax-text-on-lighter dark:ax-bg-darkest dark:ax-text-on-darkest ax-flex ax-flex-col ax-items-center ax-justify-between ax-py-12\"\n >\n <router-outlet></router-outlet>\n <div class=\"ax-flex ax-justify-between\">\n <div class=\"auth-footer-links\">\n <axp-component-slot name=\"auth-footer-links\"></axp-component-slot>\n </div>\n </div>\n </div>\n <div\n class=\"ax-hidden lg:ax-flex ax-bg-primary-500 ax-light ax-text-primary-on-surface ax-text-on-brand ax-flex-1 axp-auth-bk\"\n >\n <div class=\"ax-flex ax-w-full ax-flex-col ax-justify-between ax-px-48 ax-py-20 ax-text-center\">\n <div>\n <axp-logo\n [source]=\"platformConfig.logo?.full?.dark\"\n [attr.alt]=\"platformConfig.title\"\n class=\"ax-mx-auto ax-text-2xl\"\n ></axp-logo>\n </div>\n <div class=\"ax-text-primary-on-dark dark:ax-text-primary-on-darkest\">\n <p class=\"ax-font-black ax-text-4xl ax-mb-4\">{{authConfig.signinPage?.slogan}}</p>\n <p>{{authConfig.signinPage?.description}}</p>\n </div>\n </div>\n </div>\n</div>\n"],"names":["i2"],"mappings":";;;;;;;;;;MAca,4BAA4B,CAAA;AAPzC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC7D,IAAA;8GAHY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAH5B,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX9B,6qCA6BA,EAAA,MAAA,EAAA,CAAA,8SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIrD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AAGC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,EAAA,SAAA,EACtD,CAAC,eAAe,CAAC,EAAA,aAAA,EACb,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,6qCAAA,EAAA,MAAA,EAAA,CAAA,8SAAA,CAAA,EAAA;;;;;"}
|
|
@@ -12,7 +12,7 @@ import * as i0 from '@angular/core';
|
|
|
12
12
|
import { inject, Component } from '@angular/core';
|
|
13
13
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
14
14
|
import { BehaviorSubject } from 'rxjs';
|
|
15
|
-
import { A as AXM_AUTH_CONFIG_TOKEN } from './acorex-modules-auth-acorex-modules-auth-
|
|
15
|
+
import { A as AXM_AUTH_CONFIG_TOKEN } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
16
16
|
|
|
17
17
|
class AXPOAuthCallbackComponent {
|
|
18
18
|
constructor() {
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
94
94
|
}] });
|
|
95
95
|
|
|
96
96
|
export { AXPOAuthCallbackComponent };
|
|
97
|
-
//# sourceMappingURL=acorex-modules-auth-oauth-callback.component-
|
|
97
|
+
//# sourceMappingURL=acorex-modules-auth-oauth-callback.component-Cyu2vqyK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-oauth-callback.component-
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-oauth-callback.component-Cyu2vqyK.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/callback/oauth-callback.component.ts","../../../../libs/modules/auth/src/lib/pages/callback/oauth-callback.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPAuthStrategyRegistryService, AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXMAuthConfigs, AXM_AUTH_CONFIG_TOKEN } from '../../auth.config';\n\n@Component({\n selector: 'axp-oauth-callback',\n templateUrl: './oauth-callback.component.html',\n imports: [CommonModule, AXButtonModule, AXLoadingModule, AXTranslationModule, AXPStateMessageComponent],\n standalone: true,\n})\nexport class AXPOAuthCallbackComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n private sessionService = inject(AXPSessionService);\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private homePageService = inject(AXPHomePageService);\n protected configs: AXMAuthConfigs = inject<AXMAuthConfigs>(AXM_AUTH_CONFIG_TOKEN);\n private authStrategyRegistry = inject(AXPAuthStrategyRegistryService);\n private strategyName = this.sessionService.getSessionData()?.strategy;\n private strategy = this.authStrategyRegistry.get(this.strategyName!);\n\n //#endregion\n\n //#region ---- Properties ----\n\n protected isLoading$ = new BehaviorSubject<boolean>(true);\n protected error$ = new BehaviorSubject<string | null>(null);\n protected status$ = new BehaviorSubject<string>('Processing authorization...');\n // Removed: @Input() flow\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n async ngOnInit(): Promise<void> {\n try {\n const queryParams = this.route.snapshot.queryParams;\n const code = queryParams['code'];\n const error = queryParams['error'];\n // Removed: flowParam and its assignment\n if (error) {\n throw new Error(`OAuth error: ${error} - ${queryParams['error_description'] || 'Unknown error'}`);\n }\n if (!code) {\n throw new Error('No authorization code received from OAuth provider');\n }\n this.status$.next('Exchanging authorization code for tokens...');\n\n // Use redirect URI from injected auth configs\n const redirectUri = this.configs.authConfig?.redirectUri || '/auth/axp-oauth-callback';\n await this.sessionService.updateToken({ code, redirectUri: redirectUri });\n this.status$.next('Authentication successful! Redirecting...');\n await this.navigateAfterSuccess();\n } catch (error) {\n console.error('OAuth callback error:', error);\n this.error$.next('Authentication failed. Please try again.');\n this.isLoading$.next(false);\n } finally {\n this.isLoading$.next(false);\n }\n }\n\n //#endregion\n\n //#region ---- Navigation ----\n\n private async navigateAfterSuccess(): Promise<void> {\n // Use await with router.navigate to ensure navigation completes\n if (this.sessionService.tenant?.id == null) {\n await this.router.navigate(['/auth/account/tenant-chooser']);\n return;\n }\n if (this.sessionService.application?.id == null) {\n await this.router.navigate(['/auth/account/app-chooser']);\n return;\n }\n // Navigate to home page\n await this.homePageService.navigateTo();\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected handleRetry(): void {\n this.router.navigate(['/auth/login']);\n }\n\n protected handleGoHome(): void {\n this.router.navigate(['/']);\n }\n\n //#endregion\n}\n","<ng-container *translate=\"let t\">\n <div class=\"ax-h-full ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-8\">\n <div class=\"ax-w-96 ax-text-center\">\n <!-- Loading State -->\n @if (isLoading$ | async) {\n <axp-state-message\n mode=\"loading\"\n icon=\"fa-solid fa-spinner fa-spin\"\n [title]=\"(status$ | async) || '@auth:state-message.loading.title'\"\n [description]=\"'@auth:state-message.loading.description'\"\n >\n </axp-state-message>\n }\n\n <!-- Error State -->\n @if ((error$ | async) && !(isLoading$ | async)) {\n <axp-state-message\n mode=\"error\"\n icon=\"fa-solid fa-exclamation-triangle\"\n [title]=\"'@auth:state-message.error.title'\"\n [description]=\"(error$ | async) || '@auth:state-message.error.description'\"\n >\n <div slot=\"actions\" class=\"ax-flex ax-flex-col ax-gap-2 sm:ax-flex-row sm:ax-justify-center\">\n <ax-button color=\"primary\" text=\"Try Again\" (onClick)=\"handleRetry()\" class=\"ax-w-full sm:ax-w-auto\">\n </ax-button>\n <ax-button color=\"default\" text=\"Go Home\" (onClick)=\"handleGoHome()\" class=\"ax-w-full sm:ax-w-auto\">\n </ax-button>\n </div>\n </axp-state-message>\n }\n\n <!-- Success State (briefly shown before redirect) -->\n @if (!(isLoading$ | async) && !(error$ | async)) {\n <axp-state-message\n mode=\"success\"\n icon=\"fa-solid fa-check\"\n [title]=\"'@auth:state-message.success.title'\"\n [description]=\"'@auth:state-message.success.description'\"\n >\n </axp-state-message>\n }\n </div>\n </div>\n</ng-container>\n"],"names":["i3"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import * as i0 from '@angular/core';
|
|
|
16
16
|
import { inject, Component } from '@angular/core';
|
|
17
17
|
import * as i1$2 from '@angular/router';
|
|
18
18
|
import { RouterModule } from '@angular/router';
|
|
19
|
-
import { A as AXM_AUTH_CONFIG_TOKEN, b as AXMAuthenticationTypes } from './acorex-modules-auth-acorex-modules-auth-
|
|
19
|
+
import { A as AXM_AUTH_CONFIG_TOKEN, b as AXMAuthenticationTypes } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
20
20
|
|
|
21
21
|
const MODULES = [
|
|
22
22
|
CommonModule,
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
56
56
|
}] });
|
|
57
57
|
|
|
58
58
|
export { AXPForgetPasswordComponent };
|
|
59
|
-
//# sourceMappingURL=acorex-modules-auth-password.component-
|
|
59
|
+
//# sourceMappingURL=acorex-modules-auth-password.component-DB-ac0Rn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-password.component-
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-password.component-DB-ac0Rn.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/forgot/password/password.component.ts","../../../../libs/modules/auth/src/lib/pages/forgot/password/password.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXPasswordBoxModule } from '@acorex/components/password-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXMAuthConfigs, AXMAuthenticationTypes, AXM_AUTH_CONFIG_TOKEN } from '../../../auth.config';\n\nconst MODULES = [\n CommonModule,\n AXFormModule,\n AXTextBoxModule,\n AXPasswordBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTranslationModule,\n RouterModule,\n];\n\n@Component({\n templateUrl: './password.component.html',\n imports: [...MODULES],\n})\nexport class AXPForgetPasswordComponent implements OnInit {\n protected l1!: string;\n protected l2!: string;\n\n protected configs: AXMAuthConfigs = inject<AXMAuthConfigs>(AXM_AUTH_CONFIG_TOKEN);\n\n ngOnInit(): void {\n this.l2 = 'password';\n switch (this.configs.type) {\n case AXMAuthenticationTypes.EmailPassword:\n this.l1 = 'email';\n break;\n case AXMAuthenticationTypes.MobilePassword:\n this.l1 = 'mobile';\n\n break;\n case AXMAuthenticationTypes.UsernamePassword:\n default:\n this.l1 = 'username';\n }\n }\n}\n","<div class=\"ax-text-center ax-mb-4\" *translate=\"let t\">\n <h1 class=\"ax-font-bold ax-text-xl ax-mb-2\">{{ '@auth:forgot.password' | translate | async }}</h1>\n <p class=\"ax-text-base ax-text-neutral-600\">\n {{ '@auth:forgot.hint' | translate | async }}\n </p>\n</div>\n<div class=\"ax-w-80 lg:ax-w-96\" *translate=\"let t\">\n <ax-form>\n <div class=\"ax-flex ax-flex-col ax-gap-6\">\n <ax-form-field>\n <ax-label>{{ '@auth:username-email' | translate | async }}</ax-label>\n <ax-text-box></ax-text-box>\n </ax-form-field>\n </div>\n <ax-button color=\"primary\" class=\"ax-mt-6 ax-w-full\" [text]=\"'@auth:forgot.submit' | translate | async\"></ax-button>\n <div class=\"ax-text-center ax-mt-6 ax-text-sm ax-font-normal\">\n <span> {{ '@auth:forgot.remember' | translate | async }} </span>\n <a [routerLink]=\"['/auth/login']\" class=\"ax-links ax-font-semibold\">{{\n '@auth:signin.title' | translate | async\n }}</a>\n </div>\n </ax-form>\n</div>\n"],"names":["i4","i6","i7","i5"],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ import { AXPHomePageService } from '@acorex/platform/common';
|
|
|
29
29
|
import * as i1$2 from '@angular/forms';
|
|
30
30
|
import { FormsModule } from '@angular/forms';
|
|
31
31
|
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
|
32
|
-
import { A as AXM_AUTH_CONFIG_TOKEN, b as AXMAuthenticationTypes } from './acorex-modules-auth-acorex-modules-auth-
|
|
32
|
+
import { A as AXM_AUTH_CONFIG_TOKEN, b as AXMAuthenticationTypes } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
33
33
|
|
|
34
34
|
//#region ---- Default Challenge Component ----
|
|
35
35
|
/**
|
|
@@ -560,4 +560,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
560
560
|
}] } });
|
|
561
561
|
|
|
562
562
|
export { AXPLoginPasswordComponent };
|
|
563
|
-
//# sourceMappingURL=acorex-modules-auth-password.component-
|
|
563
|
+
//# sourceMappingURL=acorex-modules-auth-password.component-cPmwNpuq.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-password.component-CU0AY-Ia.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/login/password/default-challenge.component.ts","../../../../libs/modules/auth/src/lib/pages/login/password/password.component.ts","../../../../libs/modules/auth/src/lib/pages/login/password/password.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPLoginChallengeComponentBase } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\nimport { Component, signal } from '@angular/core';\n\n//#region ---- Default Challenge Component ----\n\n/**\n * Default built-in challenge component for login\n * Shows challenge image/content with an input field and refresh button\n */\n@Component({\n selector: 'axp-default-challenge',\n standalone: true,\n imports: [\n AXButtonModule,\n AXTextBoxModule,\n AXLabelModule,\n AXFormModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n AXValidationModule,\n CommonModule,\n ],\n template: `\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-p-4 ax-border ax-rounded-md ax-border-warning-300 ax-bg-warning-50\">\n <!-- Challenge Image -->\n <div class=\"ax-flex ax-items-center ax-justify-center ax-gap-2\">\n @if (challengeData(); as challenge) {\n @if (challenge.contentType === 'image-base64') {\n <img\n [src]=\"'data:image/png;base64,' + challenge.content\"\n alt=\"Security Challenge\"\n class=\"ax-h-12 ax-border ax-rounded\"\n />\n } @else if (challenge.contentType === 'image-url') {\n <img [src]=\"challenge.content\" alt=\"Security Challenge\" class=\"ax-h-12 ax-border ax-rounded\" />\n } @else {\n <span class=\"ax-font-mono ax-text-lg ax-p-2 ax-border ax-rounded ax-bg-white\">\n {{ challenge.content }}\n </span>\n }\n }\n <!-- Refresh Challenge Button -->\n <ax-button\n look=\"blank\"\n color=\"primary\"\n class=\"ax-sm\"\n id=\"refresh-challenge\"\n (onClick)=\"onRefreshClick()\"\n [disabled]=\"isLoading()\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon><i class=\"fa-solid fa-rotate\"></i></ax-icon>\n }\n </ax-button>\n </div>\n\n <!-- Challenge Response Input -->\n <ax-form-field>\n <ax-label>{{ '@auth:challenge.enter-code' | translate | async }}</ax-label>\n <ax-text-box\n [name]=\"'challengeResponse'\"\n id=\"challenge-response\"\n [placeholder]=\"'@auth:challenge.placeholder' | translate | async\"\n [value]=\"response()\"\n (valueChange)=\"onResponseChange($event)\"\n >\n <ax-validation-rule rule=\"required\"></ax-validation-rule>\n </ax-text-box>\n </ax-form-field>\n </div>\n `,\n})\nexport class AXPDefaultChallengeComponent extends AXPLoginChallengeComponentBase {\n //#region ---- Local State ----\n\n /** Local state for the response input */\n protected response = signal<string>('');\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n /**\n * Handles response input change\n */\n protected onResponseChange(value: string): void {\n this.response.set(value);\n this.responseChange.emit(value);\n }\n\n /**\n * Handles refresh button click\n */\n protected onRefreshClick(): void {\n this.refreshRequest.emit();\n }\n\n //#endregion\n}\n\n//#endregion\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPasswordBoxModule } from '@acorex/components/password-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n ComponentRef,\n Injector,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\n\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport {\n AXPLoginChallengeComponentBase,\n AXPLoginChallengeData,\n AXPSessionService,\n AXP_LOGIN_CHALLENGE_PROVIDER,\n} from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { FormsModule } from '@angular/forms';\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\nimport { AXMAuthConfigs, AXMAuthenticationTypes, AXM_AUTH_CONFIG_TOKEN } from '../../../auth.config';\nimport { AXPDefaultChallengeComponent } from './default-challenge.component';\n\n//#region ---- Module Imports ----\n\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXTextBoxModule,\n AXPasswordBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXTranslationModule,\n AXLoadingModule,\n RouterModule,\n AXValidationModule,\n];\n\n//#endregion\n\n@Component({\n templateUrl: './password.component.html',\n imports: [...MODULES],\n})\nexport class AXPLoginPasswordComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n protected configs: AXMAuthConfigs = inject<AXMAuthConfigs>(AXM_AUTH_CONFIG_TOKEN);\n private dialogService = inject(AXDialogService);\n private sessionService = inject(AXPSessionService);\n private activateRoute = inject(ActivatedRoute);\n private homePageService = inject(AXPHomePageService);\n private toastService = inject(AXToastService);\n private router = inject(Router);\n protected injector = inject(Injector);\n\n /** Optional challenge provider - injected only if configured */\n private challengeProvider = inject(AXP_LOGIN_CHALLENGE_PROVIDER, { optional: true });\n\n //#endregion\n\n //#region ---- Form References ----\n\n @ViewChild(AXFormComponent)\n private form!: AXFormComponent;\n\n //#endregion\n\n //#region ---- Form Fields ----\n\n /** Label key for the first input field (username/email/mobile) */\n protected l1!: string;\n\n /** Label key for the second input field (password) */\n protected l2!: string;\n\n /** Value of the first input field (username/email) */\n protected v1 = '';\n\n /** Value of the second input field (password) */\n protected v2: string | null = '';\n\n /** Whether to keep the user logged in */\n protected isKeepLogin = false;\n\n //#endregion\n\n //#region ---- Challenge State ----\n\n /** ViewContainerRef for rendering the challenge component */\n @ViewChild('challengeContainer', { read: ViewContainerRef })\n private challengeContainerRef?: ViewContainerRef;\n\n /** Reference to the currently rendered challenge component */\n private challengeComponentRef?: ComponentRef<AXPLoginChallengeComponentBase>;\n\n /** Current challenge data from the server */\n protected challengeData = signal<AXPLoginChallengeData | null>(null);\n\n /** User's response to the challenge (e.g., CAPTCHA text) */\n protected challengeResponse = signal<string>('');\n\n /** Loading state for challenge refresh */\n protected isChallengeLoading = signal<boolean>(false);\n\n /**\n * Effect to render the challenge component when challenge data changes\n */\n private challengeRenderEffect = effect(() => {\n const data = this.challengeData();\n const isLoading = this.isChallengeLoading();\n\n // Wait for next tick to ensure ViewContainerRef is available\n setTimeout(() => {\n if (data && this.challengeContainerRef) {\n this.renderChallengeComponent(data, isLoading);\n } else {\n this.destroyChallengeComponent();\n }\n });\n });\n\n //#endregion\n\n //#region ---- Loading & Status State ----\n\n protected isLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n protected isExternalLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n protected submitText = 'signin.submit';\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n /** Check if external providers (Google, Apple, etc.) are configured */\n protected get hasExternalProviders(): boolean {\n return !!(this.configs?.externalProviders && Object.keys(this.configs.externalProviders).length > 0);\n }\n\n /** Check if a challenge is currently active and should be displayed */\n protected get hasChallengeActive(): boolean {\n return this.challengeData() !== null;\n }\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n ngOnInit(): void {\n this.l2 = 'password';\n switch (this.configs.type) {\n case AXMAuthenticationTypes.EmailPassword:\n this.l1 = 'email';\n break;\n case AXMAuthenticationTypes.MobilePassword:\n this.l1 = 'mobile';\n break;\n case AXMAuthenticationTypes.UsernameEmailPassword:\n this.l1 = 'username-email';\n break;\n case AXMAuthenticationTypes.UsernamePassword:\n default:\n this.l1 = 'username';\n }\n }\n\n //#endregion\n\n //#region ---- Navigation Handlers ----\n\n protected handleForgotOnClick(): void {\n this.router.navigate(['/auth/forgot']);\n }\n\n protected handleRegisterOnClick(): void {\n this.router.navigate([this.configs.signup?.url || '/auth/register']);\n }\n\n //#endregion\n\n //#region ---- Login Handlers ----\n\n protected handleLoginClick(): void {\n this.sessionService.setStrategy(this.configs.defaultStrategyName || 'user-pass');\n const redirectUrl = this.activateRoute.snapshot.queryParams['redirectUrl'];\n\n this.form.validate().then(async (form) => {\n if (form.result) {\n this.isLoading$.next(true);\n this.submitText = 'processing';\n\n try {\n const strategy = this.sessionService.getSessionData()?.strategy;\n if (!strategy) {\n throw new Error('Strategy not found');\n }\n\n // Build credentials object with challenge data if active\n const currentChallenge = this.challengeData();\n const credentials = {\n strategy: strategy,\n username: this.v1,\n password: this.v2!,\n ...(currentChallenge && {\n challengeId: currentChallenge.id,\n challengeResponse: this.challengeResponse(),\n }),\n };\n\n await this.sessionService.signin(credentials);\n await this.sessionService.signInComplete();\n\n // Check authentication status before navigation\n const isAuthenticated = await firstValueFrom(this.sessionService.isAuthenticated$);\n\n if (!isAuthenticated) {\n throw new Error('Authentication failed after signin');\n }\n\n // Clear challenge state on successful login\n this.clearChallengeState();\n\n const currentApplication = await firstValueFrom(this.sessionService.application$);\n if (!currentApplication) {\n if (this.sessionService.tenant?.id == null) {\n this.router.navigate(['/auth/account/tenant-chooser']);\n } else if (this.sessionService.application?.id == null) {\n this.router.navigate(['/auth/account/app-chooser']);\n }\n } else if (redirectUrl) {\n this.router.navigate([redirectUrl]);\n } else {\n await this.homePageService.navigateTo();\n }\n } catch (error: unknown) {\n await this.handleLoginError(error);\n }\n }\n });\n }\n\n /**\n * Handles login errors and checks if a challenge is required\n */\n private async handleLoginError(error: unknown): Promise<void> {\n // Check if challenge provider wants to handle this error\n if (this.challengeProvider) {\n const checkResult = this.challengeProvider.checkResponse(error);\n\n if (checkResult?.required) {\n try {\n // Fetch challenge from server\n const challenge = await this.challengeProvider.getChallenge(checkResult.serverData);\n this.challengeData.set(challenge);\n this.challengeResponse.set('');\n\n // Show challenge message if provided\n if (checkResult.message) {\n this.toastService.show({\n color: 'warning',\n content: checkResult.message,\n timeOut: 5000,\n });\n }\n\n this.submitText = 'signin.submit';\n this.isLoading$.next(false);\n return;\n } catch (challengeError) {\n console.error('Failed to fetch challenge:', challengeError);\n }\n }\n }\n\n // Default error handling\n this.showLoginError(error);\n }\n\n /**\n * Displays the login error message to the user\n */\n private showLoginError(error: unknown): void {\n let errorMsg = 'An error occurred during sign in.';\n\n if (error && typeof error === 'object') {\n const err = error as Record<string, unknown>;\n const errObj = err['error'] as Record<string, unknown> | undefined;\n\n errorMsg =\n (errObj?.['error_description'] as string) ||\n (errObj?.['error'] as string) ||\n (err['message'] as string) ||\n errorMsg;\n\n if (typeof errorMsg === 'object') {\n const msgObj = errorMsg as unknown as Record<string, unknown>;\n errorMsg = (msgObj['message'] as string) || (msgObj['error_description'] as string) || JSON.stringify(errorMsg);\n }\n }\n\n this.toastService.show({\n color: 'danger',\n content: errorMsg,\n timeOut: 5000,\n });\n\n console.error('Login error:', error);\n this.submitText = 'signin.submit';\n this.v2 = null;\n this.isLoading$.next(false);\n }\n\n //#endregion\n\n //#region ---- Challenge Handlers ----\n\n /**\n * Gets the challenge component type from provider or uses default\n */\n private getChallengeComponentType(): Type<AXPLoginChallengeComponentBase> {\n return this.challengeProvider?.getChallengeComponent() ?? AXPDefaultChallengeComponent;\n }\n\n /**\n * Renders the challenge component dynamically\n */\n private renderChallengeComponent(data: AXPLoginChallengeData, isLoading: boolean): void {\n if (!this.challengeContainerRef) return;\n\n // If component already exists, just update inputs\n if (this.challengeComponentRef) {\n this.updateChallengeComponentInputs(data, isLoading);\n return;\n }\n\n // Clear container and create new component\n this.challengeContainerRef.clear();\n const componentType = this.getChallengeComponentType();\n this.challengeComponentRef = this.challengeContainerRef.createComponent(componentType);\n\n // Set inputs\n this.updateChallengeComponentInputs(data, isLoading);\n\n // Subscribe to outputs\n const instance = this.challengeComponentRef.instance;\n instance.responseChange.subscribe((response: string) => {\n this.challengeResponse.set(response);\n });\n instance.refreshRequest.subscribe(() => {\n this.handleRefreshChallenge();\n });\n }\n\n /**\n * Updates the inputs of the challenge component\n */\n private updateChallengeComponentInputs(data: AXPLoginChallengeData, isLoading: boolean): void {\n if (!this.challengeComponentRef) return;\n\n this.challengeComponentRef.setInput('challengeData', data);\n this.challengeComponentRef.setInput('isLoading', isLoading);\n }\n\n /**\n * Destroys the challenge component\n */\n private destroyChallengeComponent(): void {\n if (this.challengeComponentRef) {\n this.challengeComponentRef.destroy();\n this.challengeComponentRef = undefined;\n }\n if (this.challengeContainerRef) {\n this.challengeContainerRef.clear();\n }\n }\n\n /**\n * Refreshes the challenge (e.g., user clicks \"new image\" button)\n */\n protected async handleRefreshChallenge(): Promise<void> {\n if (!this.challengeProvider) return;\n\n this.isChallengeLoading.set(true);\n try {\n const newChallenge = await this.challengeProvider.refreshChallenge();\n this.challengeData.set(newChallenge);\n this.challengeResponse.set('');\n } catch (error) {\n console.error('Failed to refresh challenge:', error);\n this.toastService.show({\n color: 'danger',\n content: 'Failed to load new challenge. Please try again.',\n timeOut: 3000,\n });\n } finally {\n this.isChallengeLoading.set(false);\n }\n }\n\n /**\n * Clears the challenge state (after successful login or manual clear)\n */\n private clearChallengeState(): void {\n this.challengeData.set(null);\n this.challengeResponse.set('');\n this.destroyChallengeComponent();\n }\n\n //#endregion\n\n //#region ---- External Sign-In Handlers ----\n\n protected async handleExternalSignIn(provider: string): Promise<void> {\n this.sessionService.setStrategy(provider);\n try {\n this.isExternalLoading$.next(true);\n\n // Get provider configuration (optional, for validation)\n const providerConfig = this.configs?.externalProviders?.[provider];\n if (!providerConfig) {\n throw new Error(`Provider '${provider}' is not configured`);\n }\n\n await this.sessionService.signin({ strategy: provider });\n } catch (error) {\n console.error(`${provider} sign-in error:`, error);\n } finally {\n this.isExternalLoading$.next(false);\n }\n }\n\n //#endregion\n\n //#region ---- PKCE Utilities ----\n\n /**\n * Generates a code challenge for PKCE (Proof Key for Code Exchange)\n */\n private async generateCodeChallenge(codeVerifier: string): Promise<string> {\n const hash = await this.sha256(codeVerifier);\n return this.base64UrlEncode(hash);\n }\n\n /**\n * Generates a random string for code verifier\n */\n private generateRandomString(length: number): string {\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n let text = '';\n for (let i = 0; i < length; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n /**\n * Creates SHA256 hash of the input string using Web Crypto API\n */\n private async sha256(str: string): Promise<ArrayBuffer> {\n const encoder = new TextEncoder();\n const data = encoder.encode(str);\n return await crypto.subtle.digest('SHA-256', data);\n }\n\n /**\n * Base64url encodes an ArrayBuffer\n */\n private base64UrlEncode(buffer: ArrayBuffer): string {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n }\n\n //#endregion\n}\n","<ng-container *translate=\"let t\">\n <div class=\"ax-text-center ax-mb-4\">\n <h1 class=\"ax-font-bold ax-text-xl ax-mb-2\">\n {{ '@auth:signin.title' | translate | async }}\n </h1>\n <p class=\"ax-text-base ax-text-neutral-600\">\n {{ '@auth:signin.hint' | translate | async }}\n </p>\n </div>\n <div class=\"ax-w-80 lg:ax-w-96\">\n <ax-form>\n <div class=\"ax-flex ax-flex-col ax-gap-6\">\n <ax-form-field>\n <ax-label>{{ '@auth:username-email' | translate | async }}</ax-label>\n <ax-text-box [name]=\"'username'\" id=\"username\" [autoComplete]=\"'username'\" [(value)]=\"v1\">\n <ax-validation-rule rule=\"required\"></ax-validation-rule>\n </ax-text-box>\n </ax-form-field>\n <ax-form-field>\n <ax-label>{{ '@auth:password' | translate | async }}</ax-label>\n <ax-password-box [name]=\"'password'\" id=\"password\" [autoComplete]=\"'current-password'\" [(value)]=\"v2\">\n <ax-validation-rule rule=\"required\"></ax-validation-rule>\n </ax-password-box>\n </ax-form-field>\n\n <!-- Challenge Section (CAPTCHA) - rendered via ViewContainerRef -->\n @if (hasChallengeActive) {\n <ng-container #challengeContainer></ng-container>\n }\n\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <ax-check-box [(ngModel)]=\"isKeepLogin\">\n <ax-label class=\"ax-mb-0\">{{ '@auth:signin.remember' | translate | async }}</ax-label>\n </ax-check-box>\n <ax-button\n color=\"primary\"\n class=\"ax-sm\"\n id=\"forgot-password\"\n [text]=\"'@auth:forgot.password' | translate | async\"\n look=\"blank\"\n (onClick)=\"handleForgotOnClick()\"\n >\n </ax-button>\n </div>\n </div>\n <ax-button\n color=\"primary\"\n class=\"ax-mt-6 ax-w-full\"\n id=\"submit-login\"\n [text]=\"'@auth:signin.submit' | translate | async\"\n (onClick)=\"handleLoginClick()\"\n [disabled]=\"isLoading$ | async\"\n [type]=\"'submit'\"\n >\n @if (isLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n @if (hasExternalProviders || configs.signup?.enable) {\n <div class=\"ax-heading ax-heading-center !ax-my-8\">\n <span>{{ '@auth:signin.or' | translate | async }}</span>\n </div>\n }\n <div class=\"ax-flex ax-flex-col ax-gap-2 lg:ax-flex-row ax-justify-between ax-mt-6\">\n @if (configs.externalProviders?.['sso']) {\n <ax-button\n class=\"ax-w-full ax-mt-2\"\n text=\"{{ '@auth:authentication.sso' | translate | async }}\"\n [color]=\"'default'\"\n id=\"sso\"\n (onClick)=\"handleExternalSignIn('sso')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n @if (configs.externalProviders?.['google']) {\n <ax-button\n class=\"ax-w-full ax-mt-2\"\n text=\"{{ '@auth:authentication.with-google' | translate | async }}\"\n [color]=\"'default'\"\n id=\"google\"\n (onClick)=\"handleExternalSignIn('google')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-brands fa-google fa-lg ax-text-danger-500\"></i>\n </ax-icon>\n </ax-prefix>\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n @if (configs.externalProviders?.['apple']) {\n <ax-button\n text=\"{{ '@auth:authentication.with-apple' | translate | async }}\"\n [color]=\"'default'\"\n id=\"apple\"\n (onClick)=\"handleExternalSignIn('apple')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-brands fa-apple fa-xl\"></i>\n </ax-icon>\n </ax-prefix>\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n @if (configs.externalProviders?.['microsoft']) {\n <ax-button\n text=\"{{ '@auth:authentication.with-microsoft' | translate | async }}\"\n [color]=\"'default'\"\n id=\"microsoft\"\n (onClick)=\"handleExternalSignIn('microsoft')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-brands fa-microsoft fa-lg text-blue-500\"></i>\n </ax-icon>\n </ax-prefix>\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n </ax-form>\n @if (configs.signup?.enable) {\n <ax-button\n class=\"ax-w-full ax-mt-2\"\n id=\"register\"\n (onClick)=\"handleRegisterOnClick()\"\n text=\"{{ '@auth:register' | translate | async }}\"\n [color]=\"'default'\"\n >\n </ax-button>\n }\n </div>\n</ng-container>\n"],"names":["i4","i5","i7","i8","i1","i3","i6","i9","i10","i11"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-password.component-cPmwNpuq.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/login/password/default-challenge.component.ts","../../../../libs/modules/auth/src/lib/pages/login/password/password.component.ts","../../../../libs/modules/auth/src/lib/pages/login/password/password.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPLoginChallengeComponentBase } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\nimport { Component, signal } from '@angular/core';\n\n//#region ---- Default Challenge Component ----\n\n/**\n * Default built-in challenge component for login\n * Shows challenge image/content with an input field and refresh button\n */\n@Component({\n selector: 'axp-default-challenge',\n standalone: true,\n imports: [\n AXButtonModule,\n AXTextBoxModule,\n AXLabelModule,\n AXFormModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n AXValidationModule,\n CommonModule,\n ],\n template: `\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-p-4 ax-border ax-rounded-md ax-border-warning-300 ax-bg-warning-50\">\n <!-- Challenge Image -->\n <div class=\"ax-flex ax-items-center ax-justify-center ax-gap-2\">\n @if (challengeData(); as challenge) {\n @if (challenge.contentType === 'image-base64') {\n <img\n [src]=\"'data:image/png;base64,' + challenge.content\"\n alt=\"Security Challenge\"\n class=\"ax-h-12 ax-border ax-rounded\"\n />\n } @else if (challenge.contentType === 'image-url') {\n <img [src]=\"challenge.content\" alt=\"Security Challenge\" class=\"ax-h-12 ax-border ax-rounded\" />\n } @else {\n <span class=\"ax-font-mono ax-text-lg ax-p-2 ax-border ax-rounded ax-bg-white\">\n {{ challenge.content }}\n </span>\n }\n }\n <!-- Refresh Challenge Button -->\n <ax-button\n look=\"blank\"\n color=\"primary\"\n class=\"ax-sm\"\n id=\"refresh-challenge\"\n (onClick)=\"onRefreshClick()\"\n [disabled]=\"isLoading()\"\n >\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon><i class=\"fa-solid fa-rotate\"></i></ax-icon>\n }\n </ax-button>\n </div>\n\n <!-- Challenge Response Input -->\n <ax-form-field>\n <ax-label>{{ '@auth:challenge.enter-code' | translate | async }}</ax-label>\n <ax-text-box\n [name]=\"'challengeResponse'\"\n id=\"challenge-response\"\n [placeholder]=\"'@auth:challenge.placeholder' | translate | async\"\n [value]=\"response()\"\n (valueChange)=\"onResponseChange($event)\"\n >\n <ax-validation-rule rule=\"required\"></ax-validation-rule>\n </ax-text-box>\n </ax-form-field>\n </div>\n `,\n})\nexport class AXPDefaultChallengeComponent extends AXPLoginChallengeComponentBase {\n //#region ---- Local State ----\n\n /** Local state for the response input */\n protected response = signal<string>('');\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n /**\n * Handles response input change\n */\n protected onResponseChange(value: string): void {\n this.response.set(value);\n this.responseChange.emit(value);\n }\n\n /**\n * Handles refresh button click\n */\n protected onRefreshClick(): void {\n this.refreshRequest.emit();\n }\n\n //#endregion\n}\n\n//#endregion\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPasswordBoxModule } from '@acorex/components/password-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n ComponentRef,\n Injector,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\n\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport {\n AXPLoginChallengeComponentBase,\n AXPLoginChallengeData,\n AXPSessionService,\n AXP_LOGIN_CHALLENGE_PROVIDER,\n} from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { FormsModule } from '@angular/forms';\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\nimport { AXMAuthConfigs, AXMAuthenticationTypes, AXM_AUTH_CONFIG_TOKEN } from '../../../auth.config';\nimport { AXPDefaultChallengeComponent } from './default-challenge.component';\n\n//#region ---- Module Imports ----\n\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXTextBoxModule,\n AXPasswordBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXTranslationModule,\n AXLoadingModule,\n RouterModule,\n AXValidationModule,\n];\n\n//#endregion\n\n@Component({\n templateUrl: './password.component.html',\n imports: [...MODULES],\n})\nexport class AXPLoginPasswordComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n protected configs: AXMAuthConfigs = inject<AXMAuthConfigs>(AXM_AUTH_CONFIG_TOKEN);\n private dialogService = inject(AXDialogService);\n private sessionService = inject(AXPSessionService);\n private activateRoute = inject(ActivatedRoute);\n private homePageService = inject(AXPHomePageService);\n private toastService = inject(AXToastService);\n private router = inject(Router);\n protected injector = inject(Injector);\n\n /** Optional challenge provider - injected only if configured */\n private challengeProvider = inject(AXP_LOGIN_CHALLENGE_PROVIDER, { optional: true });\n\n //#endregion\n\n //#region ---- Form References ----\n\n @ViewChild(AXFormComponent)\n private form!: AXFormComponent;\n\n //#endregion\n\n //#region ---- Form Fields ----\n\n /** Label key for the first input field (username/email/mobile) */\n protected l1!: string;\n\n /** Label key for the second input field (password) */\n protected l2!: string;\n\n /** Value of the first input field (username/email) */\n protected v1 = '';\n\n /** Value of the second input field (password) */\n protected v2: string | null = '';\n\n /** Whether to keep the user logged in */\n protected isKeepLogin = false;\n\n //#endregion\n\n //#region ---- Challenge State ----\n\n /** ViewContainerRef for rendering the challenge component */\n @ViewChild('challengeContainer', { read: ViewContainerRef })\n private challengeContainerRef?: ViewContainerRef;\n\n /** Reference to the currently rendered challenge component */\n private challengeComponentRef?: ComponentRef<AXPLoginChallengeComponentBase>;\n\n /** Current challenge data from the server */\n protected challengeData = signal<AXPLoginChallengeData | null>(null);\n\n /** User's response to the challenge (e.g., CAPTCHA text) */\n protected challengeResponse = signal<string>('');\n\n /** Loading state for challenge refresh */\n protected isChallengeLoading = signal<boolean>(false);\n\n /**\n * Effect to render the challenge component when challenge data changes\n */\n private challengeRenderEffect = effect(() => {\n const data = this.challengeData();\n const isLoading = this.isChallengeLoading();\n\n // Wait for next tick to ensure ViewContainerRef is available\n setTimeout(() => {\n if (data && this.challengeContainerRef) {\n this.renderChallengeComponent(data, isLoading);\n } else {\n this.destroyChallengeComponent();\n }\n });\n });\n\n //#endregion\n\n //#region ---- Loading & Status State ----\n\n protected isLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n protected isExternalLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n protected submitText = 'signin.submit';\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n /** Check if external providers (Google, Apple, etc.) are configured */\n protected get hasExternalProviders(): boolean {\n return !!(this.configs?.externalProviders && Object.keys(this.configs.externalProviders).length > 0);\n }\n\n /** Check if a challenge is currently active and should be displayed */\n protected get hasChallengeActive(): boolean {\n return this.challengeData() !== null;\n }\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n ngOnInit(): void {\n this.l2 = 'password';\n switch (this.configs.type) {\n case AXMAuthenticationTypes.EmailPassword:\n this.l1 = 'email';\n break;\n case AXMAuthenticationTypes.MobilePassword:\n this.l1 = 'mobile';\n break;\n case AXMAuthenticationTypes.UsernameEmailPassword:\n this.l1 = 'username-email';\n break;\n case AXMAuthenticationTypes.UsernamePassword:\n default:\n this.l1 = 'username';\n }\n }\n\n //#endregion\n\n //#region ---- Navigation Handlers ----\n\n protected handleForgotOnClick(): void {\n this.router.navigate(['/auth/forgot']);\n }\n\n protected handleRegisterOnClick(): void {\n this.router.navigate([this.configs.signup?.url || '/auth/register']);\n }\n\n //#endregion\n\n //#region ---- Login Handlers ----\n\n protected handleLoginClick(): void {\n this.sessionService.setStrategy(this.configs.defaultStrategyName || 'user-pass');\n const redirectUrl = this.activateRoute.snapshot.queryParams['redirectUrl'];\n\n this.form.validate().then(async (form) => {\n if (form.result) {\n this.isLoading$.next(true);\n this.submitText = 'processing';\n\n try {\n const strategy = this.sessionService.getSessionData()?.strategy;\n if (!strategy) {\n throw new Error('Strategy not found');\n }\n\n // Build credentials object with challenge data if active\n const currentChallenge = this.challengeData();\n const credentials = {\n strategy: strategy,\n username: this.v1,\n password: this.v2!,\n ...(currentChallenge && {\n challengeId: currentChallenge.id,\n challengeResponse: this.challengeResponse(),\n }),\n };\n\n await this.sessionService.signin(credentials);\n await this.sessionService.signInComplete();\n\n // Check authentication status before navigation\n const isAuthenticated = await firstValueFrom(this.sessionService.isAuthenticated$);\n\n if (!isAuthenticated) {\n throw new Error('Authentication failed after signin');\n }\n\n // Clear challenge state on successful login\n this.clearChallengeState();\n\n const currentApplication = await firstValueFrom(this.sessionService.application$);\n if (!currentApplication) {\n if (this.sessionService.tenant?.id == null) {\n this.router.navigate(['/auth/account/tenant-chooser']);\n } else if (this.sessionService.application?.id == null) {\n this.router.navigate(['/auth/account/app-chooser']);\n }\n } else if (redirectUrl) {\n this.router.navigate([redirectUrl]);\n } else {\n await this.homePageService.navigateTo();\n }\n } catch (error: unknown) {\n await this.handleLoginError(error);\n }\n }\n });\n }\n\n /**\n * Handles login errors and checks if a challenge is required\n */\n private async handleLoginError(error: unknown): Promise<void> {\n // Check if challenge provider wants to handle this error\n if (this.challengeProvider) {\n const checkResult = this.challengeProvider.checkResponse(error);\n\n if (checkResult?.required) {\n try {\n // Fetch challenge from server\n const challenge = await this.challengeProvider.getChallenge(checkResult.serverData);\n this.challengeData.set(challenge);\n this.challengeResponse.set('');\n\n // Show challenge message if provided\n if (checkResult.message) {\n this.toastService.show({\n color: 'warning',\n content: checkResult.message,\n timeOut: 5000,\n });\n }\n\n this.submitText = 'signin.submit';\n this.isLoading$.next(false);\n return;\n } catch (challengeError) {\n console.error('Failed to fetch challenge:', challengeError);\n }\n }\n }\n\n // Default error handling\n this.showLoginError(error);\n }\n\n /**\n * Displays the login error message to the user\n */\n private showLoginError(error: unknown): void {\n let errorMsg = 'An error occurred during sign in.';\n\n if (error && typeof error === 'object') {\n const err = error as Record<string, unknown>;\n const errObj = err['error'] as Record<string, unknown> | undefined;\n\n errorMsg =\n (errObj?.['error_description'] as string) ||\n (errObj?.['error'] as string) ||\n (err['message'] as string) ||\n errorMsg;\n\n if (typeof errorMsg === 'object') {\n const msgObj = errorMsg as unknown as Record<string, unknown>;\n errorMsg = (msgObj['message'] as string) || (msgObj['error_description'] as string) || JSON.stringify(errorMsg);\n }\n }\n\n this.toastService.show({\n color: 'danger',\n content: errorMsg,\n timeOut: 5000,\n });\n\n console.error('Login error:', error);\n this.submitText = 'signin.submit';\n this.v2 = null;\n this.isLoading$.next(false);\n }\n\n //#endregion\n\n //#region ---- Challenge Handlers ----\n\n /**\n * Gets the challenge component type from provider or uses default\n */\n private getChallengeComponentType(): Type<AXPLoginChallengeComponentBase> {\n return this.challengeProvider?.getChallengeComponent() ?? AXPDefaultChallengeComponent;\n }\n\n /**\n * Renders the challenge component dynamically\n */\n private renderChallengeComponent(data: AXPLoginChallengeData, isLoading: boolean): void {\n if (!this.challengeContainerRef) return;\n\n // If component already exists, just update inputs\n if (this.challengeComponentRef) {\n this.updateChallengeComponentInputs(data, isLoading);\n return;\n }\n\n // Clear container and create new component\n this.challengeContainerRef.clear();\n const componentType = this.getChallengeComponentType();\n this.challengeComponentRef = this.challengeContainerRef.createComponent(componentType);\n\n // Set inputs\n this.updateChallengeComponentInputs(data, isLoading);\n\n // Subscribe to outputs\n const instance = this.challengeComponentRef.instance;\n instance.responseChange.subscribe((response: string) => {\n this.challengeResponse.set(response);\n });\n instance.refreshRequest.subscribe(() => {\n this.handleRefreshChallenge();\n });\n }\n\n /**\n * Updates the inputs of the challenge component\n */\n private updateChallengeComponentInputs(data: AXPLoginChallengeData, isLoading: boolean): void {\n if (!this.challengeComponentRef) return;\n\n this.challengeComponentRef.setInput('challengeData', data);\n this.challengeComponentRef.setInput('isLoading', isLoading);\n }\n\n /**\n * Destroys the challenge component\n */\n private destroyChallengeComponent(): void {\n if (this.challengeComponentRef) {\n this.challengeComponentRef.destroy();\n this.challengeComponentRef = undefined;\n }\n if (this.challengeContainerRef) {\n this.challengeContainerRef.clear();\n }\n }\n\n /**\n * Refreshes the challenge (e.g., user clicks \"new image\" button)\n */\n protected async handleRefreshChallenge(): Promise<void> {\n if (!this.challengeProvider) return;\n\n this.isChallengeLoading.set(true);\n try {\n const newChallenge = await this.challengeProvider.refreshChallenge();\n this.challengeData.set(newChallenge);\n this.challengeResponse.set('');\n } catch (error) {\n console.error('Failed to refresh challenge:', error);\n this.toastService.show({\n color: 'danger',\n content: 'Failed to load new challenge. Please try again.',\n timeOut: 3000,\n });\n } finally {\n this.isChallengeLoading.set(false);\n }\n }\n\n /**\n * Clears the challenge state (after successful login or manual clear)\n */\n private clearChallengeState(): void {\n this.challengeData.set(null);\n this.challengeResponse.set('');\n this.destroyChallengeComponent();\n }\n\n //#endregion\n\n //#region ---- External Sign-In Handlers ----\n\n protected async handleExternalSignIn(provider: string): Promise<void> {\n this.sessionService.setStrategy(provider);\n try {\n this.isExternalLoading$.next(true);\n\n // Get provider configuration (optional, for validation)\n const providerConfig = this.configs?.externalProviders?.[provider];\n if (!providerConfig) {\n throw new Error(`Provider '${provider}' is not configured`);\n }\n\n await this.sessionService.signin({ strategy: provider });\n } catch (error) {\n console.error(`${provider} sign-in error:`, error);\n } finally {\n this.isExternalLoading$.next(false);\n }\n }\n\n //#endregion\n\n //#region ---- PKCE Utilities ----\n\n /**\n * Generates a code challenge for PKCE (Proof Key for Code Exchange)\n */\n private async generateCodeChallenge(codeVerifier: string): Promise<string> {\n const hash = await this.sha256(codeVerifier);\n return this.base64UrlEncode(hash);\n }\n\n /**\n * Generates a random string for code verifier\n */\n private generateRandomString(length: number): string {\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n let text = '';\n for (let i = 0; i < length; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n /**\n * Creates SHA256 hash of the input string using Web Crypto API\n */\n private async sha256(str: string): Promise<ArrayBuffer> {\n const encoder = new TextEncoder();\n const data = encoder.encode(str);\n return await crypto.subtle.digest('SHA-256', data);\n }\n\n /**\n * Base64url encodes an ArrayBuffer\n */\n private base64UrlEncode(buffer: ArrayBuffer): string {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n }\n\n //#endregion\n}\n","<ng-container *translate=\"let t\">\n <div class=\"ax-text-center ax-mb-4\">\n <h1 class=\"ax-font-bold ax-text-xl ax-mb-2\">\n {{ '@auth:signin.title' | translate | async }}\n </h1>\n <p class=\"ax-text-base ax-text-neutral-600\">\n {{ '@auth:signin.hint' | translate | async }}\n </p>\n </div>\n <div class=\"ax-w-80 lg:ax-w-96\">\n <ax-form>\n <div class=\"ax-flex ax-flex-col ax-gap-6\">\n <ax-form-field>\n <ax-label>{{ '@auth:username-email' | translate | async }}</ax-label>\n <ax-text-box [name]=\"'username'\" id=\"username\" [autoComplete]=\"'username'\" [(value)]=\"v1\">\n <ax-validation-rule rule=\"required\"></ax-validation-rule>\n </ax-text-box>\n </ax-form-field>\n <ax-form-field>\n <ax-label>{{ '@auth:password' | translate | async }}</ax-label>\n <ax-password-box [name]=\"'password'\" id=\"password\" [autoComplete]=\"'current-password'\" [(value)]=\"v2\">\n <ax-validation-rule rule=\"required\"></ax-validation-rule>\n </ax-password-box>\n </ax-form-field>\n\n <!-- Challenge Section (CAPTCHA) - rendered via ViewContainerRef -->\n @if (hasChallengeActive) {\n <ng-container #challengeContainer></ng-container>\n }\n\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <ax-check-box [(ngModel)]=\"isKeepLogin\">\n <ax-label class=\"ax-mb-0\">{{ '@auth:signin.remember' | translate | async }}</ax-label>\n </ax-check-box>\n <ax-button\n color=\"primary\"\n class=\"ax-sm\"\n id=\"forgot-password\"\n [text]=\"'@auth:forgot.password' | translate | async\"\n look=\"blank\"\n (onClick)=\"handleForgotOnClick()\"\n >\n </ax-button>\n </div>\n </div>\n <ax-button\n color=\"primary\"\n class=\"ax-mt-6 ax-w-full\"\n id=\"submit-login\"\n [text]=\"'@auth:signin.submit' | translate | async\"\n (onClick)=\"handleLoginClick()\"\n [disabled]=\"isLoading$ | async\"\n [type]=\"'submit'\"\n >\n @if (isLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n @if (hasExternalProviders || configs.signup?.enable) {\n <div class=\"ax-heading ax-heading-center !ax-my-8\">\n <span>{{ '@auth:signin.or' | translate | async }}</span>\n </div>\n }\n <div class=\"ax-flex ax-flex-col ax-gap-2 lg:ax-flex-row ax-justify-between ax-mt-6\">\n @if (configs.externalProviders?.['sso']) {\n <ax-button\n class=\"ax-w-full ax-mt-2\"\n text=\"{{ '@auth:authentication.sso' | translate | async }}\"\n [color]=\"'default'\"\n id=\"sso\"\n (onClick)=\"handleExternalSignIn('sso')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n @if (configs.externalProviders?.['google']) {\n <ax-button\n class=\"ax-w-full ax-mt-2\"\n text=\"{{ '@auth:authentication.with-google' | translate | async }}\"\n [color]=\"'default'\"\n id=\"google\"\n (onClick)=\"handleExternalSignIn('google')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-brands fa-google fa-lg ax-text-danger-500\"></i>\n </ax-icon>\n </ax-prefix>\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n @if (configs.externalProviders?.['apple']) {\n <ax-button\n text=\"{{ '@auth:authentication.with-apple' | translate | async }}\"\n [color]=\"'default'\"\n id=\"apple\"\n (onClick)=\"handleExternalSignIn('apple')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-brands fa-apple fa-xl\"></i>\n </ax-icon>\n </ax-prefix>\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n @if (configs.externalProviders?.['microsoft']) {\n <ax-button\n text=\"{{ '@auth:authentication.with-microsoft' | translate | async }}\"\n [color]=\"'default'\"\n id=\"microsoft\"\n (onClick)=\"handleExternalSignIn('microsoft')\"\n [disabled]=\"isExternalLoading$ | async\"\n >\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-brands fa-microsoft fa-lg text-blue-500\"></i>\n </ax-icon>\n </ax-prefix>\n @if (isExternalLoading$ | async) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n </ax-form>\n @if (configs.signup?.enable) {\n <ax-button\n class=\"ax-w-full ax-mt-2\"\n id=\"register\"\n (onClick)=\"handleRegisterOnClick()\"\n text=\"{{ '@auth:register' | translate | async }}\"\n [color]=\"'default'\"\n >\n </ax-button>\n }\n </div>\n</ng-container>\n"],"names":["i4","i5","i7","i8","i1","i3","i6","i9","i10","i11"],"mappings":"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"}
|
package/fesm2022/{acorex-modules-auth-routes-CM4fRaWb.mjs → acorex-modules-auth-routes-r72zIRTa.mjs}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var routes = [{
|
|
2
2
|
path: 'forgot',
|
|
3
3
|
loadComponent: () => {
|
|
4
|
-
return import('./acorex-modules-auth-password.component-
|
|
4
|
+
return import('./acorex-modules-auth-password.component-DB-ac0Rn.mjs').then((c) => c.AXPForgetPasswordComponent);
|
|
5
5
|
},
|
|
6
6
|
}];
|
|
7
7
|
|
|
8
8
|
export { routes as default };
|
|
9
|
-
//# sourceMappingURL=acorex-modules-auth-routes-
|
|
9
|
+
//# sourceMappingURL=acorex-modules-auth-routes-r72zIRTa.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-routes-
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-routes-r72zIRTa.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/forgot/routes.ts"],"sourcesContent":["import { Route } from '@angular/router';\n\nexport default [{\n path: 'forgot',\n loadComponent: () => {\n return import('./password/password.component').then(\n (c) => c.AXPForgetPasswordComponent\n );\n },\n}] as Route[];"],"names":[],"mappings":"AAEA,aAAe,CAAC;AACZ,QAAA,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,MAAK;AAChB,YAAA,OAAO,OAAO,uDAA+B,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,CACtC;QACL,CAAC;AACJ,KAAA,CAAY;;;;"}
|
|
@@ -18,7 +18,7 @@ import { AXPLogoComponent, AXPUserAvatarComponent } from '@acorex/platform/layou
|
|
|
18
18
|
import * as i4 from '@angular/common';
|
|
19
19
|
import { CommonModule } from '@angular/common';
|
|
20
20
|
import { Router } from '@angular/router';
|
|
21
|
-
import { c as AXPTenantChooserListComponent } from './acorex-modules-auth-acorex-modules-auth-
|
|
21
|
+
import { c as AXPTenantChooserListComponent } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
22
22
|
|
|
23
23
|
class AXPAuthTenantChooserComponent {
|
|
24
24
|
constructor() {
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
55
55
|
}] });
|
|
56
56
|
|
|
57
57
|
export { AXPAuthTenantChooserComponent };
|
|
58
|
-
//# sourceMappingURL=acorex-modules-auth-tenant-chooser.component-
|
|
58
|
+
//# sourceMappingURL=acorex-modules-auth-tenant-chooser.component-AQA2o6Ty.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-tenant-chooser.component-
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-tenant-chooser.component-AQA2o6Ty.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/account/tenant-chooser/tenant-chooser.component.ts","../../../../libs/modules/auth/src/lib/pages/account/tenant-chooser/tenant-chooser.component.html"],"sourcesContent":["import { Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXP_PLATFORM_CONFIG_TOKEN } from '@acorex/platform/common';\nimport { AXPLogoComponent } from '@acorex/platform/layout/components';\nimport { AXPUserAvatarComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { AXPTenantChooserListComponent } from './tenant-chooser-list.component';\n\n@Component({\n selector: 'axp-auth-tenant-chooser',\n templateUrl: './tenant-chooser.component.html',\n styleUrls: ['./tenant-chooser.component.scss'],\n imports: [\n CommonModule,\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXAvatarModule,\n AXImageModule,\n AXDecoratorModule,\n AXPLogoComponent,\n AXLoadingModule,\n AXTranslationModule,\n AXPUserAvatarComponent,\n AXPTenantChooserListComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPAuthTenantChooserComponent {\n private router = inject(Router);\n protected platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);\n private sessionService = inject(AXPSessionService);\n\n protected user = this.sessionService.user;\n\n async handleSignout() {\n await this.sessionService.signout();\n this.router.navigate(['/auth/login']);\n }\n}\n","<main *translate=\"let t\"\n class=\"ax-w-full ax-space-y-10 ax-h-[100vh] ax-flex ax-flex-col ax-items-center ax-justify-center ax-bg-lightest md:ax-bg-default\">\n <section>\n <axp-logo [source]=\"platformConfig.logo?.full\" [attr.alt]=\"platformConfig.title\"\n class=\"ax-w-36 ax-mx-auto ax-text-2xl ax-font-bold\"></axp-logo>\n </section>\n <section class=\"ax-flex ax-justify-center\">\n <div\n class=\"ax-flex ax-gap-2 ax-justify-center ax-text-center ax-flex-col ax-items-center ax-border ax-rounded-lg ax-shadow-lg ax-p-6 lg:ax-w-[45vw] xl:ax-w-[25vw] ax-w-[90vw]\">\n <ax-avatar class=\"ax-rounded-full\" [size]=\"72\">\n @if (user?.avatar) {\n <!-- <ax-image [src]=\"user?.avatar\"></ax-image> -->\n <axp-user-avatar [size]=\"72\" [userId]=\"user?.id!\"></axp-user-avatar>\n }\n </ax-avatar>\n <h2 class=\"md:ax-text-lg ax-font-medium\">{{ '@auth:welcome.message' | translate | async }}, {{ user?.title }}</h2>\n <p class=\"ax-text-neutral-500 ax-text-sm md:ax-text-base ax-font-medium\">\n {{ '@auth:tenant-chooser.description' | translate | async }}\n </p>\n <div class=\"ax-mt-3 ax-w-full\">\n <axp-tenant-chooser-list></axp-tenant-chooser-list>\n </div>\n </div>\n </section>\n <section>\n <p class=\"ax-text-neutral-400 ax-text-sm\">\n {{ '@auth:tenant-chooser.footer' | translate | async }}\n <a (click)=\"handleSignout()\" class=\"ax-text-primary ax-cursor-pointer hover:ax-underline ax-font-medium\">\n {{ '@auth:backLogin' | translate | async }}\n </a>\n </p>\n </section>\n</main>"],"names":["i3"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, NgModule } from '@angular/core';
|
|
3
3
|
import { RouterModule, ROUTES } from '@angular/router';
|
|
4
|
-
import { A as AXM_AUTH_CONFIG_TOKEN } from './acorex-modules-auth-acorex-modules-auth-
|
|
4
|
+
import { A as AXM_AUTH_CONFIG_TOKEN } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
5
5
|
|
|
6
6
|
function routesFacory() {
|
|
7
7
|
const val = inject(AXM_AUTH_CONFIG_TOKEN);
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
42
42
|
}] });
|
|
43
43
|
|
|
44
44
|
export { AXPTwoFactorModule };
|
|
45
|
-
//# sourceMappingURL=acorex-modules-auth-two-factor.module-
|
|
45
|
+
//# sourceMappingURL=acorex-modules-auth-two-factor.module-Dx0CC5ic.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-two-factor.module-
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-two-factor.module-Dx0CC5ic.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/two-factor/two-factor.module.ts"],"sourcesContent":["import { inject, NgModule } from '@angular/core';\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\nimport { AXM_AUTH_CONFIG_TOKEN } from '../../auth.config';\n\nfunction routesFacory() {\n const val = inject(AXM_AUTH_CONFIG_TOKEN);\n let routes: Routes = [];\n routes = [\n {\n path: 'two-step',\n loadComponent: () =>\n import('./two-factor-code/two-factor-code.component').then((c) => c.AXPAuthTwoFactorCodeComponent),\n },\n ];\n return routes;\n}\n\n@NgModule({\n declarations: [],\n imports: [RouterModule],\n exports: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n ],\n})\nexport class AXPTwoFactorModule {}\n"],"names":[],"mappings":";;;;;AAIA,SAAS,YAAY,GAAA;AACnB,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACzC,IAAI,MAAM,GAAW,EAAE;AACvB,IAAA,MAAM,GAAG;AACP,QAAA;AACE,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,aAAa,EAAE,MACb,OAAO,8DAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AACrG,SAAA;KACF;AACD,IAAA,OAAO,MAAM;AACf;MAca,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAVnB,YAAY,CAAA,EAAA,CAAA,CAAA;AAUX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,SAAA,EARlB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,YAAY;AACzB,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CARS,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAUX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,UAAU,EAAE,YAAY;AACzB,yBAAA;AACF,qBAAA;AACF,iBAAA;;;;;"}
|
|
@@ -18,7 +18,7 @@ import * as i0 from '@angular/core';
|
|
|
18
18
|
import { signal, inject, ChangeDetectorRef, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
19
19
|
import * as i1 from '@angular/forms';
|
|
20
20
|
import { FormsModule } from '@angular/forms';
|
|
21
|
-
import { f as AXMUserDeviceSessionsService } from './acorex-modules-auth-acorex-modules-auth-
|
|
21
|
+
import { f as AXMUserDeviceSessionsService } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
22
22
|
|
|
23
23
|
class AXMUserSessionsComponent {
|
|
24
24
|
constructor() {
|
|
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
134
134
|
}], ctorParameters: () => [] });
|
|
135
135
|
|
|
136
136
|
export { AXMUserSessionsComponent };
|
|
137
|
-
//# sourceMappingURL=acorex-modules-auth-user-sessions.component-
|
|
137
|
+
//# sourceMappingURL=acorex-modules-auth-user-sessions.component-3Wr7DUDQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-user-sessions.component-Qw2sgsEe.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/account/user-sessions/user-sessions.component.ts","../../../../libs/modules/auth/src/lib/pages/account/user-sessions/user-sessions.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPSettingsService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMUserDeviceSessionsService } from './user-sessions.service';\nimport { AXMSecurityManagementDeviceSessionsEntityModel } from '../../../shared/types/device-sessions.types';\n@Component({\n templateUrl: './user-sessions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXDropdownModule,\n AXPopoverModule,\n ],\n})\nexport class AXMUserSessionsComponent {\n AXPTokenExpirationDurations = {\n oneWeek: 'oneWeek',\n oneMonth: 'oneMonth',\n threeMonths: 'threeMonths',\n sixMonths: 'sixMonths',\n };\n\n items = signal<AXMSecurityManagementDeviceSessionsEntityModel[]>([]);\n activeSession = signal<AXMSecurityManagementDeviceSessionsEntityModel | undefined>(undefined);\n expireTime = signal<{ name: string; id: string } | null>(null);\n\n expirationItems = [\n { name: 'Terminate in 1 week', id: this.AXPTokenExpirationDurations.oneWeek },\n { name: 'Terminate in 1 month', id: this.AXPTokenExpirationDurations.oneMonth },\n { name: 'Terminate in 3 month', id: this.AXPTokenExpirationDurations.threeMonths },\n { name: 'Terminate in 6 month', id: this.AXPTokenExpirationDurations.sixMonths },\n ];\n protected dataSource = new AXDataSource<any>({\n pageSize: 10,\n key: 'id',\n load: async (e) => {\n let items = this.expirationItems;\n return {\n items,\n total: items.length,\n };\n },\n });\n private userDeviceSessionsService = inject(AXMUserDeviceSessionsService);\n private cdRef = inject(ChangeDetectorRef);\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private translateService = inject(AXTranslationService);\n private sessionService = inject(AXPSessionService);\n private settingsService = inject(AXPSettingsService);\n\n constructor() {\n this.loadUserSessions();\n }\n\n private async loadUserSessions(): Promise<void> {\n try {\n let sessions = await this.userDeviceSessionsService.getSessions();\n this.items.set(sessions);\n\n try {\n const activeSession = await this.userDeviceSessionsService.getCurrentActiveSessions();\n this.activeSession.set(activeSession);\n } catch (error) {\n console.warn('No active session found:', error);\n this.activeSession.set(undefined);\n }\n\n const sessionTimeout = await this.settingsService.scope(AXPPlatformScope.User).get('session-timeout');\n if (sessionTimeout && sessionTimeout.id in this.AXPTokenExpirationDurations) {\n let selectedItem = this.expirationItems.find((item) => item.id === sessionTimeout.id);\n if (selectedItem) {\n this.expireTime.set({ name: selectedItem.name, id: selectedItem.id });\n }\n }\n } catch (error) {\n console.error('Error loading user sessions', error);\n }\n }\n\n // ✅ Use a computed signal to update dynamically when items change\n itemsWithIcons = computed(() =>\n this.items().map((item) => ({\n ...item,\n icon: this.getDeviceIcon(item.deviceName),\n })),\n );\n\n getDeviceIcon(deviceName: string | undefined): string {\n if (!deviceName) return 'fa-solid fa-question'; // Default icon if no name is provided\n\n const lowerCaseName = deviceName.toLowerCase();\n\n if (lowerCaseName.includes('windows')) return 'fa-brands fa-windows';\n if (lowerCaseName.includes('macbook') || lowerCaseName.includes('mac')) return 'fa-brands fa-apple';\n if (lowerCaseName.includes('linux')) return 'fa-brands fa-linux';\n if (lowerCaseName.includes('android')) return 'fa-brands fa-android';\n if (lowerCaseName.includes('ios') || lowerCaseName.includes('iphone') || lowerCaseName.includes('ipad')) return 'fa-brands fa-apple';\n\n return 'fa-solid fa-desktop'; // Default icon for unknown devices\n }\n\n protected onChangeSessionExpireTime(e: AXValueChangedEvent) {\n this.userDeviceSessionsService.setTokenLifetimeMinutes(e.component.selectedItems[0]);\n }\n\n async onTerminate(sessionId: string | undefined): Promise<void> {\n if (!sessionId) {\n console.error('No item to terminate');\n return;\n }\n await this.userDeviceSessionsService.terminateSession(sessionId);\n await this.loadUserSessions();\n }\n\n async onTerminateAll() {\n await this.userDeviceSessionsService.terminateAllSession();\n await this.loadUserSessions();\n }\n}\n","<div class=\"ax-mx-auto ax-p-6 ax-w-full\">\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mb-4\">This Device</p>\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-primary-200 ax-border ax-bg-primary-50 ax-rounded-lg\">\n <i class=\"{{ getDeviceIcon(activeSession()?.deviceName) }} ax-text-primary-500 ax-m-3\"></i>\n </div>\n @if (activeSession()) {\n <div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ activeSession()?.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ activeSession()?.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ activeSession()?.location }} <span>\n {{ activeSession()?.lastLoginDate ? (activeSession()?.lastLoginDate | date: 'yyyy/MM/dd HH:mm') : '' }}\n </span>\n </p>\n </div>\n </div>\n }\n </div>\n\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-danger-200 ax-border ax-bg-danger-50 ax-rounded-lg\">\n <i class=\"ax-icon ax-icon-clear ax-text-danger-500 ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2 ax-cursor-pointer\" (click)=\"onTerminateAll()\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">Terminate All Other Sessions</div>\n <p class=\"ax-font-normal ax-text-sm ax-subtitle-on-lightest\">Log out all devices exept for this one.</p>\n </div>\n </div>\n }\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div>\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mt-4 ax-mb-4\">Active Devices</p>\n @for (item of itemsWithIcons(); track item) {\n <div>\n <div\n class=\"ax-flex ax-border ax-items-center ax-relative ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <i\n class=\"ax-icon ax-icon-close ax-absolute ax-end-2 ax-top-2 ax-cursor-pointer\"\n (click)=\"onTerminate(item.id)\"\n ></i>\n <div class=\"ax-border ax-rounded-lg\">\n <i class=\"{{ item.icon }} ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ item.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ item.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ item.location }} <span>{{ item.lastLoginDate ? (item.lastLoginDate | date: 'yyyy/MM/dd HH:mm') : '' }}</span>\n </p>\n </div>\n </div>\n </div>\n }\n </div>\n }\n</div>\n<ax-footer>\n <div class=\"ax-flex-col ax-w-full\">\n <div>\n <p class=\"ax-text-danger-500 ax-font-medium ax-text-base\">Terminate Old Sessions</p>\n </div>\n <div>\n <ax-suffix>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-mt-4\">\n <div class=\"ax-font-normal ax-text-base ax-text-on-lightest\">If inactive for...</div>\n <div class=\"ax-w-3/6\">\n <ax-select-box\n [ngModel]=\"expireTime()\"\n (onValueChanged)=\"onChangeSessionExpireTime($event)\"\n [dataSource]=\"dataSource\"\n textField=\"name\"\n valueField=\"id\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </ax-suffix>\n </div>\n </div>\n</ax-footer>\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-auth-user-sessions.component-3Wr7DUDQ.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/account/user-sessions/user-sessions.component.ts","../../../../libs/modules/auth/src/lib/pages/account/user-sessions/user-sessions.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPSettingsService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMUserDeviceSessionsService } from './user-sessions.service';\nimport { AXMSecurityManagementDeviceSessionsEntityModel } from '../../../shared/types/device-sessions.types';\n@Component({\n templateUrl: './user-sessions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXDropdownModule,\n AXPopoverModule,\n ],\n})\nexport class AXMUserSessionsComponent {\n AXPTokenExpirationDurations = {\n oneWeek: 'oneWeek',\n oneMonth: 'oneMonth',\n threeMonths: 'threeMonths',\n sixMonths: 'sixMonths',\n };\n\n items = signal<AXMSecurityManagementDeviceSessionsEntityModel[]>([]);\n activeSession = signal<AXMSecurityManagementDeviceSessionsEntityModel | undefined>(undefined);\n expireTime = signal<{ name: string; id: string } | null>(null);\n\n expirationItems = [\n { name: 'Terminate in 1 week', id: this.AXPTokenExpirationDurations.oneWeek },\n { name: 'Terminate in 1 month', id: this.AXPTokenExpirationDurations.oneMonth },\n { name: 'Terminate in 3 month', id: this.AXPTokenExpirationDurations.threeMonths },\n { name: 'Terminate in 6 month', id: this.AXPTokenExpirationDurations.sixMonths },\n ];\n protected dataSource = new AXDataSource<any>({\n pageSize: 10,\n key: 'id',\n load: async (e) => {\n let items = this.expirationItems;\n return {\n items,\n total: items.length,\n };\n },\n });\n private userDeviceSessionsService = inject(AXMUserDeviceSessionsService);\n private cdRef = inject(ChangeDetectorRef);\n private popupService = inject(AXPopupService);\n private platform = inject(AXPlatform);\n private translateService = inject(AXTranslationService);\n private sessionService = inject(AXPSessionService);\n private settingsService = inject(AXPSettingsService);\n\n constructor() {\n this.loadUserSessions();\n }\n\n private async loadUserSessions(): Promise<void> {\n try {\n let sessions = await this.userDeviceSessionsService.getSessions();\n this.items.set(sessions);\n\n try {\n const activeSession = await this.userDeviceSessionsService.getCurrentActiveSessions();\n this.activeSession.set(activeSession);\n } catch (error) {\n console.warn('No active session found:', error);\n this.activeSession.set(undefined);\n }\n\n const sessionTimeout = await this.settingsService.scope(AXPPlatformScope.User).get('session-timeout');\n if (sessionTimeout && sessionTimeout.id in this.AXPTokenExpirationDurations) {\n let selectedItem = this.expirationItems.find((item) => item.id === sessionTimeout.id);\n if (selectedItem) {\n this.expireTime.set({ name: selectedItem.name, id: selectedItem.id });\n }\n }\n } catch (error) {\n console.error('Error loading user sessions', error);\n }\n }\n\n // ✅ Use a computed signal to update dynamically when items change\n itemsWithIcons = computed(() =>\n this.items().map((item) => ({\n ...item,\n icon: this.getDeviceIcon(item.deviceName),\n })),\n );\n\n getDeviceIcon(deviceName: string | undefined): string {\n if (!deviceName) return 'fa-solid fa-question'; // Default icon if no name is provided\n\n const lowerCaseName = deviceName.toLowerCase();\n\n if (lowerCaseName.includes('windows')) return 'fa-brands fa-windows';\n if (lowerCaseName.includes('macbook') || lowerCaseName.includes('mac')) return 'fa-brands fa-apple';\n if (lowerCaseName.includes('linux')) return 'fa-brands fa-linux';\n if (lowerCaseName.includes('android')) return 'fa-brands fa-android';\n if (lowerCaseName.includes('ios') || lowerCaseName.includes('iphone') || lowerCaseName.includes('ipad')) return 'fa-brands fa-apple';\n\n return 'fa-solid fa-desktop'; // Default icon for unknown devices\n }\n\n protected onChangeSessionExpireTime(e: AXValueChangedEvent) {\n this.userDeviceSessionsService.setTokenLifetimeMinutes(e.component.selectedItems[0]);\n }\n\n async onTerminate(sessionId: string | undefined): Promise<void> {\n if (!sessionId) {\n console.error('No item to terminate');\n return;\n }\n await this.userDeviceSessionsService.terminateSession(sessionId);\n await this.loadUserSessions();\n }\n\n async onTerminateAll() {\n await this.userDeviceSessionsService.terminateAllSession();\n await this.loadUserSessions();\n }\n}\n","<div class=\"ax-mx-auto ax-p-6 ax-w-full\">\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mb-4\">This Device</p>\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-primary-200 ax-border ax-bg-primary-50 ax-rounded-lg\">\n <i class=\"{{ getDeviceIcon(activeSession()?.deviceName) }} ax-text-primary-500 ax-m-3\"></i>\n </div>\n @if (activeSession()) {\n <div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ activeSession()?.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ activeSession()?.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ activeSession()?.location }} <span>\n {{ activeSession()?.lastLoginDate ? (activeSession()?.lastLoginDate | date: 'yyyy/MM/dd HH:mm') : '' }}\n </span>\n </p>\n </div>\n </div>\n }\n </div>\n\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-danger-200 ax-border ax-bg-danger-50 ax-rounded-lg\">\n <i class=\"ax-icon ax-icon-clear ax-text-danger-500 ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2 ax-cursor-pointer\" (click)=\"onTerminateAll()\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">Terminate All Other Sessions</div>\n <p class=\"ax-font-normal ax-text-sm ax-subtitle-on-lightest\">Log out all devices exept for this one.</p>\n </div>\n </div>\n }\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div>\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mt-4 ax-mb-4\">Active Devices</p>\n @for (item of itemsWithIcons(); track item) {\n <div>\n <div\n class=\"ax-flex ax-border ax-items-center ax-relative ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <i\n class=\"ax-icon ax-icon-close ax-absolute ax-end-2 ax-top-2 ax-cursor-pointer\"\n (click)=\"onTerminate(item.id)\"\n ></i>\n <div class=\"ax-border ax-rounded-lg\">\n <i class=\"{{ item.icon }} ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ item.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ item.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ item.location }} <span>{{ item.lastLoginDate ? (item.lastLoginDate | date: 'yyyy/MM/dd HH:mm') : '' }}</span>\n </p>\n </div>\n </div>\n </div>\n }\n </div>\n }\n</div>\n<ax-footer>\n <div class=\"ax-flex-col ax-w-full\">\n <div>\n <p class=\"ax-text-danger-500 ax-font-medium ax-text-base\">Terminate Old Sessions</p>\n </div>\n <div>\n <ax-suffix>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-mt-4\">\n <div class=\"ax-font-normal ax-text-base ax-text-on-lightest\">If inactive for...</div>\n <div class=\"ax-w-3/6\">\n <ax-select-box\n [ngModel]=\"expireTime()\"\n (onValueChanged)=\"onChangeSessionExpireTime($event)\"\n [dataSource]=\"dataSource\"\n textField=\"name\"\n valueField=\"id\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </ax-suffix>\n </div>\n </div>\n</ax-footer>\n"],"names":["i1","i2","i3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MA8Ba,wBAAwB,CAAA;AAqCnC,IAAA,WAAA,GAAA;AApCA,QAAA,IAAA,CAAA,2BAA2B,GAAG;AAC5B,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,SAAS,EAAE,WAAW;SACvB;AAED,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAmD,EAAE,4EAAC;AACpE,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAA6D,SAAS,oFAAC;AAC7F,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAsC,IAAI,iFAAC;AAE9D,QAAA,IAAA,CAAA,eAAe,GAAG;YAChB,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE;YAC7E,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE;YAC/E,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE;YAClF,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE;SACjF;QACS,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,CAAM;AAC3C,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,IAAI,EAAE,OAAO,CAAC,KAAI;AAChB,gBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe;gBAChC,OAAO;oBACL,KAAK;oBACL,KAAK,EAAE,KAAK,CAAC,MAAM;iBACpB;YACH,CAAC;AACF,SAAA,CAAC;AACM,QAAA,IAAA,CAAA,yBAAyB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAChE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;;AAgCpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MACxB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AAC1B,YAAA,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;SAC1C,CAAC,CAAC,qFACJ;QAlCC,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEQ,IAAA,MAAM,gBAAgB,GAAA;AAC5B,QAAA,IAAI;YACF,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;AACjE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAExB,YAAA,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,EAAE;AACrF,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;YACvC;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAC/C,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;YACnC;AAEA,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACrG,IAAI,cAAc,IAAI,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC,2BAA2B,EAAE;gBAC3E,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;gBACrF,IAAI,YAAY,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;gBACvE;YACF;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;QACrD;IACF;AAUA,IAAA,aAAa,CAAC,UAA8B,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU;YAAE,OAAO,sBAAsB,CAAC;AAE/C,QAAA,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE;AAE9C,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,YAAA,OAAO,sBAAsB;AACpE,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,oBAAoB;AACnG,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,oBAAoB;AAChE,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,YAAA,OAAO,sBAAsB;AACpE,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,oBAAoB;QAEpI,OAAO,qBAAqB,CAAC;IAC/B;AAEU,IAAA,yBAAyB,CAAC,CAAsB,EAAA;AACxD,QAAA,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACtF;IAEA,MAAM,WAAW,CAAC,SAA6B,EAAA;QAC7C,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC;YACrC;QACF;QACA,MAAM,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAChE,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE;IAC/B;AAEA,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,MAAM,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE;AAC1D,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE;IAC/B;8GAxGW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BrC,s8HAyFA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpEI,cAAc,8BACd,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,gBAAgB,8BAChB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGN,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;sCAES,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,cAAc;wBACd,iBAAiB;wBACjB,YAAY;wBACZ,WAAW;wBACX,iBAAiB;wBACjB,gBAAgB;wBAChB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,s8HAAA,EAAA;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { g as AXMAuthErrorHandler, h as AXMAuthModule, b as AXMAuthenticationTypes, i as AXMDefaultAuthConfigs, j as AXMDeviceSessionsService, k as AXMDeviceSessionsServiceImpl, l as AXMSessionStatusTypes, A as AXM_AUTH_CONFIG_TOKEN, a as AXM_LOGIN_GUARD_TOKEN, m as AXPIdleService, n as canActivateLogin, o as configAuthModule } from './acorex-modules-auth-acorex-modules-auth-
|
|
1
|
+
export { g as AXMAuthErrorHandler, h as AXMAuthModule, b as AXMAuthenticationTypes, i as AXMDefaultAuthConfigs, j as AXMDeviceSessionsService, k as AXMDeviceSessionsServiceImpl, l as AXMSessionStatusTypes, A as AXM_AUTH_CONFIG_TOKEN, a as AXM_LOGIN_GUARD_TOKEN, m as AXPIdleService, n as canActivateLogin, o as configAuthModule } from './acorex-modules-auth-acorex-modules-auth-D4IBi_VD.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-modules-auth.mjs.map
|