@acorex/modules 20.0.5 → 20.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/index.d.ts +22 -2
- package/contact-management/README.md +568 -0
- package/contact-management/index.d.ts +263 -0
- package/conversation/index.d.ts +364 -391
- package/document-management/index.d.ts +5 -1
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CvFiEI1a.mjs → acorex-modules-application-management-module-designer.component-BErRgx0w.mjs} +7 -7
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CvFiEI1a.mjs.map → acorex-modules-application-management-module-designer.component-BErRgx0w.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +41 -42
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-B10cRw3M.mjs → acorex-modules-auth-acorex-modules-auth-X866H4oy.mjs} +44 -44
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-X866H4oy.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-C-HPf2jz.mjs → acorex-modules-auth-app-chooser.component-DqKTfLA2.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-app-chooser.component-C-HPf2jz.mjs.map → acorex-modules-auth-app-chooser.component-DqKTfLA2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-blank.layout-C5d42pO1.mjs → acorex-modules-auth-blank.layout-D2qSgxTy.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-blank.layout-C5d42pO1.mjs.map → acorex-modules-auth-blank.layout-D2qSgxTy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-eC1_ukrb.mjs → acorex-modules-auth-login.module-CWOYzn0L.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-login.module-eC1_ukrb.mjs.map → acorex-modules-auth-login.module-CWOYzn0L.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-DpfqRgAl.mjs → acorex-modules-auth-master.layout-384T0lIg.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-master.layout-DpfqRgAl.mjs.map → acorex-modules-auth-master.layout-384T0lIg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-rE9yrcGW.mjs → acorex-modules-auth-password.component-BW_ooTQG.mjs} +5 -5
- package/fesm2022/acorex-modules-auth-password.component-BW_ooTQG.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-DAB9dWB8.mjs → acorex-modules-auth-password.component-JG95JpLz.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-DAB9dWB8.mjs.map → acorex-modules-auth-password.component-JG95JpLz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-EGvejNu9.mjs → acorex-modules-auth-routes-DqKtHu-i.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-EGvejNu9.mjs.map → acorex-modules-auth-routes-DqKtHu-i.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-fmuXNByb.mjs → acorex-modules-auth-tenant-chooser.component-C0jxaqqg.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-fmuXNByb.mjs.map → acorex-modules-auth-tenant-chooser.component-C0jxaqqg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-JYtAQ3qF.mjs → acorex-modules-auth-two-factor-code.component-D7KOomHD.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-JYtAQ3qF.mjs.map → acorex-modules-auth-two-factor-code.component-D7KOomHD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-DF3_fgzH.mjs → acorex-modules-auth-two-factor.module-C88pXqao.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-two-factor.module-DF3_fgzH.mjs.map → acorex-modules-auth-two-factor.module-C88pXqao.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-BPb-WS4k.mjs → acorex-modules-auth-user-sessions.component-loloVwv0.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-user-sessions.component-BPb-WS4k.mjs.map → acorex-modules-auth-user-sessions.component-loloVwv0.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/{acorex-modules-common-search-popup.component-B5JU9uH9.mjs → acorex-modules-common-search-popup.component-CCKiQx0U.mjs} +8 -8
- package/fesm2022/{acorex-modules-common-search-popup.component-B5JU9uH9.mjs.map → acorex-modules-common-search-popup.component-CCKiQx0U.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-DzvUTy5z.mjs → acorex-modules-common-timeline-version-history-popup.component-DJOcjquG.mjs} +8 -8
- 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
- package/fesm2022/acorex-modules-common.mjs +215 -86
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs +489 -0
- package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs +827 -0
- package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs +509 -0
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs +469 -0
- package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs +489 -0
- package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management.mjs +2332 -0
- package/fesm2022/acorex-modules-contact-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-content-management.mjs +119 -55
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +2225 -2073
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +84 -84
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-ClH75xx1.mjs → acorex-modules-document-management-acorex-modules-document-management-C4cvhxSV.mjs} +310 -235
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C4cvhxSV.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-B_tjfzIn.mjs → acorex-modules-document-management-attachment-widget.component-B5txg8z0.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DNdRcCAs.mjs → acorex-modules-document-management-create-folder-dialog.component-LfnTz49a.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-document-management-details-view.component-JsK1UgZh.mjs → acorex-modules-document-management-details-view.component-Co5F8eWp.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-details-view.component-JsK1UgZh.mjs.map → acorex-modules-document-management-details-view.component-Co5F8eWp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DJT9oLek.mjs → acorex-modules-document-management-drive-choose.component-DFRdS7s1.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DJT9oLek.mjs.map → acorex-modules-document-management-drive-choose.component-DFRdS7s1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive.component-DYxpvUWX.mjs → acorex-modules-document-management-drive.component-jGs09Jrd.mjs} +8 -8
- package/fesm2022/{acorex-modules-document-management-drive.component-DYxpvUWX.mjs.map → acorex-modules-document-management-drive.component-jGs09Jrd.mjs.map} +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-V5gHyu9X.mjs → acorex-modules-document-management-large-tiles-view.component-CNBUzaUz.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-B-BzU_4Y.mjs → acorex-modules-document-management-link-dialog.component-CXzR7mUW.mjs} +4 -4
- 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
- package/fesm2022/{acorex-modules-document-management-list-view.component-Bm2EH2aT.mjs → acorex-modules-document-management-list-view.component-D4DbyB6W.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-list-view.component-Bm2EH2aT.mjs.map → acorex-modules-document-management-list-view.component-D4DbyB6W.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-CmMvrfKW.mjs +315 -0
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-CmMvrfKW.mjs.map +1 -0
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-D88h9eR6.mjs +31 -0
- package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-D88h9eR6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-DGqVDVLJ.mjs → acorex-modules-document-management-permission-definition.provider-DoOyhnwQ.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-DGqVDVLJ.mjs.map → acorex-modules-document-management-permission-definition.provider-DoOyhnwQ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-LgpvDguk.mjs → acorex-modules-document-management-rename-node-dialog.component-JDZWsFXL.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DzuYhAD4.mjs → acorex-modules-document-management-share-dialog.component-DTzXwqHw.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DzuYhAD4.mjs.map → acorex-modules-document-management-share-dialog.component-DTzXwqHw.mjs.map} +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BwFoe1vd.mjs → acorex-modules-document-management-small-icons-view.component-BNTmgtYr.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B5gp0wus.mjs → acorex-modules-document-management-small-tiles-view.component-CbCBAKyR.mjs} +5 -5
- 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
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-form-template-management-category.entity-B7dGrmoa.mjs → acorex-modules-form-template-management-category.entity-B3iAtREq.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-B7dGrmoa.mjs.map → acorex-modules-form-template-management-category.entity-B3iAtREq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-designer.page-DaTGU3w_.mjs → acorex-modules-form-template-management-designer.page-B-TIUKl7.mjs} +4 -4
- 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
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CjjlgO0w.mjs → acorex-modules-form-template-management-permission-definition.provider-CTG95UDp.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-CiSjuHGI.mjs → acorex-modules-form-template-management-settings.provider-BmFufTUd.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-CiSjuHGI.mjs.map → acorex-modules-form-template-management-settings.provider-BmFufTUd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-CQZ37yC2.mjs → acorex-modules-form-template-management-template-picker.component-CNwhdnGC.mjs} +4 -4
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-form-template-management-template.entity-Cps77n3G.mjs → acorex-modules-form-template-management-template.entity-BGsixiEI.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-Cps77n3G.mjs.map → acorex-modules-form-template-management-template.entity-BGsixiEI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-K2ZznaDw.mjs → acorex-modules-form-template-management-viewer-popup.component-CzjuUz4o.mjs} +9 -6
- package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-CzjuUz4o.mjs.map +1 -0
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-Blyh8QVB.mjs → acorex-modules-issue-management-acorex-modules-issue-management-C2JoHgaa.mjs} +24 -24
- 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
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-BzUN6Cty.mjs → acorex-modules-issue-management-capture-screen.component-DTtUkL78.mjs} +5 -5
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-BzUN6Cty.mjs.map → acorex-modules-issue-management-capture-screen.component-DTtUkL78.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +10 -10
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +35 -35
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-COUAmxM8.mjs → acorex-modules-organization-management-add-item.component-D99TugmE.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-add-item.component-COUAmxM8.mjs.map → acorex-modules-organization-management-add-item.component-D99TugmE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-DjGUUbel.mjs → acorex-modules-organization-management-org-chart-configuration.page-DTNqHbxt.mjs} +5 -5
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-xlNWhN4W.mjs → acorex-modules-organization-management-org-chart.page-ioMhEPnQ.mjs} +12 -12
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-xlNWhN4W.mjs.map → acorex-modules-organization-management-org-chart.page-ioMhEPnQ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +122 -122
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DqpAYmHM.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CFoPmixl.mjs} +933 -315
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CFoPmixl.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DidjxkmH.mjs → acorex-modules-platform-management-list-version.component-D0-Ya-Yx.mjs} +7 -7
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DidjxkmH.mjs.map → acorex-modules-platform-management-list-version.component-D0-Ya-Yx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-DcHKHrSK.mjs → acorex-modules-platform-management-settings.provider--ARXqBUY.mjs} +35 -25
- package/fesm2022/acorex-modules-platform-management-settings.provider--ARXqBUY.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +43 -43
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-report-management-report-create-root.component-LrE6TkIp.mjs +302 -0
- package/fesm2022/acorex-modules-report-management-report-create-root.component-LrE6TkIp.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BntIoMfN.mjs +617 -0
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BntIoMfN.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management-run.command-CoXvPC15.mjs +20 -0
- package/fesm2022/acorex-modules-report-management-run.command-CoXvPC15.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +976 -0
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
- package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +624 -120
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-B2CEFpES.mjs → acorex-modules-settings-management-setting-page.component-BKwKLUpD.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-B2CEFpES.mjs.map → acorex-modules-settings-management-setting-page.component-BKwKLUpD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-DnD83gFz.mjs → acorex-modules-settings-management-setting-view.component-Dco7MvZr.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-DnD83gFz.mjs.map → acorex-modules-settings-management-setting-view.component-Dco7MvZr.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +6 -6
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +43 -44
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-ChW_Hwf2.mjs +762 -0
- package/fesm2022/acorex-modules-workflow-management-task-board.page-ChW_Hwf2.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +12 -12
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/package.json +9 -1
- package/platform-management/index.d.ts +235 -8
- package/report-management/README.md +356 -0
- package/report-management/index.d.ts +46 -0
- package/security-management/index.d.ts +162 -2
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-B10cRw3M.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-rE9yrcGW.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-ClH75xx1.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-lock-dialog.component-DvZ-vrUE.mjs +0 -51
- package/fesm2022/acorex-modules-document-management-lock-dialog.component-DvZ-vrUE.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-q6mDKrFi.mjs +0 -190
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-q6mDKrFi.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-rlSWRGGl.mjs +0 -32
- package/fesm2022/acorex-modules-document-management-meta-selector-widget-view.component-rlSWRGGl.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-unlock-dialog.component-B_TMgAl1.mjs +0 -36
- package/fesm2022/acorex-modules-document-management-unlock-dialog.component-B_TMgAl1.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-K2ZznaDw.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DqpAYmHM.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-settings.provider-DcHKHrSK.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs +0 -218
- package/fesm2022/acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs +0 -41
- package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-designer.component-BJdbKpRQ.mjs +0 -20
- package/fesm2022/acorex-modules-security-management-permissions-widget-designer.component-BJdbKpRQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-edit.component-GTmDlgWW.mjs +0 -51
- package/fesm2022/acorex-modules-security-management-permissions-widget-edit.component-GTmDlgWW.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-print.component-BZ75aI18.mjs +0 -21
- package/fesm2022/acorex-modules-security-management-permissions-widget-print.component-BZ75aI18.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-view.component-CYQqerAX.mjs +0 -20
- package/fesm2022/acorex-modules-security-management-permissions-widget-view.component-CYQqerAX.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-R4x5Rq-D.mjs +0 -494
- package/fesm2022/acorex-modules-workflow-management-task-board.page-R4x5Rq-D.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
|