@acorex/modules 20.0.6 → 20.0.8

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 (190) hide show
  1. package/common/index.d.ts +22 -2
  2. package/contact-management/README.md +568 -0
  3. package/contact-management/index.d.ts +263 -0
  4. package/conversation/index.d.ts +222 -189
  5. package/document-management/index.d.ts +5 -1
  6. package/fesm2022/{acorex-modules-application-management-module-designer.component-oGgCaUDu.mjs → acorex-modules-application-management-module-designer.component-BErRgx0w.mjs} +7 -7
  7. package/fesm2022/{acorex-modules-application-management-module-designer.component-oGgCaUDu.mjs.map → acorex-modules-application-management-module-designer.component-BErRgx0w.mjs.map} +1 -1
  8. package/fesm2022/acorex-modules-application-management.mjs +41 -42
  9. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  10. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Cj4td3eM.mjs → acorex-modules-auth-acorex-modules-auth-X866H4oy.mjs} +44 -44
  11. package/fesm2022/acorex-modules-auth-acorex-modules-auth-X866H4oy.mjs.map +1 -0
  12. package/fesm2022/{acorex-modules-auth-app-chooser.component-C60idNYx.mjs → acorex-modules-auth-app-chooser.component-DqKTfLA2.mjs} +5 -5
  13. package/fesm2022/{acorex-modules-auth-app-chooser.component-C60idNYx.mjs.map → acorex-modules-auth-app-chooser.component-DqKTfLA2.mjs.map} +1 -1
  14. package/fesm2022/{acorex-modules-auth-blank.layout-C5d42pO1.mjs → acorex-modules-auth-blank.layout-D2qSgxTy.mjs} +4 -4
  15. package/fesm2022/{acorex-modules-auth-blank.layout-C5d42pO1.mjs.map → acorex-modules-auth-blank.layout-D2qSgxTy.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-auth-login.module-siRdi16m.mjs → acorex-modules-auth-login.module-CWOYzn0L.mjs} +8 -8
  17. package/fesm2022/{acorex-modules-auth-login.module-siRdi16m.mjs.map → acorex-modules-auth-login.module-CWOYzn0L.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-auth-master.layout-BJCAe5Ai.mjs → acorex-modules-auth-master.layout-384T0lIg.mjs} +5 -5
  19. package/fesm2022/{acorex-modules-auth-master.layout-BJCAe5Ai.mjs.map → acorex-modules-auth-master.layout-384T0lIg.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-auth-password.component-VhDUmkMc.mjs → acorex-modules-auth-password.component-BW_ooTQG.mjs} +5 -5
  21. package/fesm2022/{acorex-modules-auth-password.component-VhDUmkMc.mjs.map → acorex-modules-auth-password.component-BW_ooTQG.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-auth-password.component-6-EEsfc2.mjs → acorex-modules-auth-password.component-JG95JpLz.mjs} +5 -5
  23. package/fesm2022/{acorex-modules-auth-password.component-6-EEsfc2.mjs.map → acorex-modules-auth-password.component-JG95JpLz.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-auth-routes-BwBn4o81.mjs → acorex-modules-auth-routes-DqKtHu-i.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-auth-routes-BwBn4o81.mjs.map → acorex-modules-auth-routes-DqKtHu-i.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-fmuXNByb.mjs → acorex-modules-auth-tenant-chooser.component-C0jxaqqg.mjs} +4 -4
  27. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-fmuXNByb.mjs.map → acorex-modules-auth-tenant-chooser.component-C0jxaqqg.mjs.map} +1 -1
  28. package/fesm2022/{acorex-modules-auth-two-factor-code.component-JYtAQ3qF.mjs → acorex-modules-auth-two-factor-code.component-D7KOomHD.mjs} +4 -4
  29. package/fesm2022/{acorex-modules-auth-two-factor-code.component-JYtAQ3qF.mjs.map → acorex-modules-auth-two-factor-code.component-D7KOomHD.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-auth-two-factor.module-D7NgZHmC.mjs → acorex-modules-auth-two-factor.module-C88pXqao.mjs} +7 -7
  31. package/fesm2022/{acorex-modules-auth-two-factor.module-D7NgZHmC.mjs.map → acorex-modules-auth-two-factor.module-C88pXqao.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-auth-user-sessions.component-DhlBCxly.mjs → acorex-modules-auth-user-sessions.component-loloVwv0.mjs} +5 -5
  33. package/fesm2022/{acorex-modules-auth-user-sessions.component-DhlBCxly.mjs.map → acorex-modules-auth-user-sessions.component-loloVwv0.mjs.map} +1 -1
  34. package/fesm2022/acorex-modules-auth.mjs +1 -1
  35. package/fesm2022/{acorex-modules-common-search-popup.component-B5JU9uH9.mjs → acorex-modules-common-search-popup.component-CCKiQx0U.mjs} +8 -8
  36. package/fesm2022/{acorex-modules-common-search-popup.component-B5JU9uH9.mjs.map → acorex-modules-common-search-popup.component-CCKiQx0U.mjs.map} +1 -1
  37. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-DzvUTy5z.mjs → acorex-modules-common-timeline-version-history-popup.component-DJOcjquG.mjs} +8 -8
  38. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-DzvUTy5z.mjs.map → acorex-modules-common-timeline-version-history-popup.component-DJOcjquG.mjs.map} +1 -1
  39. package/fesm2022/acorex-modules-common.mjs +215 -86
  40. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  41. package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs +489 -0
  42. package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs.map +1 -0
  43. package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs +827 -0
  44. package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs.map +1 -0
  45. package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs +509 -0
  46. package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs.map +1 -0
  47. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs +469 -0
  48. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs.map +1 -0
  49. package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs +489 -0
  50. package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs.map +1 -0
  51. package/fesm2022/acorex-modules-contact-management.mjs +2332 -0
  52. package/fesm2022/acorex-modules-contact-management.mjs.map +1 -0
  53. package/fesm2022/acorex-modules-content-management.mjs +119 -55
  54. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  55. package/fesm2022/acorex-modules-conversation.mjs +1174 -1216
  56. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  57. package/fesm2022/acorex-modules-dashboard-management.mjs +76 -76
  58. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  59. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-ClH75xx1.mjs → acorex-modules-document-management-acorex-modules-document-management-C4cvhxSV.mjs} +310 -235
  60. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C4cvhxSV.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-B_tjfzIn.mjs → acorex-modules-document-management-attachment-widget.component-B5txg8z0.mjs} +5 -5
  62. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-B_tjfzIn.mjs.map → acorex-modules-document-management-attachment-widget.component-B5txg8z0.mjs.map} +1 -1
  63. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DNdRcCAs.mjs → acorex-modules-document-management-create-folder-dialog.component-LfnTz49a.mjs} +5 -5
  64. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DNdRcCAs.mjs.map → acorex-modules-document-management-create-folder-dialog.component-LfnTz49a.mjs.map} +1 -1
  65. package/fesm2022/{acorex-modules-document-management-details-view.component-JsK1UgZh.mjs → acorex-modules-document-management-details-view.component-Co5F8eWp.mjs} +5 -5
  66. package/fesm2022/{acorex-modules-document-management-details-view.component-JsK1UgZh.mjs.map → acorex-modules-document-management-details-view.component-Co5F8eWp.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DJT9oLek.mjs → acorex-modules-document-management-drive-choose.component-DFRdS7s1.mjs} +5 -5
  68. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DJT9oLek.mjs.map → acorex-modules-document-management-drive-choose.component-DFRdS7s1.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-document-management-drive.component-DYxpvUWX.mjs → acorex-modules-document-management-drive.component-jGs09Jrd.mjs} +8 -8
  70. package/fesm2022/{acorex-modules-document-management-drive.component-DYxpvUWX.mjs.map → acorex-modules-document-management-drive.component-jGs09Jrd.mjs.map} +1 -1
  71. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-B324V2hL.mjs → acorex-modules-document-management-large-icons-view.component-DD9_xgL4.mjs} +5 -5
  72. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-B324V2hL.mjs.map → acorex-modules-document-management-large-icons-view.component-DD9_xgL4.mjs.map} +1 -1
  73. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-V5gHyu9X.mjs → acorex-modules-document-management-large-tiles-view.component-CNBUzaUz.mjs} +5 -5
  74. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-V5gHyu9X.mjs.map → acorex-modules-document-management-large-tiles-view.component-CNBUzaUz.mjs.map} +1 -1
  75. package/fesm2022/{acorex-modules-document-management-link-dialog.component-B-BzU_4Y.mjs → acorex-modules-document-management-link-dialog.component-CXzR7mUW.mjs} +4 -4
  76. package/fesm2022/{acorex-modules-document-management-link-dialog.component-B-BzU_4Y.mjs.map → acorex-modules-document-management-link-dialog.component-CXzR7mUW.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-document-management-list-view.component-Bm2EH2aT.mjs → acorex-modules-document-management-list-view.component-D4DbyB6W.mjs} +5 -5
  78. package/fesm2022/{acorex-modules-document-management-list-view.component-Bm2EH2aT.mjs.map → acorex-modules-document-management-list-view.component-D4DbyB6W.mjs.map} +1 -1
  79. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-CmMvrfKW.mjs +315 -0
  80. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-CmMvrfKW.mjs.map +1 -0
  81. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-BDhqsc2j.mjs → acorex-modules-document-management-meta-selector-widget-column.component-DHQjyq8s.mjs} +4 -4
  82. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-BDhqsc2j.mjs.map → acorex-modules-document-management-meta-selector-widget-column.component-DHQjyq8s.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-C4GC0GbF.mjs → acorex-modules-document-management-meta-selector-widget-designer.component-Cc6n71wn.mjs} +4 -4
  84. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-C4GC0GbF.mjs.map → acorex-modules-document-management-meta-selector-widget-designer.component-Cc6n71wn.mjs.map} +1 -1
  85. package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-D88h9eR6.mjs +31 -0
  86. package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-D88h9eR6.mjs.map +1 -0
  87. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-DGqVDVLJ.mjs → acorex-modules-document-management-permission-definition.provider-DoOyhnwQ.mjs} +2 -2
  88. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-DGqVDVLJ.mjs.map → acorex-modules-document-management-permission-definition.provider-DoOyhnwQ.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-LgpvDguk.mjs → acorex-modules-document-management-rename-node-dialog.component-JDZWsFXL.mjs} +5 -5
  90. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-LgpvDguk.mjs.map → acorex-modules-document-management-rename-node-dialog.component-JDZWsFXL.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-document-management-share-dialog.component-DzuYhAD4.mjs → acorex-modules-document-management-share-dialog.component-DTzXwqHw.mjs} +4 -4
  92. package/fesm2022/{acorex-modules-document-management-share-dialog.component-DzuYhAD4.mjs.map → acorex-modules-document-management-share-dialog.component-DTzXwqHw.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DNN_3JF2.mjs → acorex-modules-document-management-share-email-dialog.component-BaNzKKG4.mjs} +4 -4
  94. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DNN_3JF2.mjs.map → acorex-modules-document-management-share-email-dialog.component-BaNzKKG4.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BwFoe1vd.mjs → acorex-modules-document-management-small-icons-view.component-BNTmgtYr.mjs} +5 -5
  96. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BwFoe1vd.mjs.map → acorex-modules-document-management-small-icons-view.component-BNTmgtYr.mjs.map} +1 -1
  97. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B5gp0wus.mjs → acorex-modules-document-management-small-tiles-view.component-CbCBAKyR.mjs} +5 -5
  98. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B5gp0wus.mjs.map → acorex-modules-document-management-small-tiles-view.component-CbCBAKyR.mjs.map} +1 -1
  99. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  100. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-B3o427If.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-BsAsK1EG.mjs} +58 -57
  101. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-B3o427If.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-BsAsK1EG.mjs.map} +1 -1
  102. package/fesm2022/{acorex-modules-form-template-management-category.entity-B7dGrmoa.mjs → acorex-modules-form-template-management-category.entity-B3iAtREq.mjs} +2 -2
  103. package/fesm2022/{acorex-modules-form-template-management-category.entity-B7dGrmoa.mjs.map → acorex-modules-form-template-management-category.entity-B3iAtREq.mjs.map} +1 -1
  104. package/fesm2022/{acorex-modules-form-template-management-designer.page-DaTGU3w_.mjs → acorex-modules-form-template-management-designer.page-B-TIUKl7.mjs} +4 -4
  105. package/fesm2022/{acorex-modules-form-template-management-designer.page-DaTGU3w_.mjs.map → acorex-modules-form-template-management-designer.page-B-TIUKl7.mjs.map} +1 -1
  106. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CjjlgO0w.mjs → acorex-modules-form-template-management-permission-definition.provider-CTG95UDp.mjs} +2 -2
  107. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CjjlgO0w.mjs.map → acorex-modules-form-template-management-permission-definition.provider-CTG95UDp.mjs.map} +1 -1
  108. package/fesm2022/{acorex-modules-form-template-management-settings.provider-CiSjuHGI.mjs → acorex-modules-form-template-management-settings.provider-BmFufTUd.mjs} +2 -2
  109. package/fesm2022/{acorex-modules-form-template-management-settings.provider-CiSjuHGI.mjs.map → acorex-modules-form-template-management-settings.provider-BmFufTUd.mjs.map} +1 -1
  110. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-CQZ37yC2.mjs → acorex-modules-form-template-management-template-picker.component-CNwhdnGC.mjs} +4 -4
  111. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-CQZ37yC2.mjs.map → acorex-modules-form-template-management-template-picker.component-CNwhdnGC.mjs.map} +1 -1
  112. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DUeV0yO8.mjs → acorex-modules-form-template-management-template-widget-edit.component-BNIx16WW.mjs} +5 -5
  113. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DUeV0yO8.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BNIx16WW.mjs.map} +1 -1
  114. package/fesm2022/{acorex-modules-form-template-management-template.entity-Cps77n3G.mjs → acorex-modules-form-template-management-template.entity-BGsixiEI.mjs} +2 -2
  115. package/fesm2022/{acorex-modules-form-template-management-template.entity-Cps77n3G.mjs.map → acorex-modules-form-template-management-template.entity-BGsixiEI.mjs.map} +1 -1
  116. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-K2ZznaDw.mjs → acorex-modules-form-template-management-viewer-popup.component-CzjuUz4o.mjs} +9 -6
  117. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-CzjuUz4o.mjs.map +1 -0
  118. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  119. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-Blyh8QVB.mjs → acorex-modules-issue-management-acorex-modules-issue-management-C2JoHgaa.mjs} +24 -24
  120. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-Blyh8QVB.mjs.map → acorex-modules-issue-management-acorex-modules-issue-management-C2JoHgaa.mjs.map} +1 -1
  121. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-BzUN6Cty.mjs → acorex-modules-issue-management-capture-screen.component-DTtUkL78.mjs} +5 -5
  122. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-BzUN6Cty.mjs.map → acorex-modules-issue-management-capture-screen.component-DTtUkL78.mjs.map} +1 -1
  123. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  124. package/fesm2022/acorex-modules-log-management.mjs +10 -10
  125. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  126. package/fesm2022/acorex-modules-notification-management.mjs +35 -35
  127. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  128. package/fesm2022/{acorex-modules-organization-management-add-item.component-COUAmxM8.mjs → acorex-modules-organization-management-add-item.component-D99TugmE.mjs} +4 -4
  129. package/fesm2022/{acorex-modules-organization-management-add-item.component-COUAmxM8.mjs.map → acorex-modules-organization-management-add-item.component-D99TugmE.mjs.map} +1 -1
  130. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-DjGUUbel.mjs → acorex-modules-organization-management-org-chart-configuration.page-DTNqHbxt.mjs} +5 -5
  131. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-DjGUUbel.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-DTNqHbxt.mjs.map} +1 -1
  132. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-DeoDX_ir.mjs → acorex-modules-organization-management-org-chart-configuration.service-BSO0GrAW.mjs} +4 -4
  133. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-DeoDX_ir.mjs.map → acorex-modules-organization-management-org-chart-configuration.service-BSO0GrAW.mjs.map} +1 -1
  134. package/fesm2022/{acorex-modules-organization-management-org-chart.page-xlNWhN4W.mjs → acorex-modules-organization-management-org-chart.page-ioMhEPnQ.mjs} +12 -12
  135. package/fesm2022/{acorex-modules-organization-management-org-chart.page-xlNWhN4W.mjs.map → acorex-modules-organization-management-org-chart.page-ioMhEPnQ.mjs.map} +1 -1
  136. package/fesm2022/acorex-modules-organization-management.mjs +122 -122
  137. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  138. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-Dfux0tkB.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CFoPmixl.mjs} +933 -315
  139. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CFoPmixl.mjs.map +1 -0
  140. package/fesm2022/{acorex-modules-platform-management-list-version.component-CSNKxghv.mjs → acorex-modules-platform-management-list-version.component-D0-Ya-Yx.mjs} +7 -7
  141. package/fesm2022/{acorex-modules-platform-management-list-version.component-CSNKxghv.mjs.map → acorex-modules-platform-management-list-version.component-D0-Ya-Yx.mjs.map} +1 -1
  142. package/fesm2022/{acorex-modules-platform-management-settings.provider-C4RaOgkr.mjs → acorex-modules-platform-management-settings.provider--ARXqBUY.mjs} +2 -2
  143. package/fesm2022/{acorex-modules-platform-management-settings.provider-C4RaOgkr.mjs.map → acorex-modules-platform-management-settings.provider--ARXqBUY.mjs.map} +1 -1
  144. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  145. package/fesm2022/acorex-modules-project-management.mjs +43 -43
  146. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  147. package/fesm2022/acorex-modules-report-management-report-create-root.component-LrE6TkIp.mjs +302 -0
  148. package/fesm2022/acorex-modules-report-management-report-create-root.component-LrE6TkIp.mjs.map +1 -0
  149. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CtEDcg_B.mjs → acorex-modules-report-management-report-runner-root-page.component-BntIoMfN.mjs} +49 -21
  150. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BntIoMfN.mjs.map +1 -0
  151. package/fesm2022/acorex-modules-report-management-run.command-CoXvPC15.mjs +20 -0
  152. package/fesm2022/acorex-modules-report-management-run.command-CoXvPC15.mjs.map +1 -0
  153. package/fesm2022/acorex-modules-report-management.mjs +797 -29
  154. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  155. package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
  156. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  157. package/fesm2022/acorex-modules-security-management.mjs +63 -69
  158. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  159. package/fesm2022/{acorex-modules-settings-management-setting-page.component-B2CEFpES.mjs → acorex-modules-settings-management-setting-page.component-BKwKLUpD.mjs} +4 -4
  160. package/fesm2022/{acorex-modules-settings-management-setting-page.component-B2CEFpES.mjs.map → acorex-modules-settings-management-setting-page.component-BKwKLUpD.mjs.map} +1 -1
  161. package/fesm2022/{acorex-modules-settings-management-setting-view.component-DnD83gFz.mjs → acorex-modules-settings-management-setting-view.component-Dco7MvZr.mjs} +4 -4
  162. package/fesm2022/{acorex-modules-settings-management-setting-view.component-DnD83gFz.mjs.map → acorex-modules-settings-management-setting-view.component-Dco7MvZr.mjs.map} +1 -1
  163. package/fesm2022/acorex-modules-settings-management.mjs +6 -6
  164. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  165. package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
  166. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  167. package/fesm2022/acorex-modules-training-management.mjs +43 -44
  168. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  169. package/fesm2022/acorex-modules-workflow-management-task-board.page-ChW_Hwf2.mjs +762 -0
  170. package/fesm2022/acorex-modules-workflow-management-task-board.page-ChW_Hwf2.mjs.map +1 -0
  171. package/fesm2022/acorex-modules-workflow-management.mjs +12 -12
  172. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  173. package/package.json +9 -5
  174. package/platform-management/index.d.ts +235 -8
  175. package/report-management/index.d.ts +11 -4
  176. package/fesm2022/acorex-modules-auth-acorex-modules-auth-Cj4td3eM.mjs.map +0 -1
  177. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-ClH75xx1.mjs.map +0 -1
  178. package/fesm2022/acorex-modules-document-management-lock-dialog.component-DvZ-vrUE.mjs +0 -51
  179. package/fesm2022/acorex-modules-document-management-lock-dialog.component-DvZ-vrUE.mjs.map +0 -1
  180. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-q6mDKrFi.mjs +0 -190
  181. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-q6mDKrFi.mjs.map +0 -1
  182. package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-rlSWRGGl.mjs +0 -32
  183. package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-rlSWRGGl.mjs.map +0 -1
  184. package/fesm2022/acorex-modules-document-management-unlock-dialog.component-B_TMgAl1.mjs +0 -36
  185. package/fesm2022/acorex-modules-document-management-unlock-dialog.component-B_TMgAl1.mjs.map +0 -1
  186. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-K2ZznaDw.mjs.map +0 -1
  187. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-Dfux0tkB.mjs.map +0 -1
  188. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CtEDcg_B.mjs.map +0 -1
  189. package/fesm2022/acorex-modules-workflow-management-task-board.page-Bugxqd0W.mjs +0 -494
  190. package/fesm2022/acorex-modules-workflow-management-task-board.page-Bugxqd0W.mjs.map +0 -1
@@ -0,0 +1,762 @@
1
+ import { AXBadgeModule } from '@acorex/components/badge';
2
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
3
+ import * as i4 from '@acorex/components/button';
4
+ import { AXButtonModule } from '@acorex/components/button';
5
+ import { AXCalendarComponent } from '@acorex/components/calendar';
6
+ import * as i6 from '@acorex/components/decorators';
7
+ import { AXDecoratorModule } from '@acorex/components/decorators';
8
+ import { AXDropdownPanelComponent } from '@acorex/components/dropdown';
9
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
10
+ import { AXLoadingModule } from '@acorex/components/loading';
11
+ import * as i3 from '@acorex/components/menu';
12
+ import { AXMenuModule } from '@acorex/components/menu';
13
+ import * as i7 from '@acorex/components/popover';
14
+ import { AXPopoverModule } from '@acorex/components/popover';
15
+ import { AXCalendarService } from '@acorex/core/date-time';
16
+ import { AXLocaleService } from '@acorex/core/locale';
17
+ import * as i5 from '@acorex/core/translation';
18
+ import { AXTranslationModule } from '@acorex/core/translation';
19
+ import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
20
+ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
21
+ import * as i2 from '@angular/common';
22
+ import { CommonModule } from '@angular/common';
23
+ import * as i0 from '@angular/core';
24
+ import { computed, inject, viewChild, input, output, ViewEncapsulation, ChangeDetectionStrategy, Component, signal, effect, viewChildren, untracked } from '@angular/core';
25
+ import * as i1$1 from '@angular/forms';
26
+ import { FormsModule } from '@angular/forms';
27
+ import { RouterModule } from '@angular/router';
28
+ import { AXPTaskBoardService } from './acorex-modules-workflow-management.mjs';
29
+ import { AXPSettingService } from '@acorex/platform/common';
30
+ import { AXPPlatformScope } from '@acorex/platform/core';
31
+ import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
32
+ import { AXSchedulerComponent } from '@acorex/components/scheduler';
33
+ import { AXDataSource } from '@acorex/cdk/common';
34
+ import * as i1 from '@acorex/components/data-table';
35
+ import { AXDataTableModule, AXDataTableComponent } from '@acorex/components/data-table';
36
+ import { AXKanbanComponent } from '@acorex/components/kanban';
37
+
38
+ const config = {
39
+ i18n: 'workflow-management',
40
+ };
41
+ const RootConfig = {
42
+ config,
43
+ module: {
44
+ module: 'WorkflowManagement',
45
+ name: 'WorkflowManagement',
46
+ title: `t('module-name', {scope:"${config.i18n}"})`,
47
+ icon: 'fa-light fa-clipboard-list-check',
48
+ },
49
+ };
50
+
51
+ var AXMTaskBoardSettings;
52
+ (function (AXMTaskBoardSettings) {
53
+ AXMTaskBoardSettings["CalendarViewMode"] = "taskboard.calendar.viewMode";
54
+ AXMTaskBoardSettings["CurrentDate"] = "taskboard.calendar.currentDate";
55
+ AXMTaskBoardSettings["SelectedTaskTypeFilter"] = "taskboard.filter.selectedTaskType";
56
+ })(AXMTaskBoardSettings || (AXMTaskBoardSettings = {}));
57
+
58
+ const AXMTaskBoardViewModel = signalStore({ providedIn: 'root' }, withState(() => ({
59
+ isLoading: true, // Start with loading true until initialized
60
+ currentViewMode: 'month', // Default value
61
+ currentDate: new Date(), // Default to today
62
+ selectedTaskTypeName: null, // Store the name/ID of the task type for persistence
63
+ taskTypes: [],
64
+ })), withComputed((store) => ({
65
+ // Computed property to get the actual AXPWorkflowTaskProvider object
66
+ selectedTaskType: computed(() => {
67
+ const name = store.selectedTaskTypeName();
68
+ if (!name) {
69
+ return null;
70
+ }
71
+ return store.taskTypes().find((tt) => tt.name === name) || null;
72
+ }),
73
+ // Example computed (you can add more as needed):
74
+ // isMonthView: computed(() => store.calendarViewMode() === 'month'),
75
+ })), withMethods((store, settingService = inject(AXPSettingService), // Inject the main service
76
+ taskBoardService = inject(AXPTaskBoardService)) => ({
77
+ async initialize() {
78
+ patchState(store, { isLoading: true });
79
+ const userScopedSettings = settingService.scope(AXPPlatformScope.User); // Get user scope once
80
+ try {
81
+ // 1. Load Task Types first
82
+ const taskTypes = await taskBoardService.getTaskTypes();
83
+ patchState(store, { taskTypes });
84
+ // 2. Load Persisted Settings individually
85
+ const [savedViewMode, savedDateString, savedTaskTypeName] = await Promise.all([
86
+ userScopedSettings.get(AXMTaskBoardSettings.CalendarViewMode),
87
+ userScopedSettings.get(AXMTaskBoardSettings.CurrentDate),
88
+ userScopedSettings.get(AXMTaskBoardSettings.SelectedTaskTypeFilter),
89
+ ]);
90
+ patchState(store, {
91
+ currentViewMode: savedViewMode || 'month', // Fallback to default
92
+ currentDate: savedDateString ? new Date(savedDateString) : new Date(), // Parse stored date string
93
+ selectedTaskTypeName: savedTaskTypeName || null, // Load persisted task type name
94
+ isLoading: false,
95
+ });
96
+ }
97
+ catch (error) {
98
+ console.error('Error initializing TaskBoard ViewModel:', error);
99
+ // Fallback to defaults on error to ensure the app is usable
100
+ patchState(store, {
101
+ currentViewMode: 'month',
102
+ currentDate: new Date(),
103
+ selectedTaskTypeName: null,
104
+ taskTypes: store.taskTypes(), // Retain loaded task types if any, or empty if error was before taskTypes load
105
+ isLoading: false,
106
+ });
107
+ }
108
+ },
109
+ setCalendarViewMode(mode) {
110
+ if ((mode === 'kanban' || mode === 'grid' || mode === 'status-grouped-grid' || mode === 'time-grouped-grid') &&
111
+ store.selectedTaskTypeName() === null) {
112
+ const taskTypeName = store.taskTypes()[0].name;
113
+ patchState(store, { selectedTaskTypeName: taskTypeName });
114
+ settingService
115
+ .scope(AXPPlatformScope.User)
116
+ .set(AXMTaskBoardSettings.SelectedTaskTypeFilter, taskTypeName)
117
+ .catch((error) => console.error('Error saving selected task type filter:', error));
118
+ }
119
+ patchState(store, { currentViewMode: mode });
120
+ settingService
121
+ .scope(AXPPlatformScope.User)
122
+ .set(AXMTaskBoardSettings.CalendarViewMode, mode)
123
+ .catch((error) => console.error('Error saving calendar view mode:', error));
124
+ },
125
+ setCurrentDate(date) {
126
+ patchState(store, { currentDate: new Date(date) });
127
+ settingService
128
+ .scope(AXPPlatformScope.User)
129
+ .set(AXMTaskBoardSettings.CurrentDate, date.toISOString())
130
+ .catch((error) => console.error('Error saving current date:', error));
131
+ },
132
+ setSelectedTaskTypeProvider(taskType) {
133
+ const taskTypeName = taskType ? taskType.name : null;
134
+ patchState(store, { selectedTaskTypeName: taskTypeName });
135
+ settingService
136
+ .scope(AXPPlatformScope.User)
137
+ .set(AXMTaskBoardSettings.SelectedTaskTypeFilter, taskTypeName)
138
+ .catch((error) => console.error('Error saving selected task type filter:', error));
139
+ },
140
+ })));
141
+
142
+ class AXMTaskBoardCalendarViewComponent {
143
+ constructor() {
144
+ this.taskBoardService = inject(AXPTaskBoardService);
145
+ this.schedulerComponent = viewChild(AXSchedulerComponent);
146
+ this.startingDate = input(new Date());
147
+ this.selectedView = input('month');
148
+ this.dataSource = input.required();
149
+ this.currentSchedulerView = computed(() => this.selectedView() === 'kanban' || this.selectedView() === 'grid'
150
+ ? 'month'
151
+ : this.selectedView());
152
+ this.onTaskChanged = output();
153
+ this.onMonthSlotDblClicked = output();
154
+ this.component = output();
155
+ this.onRangeChanged = output();
156
+ this.onTaskRightClick = output();
157
+ }
158
+ ngAfterViewInit() {
159
+ if (this.schedulerComponent()) {
160
+ this.component.emit(this.schedulerComponent());
161
+ }
162
+ }
163
+ onTaskDrop(event) {
164
+ this.taskBoardService
165
+ .updateTaskDateRange(event.appointment, {
166
+ from: event.slot.startDate.date,
167
+ end: event.slot.endDate.date,
168
+ })
169
+ .then((task) => {
170
+ this.onTaskChanged.emit(task);
171
+ this.schedulerComponent()?.refresh([task]);
172
+ });
173
+ }
174
+ onTaskRightClickHandler(event) {
175
+ this.onTaskRightClick.emit(event);
176
+ }
177
+ onSlotDblClicked(event) {
178
+ if (event.sender.selectedView() === 'month') {
179
+ this.onMonthSlotDblClicked.emit(event.slot.startDate.date);
180
+ }
181
+ }
182
+ handleRangeChanged(event) {
183
+ this.onRangeChanged.emit(event);
184
+ }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardCalendarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: AXMTaskBoardCalendarViewComponent, isStandalone: true, selector: "axm-task-board-calendar-view", inputs: { startingDate: { classPropertyName: "startingDate", publicName: "startingDate", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: "selectedView", publicName: "selectedView", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskChanged: "onTaskChanged", onMonthSlotDblClicked: "onMonthSlotDblClicked", component: "component", onRangeChanged: "onRangeChanged", onTaskRightClick: "onTaskRightClick" }, viewQueries: [{ propertyName: "schedulerComponent", first: true, predicate: AXSchedulerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-scheduler\n [hasHeader]=\"false\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"currentSchedulerView()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n></ax-scheduler>\n", styles: ["ax-scheduler{line-height:1.5;background-color:rgba(var(--ax-sys-color-lightest-surface))!important}\n"], dependencies: [{ kind: "component", type: AXSchedulerComponent, selector: "ax-scheduler", inputs: ["calendar", "startingDate", "endDayHour", "startDayHour", "hasHeader", "readonly", "draggable", "hasActions", "dragStartDelay", "allowFullScreen", "multiDayViewDaysCount", "tooltipTemplate", "dataSource", "firstDayOfWeek", "views", "selectedView"], outputs: ["selectedViewChange", "onDataLoaded", "onRangeChanged", "onSlotClicked", "onSlotDblClicked", "onSlotRightClick", "onAppointmentDrop", "onActionClick", "onAppointmentClicked", "onAppointmentDblClicked", "onAppointmentRightClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
187
+ }
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardCalendarViewComponent, decorators: [{
189
+ type: Component,
190
+ args: [{ selector: 'axm-task-board-calendar-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXSchedulerComponent], template: "<ax-scheduler\n [hasHeader]=\"false\"\n [dataSource]=\"dataSource()\"\n [startingDate]=\"startingDate()\"\n [selectedView]=\"currentSchedulerView()\"\n (onAppointmentDrop)=\"onTaskDrop($event)\"\n (onRangeChanged)=\"handleRangeChanged($event)\"\n (onSlotDblClicked)=\"onSlotDblClicked($event)\"\n (onAppointmentRightClick)=\"onTaskRightClickHandler($event)\"\n></ax-scheduler>\n", styles: ["ax-scheduler{line-height:1.5;background-color:rgba(var(--ax-sys-color-lightest-surface))!important}\n"] }]
191
+ }] });
192
+
193
+ class AXMTaskBoardGridViewComponent {
194
+ constructor() {
195
+ this.localeService = inject(AXLocaleService);
196
+ this.calendarService = inject(AXCalendarService);
197
+ this.taskBoardService = inject(AXPTaskBoardService);
198
+ this.grid = viewChild('grid');
199
+ this.statuses = input.required();
200
+ this.dataSource = input.required();
201
+ this.onTaskChanged = output();
202
+ this.tasks = signal([]);
203
+ this.tasksDataSource = computed(() => {
204
+ return new AXDataSource({
205
+ load: async (e) => {
206
+ const items = this.tasks().map((task) => ({
207
+ id: task.id,
208
+ title: task.title,
209
+ priority: task.priority,
210
+ description: task.description,
211
+ endDate: this.calendarService.format(task.endDate, 'DD/MM/YYYY HH:mm', {
212
+ locale: this.localeService.activeProfile().calendar.system,
213
+ }),
214
+ startDate: this.calendarService.format(task.startDate, 'DD/MM/YYYY HH:mm', {
215
+ locale: this.localeService.activeProfile().calendar.system,
216
+ }),
217
+ statusTitle: this.statuses().find((status) => status.key === task.statusKey)?.title,
218
+ }));
219
+ return {
220
+ items: items.slice(e.skip, e.skip + e.take),
221
+ total: items.length,
222
+ };
223
+ },
224
+ pageSize: 10,
225
+ key: 'id',
226
+ byKey: async (key) => {
227
+ return this.tasks().find((task) => task.id === key);
228
+ },
229
+ });
230
+ });
231
+ this.#filterChange = effect(() => {
232
+ this.dataSource().then((tasks) => {
233
+ this.tasks.set(tasks);
234
+ this.grid()?.refresh();
235
+ });
236
+ });
237
+ }
238
+ #filterChange;
239
+ onSortChanged(event) {
240
+ const tasks = this.tasks().map((item) => {
241
+ const task = event.allItems.find((t) => t.id === item.id);
242
+ if (task) {
243
+ return { ...item, index: task.index, statusKey: task.statusKey };
244
+ }
245
+ return item;
246
+ });
247
+ this.taskBoardService.updateMultipleTasks(tasks).then((tasks) => {
248
+ this.tasks.set(tasks);
249
+ });
250
+ }
251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardGridViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
252
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: AXMTaskBoardGridViewComponent, isStandalone: true, selector: "axm-task-board-grid-view", inputs: { statuses: { classPropertyName: "statuses", publicName: "statuses", isSignal: true, isRequired: true, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskChanged: "onTaskChanged" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n #grid\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"tasksDataSource()\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'100%'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n</ax-data-table>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
253
+ }
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardGridViewComponent, decorators: [{
255
+ type: Component,
256
+ args: [{ selector: 'axm-task-board-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule], template: "<ax-data-table\n #grid\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"tasksDataSource()\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'100%'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n</ax-data-table>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
257
+ }] });
258
+
259
+ class AXMTaskBoardKanbanViewComponent {
260
+ constructor() {
261
+ this.taskBoardService = inject(AXPTaskBoardService);
262
+ this.kanbanComponent = viewChild(AXKanbanComponent);
263
+ this.statuses = input.required();
264
+ this.dataSource = input.required();
265
+ this.onTaskChanged = output();
266
+ this.component = output();
267
+ this.tasks = signal([]);
268
+ this.kanbanTasks = computed(() => {
269
+ return this.tasks().map((task) => ({
270
+ id: task.id,
271
+ title: task.title,
272
+ index: task.index,
273
+ cssClass: task.cssClass,
274
+ priority: task.priority,
275
+ statusKey: task.statusKey,
276
+ description: task.description,
277
+ }));
278
+ });
279
+ this.#filterChange = effect(() => {
280
+ this.dataSource().then((tasks) => {
281
+ this.tasks.set(tasks);
282
+ });
283
+ });
284
+ }
285
+ #filterChange;
286
+ ngAfterViewInit() {
287
+ if (this.kanbanComponent()) {
288
+ this.component.emit(this.kanbanComponent());
289
+ }
290
+ }
291
+ onSortChanged(event) {
292
+ const tasks = this.tasks().map((item) => {
293
+ const task = event.allItems.find((t) => t.id === item.id);
294
+ if (task) {
295
+ return { ...item, index: task.index, statusKey: task.statusKey };
296
+ }
297
+ return item;
298
+ });
299
+ this.taskBoardService.updateMultipleTasks(tasks).then((tasks) => {
300
+ this.tasks.set(tasks);
301
+ });
302
+ }
303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardKanbanViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: AXMTaskBoardKanbanViewComponent, isStandalone: true, selector: "axm-task-board-kanban-view", inputs: { statuses: { classPropertyName: "statuses", publicName: "statuses", isSignal: true, isRequired: true, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskChanged: "onTaskChanged", component: "component" }, viewQueries: [{ propertyName: "kanbanComponent", first: true, predicate: AXKanbanComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-kanban [dataSource]=\"kanbanTasks()\" [statuses]=\"statuses()\" (onSortChanged)=\"onSortChanged($event)\"></ax-kanban>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "component", type: AXKanbanComponent, selector: "ax-kanban", inputs: ["hasActions", "dragStartDelay", "statuses", "itemTemplate", "dataSource", "keyField", "indexField", "titleField", "cssClassField", "priorityField", "statusKeyField", "descriptionField", "emptyTemplate", "headerTemplate", "footerTemplate", "contentFooterTemplate", "tooltipTemplate"], outputs: ["onSortChanged", "onActionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
305
+ }
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardKanbanViewComponent, decorators: [{
307
+ type: Component,
308
+ args: [{ selector: 'axm-task-board-kanban-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXKanbanComponent], template: "<ax-kanban [dataSource]=\"kanbanTasks()\" [statuses]=\"statuses()\" (onSortChanged)=\"onSortChanged($event)\"></ax-kanban>\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
309
+ }] });
310
+
311
+ class AXMTaskBoardStatusGroupedGridViewComponent {
312
+ constructor() {
313
+ this.localeService = inject(AXLocaleService);
314
+ this.calendarService = inject(AXCalendarService);
315
+ this.taskBoardService = inject(AXPTaskBoardService);
316
+ this.tables = viewChildren(AXDataTableComponent);
317
+ this.statuses = input.required();
318
+ this.dataSource = input.required();
319
+ this.onTaskChanged = output();
320
+ this.tasks = signal([]);
321
+ this.groupedTasks = computed(() => {
322
+ const allTasks = this.tasks();
323
+ const allStatuses = this.statuses();
324
+ if (!allTasks.length || !allStatuses.length) {
325
+ return [];
326
+ }
327
+ const map = allStatuses.map((status) => ({
328
+ statusInfo: status,
329
+ tasks: this.createTaskDataSource(allTasks.filter((task) => task.statusKey === status.key)),
330
+ }));
331
+ return map;
332
+ });
333
+ this.#filterChange = effect(() => {
334
+ this.dataSource().then((tasks) => {
335
+ this.tasks.set(tasks);
336
+ untracked(() => {
337
+ this.tables()?.forEach((table) => {
338
+ table.refresh();
339
+ });
340
+ });
341
+ });
342
+ });
343
+ }
344
+ createTaskDataSource(tasks) {
345
+ return new AXDataSource({
346
+ load: async (e) => {
347
+ const items = tasks.map((task) => ({
348
+ id: task.id,
349
+ title: task.title,
350
+ priority: task.priority,
351
+ description: task.description,
352
+ endDate: this.calendarService.format(task.endDate, 'DD/MM/YYYY HH:mm', {
353
+ locale: this.localeService.activeProfile().calendar.system,
354
+ }),
355
+ startDate: this.calendarService.format(task.startDate, 'DD/MM/YYYY HH:mm', {
356
+ locale: this.localeService.activeProfile().calendar.system,
357
+ }),
358
+ statusTitle: this.statuses().find((status) => status.key === task.statusKey)?.title,
359
+ }));
360
+ return {
361
+ items: items.slice(e.skip, e.skip + e.take),
362
+ total: items.length,
363
+ };
364
+ },
365
+ pageSize: 10,
366
+ key: 'id',
367
+ byKey: async (key) => {
368
+ return tasks.find((task) => task.id === key);
369
+ },
370
+ });
371
+ }
372
+ #filterChange;
373
+ onSortChanged(event) {
374
+ const tasks = this.tasks().map((item) => {
375
+ const task = event.allItems.find((t) => t.id === item.id);
376
+ if (task) {
377
+ return { ...item, index: task.index, statusKey: task.statusKey };
378
+ }
379
+ return item;
380
+ });
381
+ this.taskBoardService.updateMultipleTasks(tasks).then((tasks) => {
382
+ this.tasks.set(tasks);
383
+ });
384
+ }
385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardStatusGroupedGridViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AXMTaskBoardStatusGroupedGridViewComponent, isStandalone: true, selector: "axm-task-board-status-grouped-grid-view", inputs: { statuses: { classPropertyName: "statuses", publicName: "statuses", isSignal: true, isRequired: true, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskChanged: "onTaskChanged" }, viewQueries: [{ propertyName: "tables", predicate: AXDataTableComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@for(group of groupedTasks(); track group.statusInfo.key){\n<h1 class=\"ax-text-xl ax-font-bold\">{{group.statusInfo.title}}</h1>\n<ax-data-table\n class=\"ax-h-[291px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'100%'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n</ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
387
+ }
388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardStatusGroupedGridViewComponent, decorators: [{
389
+ type: Component,
390
+ args: [{ selector: 'axm-task-board-status-grouped-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule], template: "@for(group of groupedTasks(); track group.statusInfo.key){\n<h1 class=\"ax-text-xl ax-font-bold\">{{group.statusInfo.title}}</h1>\n<ax-data-table\n class=\"ax-h-[291px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'350px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\" [width]=\"'100%'\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n</ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
391
+ }] });
392
+
393
+ class AXMTaskBoardTimeGroupedGridViewComponent {
394
+ constructor() {
395
+ this.localeService = inject(AXLocaleService);
396
+ this.calendarService = inject(AXCalendarService);
397
+ this.taskBoardService = inject(AXPTaskBoardService);
398
+ this.tables = viewChildren(AXDataTableComponent);
399
+ this.statuses = input.required();
400
+ this.dataSource = input.required();
401
+ this.onTaskChanged = output();
402
+ this.tasks = signal([]);
403
+ this.groupedTasks = computed(() => {
404
+ const allTasks = this.tasks();
405
+ const allStatuses = this.statuses();
406
+ if (!allTasks.length || !allStatuses.length) {
407
+ return [];
408
+ }
409
+ const map = allStatuses.map((status) => ({
410
+ statusInfo: status,
411
+ tasks: this.createTaskDataSource(allTasks.filter((task) => task.statusKey === status.key)),
412
+ }));
413
+ return map;
414
+ });
415
+ this.#filterChange = effect(() => {
416
+ this.dataSource().then((tasks) => {
417
+ this.tasks.set(tasks);
418
+ untracked(() => {
419
+ this.tables()?.forEach((table) => {
420
+ table.refresh();
421
+ });
422
+ });
423
+ });
424
+ });
425
+ }
426
+ createTaskDataSource(tasks) {
427
+ return new AXDataSource({
428
+ load: async (e) => {
429
+ const items = tasks.map((task) => ({
430
+ id: task.id,
431
+ title: task.title,
432
+ priority: task.priority,
433
+ description: task.description,
434
+ endDate: this.calendarService.format(task.endDate, 'DD/MM/YYYY HH:mm', {
435
+ locale: this.localeService.activeProfile().calendar.system,
436
+ }),
437
+ startDate: this.calendarService.format(task.startDate, 'DD/MM/YYYY HH:mm', {
438
+ locale: this.localeService.activeProfile().calendar.system,
439
+ }),
440
+ statusTitle: this.statuses().find((status) => status.key === task.statusKey)?.title,
441
+ }));
442
+ return {
443
+ items: items.slice(e.skip, e.skip + e.take),
444
+ total: items.length,
445
+ };
446
+ },
447
+ pageSize: 10,
448
+ key: 'id',
449
+ byKey: async (key) => {
450
+ return tasks.find((task) => task.id === key);
451
+ },
452
+ });
453
+ }
454
+ #filterChange;
455
+ onSortChanged(event) {
456
+ const tasks = this.tasks().map((item) => {
457
+ const task = event.allItems.find((t) => t.id === item.id);
458
+ if (task) {
459
+ return { ...item, index: task.index, statusKey: task.statusKey };
460
+ }
461
+ return item;
462
+ });
463
+ this.taskBoardService.updateMultipleTasks(tasks).then((tasks) => {
464
+ this.tasks.set(tasks);
465
+ });
466
+ }
467
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardTimeGroupedGridViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
468
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AXMTaskBoardTimeGroupedGridViewComponent, isStandalone: true, selector: "axm-task-board-time-grouped-grid-view", inputs: { statuses: { classPropertyName: "statuses", publicName: "statuses", isSignal: true, isRequired: true, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onTaskChanged: "onTaskChanged" }, viewQueries: [{ propertyName: "tables", predicate: AXDataTableComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@for(group of groupedTasks(); track group.statusInfo.key){\n<h1 class=\"ax-text-xl ax-font-bold\">{{group.statusInfo.title}}</h1>\n<ax-data-table\n class=\"ax-h-[291px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'300px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n</ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
469
+ }
470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardTimeGroupedGridViewComponent, decorators: [{
471
+ type: Component,
472
+ args: [{ selector: 'axm-task-board-time-grouped-grid-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXDataTableModule], template: "@for(group of groupedTasks(); track group.statusInfo.key){\n<h1 class=\"ax-text-xl ax-font-bold\">{{group.statusInfo.title}}</h1>\n<ax-data-table\n class=\"ax-h-[291px]\"\n [fetchDataMode]=\"'manual'\"\n [dataSource]=\"group.tasks\"\n [loading]=\"{ enabled: true, animation: true }\"\n>\n <ax-text-column dataField=\"title\" caption=\"title\" [width]=\"'300px'\"></ax-text-column>\n <ax-text-column dataField=\"description\" caption=\"description\"></ax-text-column>\n <ax-text-column dataField=\"startDate\" caption=\"Start Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"endDate\" caption=\"Due Date\" [width]=\"'150px'\"></ax-text-column>\n <ax-text-column dataField=\"priority\" caption=\"priority\" [width]=\"'125px'\"></ax-text-column>\n <ax-text-column dataField=\"statusTitle\" caption=\"status\" [width]=\"'125px'\"></ax-text-column>\n</ax-data-table>\n}\n", styles: ["ax-kanban{--ax-comp-kanban-status-min-width: 25rem;height:100%;line-height:1.5}\n"] }]
473
+ }] });
474
+
475
+ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
476
+ constructor() {
477
+ super(...arguments);
478
+ this.MULTI_DAYS_COUNT = 7;
479
+ this.rootConfig = RootConfig;
480
+ this.vm = inject(AXMTaskBoardViewModel);
481
+ this.localeService = inject(AXLocaleService);
482
+ this.calendarService = inject(AXCalendarService);
483
+ this.taskBoardService = inject(AXPTaskBoardService);
484
+ this.popover = viewChild('popover');
485
+ this.calendar = viewChild('calendar');
486
+ this.currentTask = signal(null);
487
+ this.currentViewMode = signal('scheduler');
488
+ this.schedulerComponent = signal(null);
489
+ this.viewsItems = signal([
490
+ { key: 'day', text: 'daily', icon: 'fa-light fa-calendar-day', title: 'Calendar' },
491
+ { key: 'week', text: 'weekly', icon: 'fa-light fa-calendar-week' },
492
+ { key: 'month', text: 'monthly', icon: 'fa-light fa-calendar-alt' },
493
+ { key: 'agenda', text: 'agenda', icon: 'fa-light fa-calendar-range', break: true },
494
+ { key: 'grid', text: 'grid', icon: 'fa-light fa-table', title: 'Table' },
495
+ // { key: 'time-grouped-grid', text: 'time-grouped-grid', icon: 'fa-light fa-table' },
496
+ { key: 'status-grouped-grid', text: 'status-grouped-grid', icon: 'fa-light fa-table', break: true },
497
+ { key: 'kanban', text: 'kanban', icon: 'fa-light fa-chart-kanban' },
498
+ ]);
499
+ this.calendarType = computed(() => this.localeService.activeProfile().calendar.system);
500
+ this.todayButtonText = computed(() => {
501
+ switch (this.vm.currentViewMode()) {
502
+ case 'day':
503
+ case 'agenda':
504
+ case 'kanban':
505
+ case 'timeline-day':
506
+ case 'timeline-multi-day':
507
+ return 'Today';
508
+ case 'week':
509
+ return 'Current week';
510
+ case 'grid':
511
+ case 'month':
512
+ case 'timeline-month':
513
+ case 'time-grouped-grid':
514
+ case 'status-grouped-grid':
515
+ return 'Current month';
516
+ }
517
+ });
518
+ this.timeText = computed(() => {
519
+ if (this.vm.currentViewMode() === 'kanban') {
520
+ const start = this.calendarService.create(this.vm.currentDate(), this.localeService.activeProfile().calendar.system);
521
+ const end = start.add('day', this.MULTI_DAYS_COUNT - 1);
522
+ const startText = start.format('DD MMMM yyyy', { locale: this.localeService.activeProfile().calendar.system });
523
+ const endText = end.format('DD MMMM yyyy', { locale: this.localeService.activeProfile().calendar.system });
524
+ return `${startText} - ${endText}`;
525
+ }
526
+ if (this.vm.currentViewMode() === 'grid' ||
527
+ this.vm.currentViewMode() === 'time-grouped-grid' ||
528
+ this.vm.currentViewMode() === 'status-grouped-grid') {
529
+ const start = this.calendarService.create(this.vm.currentDate(), this.localeService.activeProfile().calendar.system);
530
+ const startText = start.format('MMMM yyyy', { locale: this.localeService.activeProfile().calendar.system });
531
+ return startText;
532
+ }
533
+ return this.schedulerComponent()?.currentDateText();
534
+ });
535
+ this.calendarDepth = computed(() => {
536
+ if (this.vm.currentViewMode() === 'kanban') {
537
+ return 'day';
538
+ }
539
+ if (this.vm.currentViewMode() === 'grid' ||
540
+ this.vm.currentViewMode() === 'time-grouped-grid' ||
541
+ this.vm.currentViewMode() === 'status-grouped-grid') {
542
+ return 'month';
543
+ }
544
+ return this.schedulerComponent()?.calendarDepth();
545
+ });
546
+ this.selectedViewMode = computed(() => this.viewsItems().find((item) => item.key === this.vm.currentViewMode()) || this.viewsItems()[0]);
547
+ this.filter = computed(() => {
548
+ const taskTypeProvider = this.vm.selectedTaskType();
549
+ const types = taskTypeProvider ? [taskTypeProvider.name] : undefined;
550
+ let from = this.calendarService.create(this.vm.currentDate(), this.localeService.activeProfile().calendar.system);
551
+ let end;
552
+ if (this.vm.currentViewMode() === 'kanban') {
553
+ end = from.add('day', this.MULTI_DAYS_COUNT - 1);
554
+ }
555
+ else if (this.vm.currentViewMode() === 'grid' ||
556
+ this.vm.currentViewMode() === 'time-grouped-grid' ||
557
+ this.vm.currentViewMode() === 'status-grouped-grid') {
558
+ from = from.startOf('month');
559
+ end = from.endOf('month');
560
+ }
561
+ else {
562
+ end = from.endOf('day');
563
+ }
564
+ return {
565
+ ...(types && { types }),
566
+ range: { from: from.date, end: end.date },
567
+ };
568
+ });
569
+ this.contextMenu = viewChild('rootContextMenu');
570
+ this.dataSource = (filter) => {
571
+ const taskTypeProvider = this.vm.selectedTaskType();
572
+ const types = taskTypeProvider ? [taskTypeProvider.name] : undefined;
573
+ return this.taskBoardService.getTasks({ ...filter, types });
574
+ };
575
+ this.statuses = computed(() => {
576
+ return this.vm.selectedTaskType()?.statuses || [];
577
+ });
578
+ this.getCellClass = (date) => {
579
+ // check from value
580
+ const rangedDates = [
581
+ 'week',
582
+ 'grid',
583
+ 'kanban',
584
+ 'agenda',
585
+ 'time-grouped-grid',
586
+ 'status-grouped-grid',
587
+ 'timeline-multi-day',
588
+ ];
589
+ if (!rangedDates.includes(this.vm.currentViewMode())) {
590
+ return null;
591
+ }
592
+ const from = this.calendarService.create(this.vm.currentDate(), this.localeService.activeProfile().calendar.system);
593
+ const end = from.add('day', this.MULTI_DAYS_COUNT - 1);
594
+ if (from && date.equal(from, 'day')) {
595
+ return 'ax-range-start';
596
+ }
597
+ if (end && date.equal(end, 'day')) {
598
+ return 'ax-range-end';
599
+ }
600
+ if (from && end && date.compare(from, 'day') > 0 && date.compare(end, 'day') < 0) {
601
+ return 'ax-range-between';
602
+ }
603
+ return null;
604
+ };
605
+ }
606
+ async ngOnInit() {
607
+ await super.ngOnInit();
608
+ await this.vm.initialize();
609
+ }
610
+ async getPageTitle() {
611
+ return await this.translateService.translateAsync('task-board.page-title', { scope: this.rootConfig.config.i18n });
612
+ }
613
+ async getPageBreadcrumbs() {
614
+ return [
615
+ {
616
+ title: await this.translateService.translateAsync('root-menu', { scope: this.rootConfig.config.i18n }),
617
+ },
618
+ ];
619
+ }
620
+ schedulerComponentChanged(component) {
621
+ this.schedulerComponent.set(component);
622
+ }
623
+ handleContextMenuOnOpening(event) {
624
+ for (const item of this.currentTask()?.data?.actions || []) {
625
+ event.items.push({
626
+ text: item.title,
627
+ icon: item.icon,
628
+ data: {
629
+ command: item.command,
630
+ },
631
+ });
632
+ }
633
+ }
634
+ handleTaskRightClick(event) {
635
+ this.currentTask.set(event.appointment);
636
+ const x = event.nativeEvent.clientX;
637
+ const y = event.nativeEvent.clientY;
638
+ const element = event.sender.nativeElement;
639
+ this.contextMenu()?.showAt({ x, y }, element);
640
+ }
641
+ handleMonthSlotDblClicked(date) {
642
+ this.vm.setCurrentDate(date);
643
+ this.vm.setCalendarViewMode('day');
644
+ }
645
+ handleCalendarViewChange(view) {
646
+ this.vm.setCalendarViewMode(view);
647
+ const schedulerComponent = this.schedulerComponent();
648
+ if (schedulerComponent) {
649
+ setTimeout(() => {
650
+ this.vm.setCurrentDate(schedulerComponent.currentDate().date);
651
+ this.popover()?.close();
652
+ this.calendar()?.render();
653
+ });
654
+ }
655
+ }
656
+ handleSelectedTaskTypeChange(taskType) {
657
+ this.vm.setSelectedTaskTypeProvider(taskType);
658
+ this.schedulerComponent()?.refresh();
659
+ }
660
+ handleSchedulerDateChanged(event) {
661
+ if (this.vm.isLoading()) {
662
+ return;
663
+ }
664
+ const newDate = event.value;
665
+ const currentDateInVm = this.vm.currentDate();
666
+ let dateToSet = newDate || new Date();
667
+ if (!currentDateInVm || currentDateInVm.getTime() !== dateToSet.getTime()) {
668
+ if (this.vm.currentViewMode() === 'week') {
669
+ const day = dateToSet.getDay();
670
+ const weekStart = this.localeService.activeProfile().calendar.week.startsOn;
671
+ let daysToSubtract = day - weekStart;
672
+ if (daysToSubtract < 0) {
673
+ daysToSubtract += 7;
674
+ }
675
+ dateToSet = new Date(dateToSet);
676
+ dateToSet.setDate(dateToSet.getDate() - daysToSubtract);
677
+ }
678
+ this.vm.setCurrentDate(dateToSet);
679
+ this.popover()?.close();
680
+ this.calendar()?.render();
681
+ }
682
+ }
683
+ handleContextMenuItemClick(event) {
684
+ this.taskBoardService.executeCommand(event.item.data?.command, this.currentTask()?.data?.provider ?? '');
685
+ }
686
+ changeDate(forward) {
687
+ const date = this.calendarService.create(this.vm.currentDate(), this.localeService.activeProfile().calendar.system);
688
+ switch (this.vm.currentViewMode()) {
689
+ case 'day':
690
+ case 'timeline-day':
691
+ this.vm.setCurrentDate(date.add('day', forward ? 1 : -1).date);
692
+ break;
693
+ case 'week':
694
+ this.vm.setCurrentDate(date.add('week', forward ? 1 : -1).date);
695
+ break;
696
+ case 'agenda':
697
+ case 'kanban':
698
+ case 'timeline-multi-day':
699
+ this.vm.setCurrentDate(date.add('day', forward ? this.MULTI_DAYS_COUNT - 1 : 1 - this.MULTI_DAYS_COUNT).date);
700
+ break;
701
+ case 'grid':
702
+ case 'month':
703
+ case 'timeline-month':
704
+ case 'time-grouped-grid':
705
+ case 'status-grouped-grid':
706
+ this.vm.setCurrentDate(date.add('month', forward ? 1 : -1).date);
707
+ break;
708
+ }
709
+ this.popover()?.close();
710
+ this.calendar()?.render();
711
+ }
712
+ handleTodayClick() {
713
+ this.handleSchedulerDateChanged({ value: new Date(), component: this.schedulerComponent() });
714
+ }
715
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
716
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AXMTaskBoardPage, isStandalone: true, selector: "ng-component", providers: [
717
+ {
718
+ provide: AXPPageLayoutBase,
719
+ useExisting: AXMTaskBoardPage,
720
+ },
721
+ ], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }, { propertyName: "contextMenu", first: true, predicate: ["rootContextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix>\n <ax-button\n [text]=\"t(vm.selectedTaskType()?.title || 'task-board.all', { scope: rootConfig.config.i18n }) | async\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{vm.selectedTaskType()?.icon || 'fa-tasks'}}\"></ax-icon></ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n @if(vm.currentViewMode()!=='kanban' && vm.currentViewMode()!=='grid' &&\n vm.currentViewMode()!=='status-grouped-grid' && vm.currentViewMode()!=='time-grouped-grid') {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(null)\"\n [text]=\"(t('task-board.all', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light fa-tasks\"></ax-icon></ax-prefix>\n </ax-button-item>\n } @for(item of vm.taskTypes(); track item.name) {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(item)\"\n [text]=\"(t(item.title, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon></ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <div class=\"ax-scheduler-header\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-left arrow-icon\"></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-right arrow-icon\"></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" [placement]=\"'bottom'\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n [depth]=\"calendarDepth()\"\n (onValueChanged)=\"handleSchedulerDateChanged($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(item of viewsItems(); track item.key) { @if(item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n <ax-button-item\n [text]=\"(t('task-board.view.' + item.text, { scope: 'workflow-management' }) | async)!\"\n [selected]=\"vm.currentViewMode() === item.key\"\n (onClick)=\"handleCalendarViewChange(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n } }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content>\n @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n [statuses]=\"statuses()\"\n class=\"axp-kanban-container ax-h-full\"\n [dataSource]=\"dataSource(filter())\"\n ></axm-task-board-kanban-view>\n }@case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full\"\n [statuses]=\"statuses()\"\n [dataSource]=\"dataSource(filter())\"\n ></axm-task-board-grid-view>\n }@case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n [statuses]=\"statuses()\"\n [dataSource]=\"dataSource(filter())\"\n class=\"ax-flex ax-flex-col ax-gap-2\"\n ></axm-task-board-status-grouped-grid-view>\n }@case('time-grouped-grid') {\n <axm-task-board-time-grouped-grid-view\n [statuses]=\"statuses()\"\n [dataSource]=\"dataSource(filter())\"\n class=\"ax-flex ax-flex-col ax-gap-2\"\n ></axm-task-board-time-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full\"\n [dataSource]=\"dataSource\"\n [startingDate]=\"vm.currentDate()\"\n [selectedView]=\"vm.currentViewMode()\"\n (component)=\"schedulerComponentChanged($event)\"\n (onTaskRightClick)=\"handleTaskRightClick($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n <ax-context-menu\n #rootContextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n } }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["html[dir=rtl] axp-page-layout axp-page-toolbar axp-layout-prefix .ax-scheduler-header .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}.ax-single-range-calendar .ax-range-start,.ax-single-range-calendar .ax-range-end{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.85)!important}.ax-single-range-calendar .ax-range-start:hover,.ax-single-range-calendar .ax-range-end:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}.ax-single-range-calendar .ax-range-start.ax-state-holiday,.ax-single-range-calendar .ax-range-end.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.85)!important}.ax-single-range-calendar .ax-range-between{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.65)}.ax-single-range-calendar .ax-range-between.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.65)}.ax-single-range-calendar ax-footer{display:flex;justify-content:center;border-color:rgba(var(--ax-comp-calendar-view-header-border-color));border-top-width:var(--ax-comp-calendar-view-header-border-width, 1px)}axp-page-content:not(:has(axm-task-board-status-grouped-grid-view,axm-task-board-time-grouped-grid-view)){overflow-y:hidden}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
722
+ //
723
+ AXMenuModule }, { kind: "component", type: i3.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i6.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i6.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: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type:
724
+ //
725
+ AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXMTaskBoardCalendarViewComponent, selector: "axm-task-board-calendar-view", inputs: ["startingDate", "selectedView", "dataSource"], outputs: ["onTaskChanged", "onMonthSlotDblClicked", "component", "onRangeChanged", "onTaskRightClick"] }, { kind: "component", type: AXMTaskBoardKanbanViewComponent, selector: "axm-task-board-kanban-view", inputs: ["statuses", "dataSource"], outputs: ["onTaskChanged", "component"] }, { kind: "component", type: AXMTaskBoardGridViewComponent, selector: "axm-task-board-grid-view", inputs: ["statuses", "dataSource"], outputs: ["onTaskChanged"] }, { kind: "component", type: AXMTaskBoardTimeGroupedGridViewComponent, selector: "axm-task-board-time-grouped-grid-view", inputs: ["statuses", "dataSource"], outputs: ["onTaskChanged"] }, { kind: "component", type: AXMTaskBoardStatusGroupedGridViewComponent, selector: "axm-task-board-status-grouped-grid-view", inputs: ["statuses", "dataSource"], outputs: ["onTaskChanged"] }, { kind: "component", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i7.AXPopoverComponent, selector: "ax-popover", inputs: ["disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
726
+ }
727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXMTaskBoardPage, decorators: [{
728
+ type: Component,
729
+ args: [{ imports: [
730
+ FormsModule,
731
+ CommonModule,
732
+ RouterModule,
733
+ //
734
+ AXMenuModule,
735
+ AXButtonModule,
736
+ AXDropdownButtonModule,
737
+ AXTranslationModule,
738
+ AXDecoratorModule,
739
+ AXLoadingModule,
740
+ AXBreadcrumbsModule,
741
+ AXBadgeModule,
742
+ //
743
+ AXPThemeLayoutBlockComponent,
744
+ AXPPageLayoutComponent,
745
+ AXMTaskBoardCalendarViewComponent,
746
+ AXMTaskBoardKanbanViewComponent,
747
+ AXMTaskBoardGridViewComponent,
748
+ AXMTaskBoardTimeGroupedGridViewComponent,
749
+ AXMTaskBoardStatusGroupedGridViewComponent,
750
+ AXDropdownPanelComponent,
751
+ AXPopoverModule,
752
+ AXCalendarComponent,
753
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
754
+ {
755
+ provide: AXPPageLayoutBase,
756
+ useExisting: AXMTaskBoardPage,
757
+ },
758
+ ], template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix>\n <ax-button\n [text]=\"t(vm.selectedTaskType()?.title || 'task-board.all', { scope: rootConfig.config.i18n }) | async\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{vm.selectedTaskType()?.icon || 'fa-tasks'}}\"></ax-icon></ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n @if(vm.currentViewMode()!=='kanban' && vm.currentViewMode()!=='grid' &&\n vm.currentViewMode()!=='status-grouped-grid' && vm.currentViewMode()!=='time-grouped-grid') {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(null)\"\n [text]=\"(t('task-board.all', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light fa-tasks\"></ax-icon></ax-prefix>\n </ax-button-item>\n } @for(item of vm.taskTypes(); track item.name) {\n <ax-button-item\n (onClick)=\"handleSelectedTaskTypeChange(item)\"\n [text]=\"(t(item.title, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix><ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon></ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <div class=\"ax-scheduler-header\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-left arrow-icon\"></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-right arrow-icon\"></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" [placement]=\"'bottom'\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n [depth]=\"calendarDepth()\"\n (onValueChanged)=\"handleSchedulerDateChanged($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(item of viewsItems(); track item.key) { @if(item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n <ax-button-item\n [text]=\"(t('task-board.view.' + item.text, { scope: 'workflow-management' }) | async)!\"\n [selected]=\"vm.currentViewMode() === item.key\"\n (onClick)=\"handleCalendarViewChange(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n } }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content>\n @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n [statuses]=\"statuses()\"\n class=\"axp-kanban-container ax-h-full\"\n [dataSource]=\"dataSource(filter())\"\n ></axm-task-board-kanban-view>\n }@case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full\"\n [statuses]=\"statuses()\"\n [dataSource]=\"dataSource(filter())\"\n ></axm-task-board-grid-view>\n }@case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n [statuses]=\"statuses()\"\n [dataSource]=\"dataSource(filter())\"\n class=\"ax-flex ax-flex-col ax-gap-2\"\n ></axm-task-board-status-grouped-grid-view>\n }@case('time-grouped-grid') {\n <axm-task-board-time-grouped-grid-view\n [statuses]=\"statuses()\"\n [dataSource]=\"dataSource(filter())\"\n class=\"ax-flex ax-flex-col ax-gap-2\"\n ></axm-task-board-time-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full\"\n [dataSource]=\"dataSource\"\n [startingDate]=\"vm.currentDate()\"\n [selectedView]=\"vm.currentViewMode()\"\n (component)=\"schedulerComponentChanged($event)\"\n (onTaskRightClick)=\"handleTaskRightClick($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n <ax-context-menu\n #rootContextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n } }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["html[dir=rtl] axp-page-layout axp-page-toolbar axp-layout-prefix .ax-scheduler-header .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}.ax-single-range-calendar .ax-range-start,.ax-single-range-calendar .ax-range-end{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.85)!important}.ax-single-range-calendar .ax-range-start:hover,.ax-single-range-calendar .ax-range-end:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}.ax-single-range-calendar .ax-range-start.ax-state-holiday,.ax-single-range-calendar .ax-range-end.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.85)!important}.ax-single-range-calendar .ax-range-between{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.65)}.ax-single-range-calendar .ax-range-between.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.65)}.ax-single-range-calendar ax-footer{display:flex;justify-content:center;border-color:rgba(var(--ax-comp-calendar-view-header-border-color));border-top-width:var(--ax-comp-calendar-view-header-border-width, 1px)}axp-page-content:not(:has(axm-task-board-status-grouped-grid-view,axm-task-board-time-grouped-grid-view)){overflow-y:hidden}\n"] }]
759
+ }] });
760
+
761
+ export { AXMTaskBoardPage };
762
+ //# sourceMappingURL=acorex-modules-workflow-management-task-board.page-ChW_Hwf2.mjs.map