@acorex/modules 20.2.0-next.1 → 20.2.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/auth/index.d.ts +59 -4
  2. package/common/index.d.ts +1 -8
  3. package/contact-management/index.d.ts +69 -2
  4. package/conversation/README.md +2 -2
  5. package/conversation/index.d.ts +219 -114
  6. package/data-management/index.d.ts +5 -12
  7. package/document-management/index.d.ts +51 -4
  8. package/fesm2022/{acorex-modules-application-management-module-designer.component-udoks-Ef.mjs → acorex-modules-application-management-module-designer.component-CsZjqUAj.mjs} +7 -7
  9. package/fesm2022/{acorex-modules-application-management-module-designer.component-udoks-Ef.mjs.map → acorex-modules-application-management-module-designer.component-CsZjqUAj.mjs.map} +1 -1
  10. package/fesm2022/acorex-modules-application-management.mjs +41 -41
  11. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  12. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs → acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs} +254 -105
  13. package/fesm2022/acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs.map +1 -0
  14. package/fesm2022/{acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs → acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs} +8 -6
  15. package/fesm2022/acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs.map +1 -0
  16. package/fesm2022/{acorex-modules-auth-blank.layout-C8NsXB9K.mjs → acorex-modules-auth-blank.layout-ZjroQcdq.mjs} +4 -4
  17. package/fesm2022/{acorex-modules-auth-blank.layout-C8NsXB9K.mjs.map → acorex-modules-auth-blank.layout-ZjroQcdq.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-auth-login.module-ZEX4NMuJ.mjs → acorex-modules-auth-login.module-D1aa1F6G.mjs} +8 -8
  19. package/fesm2022/{acorex-modules-auth-login.module-ZEX4NMuJ.mjs.map → acorex-modules-auth-login.module-D1aa1F6G.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-auth-master.layout-D-lIn4Pl.mjs → acorex-modules-auth-master.layout-CGQmSlGQ.mjs} +5 -5
  21. package/fesm2022/{acorex-modules-auth-master.layout-D-lIn4Pl.mjs.map → acorex-modules-auth-master.layout-CGQmSlGQ.mjs.map} +1 -1
  22. package/fesm2022/acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs +97 -0
  23. package/fesm2022/acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs.map +1 -0
  24. package/fesm2022/{acorex-modules-auth-password.component-CafZfqKe.mjs → acorex-modules-auth-password.component-Cb3FJ1DZ.mjs} +9 -9
  25. package/fesm2022/{acorex-modules-auth-password.component-CafZfqKe.mjs.map → acorex-modules-auth-password.component-Cb3FJ1DZ.mjs.map} +1 -1
  26. package/fesm2022/acorex-modules-auth-password.component-CiWdX7f_.mjs +226 -0
  27. package/fesm2022/acorex-modules-auth-password.component-CiWdX7f_.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-auth-routes-D9-qfC3V.mjs → acorex-modules-auth-routes-pae8qpX9.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-auth-routes-D9-qfC3V.mjs.map → acorex-modules-auth-routes-pae8qpX9.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs → acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs} +21 -12
  31. package/fesm2022/acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs.map +1 -0
  32. package/fesm2022/{acorex-modules-auth-two-factor-code.component-BglerlU-.mjs → acorex-modules-auth-two-factor-code.component-DDEIajiI.mjs} +8 -8
  33. package/fesm2022/{acorex-modules-auth-two-factor-code.component-BglerlU-.mjs.map → acorex-modules-auth-two-factor-code.component-DDEIajiI.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-auth-two-factor.module-D3N2XyOH.mjs → acorex-modules-auth-two-factor.module-DtcoHPH4.mjs} +7 -7
  35. package/fesm2022/{acorex-modules-auth-two-factor.module-D3N2XyOH.mjs.map → acorex-modules-auth-two-factor.module-DtcoHPH4.mjs.map} +1 -1
  36. package/fesm2022/acorex-modules-auth-user-sessions.component-sI6P2joA.mjs +135 -0
  37. package/fesm2022/acorex-modules-auth-user-sessions.component-sI6P2joA.mjs.map +1 -0
  38. package/fesm2022/acorex-modules-auth.mjs +1 -1
  39. package/fesm2022/acorex-modules-calendar-management.mjs +22 -22
  40. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  41. package/fesm2022/{acorex-modules-common-search-popup.component-DbTj01Wz.mjs → acorex-modules-common-search-popup.component-D7Y4T3Rp.mjs} +8 -8
  42. package/fesm2022/{acorex-modules-common-search-popup.component-DbTj01Wz.mjs.map → acorex-modules-common-search-popup.component-D7Y4T3Rp.mjs.map} +1 -1
  43. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-D_6STmWm.mjs → acorex-modules-common-timeline-version-history-popup.component-ceEtE6qB.mjs} +7 -7
  44. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-D_6STmWm.mjs.map → acorex-modules-common-timeline-version-history-popup.component-ceEtE6qB.mjs.map} +1 -1
  45. package/fesm2022/acorex-modules-common.mjs +1222 -1
  46. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  47. package/fesm2022/{acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs → acorex-modules-contact-management-acorex-modules-contact-management-Co0tt3cj.mjs} +281 -54
  48. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-Co0tt3cj.mjs.map +1 -0
  49. package/fesm2022/{acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs → acorex-modules-contact-management-address-type.entity-DQZwgXki.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs.map → acorex-modules-contact-management-address-type.entity-DQZwgXki.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs → acorex-modules-contact-management-contact-address.entity-CFfRywsB.mjs} +2 -2
  52. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs.map → acorex-modules-contact-management-contact-address.entity-CFfRywsB.mjs.map} +1 -1
  53. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-Cpdd-Xwb.mjs → acorex-modules-contact-management-contact-method.entity-Ci93_mb9.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-Cpdd-Xwb.mjs.map → acorex-modules-contact-management-contact-method.entity-Ci93_mb9.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-B_gQ7mEo.mjs → acorex-modules-contact-management-contact-relationship.entity-CqdXpqLN.mjs} +2 -2
  56. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-B_gQ7mEo.mjs.map → acorex-modules-contact-management-contact-relationship.entity-CqdXpqLN.mjs.map} +1 -1
  57. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs → acorex-modules-contact-management-contact-source.entity-BsF9p0GK.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs.map → acorex-modules-contact-management-contact-source.entity-BsF9p0GK.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-CDbm4Rq3.mjs → acorex-modules-contact-management-emergency-contact-category.entity-DjOm8qQb.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-CDbm4Rq3.mjs.map → acorex-modules-contact-management-emergency-contact-category.entity-DjOm8qQb.mjs.map} +1 -1
  61. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-BpNDJPVs.mjs → acorex-modules-contact-management-emergency-contact.entity-BQyjzPR8.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-BpNDJPVs.mjs.map → acorex-modules-contact-management-emergency-contact.entity-BQyjzPR8.mjs.map} +1 -1
  63. package/fesm2022/acorex-modules-contact-management.mjs +1 -1
  64. package/fesm2022/acorex-modules-content-management.mjs +14 -36
  65. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  66. package/fesm2022/acorex-modules-conversation.mjs +1611 -1308
  67. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-dashboard-management.mjs +76 -75
  69. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  70. package/fesm2022/acorex-modules-data-management.mjs +140 -126
  71. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  72. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-C7ot6PfT.mjs → acorex-modules-document-management-acorex-modules-document-management-DXGX-riG.mjs} +1402 -389
  73. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-DXGX-riG.mjs.map +1 -0
  74. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-C6pop0RM.mjs → acorex-modules-document-management-attachment-widget.component-NaY7Mn95.mjs} +5 -5
  75. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-C6pop0RM.mjs.map → acorex-modules-document-management-attachment-widget.component-NaY7Mn95.mjs.map} +1 -1
  76. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-ga7fuY4H.mjs → acorex-modules-document-management-create-folder-dialog.component-epxEuBU5.mjs} +5 -5
  77. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-ga7fuY4H.mjs.map → acorex-modules-document-management-create-folder-dialog.component-epxEuBU5.mjs.map} +1 -1
  78. package/fesm2022/{acorex-modules-document-management-details-view.component-CzTg3hha.mjs → acorex-modules-document-management-details-view.component-CMI2Eokj.mjs} +5 -5
  79. package/fesm2022/{acorex-modules-document-management-details-view.component-CzTg3hha.mjs.map → acorex-modules-document-management-details-view.component-CMI2Eokj.mjs.map} +1 -1
  80. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BB5d32EI.mjs → acorex-modules-document-management-drive-choose.component-DBKgwm70.mjs} +5 -5
  81. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BB5d32EI.mjs.map → acorex-modules-document-management-drive-choose.component-DBKgwm70.mjs.map} +1 -1
  82. package/fesm2022/{acorex-modules-document-management-drive.component-TzRLr7rb.mjs → acorex-modules-document-management-drive.component-DoGdTL3n.mjs} +11 -10
  83. package/fesm2022/acorex-modules-document-management-drive.component-DoGdTL3n.mjs.map +1 -0
  84. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BeKFvgYU.mjs → acorex-modules-document-management-large-icons-view.component-BRsTSoln.mjs} +5 -5
  85. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BeKFvgYU.mjs.map → acorex-modules-document-management-large-icons-view.component-BRsTSoln.mjs.map} +1 -1
  86. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CQyiGE99.mjs → acorex-modules-document-management-large-tiles-view.component-CpYeYyR5.mjs} +5 -5
  87. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CQyiGE99.mjs.map → acorex-modules-document-management-large-tiles-view.component-CpYeYyR5.mjs.map} +1 -1
  88. package/fesm2022/{acorex-modules-document-management-link-dialog.component-CPuOuvu-.mjs → acorex-modules-document-management-link-dialog.component-ZteosW8O.mjs} +4 -4
  89. package/fesm2022/{acorex-modules-document-management-link-dialog.component-CPuOuvu-.mjs.map → acorex-modules-document-management-link-dialog.component-ZteosW8O.mjs.map} +1 -1
  90. package/fesm2022/{acorex-modules-document-management-list-view.component-CWGGArxw.mjs → acorex-modules-document-management-list-view.component-C4VFnACA.mjs} +5 -5
  91. package/fesm2022/{acorex-modules-document-management-list-view.component-CWGGArxw.mjs.map → acorex-modules-document-management-list-view.component-C4VFnACA.mjs.map} +1 -1
  92. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-C7ounW6N.mjs → acorex-modules-document-management-meta-choose-popup.component-D5Csi3A3.mjs} +4 -4
  93. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-C7ounW6N.mjs.map → acorex-modules-document-management-meta-choose-popup.component-D5Csi3A3.mjs.map} +1 -1
  94. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-C_J1rPak.mjs → acorex-modules-document-management-meta-selector-widget-column.component-OXeS0kW8.mjs} +4 -4
  95. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-C_J1rPak.mjs.map → acorex-modules-document-management-meta-selector-widget-column.component-OXeS0kW8.mjs.map} +1 -1
  96. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-By_NgUX6.mjs → acorex-modules-document-management-meta-selector-widget-designer.component-BdVSGb3M.mjs} +4 -4
  97. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-By_NgUX6.mjs.map → acorex-modules-document-management-meta-selector-widget-designer.component-BdVSGb3M.mjs.map} +1 -1
  98. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-zwCw3v1w.mjs → acorex-modules-document-management-meta-selector-widget-view.component-B-Vos30P.mjs} +4 -4
  99. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-zwCw3v1w.mjs.map → acorex-modules-document-management-meta-selector-widget-view.component-B-Vos30P.mjs.map} +1 -1
  100. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-s0P0M8p2.mjs → acorex-modules-document-management-permission-definition.provider-Bc7rbWwN.mjs} +10 -2
  101. package/fesm2022/acorex-modules-document-management-permission-definition.provider-Bc7rbWwN.mjs.map +1 -0
  102. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-MPkYZl2p.mjs → acorex-modules-document-management-rename-node-dialog.component-DWUVMrVt.mjs} +5 -5
  103. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-MPkYZl2p.mjs.map → acorex-modules-document-management-rename-node-dialog.component-DWUVMrVt.mjs.map} +1 -1
  104. package/fesm2022/{acorex-modules-document-management-share-dialog.component-CLF6b1Io.mjs → acorex-modules-document-management-share-dialog.component-CkyuEAwV.mjs} +4 -4
  105. package/fesm2022/{acorex-modules-document-management-share-dialog.component-CLF6b1Io.mjs.map → acorex-modules-document-management-share-dialog.component-CkyuEAwV.mjs.map} +1 -1
  106. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-B8zNvOUv.mjs → acorex-modules-document-management-share-email-dialog.component-DXjcTOny.mjs} +4 -4
  107. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-B8zNvOUv.mjs.map → acorex-modules-document-management-share-email-dialog.component-DXjcTOny.mjs.map} +1 -1
  108. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-DRVLlW1e.mjs → acorex-modules-document-management-small-icons-view.component-CCirsfoz.mjs} +5 -5
  109. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-DRVLlW1e.mjs.map → acorex-modules-document-management-small-icons-view.component-CCirsfoz.mjs.map} +1 -1
  110. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C1E8RKYM.mjs → acorex-modules-document-management-small-tiles-view.component-58KZSQC4.mjs} +5 -5
  111. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C1E8RKYM.mjs.map → acorex-modules-document-management-small-tiles-view.component-58KZSQC4.mjs.map} +1 -1
  112. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  113. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-zz8KU2BM.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-DxSYInAR.mjs} +65 -67
  114. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-DxSYInAR.mjs.map +1 -0
  115. package/fesm2022/{acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs → acorex-modules-form-template-management-category.entity-DeCfvNqF.mjs} +2 -2
  116. package/fesm2022/{acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs.map → acorex-modules-form-template-management-category.entity-DeCfvNqF.mjs.map} +1 -1
  117. package/fesm2022/{acorex-modules-form-template-management-designer.page-DQorNK3f.mjs → acorex-modules-form-template-management-designer.page-BsjFGFOD.mjs} +4 -4
  118. package/fesm2022/{acorex-modules-form-template-management-designer.page-DQorNK3f.mjs.map → acorex-modules-form-template-management-designer.page-BsjFGFOD.mjs.map} +1 -1
  119. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-BFPqDVO3.mjs → acorex-modules-form-template-management-permission-definition.provider-CsjgxSgC.mjs} +2 -2
  120. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-BFPqDVO3.mjs.map → acorex-modules-form-template-management-permission-definition.provider-CsjgxSgC.mjs.map} +1 -1
  121. package/fesm2022/{acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs → acorex-modules-form-template-management-settings.provider-_BIGyRt8.mjs} +2 -2
  122. package/fesm2022/{acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs.map → acorex-modules-form-template-management-settings.provider-_BIGyRt8.mjs.map} +1 -1
  123. package/fesm2022/acorex-modules-form-template-management-template-picker.component-BCg756yD.mjs +224 -0
  124. package/fesm2022/acorex-modules-form-template-management-template-picker.component-BCg756yD.mjs.map +1 -0
  125. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CCL7xNSm.mjs → acorex-modules-form-template-management-template-widget-edit.component-DkqRsXMq.mjs} +5 -5
  126. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CCL7xNSm.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-DkqRsXMq.mjs.map} +1 -1
  127. package/fesm2022/{acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs → acorex-modules-form-template-management-template.entity-CQm29n5v.mjs} +2 -2
  128. package/fesm2022/{acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs.map → acorex-modules-form-template-management-template.entity-CQm29n5v.mjs.map} +1 -1
  129. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs → acorex-modules-form-template-management-viewer-popup.component-DW2Z5EcJ.mjs} +12 -19
  130. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-DW2Z5EcJ.mjs.map +1 -0
  131. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  132. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-ITP4K-tZ.mjs → acorex-modules-issue-management-acorex-modules-issue-management-a_wcGVPh.mjs} +31 -35
  133. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-a_wcGVPh.mjs.map +1 -0
  134. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-C1USFJeP.mjs → acorex-modules-issue-management-capture-screen.component-CsahsE-E.mjs} +5 -5
  135. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-C1USFJeP.mjs.map → acorex-modules-issue-management-capture-screen.component-CsahsE-E.mjs.map} +1 -1
  136. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  137. package/fesm2022/acorex-modules-locale-management-acorex-modules-locale-management-CfaOC6U5.mjs +1975 -0
  138. package/fesm2022/acorex-modules-locale-management-acorex-modules-locale-management-CfaOC6U5.mjs.map +1 -0
  139. package/fesm2022/acorex-modules-locale-management-profiles-MJ9xFTtp.mjs +19 -0
  140. package/fesm2022/acorex-modules-locale-management-profiles-MJ9xFTtp.mjs.map +1 -0
  141. package/fesm2022/{acorex-modules-common-settings.provider-DPVsF4c9.mjs → acorex-modules-locale-management-settings.provider-PKnqTses.mjs} +6 -6
  142. package/fesm2022/acorex-modules-locale-management-settings.provider-PKnqTses.mjs.map +1 -0
  143. package/fesm2022/acorex-modules-locale-management.mjs +2 -0
  144. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -0
  145. package/fesm2022/acorex-modules-location-management.mjs +3139 -0
  146. package/fesm2022/acorex-modules-location-management.mjs.map +1 -0
  147. package/fesm2022/acorex-modules-log-management.mjs +160 -35
  148. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  149. package/fesm2022/acorex-modules-notification-management.mjs +180 -73
  150. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  151. package/fesm2022/{acorex-modules-organization-management-add-item.component-Dr-bwC4K.mjs → acorex-modules-organization-management-add-item.component-CzIIXsRJ.mjs} +4 -4
  152. package/fesm2022/{acorex-modules-organization-management-add-item.component-Dr-bwC4K.mjs.map → acorex-modules-organization-management-add-item.component-CzIIXsRJ.mjs.map} +1 -1
  153. package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +1 -1
  154. package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +1 -1
  155. package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +1 -1
  156. package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +1 -1
  157. package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +1 -1
  158. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs → acorex-modules-organization-management-org-chart-configuration.page-XXAEpYNo.mjs} +5 -5
  159. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-XXAEpYNo.mjs.map} +1 -1
  160. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs → acorex-modules-organization-management-org-chart-configuration.service-CIveMQUH.mjs} +4 -4
  161. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs.map → acorex-modules-organization-management-org-chart-configuration.service-CIveMQUH.mjs.map} +1 -1
  162. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CXhtYrCS.mjs → acorex-modules-organization-management-org-chart.page-UqJ1VOJ-.mjs} +15 -14
  163. package/fesm2022/acorex-modules-organization-management-org-chart.page-UqJ1VOJ-.mjs.map +1 -0
  164. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +1 -1
  165. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +1 -1
  166. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +1 -1
  167. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +1 -1
  168. package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +1 -1
  169. package/fesm2022/{acorex-modules-organization-management-settings.provider-hlbUXugb.mjs → acorex-modules-organization-management-settings.provider-feVwZnkw.mjs} +6 -30
  170. package/fesm2022/acorex-modules-organization-management-settings.provider-feVwZnkw.mjs.map +1 -0
  171. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +1 -1
  172. package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +1 -1
  173. package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +1 -1
  174. package/fesm2022/acorex-modules-organization-management.mjs +128 -124
  175. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  176. package/fesm2022/{acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs → acorex-modules-platform-management-list-version.component-wqhq6ek4.mjs} +4 -4
  177. package/fesm2022/{acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs.map → acorex-modules-platform-management-list-version.component-wqhq6ek4.mjs.map} +1 -1
  178. package/fesm2022/acorex-modules-platform-management.mjs +91 -303
  179. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  180. package/fesm2022/acorex-modules-project-management.mjs +232 -453
  181. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  182. package/fesm2022/{acorex-modules-report-management-report-create-root.component-Cv88TDx7.mjs → acorex-modules-report-management-report-create-root.component-CFNtnshF.mjs} +4 -4
  183. package/fesm2022/{acorex-modules-report-management-report-create-root.component-Cv88TDx7.mjs.map → acorex-modules-report-management-report-create-root.component-CFNtnshF.mjs.map} +1 -1
  184. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-DHu-kyCd.mjs → acorex-modules-report-management-report-runner-root-page.component-CbfJ_7Da.mjs} +7 -7
  185. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-DHu-kyCd.mjs.map → acorex-modules-report-management-report-runner-root-page.component-CbfJ_7Da.mjs.map} +1 -1
  186. package/fesm2022/acorex-modules-report-management.mjs +24 -24
  187. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  188. package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
  189. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  190. package/fesm2022/acorex-modules-security-management.mjs +830 -258
  191. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  192. package/fesm2022/{acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs → acorex-modules-settings-management-setting-page.component-BhF5x-8D.mjs} +12 -6
  193. package/fesm2022/acorex-modules-settings-management-setting-page.component-BhF5x-8D.mjs.map +1 -0
  194. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs → acorex-modules-settings-management-setting-view.component-Do_gNJ2t.mjs} +4 -4
  195. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs.map → acorex-modules-settings-management-setting-view.component-Do_gNJ2t.mjs.map} +1 -1
  196. package/fesm2022/acorex-modules-settings-management.mjs +9 -7
  197. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  198. package/fesm2022/acorex-modules-task-management.mjs +5937 -0
  199. package/fesm2022/acorex-modules-task-management.mjs.map +1 -0
  200. package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
  201. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  202. package/fesm2022/acorex-modules-training-management.mjs +43 -43
  203. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  204. package/fesm2022/{acorex-modules-workflow-management-acorex-modules-workflow-management-enYapFRb.mjs → acorex-modules-workflow-management-acorex-modules-workflow-management-DC7jdoqZ.mjs} +64 -33
  205. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-DC7jdoqZ.mjs.map +1 -0
  206. package/fesm2022/{acorex-modules-workflow-management-task-board.page-CPL7HwN4.mjs → acorex-modules-workflow-management-task-board.page-Bv2GAPaN.mjs} +197 -183
  207. package/fesm2022/acorex-modules-workflow-management-task-board.page-Bv2GAPaN.mjs.map +1 -0
  208. package/fesm2022/acorex-modules-workflow-management.mjs +1 -1
  209. package/locale-management/README.md +3 -0
  210. package/locale-management/index.d.ts +182 -0
  211. package/location-management/README.md +3 -0
  212. package/location-management/index.d.ts +166 -0
  213. package/notification-management/index.d.ts +79 -60
  214. package/package.json +20 -8
  215. package/security-management/index.d.ts +13 -4
  216. package/task-management/README.md +189 -0
  217. package/task-management/index.d.ts +320 -0
  218. package/workflow-management/index.d.ts +10 -5
  219. package/fesm2022/acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs.map +0 -1
  220. package/fesm2022/acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs.map +0 -1
  221. package/fesm2022/acorex-modules-auth-password.component-DLCb0_6e.mjs +0 -134
  222. package/fesm2022/acorex-modules-auth-password.component-DLCb0_6e.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-common-acorex-modules-common-D06CT4CO.mjs +0 -1657
  225. package/fesm2022/acorex-modules-common-acorex-modules-common-D06CT4CO.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-common-settings.provider-DPVsF4c9.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C7ot6PfT.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-document-management-drive.component-TzRLr7rb.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-document-management-permission-definition.provider-s0P0M8p2.mjs.map +0 -1
  231. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-zz8KU2BM.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-form-template-management-template-picker.component-DgH_DUIB.mjs +0 -196
  233. package/fesm2022/acorex-modules-form-template-management-template-picker.component-DgH_DUIB.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-ITP4K-tZ.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-organization-management-org-chart.page-CXhtYrCS.mjs.map +0 -1
  237. package/fesm2022/acorex-modules-organization-management-settings.provider-hlbUXugb.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-enYapFRb.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-workflow-management-task-board.page-CPL7HwN4.mjs.map +0 -1
@@ -1,15 +1,18 @@
1
- import { AXPUnauthorizedError, AXPUnauthenticatedError, AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
1
+ import { AXPUnauthorizedError, AXPUnauthenticatedError, AXPSessionService, AXPAuthStrategyRegistryService, AXPAuthGuard } from '@acorex/platform/auth';
2
2
  import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
3
+ import * as i1$3 from '@angular/common/http';
3
4
  import { HttpErrorResponse } from '@angular/common/http';
4
5
  import * as i0 from '@angular/core';
5
6
  import { inject, isDevMode, Injectable, InjectionToken, Component, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, signal, NgModule, Injector } from '@angular/core';
6
- import * as i1$1 from '@angular/router';
7
+ import * as i1$2 from '@angular/router';
7
8
  import { Router, RouterModule, ROUTES } from '@angular/router';
8
- import * as i1$3 from '@acorex/platform/common';
9
- import { AXPHomePageService, AXPDataProvider, AXPCommonModule, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
10
- import * as i3 from '@angular/common';
9
+ import * as i1$5 from '@acorex/platform/common';
10
+ import { AXPHomePageService, AXPDataProvider, AXPSettingService, AXPCommonModule, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
11
+ import * as i1$1 from '@angular/common';
11
12
  import { CommonModule, AsyncPipe } from '@angular/common';
12
- import { firstValueFrom, of, first, Subject, timer } from 'rxjs';
13
+ import { firstValueFrom, of, first, Subject, timer, map } from 'rxjs';
14
+ import * as i1$4 from '@acorex/platform/layout/components';
15
+ import { AXPUserAvatarComponent, AXPComponentSlotModule } from '@acorex/platform/layout/components';
13
16
  import * as i2$1 from '@acorex/components/button';
14
17
  import { AXButtonModule } from '@acorex/components/button';
15
18
  import * as i1 from '@acorex/components/decorators';
@@ -24,11 +27,11 @@ import { AXPopupService } from '@acorex/components/popup';
24
27
  import { AXPlatform } from '@acorex/core/platform';
25
28
  import * as i6 from '@acorex/core/translation';
26
29
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
27
- import * as i1$2 from '@acorex/platform/layout/components';
28
- import { AXPUserAvatarComponent, AXPComponentSlotModule } from '@acorex/platform/layout/components';
29
30
  import { AXChipsModule } from '@acorex/components/chips';
30
31
  import { AXTagModule } from '@acorex/components/tag';
32
+ import { AXPPlatformScope } from '@acorex/platform/core';
31
33
  import { startWith, switchMap, tap } from 'rxjs/operators';
34
+ import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
32
35
 
33
36
  class AXMAuthErrorHandler {
34
37
  constructor() {
@@ -64,10 +67,10 @@ class AXMAuthErrorHandler {
64
67
  }
65
68
  this.layoutService.setNavigationLoading(false);
66
69
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthErrorHandler }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthErrorHandler }); }
69
72
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthErrorHandler, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthErrorHandler, decorators: [{
71
74
  type: Injectable
72
75
  }] });
73
76
 
@@ -88,6 +91,9 @@ const AXM_AUTH_CONFIG_TOKEN = new InjectionToken('app-module-auth-config', {
88
91
  });
89
92
  const AXMDefaultAuthConfigs = {
90
93
  type: AXMAuthenticationTypes.UsernamePassword,
94
+ defaultStrategyName: 'oidc',
95
+ // حذف authConfig از اینجا چون از environment خوانده می‌شود
96
+ // defaultStrategyName:'user-pass'
91
97
  };
92
98
  function configAuthModule(config = AXMDefaultAuthConfigs) {
93
99
  return { ...AXMDefaultAuthConfigs, ...config };
@@ -104,25 +110,34 @@ const routes = [
104
110
  },
105
111
  {
106
112
  path: '',
107
- loadComponent: () => import('./acorex-modules-auth-master.layout-D-lIn4Pl.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
108
- loadChildren: () => import('./acorex-modules-auth-login.module-ZEX4NMuJ.mjs').then((c) => c.AXPSignInModule),
113
+ loadComponent: () => import('./acorex-modules-auth-master.layout-CGQmSlGQ.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
114
+ loadChildren: () => import('./acorex-modules-auth-login.module-D1aa1F6G.mjs').then((c) => c.AXPSignInModule),
109
115
  },
110
116
  {
111
117
  path: '',
112
- loadComponent: () => import('./acorex-modules-auth-master.layout-D-lIn4Pl.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
113
- loadChildren: () => import('./acorex-modules-auth-two-factor.module-D3N2XyOH.mjs').then((c) => c.AXPTwoFactorModule),
118
+ loadComponent: () => import('./acorex-modules-auth-master.layout-CGQmSlGQ.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
119
+ loadChildren: () => import('./acorex-modules-auth-two-factor.module-DtcoHPH4.mjs').then((c) => c.AXPTwoFactorModule),
114
120
  },
115
121
  {
116
122
  path: '',
117
- loadComponent: () => import('./acorex-modules-auth-master.layout-D-lIn4Pl.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
118
- loadChildren: () => import('./acorex-modules-auth-routes-D9-qfC3V.mjs').then((c) => c),
123
+ loadComponent: () => import('./acorex-modules-auth-master.layout-CGQmSlGQ.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
124
+ loadChildren: () => import('./acorex-modules-auth-routes-pae8qpX9.mjs').then((c) => c),
125
+ },
126
+ {
127
+ path: 'axp-oauth-callback',
128
+ loadComponent: () => import('./acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs').then((c) => c.AXPOAuthCallbackComponent),
119
129
  },
120
130
  {
121
131
  path: 'account',
122
- loadComponent: () => import('./acorex-modules-auth-blank.layout-C8NsXB9K.mjs').then((c) => c.AXPAuthBlankLayoutComponent),
132
+ loadComponent: () => import('./acorex-modules-auth-blank.layout-ZjroQcdq.mjs').then((c) => c.AXPAuthBlankLayoutComponent),
123
133
  loadChildren: () => Promise.resolve().then(function () { return account_module; }).then((c) => c.AXPAccountModule),
124
134
  },
125
135
  // {
136
+ // path: 'signincallback',
137
+ // loadComponent: () =>
138
+ // import('./pages/callback/oauth-callback.component').then((c) => c.AXPOAuthCallbackComponent),
139
+ // },
140
+ // {
126
141
  // path: '',
127
142
  // loadComponent: () =>
128
143
  // import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),
@@ -159,18 +174,32 @@ class AXPAppChooserListComponent {
159
174
  this.router = inject(Router);
160
175
  this.sessionService = inject(AXPSessionService);
161
176
  this.homePageService = inject(AXPHomePageService);
177
+ this.authStrategyRegistry = inject(AXPAuthStrategyRegistryService);
178
+ this.strategyName = this.sessionService.getSessionData()?.strategy;
179
+ this.strategy = this.authStrategyRegistry.get(this.strategyName);
162
180
  this.selectedApplication = null;
163
181
  this.applications$ = this.sessionService.applications$;
164
182
  }
165
183
  async chooseApplication(item) {
166
184
  this.selectedApplication = item;
167
- await this.sessionService.setApplication(item);
168
- await this.homePageService.navigateTo();
185
+ const tenantId = this.sessionService.tenant?.id || '';
186
+ if (!tenantId) {
187
+ throw new Error('Tenant ID is missing. Cannot choose application.');
188
+ }
189
+ if (this.strategy && typeof this.strategy.updateToken === 'function') {
190
+ const updateContext = {
191
+ application: item,
192
+ user: this.sessionService.user,
193
+ tenant: this.sessionService.tenant,
194
+ };
195
+ await this.sessionService.updateToken(updateContext);
196
+ }
197
+ return await this.homePageService.navigateTo();
169
198
  }
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
171
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", ngImport: i0, template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", ngImport: i0, template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
172
201
  }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
174
203
  type: Component,
175
204
  args: [{ selector: 'axp-app-chooser-list', imports: [CommonModule, AXDecoratorModule, AXLoadingModule], template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>" }]
176
205
  }] });
@@ -179,18 +208,28 @@ class AXMAppChooserSlotComponent {
179
208
  constructor() {
180
209
  this.sessionService = inject(AXPSessionService);
181
210
  this.homePageService = inject(AXPHomePageService);
211
+ this.authStrategyRegistry = inject(AXPAuthStrategyRegistryService);
212
+ this.strategyName = this.sessionService.getSessionData()?.strategy;
213
+ this.strategy = this.authStrategyRegistry.get(this.strategyName);
182
214
  this.tenant$ = this.sessionService.tenant$;
183
215
  this.application$ = this.sessionService.application$;
184
216
  this.applications$ = of([]);
185
217
  }
186
218
  async chooseApplication(item) {
187
- await this.sessionService.setApplication(item);
188
- await this.homePageService.navigateTo();
219
+ const tenantId = this.sessionService.tenant?.id || '';
220
+ if (this.strategy && typeof this.strategy.updateToken === 'function') {
221
+ const updateContext = {
222
+ tenant: this.sessionService.tenant,
223
+ user: this.sessionService.user,
224
+ application: item,
225
+ };
226
+ await this.sessionService.updateToken(updateContext);
227
+ }
189
228
  }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if(((applications$ | async)?.length ?? 0) > 1) {\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i2$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if(((applications$ | async)?.length ?? 0) > 1) {\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i2$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
192
231
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
194
233
  type: Component,
195
234
  args: [{ imports: [CommonModule, AXButtonModule, AXPopoverModule, AXDecoratorModule, AXPAppChooserListComponent], template: "@if(((applications$ | async)?.length ?? 0) > 1) {\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}\n" }]
196
235
  }] });
@@ -205,10 +244,10 @@ class AXPTenantChooserDropdownComponent {
205
244
  tenantChooser() {
206
245
  this.router.navigate(['/auth/account/tenant-chooser']);
207
246
  }
208
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", ngImport: i0, template: "<!-- <ng-container *ngIf=\"tenants$ | async as tenants\">\n@if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n}\n</ng-container> -->\n\n@if (tenants$ | async; as tenants) {\n <ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\">\n @if(tenants.length > 1){\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n }\n </ax-button>\n}", dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXChipsModule }, { kind: "ngmodule", type: AXTagModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", ngImport: i0, template: "<!-- <ng-container *ngIf=\"tenants$ | async as tenants\">\n@if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n}\n</ng-container> -->\n\n@if (tenants$ | async; as tenants) {\n <ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\">\n @if(tenants.length > 1){\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n }\n </ax-button>\n}", dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXChipsModule }, { kind: "ngmodule", type: AXTagModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
210
249
  }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
212
251
  type: Component,
213
252
  args: [{ selector: 'axp-tenant-chooser-dropdown', imports: [AXDecoratorModule, AXChipsModule, AXTagModule, CommonModule, AXButtonModule], template: "<!-- <ng-container *ngIf=\"tenants$ | async as tenants\">\n@if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n}\n</ng-container> -->\n\n@if (tenants$ | async; as tenants) {\n <ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\">\n @if(tenants.length > 1){\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n }\n </ax-button>\n}" }]
214
253
  }] });
@@ -239,14 +278,23 @@ class AXMAuthProfileSlotComponent {
239
278
  handleSignIn() {
240
279
  this.router.navigate(['/auth/login']);
241
280
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if (isAuthenticated$ | async) {\n <div class=\"ax-size-fit\">\n <div #avatar>\n <axp-user-avatar [size]=\"36\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n\n <ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #p>\n <div class=\"ax-bg-lightest ax-border ax-border-lightest ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <axp-user-avatar [size]=\"64\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n <li>\n <a (click)=\"editProfile()\">\n <i class=\"fa-light fa-user\"></i>\n <span>{{ 'profile.edit' | translate: { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"p.close()\" [routerLink]=\"['/', appName(), 'settings', 'user']\">\n <i class=\"fa-light fa-gear\"></i>\n <span>{{ 'profile.settings' | translate: { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <!-- <li>\n <a (click)=\"openUserSession()\">\n <i class=\"fa-light fa-mobile\"></i>\n <span>{{ 'profile.sessions' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li> -->\n <li class=\"ax-text-danger-500\">\n <a (click)=\"logOut()\">\n <i class=\"fa-light fa-arrow-right-from-bracket\"></i>\n <span>{{ 'profile.logout' | translate: { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n </ax-button>\n}\n", styles: [".axp-profile-slot-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.axp-profile-slot-menus ul:last-child{border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:.375rem}.axp-profile-slot-menus ul li:last-child{margin-bottom:.5rem}.axp-profile-slot-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}.axp-profile-slot-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type:
281
+ async openUserSession() {
282
+ const com = await import('./acorex-modules-auth-user-sessions.component-sI6P2joA.mjs').then((c) => c.AXMUserSessionsComponent);
283
+ this.popupService.open(com, {
284
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'sm',
285
+ title: await this.translateService.translateAsync('profile.sessions.title', {
286
+ scope: 'auth',
287
+ }),
288
+ });
289
+ }
290
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<div class=\"ax-size-fit\">\n <div #avatar>\n <axp-user-avatar [size]=\"36\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n\n <ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #p>\n <div class=\"ax-bg-lightest ax-border ax-border-lightest ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <axp-user-avatar [size]=\"64\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n <li>\n <a (click)=\"editProfile()\">\n <i class=\"fa-light fa-user\"></i>\n <span>{{ 'profile.edit' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"p.close()\" [routerLink]=\"['/', appName(), 'settings', 'user']\">\n <i class=\"fa-light fa-gear\"></i>\n <span>{{ 'profile.settings' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"openUserSession()\">\n <i class=\"fa-light fa-mobile\"></i>\n <span>{{ 'profile.sessions' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li class=\"ax-text-danger-500\">\n <a (click)=\"logOut()\">\n <i class=\"fa-light fa-arrow-right-from-bracket\"></i>\n <span>{{ 'profile.logout' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </ax-popover>\n</div>\n\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}\n", styles: [".axp-profile-slot-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.axp-profile-slot-menus ul:last-child{border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:.375rem}.axp-profile-slot-menus ul li:last-child{margin-bottom:.5rem}.axp-profile-slot-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}.axp-profile-slot-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type:
244
292
  //
245
293
  AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i2$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "component", type:
246
294
  //
247
- AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
295
+ AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
248
296
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthProfileSlotComponent, decorators: [{
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthProfileSlotComponent, decorators: [{
250
298
  type: Component,
251
299
  args: [{ imports: [
252
300
  CommonModule,
@@ -262,7 +310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
262
310
  AXPUserAvatarComponent,
263
311
  //
264
312
  AXPTenantChooserDropdownComponent,
265
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (isAuthenticated$ | async) {\n <div class=\"ax-size-fit\">\n <div #avatar>\n <axp-user-avatar [size]=\"36\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n\n <ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #p>\n <div class=\"ax-bg-lightest ax-border ax-border-lightest ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <axp-user-avatar [size]=\"64\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n <li>\n <a (click)=\"editProfile()\">\n <i class=\"fa-light fa-user\"></i>\n <span>{{ 'profile.edit' | translate: { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"p.close()\" [routerLink]=\"['/', appName(), 'settings', 'user']\">\n <i class=\"fa-light fa-gear\"></i>\n <span>{{ 'profile.settings' | translate: { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <!-- <li>\n <a (click)=\"openUserSession()\">\n <i class=\"fa-light fa-mobile\"></i>\n <span>{{ 'profile.sessions' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li> -->\n <li class=\"ax-text-danger-500\">\n <a (click)=\"logOut()\">\n <i class=\"fa-light fa-arrow-right-from-bracket\"></i>\n <span>{{ 'profile.logout' | translate: { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n </ax-button>\n}\n", styles: [".axp-profile-slot-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.axp-profile-slot-menus ul:last-child{border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:.375rem}.axp-profile-slot-menus ul li:last-child{margin-bottom:.5rem}.axp-profile-slot-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}.axp-profile-slot-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;padding:.5rem}\n"] }]
313
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if((isAuthenticated$ | async)) {\n<div class=\"ax-size-fit\">\n <div #avatar>\n <axp-user-avatar [size]=\"36\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n\n <ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #p>\n <div class=\"ax-bg-lightest ax-border ax-border-lightest ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <axp-user-avatar [size]=\"64\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n <li>\n <a (click)=\"editProfile()\">\n <i class=\"fa-light fa-user\"></i>\n <span>{{ 'profile.edit' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"p.close()\" [routerLink]=\"['/', appName(), 'settings', 'user']\">\n <i class=\"fa-light fa-gear\"></i>\n <span>{{ 'profile.settings' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"openUserSession()\">\n <i class=\"fa-light fa-mobile\"></i>\n <span>{{ 'profile.sessions' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n <li class=\"ax-text-danger-500\">\n <a (click)=\"logOut()\">\n <i class=\"fa-light fa-arrow-right-from-bracket\"></i>\n <span>{{ 'profile.logout' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </ax-popover>\n</div>\n\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}\n", styles: [".axp-profile-slot-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.axp-profile-slot-menus ul:last-child{border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:.375rem}.axp-profile-slot-menus ul li:last-child{margin-bottom:.5rem}.axp-profile-slot-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}.axp-profile-slot-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;padding:.5rem}\n"] }]
266
314
  }], propDecorators: { profilePopover: [{
267
315
  type: ViewChild,
268
316
  args: ['profilePopover']
@@ -327,14 +375,14 @@ class AXMUserProfileCardSlotComponent {
327
375
  this.src = '';
328
376
  }
329
377
  }
330
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMUserProfileCardSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
331
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMUserProfileCardSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<div class=\"ax-p-3 ax-flex ax-items-center ax-gap-1 ax-border-b ax-border-lighter\">\n <div #avatar>\n <axp-user-avatar [size]=\"48\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n <div class=\"ax-flex ax-flex-col\">\n <ax-title class=\"ax-text-sm ax-font-medium ax-px-3\">{{ (user$ | async)?.title }}</ax-title>\n <axp-tenant-chooser-dropdown />\n </div>\n</div>\n}\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
378
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMUserProfileCardSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
379
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXMUserProfileCardSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<div class=\"ax-p-3 ax-flex ax-items-center ax-gap-1 ax-border-b ax-border-lighter\">\n <div #avatar>\n <axp-user-avatar [size]=\"48\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n <div class=\"ax-flex ax-flex-col\">\n <ax-title class=\"ax-text-sm ax-font-medium ax-px-3\">{{ (user$ | async)?.title }}</ax-title>\n <axp-tenant-chooser-dropdown />\n </div>\n</div>\n}\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
332
380
  //
333
381
  AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type:
334
382
  //
335
383
  AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
336
384
  }
337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMUserProfileCardSlotComponent, decorators: [{
385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMUserProfileCardSlotComponent, decorators: [{
338
386
  type: Component,
339
387
  args: [{ imports: [
340
388
  RouterModule,
@@ -356,62 +404,193 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
356
404
  args: ['profilePopover']
357
405
  }] } });
358
406
 
407
+ class AXPIdleService {
408
+ constructor() {
409
+ this.configs = inject(AXM_AUTH_CONFIG_TOKEN);
410
+ this.idle$ = new Subject();
411
+ this.timeoutDuration = this.configs.idleTimeout ?? 10 * 60 * 1000;
412
+ this.userActivity$ = new Subject();
413
+ this.idleSubscription = null;
414
+ this.setupActivityListeners();
415
+ }
416
+ get idleState$() {
417
+ return this.idle$.asObservable();
418
+ }
419
+ setupActivityListeners() {
420
+ const activityEvents = ['mousemove', 'keydown', 'wheel'];
421
+ activityEvents.forEach(event => document.addEventListener(event, () => this.resetTimer()));
422
+ }
423
+ startWatching() {
424
+ this.stopWatching(); // Stop any existing subscription
425
+ this.idleSubscription = this.userActivity$.pipe(startWith(null), switchMap(() => timer(this.timeoutDuration)), tap(() => this.idle$.next())).subscribe();
426
+ }
427
+ resetTimer() {
428
+ this.userActivity$.next();
429
+ }
430
+ stopWatching() {
431
+ if (this.idleSubscription) {
432
+ this.idleSubscription.unsubscribe();
433
+ this.idleSubscription = null;
434
+ }
435
+ }
436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPIdleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
437
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPIdleService, providedIn: 'root' }); }
438
+ }
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPIdleService, decorators: [{
440
+ type: Injectable,
441
+ args: [{ providedIn: 'root' }]
442
+ }], ctorParameters: () => [] });
443
+
444
+ class AXMDeviceSessionsService extends AXMEntityCrudServiceImpl {
445
+ }
446
+ class AXMDeviceSessionsServiceImpl extends AXMDeviceSessionsService {
447
+ // private aXMAuthConfigs: AXMAuthConfigs = inject(AXM_AUTH_CONFIG_TOKEN);
448
+ constructor(http) {
449
+ super('auth.deviceSessions'); // TODO: Update with correct RootConfig if needed
450
+ this.http = http;
451
+ }
452
+ terminate(id) {
453
+ throw new Error('Method not implemented.');
454
+ }
455
+ async terminateAllCurrentUserSessions() {
456
+ return (this.http
457
+ .post('' + '/api/security-management/device-sessions/Terminate-All', {})
458
+ .pipe(map((t) => (t === undefined ? false : t)))
459
+ .toPromise() ?? false);
460
+ }
461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMDeviceSessionsServiceImpl, deps: [{ token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
462
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMDeviceSessionsServiceImpl }); }
463
+ }
464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMDeviceSessionsServiceImpl, decorators: [{
465
+ type: Injectable
466
+ }], ctorParameters: () => [{ type: i1$3.HttpClient }] });
467
+
468
+ class AXMUserDeviceSessionsService {
469
+ }
470
+ class AXMUserDeviceSessionsServiceImp extends AXMUserDeviceSessionsService {
471
+ constructor() {
472
+ super(); // Call the base class constructor (good practice)
473
+ this.sessionService = inject(AXPSessionService);
474
+ this.deviceSessionsService = inject(AXMDeviceSessionsService);
475
+ this.settingService = inject(AXPSettingService);
476
+ }
477
+ async getSessions() {
478
+ const userId = this.sessionService.user?.id;
479
+ if (!userId) {
480
+ return [];
481
+ }
482
+ const response = await this.deviceSessionsService.query();
483
+ const items = response.items.filter((item) => item.userId === userId && String(item.status).toLowerCase() === 'active' && !item.isActiveSession);
484
+ return items;
485
+ }
486
+ async getCurrentActiveSessions() {
487
+ const userId = this.sessionService.user?.id;
488
+ const response = await this.deviceSessionsService.query();
489
+ const activeSession = response.items.find((item) => item.userId === userId && String(item.status).toLowerCase() === 'active' && item.isActiveSession);
490
+ return activeSession;
491
+ }
492
+ async terminateSession(sessionId) {
493
+ await this.deviceSessionsService.updateOne(sessionId, { status: 'revoked' });
494
+ }
495
+ async terminateAllSession() {
496
+ await this.deviceSessionsService.terminateAllCurrentUserSessions();
497
+ }
498
+ async setTokenLifetimeMinutes(value) {
499
+ await this.settingService.scope(AXPPlatformScope.User).set('session-timeout', value);
500
+ let s2 = await this.settingService.scope(AXPPlatformScope.User).get('session-timeout');
501
+ }
502
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMUserDeviceSessionsServiceImp, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
503
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMUserDeviceSessionsServiceImp }); }
504
+ }
505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMUserDeviceSessionsServiceImp, decorators: [{
506
+ type: Injectable
507
+ }], ctorParameters: () => [] });
508
+
359
509
  const canActivateTenantChooser = async (route, state) => {
360
510
  const sessionService = inject(AXPSessionService);
511
+ const authStrategyRegistry = inject(AXPAuthStrategyRegistryService);
361
512
  const router = inject(Router);
513
+ const strategyName = sessionService.getSessionData()?.strategy;
514
+ const strategy = authStrategyRegistry.get(strategyName);
362
515
  const tenants = await firstValueFrom(sessionService.tenants$);
363
- if (tenants.length == 0) {
516
+ if (tenants.length === 0) {
517
+ window.alert('You do not have any tenant assigned to your account and cannot use the site. Please contact your administrator.');
364
518
  return router.createUrlTree(['/auth/login']);
365
519
  }
366
- if (tenants.length == 1) {
367
- await sessionService.setTenant(tenants[0]);
368
- return router.createUrlTree(['/auth/account/app-chooser']);
520
+ if (tenants.length === 1) {
521
+ if (strategy && typeof strategy.updateToken === 'function') {
522
+ const updateContext = {
523
+ user: sessionService.user,
524
+ tenant: tenants[0],
525
+ };
526
+ await sessionService.updateToken(updateContext);
527
+ return router.createUrlTree(['/auth/account/app-chooser']);
528
+ }
529
+ return false;
369
530
  }
370
531
  return true;
371
532
  };
533
+
372
534
  const canActivateAppChooser = async (route, state) => {
373
535
  const sessionService = inject(AXPSessionService);
536
+ const authStrategyRegistry = inject(AXPAuthStrategyRegistryService);
374
537
  const homePageService = inject(AXPHomePageService);
375
538
  const router = inject(Router);
539
+ const strategyName = sessionService.getSessionData()?.strategy;
540
+ const strategy = authStrategyRegistry.get(strategyName);
376
541
  const apps = await firstValueFrom(sessionService.applications$);
377
- if (apps.length == 0) {
378
- return router.createUrlTree(['/auth/login']);
379
- }
380
- if (apps.length == 1) {
381
- await sessionService.setApplication(apps[0]);
382
- return router.createUrlTree([homePageService.getCurrent().path]);
542
+ if (apps.length === 0) {
543
+ await router.navigate(['/auth/login']);
544
+ return false;
545
+ }
546
+ if (apps.length === 1) {
547
+ const tenantId = sessionService.tenant?.id;
548
+ if (!tenantId) {
549
+ throw new Error('Tenant ID is missing. Please contact support.');
550
+ }
551
+ if (strategy && typeof strategy.updateToken === 'function') {
552
+ const updateContext = {
553
+ user: sessionService.user,
554
+ tenant: sessionService.tenant,
555
+ application: apps[0],
556
+ };
557
+ await sessionService.updateToken(updateContext);
558
+ return router.createUrlTree([homePageService.getCurrent().path]);
559
+ }
560
+ return false;
383
561
  }
384
562
  return true;
385
563
  };
564
+
386
565
  function routesFacory() {
387
566
  let routes = [];
388
567
  routes = [
389
568
  {
390
569
  path: 'tenant-chooser',
391
- loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs').then((c) => c.AXPAuthTenantChooserComponent),
570
+ loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs').then((c) => c.AXPAuthTenantChooserComponent),
392
571
  canActivate: [AXPAuthGuard, canActivateTenantChooser],
393
572
  },
394
573
  {
395
574
  path: 'app-chooser',
396
- loadComponent: () => import('./acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs').then((c) => c.AXPAuthAppChooserComponent),
575
+ loadComponent: () => import('./acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs').then((c) => c.AXPAuthAppChooserComponent),
397
576
  canActivate: [AXPAuthGuard, canActivateAppChooser],
398
577
  },
399
578
  ];
400
579
  return routes;
401
580
  }
402
581
  class AXPAccountModule {
403
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPAccountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
404
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: AXPAccountModule, imports: [RouterModule, i1$2.AXPComponentSlotModule] }); }
405
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPAccountModule, providers: [
582
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPAccountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
583
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.4", ngImport: i0, type: AXPAccountModule, imports: [RouterModule, i1$4.AXPComponentSlotModule] }); }
584
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPAccountModule, providers: [
406
585
  {
407
586
  provide: ROUTES,
408
587
  multi: true,
409
588
  useFactory: routesFacory,
410
589
  },
411
- // {
412
- // provide: AXMUserDeviceSessionsService,
413
- // useClass: AXMUserDeviceSessionsServiceImp,
414
- // },
590
+ {
591
+ provide: AXMUserDeviceSessionsService,
592
+ useClass: AXMUserDeviceSessionsServiceImp,
593
+ },
415
594
  ], imports: [RouterModule,
416
595
  //
417
596
  AXPComponentSlotModule.forChild({
@@ -436,7 +615,7 @@ class AXPAccountModule {
436
615
  ],
437
616
  })] }); }
438
617
  }
439
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPAccountModule, decorators: [{
618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPAccountModule, decorators: [{
440
619
  type: NgModule,
441
620
  args: [{
442
621
  declarations: [],
@@ -472,10 +651,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
472
651
  multi: true,
473
652
  useFactory: routesFacory,
474
653
  },
475
- // {
476
- // provide: AXMUserDeviceSessionsService,
477
- // useClass: AXMUserDeviceSessionsServiceImp,
478
- // },
654
+ {
655
+ provide: AXMUserDeviceSessionsService,
656
+ useClass: AXMUserDeviceSessionsServiceImp,
657
+ },
479
658
  ],
480
659
  }]
481
660
  }] });
@@ -486,9 +665,9 @@ var account_module = /*#__PURE__*/Object.freeze({
486
665
  });
487
666
 
488
667
  class AXMAuthModule {
489
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
490
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthModule, imports: [CommonModule, i1$3.AXPCommonModule, i1$1.RouterModule, AXPAccountModule] }); }
491
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthModule, providers: [
668
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
669
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthModule, imports: [CommonModule, i1$5.AXPCommonModule, i1$2.RouterModule, AXPAccountModule] }); }
670
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthModule, providers: [
492
671
  AXMAuthErrorHandler,
493
672
  {
494
673
  provide: AXP_MENU_PROVIDER,
@@ -509,7 +688,7 @@ class AXMAuthModule {
509
688
  RouterModule.forChild(routes),
510
689
  AXPAccountModule] }); }
511
690
  }
512
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAuthModule, decorators: [{
691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAuthModule, decorators: [{
513
692
  type: NgModule,
514
693
  args: [{
515
694
  imports: [
@@ -538,46 +717,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
538
717
  }]
539
718
  }] });
540
719
 
541
- class AXPIdleService {
542
- constructor() {
543
- this.configs = inject(AXM_AUTH_CONFIG_TOKEN);
544
- this.idle$ = new Subject();
545
- this.timeoutDuration = this.configs.idleTimeout ?? 10 * 60 * 1000;
546
- this.userActivity$ = new Subject();
547
- this.idleSubscription = null;
548
- this.setupActivityListeners();
549
- }
550
- get idleState$() {
551
- return this.idle$.asObservable();
552
- }
553
- setupActivityListeners() {
554
- const activityEvents = ['mousemove', 'keydown', 'wheel'];
555
- activityEvents.forEach(event => document.addEventListener(event, () => this.resetTimer()));
556
- }
557
- startWatching() {
558
- this.stopWatching(); // Stop any existing subscription
559
- this.idleSubscription = this.userActivity$.pipe(startWith(null), switchMap(() => timer(this.timeoutDuration)), tap(() => this.idle$.next())).subscribe();
560
- }
561
- resetTimer() {
562
- this.userActivity$.next();
563
- }
564
- stopWatching() {
565
- if (this.idleSubscription) {
566
- this.idleSubscription.unsubscribe();
567
- this.idleSubscription = null;
568
- }
569
- }
570
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPIdleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
571
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPIdleService, providedIn: 'root' }); }
572
- }
573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPIdleService, decorators: [{
574
- type: Injectable,
575
- args: [{ providedIn: 'root' }]
576
- }], ctorParameters: () => [] });
720
+ var AXMSessionStatusTypes;
721
+ (function (AXMSessionStatusTypes) {
722
+ AXMSessionStatusTypes["revoked"] = "revoked";
723
+ AXMSessionStatusTypes["expired"] = "expired";
724
+ AXMSessionStatusTypes["active"] = "active";
725
+ })(AXMSessionStatusTypes || (AXMSessionStatusTypes = {}));
577
726
 
578
727
  /**
579
728
  * Generated bundle index. Do not edit.
580
729
  */
581
730
 
582
- export { AXM_AUTH_CONFIG_TOKEN as A, AXMAuthenticationTypes as a, AXPTenantChooserDropdownComponent as b, AXPAppChooserListComponent as c, AXMAuthErrorHandler as d, AXMDefaultAuthConfigs as e, configAuthModule as f, AXMAuthModule as g, AXPIdleService as h };
583
- //# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs.map
731
+ export { AXM_AUTH_CONFIG_TOKEN as A, AXMAuthenticationTypes as a, AXPTenantChooserDropdownComponent as b, AXPAppChooserListComponent as c, AXMUserDeviceSessionsService as d, AXMAuthErrorHandler as e, AXMDefaultAuthConfigs as f, configAuthModule as g, AXMAuthModule as h, AXMSessionStatusTypes as i, AXPIdleService as j, AXMDeviceSessionsService as k, AXMDeviceSessionsServiceImpl as l };
732
+ //# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs.map