@acorex/modules 20.2.4-next.0 → 20.2.4-next.2
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/auth/index.d.ts +1 -0
- package/common/index.d.ts +16 -13
- package/contact-management/index.d.ts +0 -6
- package/conversation/index.d.ts +8 -0
- package/dashboard-management/index.d.ts +3 -79
- package/data-management/index.d.ts +2 -69
- package/document-management/index.d.ts +20 -5
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs → acorex-modules-auth-acorex-modules-auth-BbO_ea5W.mjs} +18 -14
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs.map → acorex-modules-auth-acorex-modules-auth-BbO_ea5W.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs → acorex-modules-auth-app-chooser.component-y0HLrwJM.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs.map → acorex-modules-auth-app-chooser.component-y0HLrwJM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-DGPRxnXo.mjs → acorex-modules-auth-login.module-1U_5UgDs.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-DGPRxnXo.mjs.map → acorex-modules-auth-login.module-1U_5UgDs.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-BNFGuQQs.mjs → acorex-modules-auth-master.layout-DGsAGhOH.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-BNFGuQQs.mjs.map → acorex-modules-auth-master.layout-DGsAGhOH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs → acorex-modules-auth-oauth-callback.component-CPHBV5bA.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs.map → acorex-modules-auth-oauth-callback.component-CPHBV5bA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-ln2kDKPR.mjs → acorex-modules-auth-password.component-C85NgQxA.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-ln2kDKPR.mjs.map → acorex-modules-auth-password.component-C85NgQxA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-Dyox9sR4.mjs → acorex-modules-auth-password.component-CF3ReHyw.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-Dyox9sR4.mjs.map → acorex-modules-auth-password.component-CF3ReHyw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-7vr8T08D.mjs → acorex-modules-auth-routes-BJh0Fwpy.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-7vr8T08D.mjs.map → acorex-modules-auth-routes-BJh0Fwpy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-D6XCUP_A.mjs → acorex-modules-auth-two-factor.module-Bsh2_A5L.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-D6XCUP_A.mjs.map → acorex-modules-auth-two-factor.module-Bsh2_A5L.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-user-sessions.component-ChMkstLg.mjs +137 -0
- package/fesm2022/acorex-modules-auth-user-sessions.component-ChMkstLg.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +12 -40
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common-manage-extra-properties-popup.component-BgXwb8Su.mjs +71 -0
- package/fesm2022/acorex-modules-common-manage-extra-properties-popup.component-BgXwb8Su.mjs.map +1 -0
- package/fesm2022/acorex-modules-common-manage-extra-properties.command-DqdhTfLD.mjs +47 -0
- package/fesm2022/acorex-modules-common-manage-extra-properties.command-DqdhTfLD.mjs.map +1 -0
- package/fesm2022/{acorex-modules-common-search-popup.component-39U0-TIj.mjs → acorex-modules-common-search-popup.component-BSQyjDKA.mjs} +8 -8
- package/fesm2022/{acorex-modules-common-search-popup.component-39U0-TIj.mjs.map → acorex-modules-common-search-popup.component-BSQyjDKA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs → acorex-modules-common-timeline-version-history-popup.component-ByAc4Yp9.mjs} +5 -5
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs.map → acorex-modules-common-timeline-version-history-popup.component-ByAc4Yp9.mjs.map} +1 -1
- package/fesm2022/acorex-modules-common.mjs +532 -91
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs → acorex-modules-contact-management-contact-method.entity-DR6V9Nox.mjs} +15 -41
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-DR6V9Nox.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs → acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs} +13 -90
- package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management.mjs +793 -1
- package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +3 -3
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +84 -24
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +29 -325
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +160 -1009
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs → acorex-modules-document-management-acorex-modules-document-management-DG7QxbqI.mjs} +174 -286
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-DG7QxbqI.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs → acorex-modules-document-management-attachment-widget.component-tk2f6GPy.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs.map → acorex-modules-document-management-attachment-widget.component-tk2f6GPy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs → acorex-modules-document-management-create-folder-dialog.component-DJ-BBmR2.mjs} +3 -3
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-DJ-BBmR2.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-details-view.component-BKNvUhdl.mjs → acorex-modules-document-management-details-view.component-CX10ubfL.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-BKNvUhdl.mjs.map → acorex-modules-document-management-details-view.component-CX10ubfL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs → acorex-modules-document-management-document-signature-popup.component-CMUZSL2S.mjs} +42 -2
- package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CMUZSL2S.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs → acorex-modules-document-management-drive-choose.component-DOxdrJh-.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs.map → acorex-modules-document-management-drive-choose.component-DOxdrJh-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive.component-DutBXTtm.mjs → acorex-modules-document-management-drive.component-Crt-i9Xe.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive.component-DutBXTtm.mjs.map → acorex-modules-document-management-drive.component-Crt-i9Xe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs → acorex-modules-document-management-large-icons-view.component-DLds0iA6.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs.map → acorex-modules-document-management-large-icons-view.component-DLds0iA6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs → acorex-modules-document-management-large-tiles-view.component-DELo5m5s.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs.map → acorex-modules-document-management-large-tiles-view.component-DELo5m5s.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-DKOod11R.mjs → acorex-modules-document-management-link-dialog.component-DM1Djews.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-link-dialog.component-DM1Djews.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-list-view.component-DdLTVccZ.mjs → acorex-modules-document-management-list-view.component-DsR96OWz.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-DdLTVccZ.mjs.map → acorex-modules-document-management-list-view.component-DsR96OWz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs → acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs} +6 -6
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs → acorex-modules-document-management-permission-definition.provider-DiXt_BzX.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs.map → acorex-modules-document-management-permission-definition.provider-DiXt_BzX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs → acorex-modules-document-management-rename-node-dialog.component-CNeHhc0E.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs.map → acorex-modules-document-management-rename-node-dialog.component-CNeHhc0E.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-mBEu2KpG.mjs → acorex-modules-document-management-share-dialog.component-BNN3t8AV.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-share-dialog.component-BNN3t8AV.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-CI4SKdjk.mjs → acorex-modules-document-management-share-email-dialog.component-8WAUtRyJ.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-8WAUtRyJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs → acorex-modules-document-management-small-icons-view.component-D9AIIBMz.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs.map → acorex-modules-document-management-small-icons-view.component-D9AIIBMz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs → acorex-modules-document-management-small-tiles-view.component-HpEgcH1F.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs.map → acorex-modules-document-management-small-tiles-view.component-HpEgcH1F.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-CLSHVjDE.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-COVNekIY.mjs} +13 -85
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-COVNekIY.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs → acorex-modules-form-template-management-permission-definition.provider-BEkbbQH2.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs.map → acorex-modules-form-template-management-permission-definition.provider-BEkbbQH2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs → acorex-modules-form-template-management-settings.provider-DSI7cmrW.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs.map → acorex-modules-form-template-management-settings.provider-DSI7cmrW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs → acorex-modules-form-template-management-template-picker.component-5n_kQMuQ.mjs} +6 -4
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-5n_kQMuQ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs → acorex-modules-form-template-management-template-widget-edit.component-BtCYeGB-.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BtCYeGB-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs → acorex-modules-form-template-management-template.entity-Cm-AVAF_.mjs} +15 -85
- package/fesm2022/acorex-modules-form-template-management-template.entity-Cm-AVAF_.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs → acorex-modules-form-template-management-viewer-popup.component-C8TC42DL.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs.map → acorex-modules-form-template-management-viewer-popup.component-C8TC42DL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs → acorex-modules-help-desk-acorex-modules-help-desk-hH3VgxdE.mjs} +6 -6
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-hH3VgxdE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs → acorex-modules-help-desk-capture-screen.component-ae64BzbL.mjs} +2 -2
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs.map → acorex-modules-help-desk-capture-screen.component-ae64BzbL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-help-desk.mjs +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +16 -29
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +1 -1
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-meeting-management.mjs +107 -95
- package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs +855 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management.mjs +20 -20
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-DkXcoyHa.mjs → acorex-modules-organization-management-add-item.component-B7AYaZrD.mjs} +2 -2
- package/fesm2022/acorex-modules-organization-management-add-item.component-B7AYaZrD.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs → acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs} +14 -42
- package/fesm2022/acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-chart.entity-UAn44WCP.mjs → acorex-modules-organization-management-chart.entity-8J9I9lgq.mjs} +14 -42
- package/fesm2022/acorex-modules-organization-management-chart.entity-8J9I9lgq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-company.entity-D1A1HSkC.mjs → acorex-modules-organization-management-company.entity-BBNM-Ihr.mjs} +14 -42
- package/fesm2022/acorex-modules-organization-management-company.entity-BBNM-Ihr.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-department.entity-BxCyXNtv.mjs → acorex-modules-organization-management-department.entity-BbBrK4BN.mjs} +14 -42
- package/fesm2022/acorex-modules-organization-management-department.entity-BbBrK4BN.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-division.entity-DzQT2jpz.mjs → acorex-modules-organization-management-division.entity-DdX7LcCU.mjs} +14 -42
- package/fesm2022/acorex-modules-organization-management-division.entity-DdX7LcCU.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs → acorex-modules-organization-management-employee.entity-DJH02MJJ.mjs} +85 -186
- package/fesm2022/acorex-modules-organization-management-employee.entity-DJH02MJJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs → acorex-modules-organization-management-employment-type.entity-Dw3TLMtD.mjs} +14 -42
- package/fesm2022/acorex-modules-organization-management-employment-type.entity-Dw3TLMtD.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-DuyhYwnh.mjs → acorex-modules-organization-management-org-chart.page-DxVm1V4w.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-DuyhYwnh.mjs.map → acorex-modules-organization-management-org-chart.page-DxVm1V4w.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-role.entity-CruQeObl.mjs → acorex-modules-organization-management-position.entity-DT7EyvrR.mjs} +96 -79
- package/fesm2022/acorex-modules-organization-management-position.entity-DT7EyvrR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs → acorex-modules-organization-management-responsibility.entity-DpUTLjdp.mjs} +19 -91
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DpUTLjdp.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs → acorex-modules-organization-management-role.entity-BdjgFsgo.mjs} +68 -51
- package/fesm2022/acorex-modules-organization-management-role.entity-BdjgFsgo.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs → acorex-modules-organization-management-skill.entity-O1453j6I.mjs} +14 -105
- package/fesm2022/acorex-modules-organization-management-skill.entity-O1453j6I.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-team.entity-DMCfAZsr.mjs → acorex-modules-organization-management-team.entity-DkRLWl0u.mjs} +13 -32
- package/fesm2022/acorex-modules-organization-management-team.entity-DkRLWl0u.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +15 -256
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs → acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs} +11 -21
- package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs → acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs} +20 -19
- package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs → acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs} +9 -12
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs → acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs} +9 -14
- package/fesm2022/acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs → acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs} +9 -12
- package/fesm2022/acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party.entity-DAvqOPic.mjs → acorex-modules-party-management-party.entity-BwAAZRJc.mjs} +43 -43
- package/fesm2022/acorex-modules-party-management-party.entity-BwAAZRJc.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management.mjs +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +2 -2
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +60 -48
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs → acorex-modules-report-management-report-create-root.component-DAOMkt_F.mjs} +2 -2
- package/fesm2022/acorex-modules-report-management-report-create-root.component-DAOMkt_F.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +57 -58
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +6 -7
- package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +27 -173
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-DbpqZaC7.mjs → acorex-modules-task-management-task-board.page-BBbHu2jz.mjs} +311 -71
- package/fesm2022/acorex-modules-task-management-task-board.page-BBbHu2jz.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +619 -241
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +4 -6
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +35 -35
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/form-template-management/index.d.ts +6 -32
- package/organization-management/index.d.ts +3 -111
- package/package.json +9 -9
- package/security-management/index.d.ts +1 -4
- package/task-management/README.md +1 -1
- package/task-management/index.d.ts +80 -6
- package/fesm2022/acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs +0 -135
- package/fesm2022/acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs +0 -863
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs +0 -680
- package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-link-dialog.component-DKOod11R.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-dialog.component-mBEu2KpG.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-CI4SKdjk.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs +0 -245
- package/fesm2022/acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs.map +0 -1
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs.map +0 -1
- package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs +0 -544
- package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-add-item.component-DkXcoyHa.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs +0 -305
- package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs +0 -526
- package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs +0 -338
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-CruQeObl.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs +0 -305
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party.entity-DAvqOPic.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-DbpqZaC7.mjs.map +0 -1
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import { AXPSearchCommandProvider, createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
|
|
2
2
|
import { AXP_ENTITY_CONFIG_TOKEN, AXPEntityService, AXMEntityCrudServiceImpl, entityMasterCrudActions, entityMasterDeleteAction, entityDetailsCrudActions, entityDetailsSimpleCondition, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
|
3
|
-
import
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
4
5
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject, Injector, Injectable, NgModule } from '@angular/core';
|
|
6
|
+
import { inject, Injector, Injectable, output, viewChild, computed, signal, effect, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
7
|
+
import { AXPAuthGuard } from '@acorex/platform/auth';
|
|
8
|
+
import { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER } from '@acorex/platform/core';
|
|
9
|
+
import { ROUTES } from '@angular/router';
|
|
10
|
+
import { AXButtonComponent } from '@acorex/components/button';
|
|
11
|
+
import { AXChipsComponent } from '@acorex/components/chips';
|
|
12
|
+
import { AXDecoratorIconComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';
|
|
13
|
+
import { AXContextMenuComponent } from '@acorex/components/menu';
|
|
14
|
+
import { AXFormatPipe } from '@acorex/core/format';
|
|
15
|
+
import { AXTranslatorPipe } from '@acorex/core/translation';
|
|
16
|
+
import * as i1$1 from '@acorex/platform/layout/builder';
|
|
17
|
+
import { AXPLayoutWidgetComponent, cloneProperty, AXPWidgetsCatalog, AXPWidgetGroupEnum, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
6
18
|
import { AXMCalendarManagementService, AXMCalendarManagementModule } from '@acorex/modules/calendar-management';
|
|
7
19
|
import { AXP_WORKFLOW_TASK_PROVIDER } from '@acorex/platform/workflow';
|
|
8
20
|
import { Subject } from 'rxjs';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
|
|
21
|
+
import { AXP_WIDGETS_CHART_CATEGORY } from '@acorex/modules/dashboard-management';
|
|
22
|
+
import { AXP_APPEARANCE_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/widgets';
|
|
23
|
+
import { AXDataSource } from '@acorex/cdk/common';
|
|
13
24
|
|
|
14
25
|
const config = {
|
|
15
26
|
i18n: 'task-management',
|
|
@@ -123,6 +134,469 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
123
134
|
type: Injectable
|
|
124
135
|
}] });
|
|
125
136
|
|
|
137
|
+
const VALID_PRIORITIES = ['highest', 'high', 'medium', 'low', 'lowest'];
|
|
138
|
+
const NO_PRIORITY_KEY = 'no_priority';
|
|
139
|
+
const PRIORITY_ORDER = {
|
|
140
|
+
highest: 0,
|
|
141
|
+
high: 1,
|
|
142
|
+
medium: 2,
|
|
143
|
+
low: 3,
|
|
144
|
+
lowest: 4,
|
|
145
|
+
no_priority: 5,
|
|
146
|
+
};
|
|
147
|
+
const DEFAULT_TASK_TYPE = { name: 'all', title: 'All', icon: 'fa-solid fa-list' };
|
|
148
|
+
class AXPTaskBoardWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
149
|
+
constructor() {
|
|
150
|
+
super(...arguments);
|
|
151
|
+
// Outputs
|
|
152
|
+
this.taskClick = output();
|
|
153
|
+
// Dependencies
|
|
154
|
+
this.taskBoardService = inject(AXPTaskBoardService);
|
|
155
|
+
this.contextMenu = viewChild('contextMenu', ...(ngDevMode ? [{ debugName: "contextMenu" }] : []));
|
|
156
|
+
// Configuration options
|
|
157
|
+
this.maxItems = computed(() => this.options()?.maxItems ?? 10, ...(ngDevMode ? [{ debugName: "maxItems" }] : []));
|
|
158
|
+
this.assignee = computed(() => this.options()?.assignee ?? [], ...(ngDevMode ? [{ debugName: "assignee" }] : []));
|
|
159
|
+
this.taskType = computed(() => this.options()?.taskType ?? DEFAULT_TASK_TYPE, ...(ngDevMode ? [{ debugName: "taskType" }] : []));
|
|
160
|
+
this.sortBy = computed(() => this.options()?.sortBy ?? { title: 'Priority', name: 'priority' }, ...(ngDevMode ? [{ debugName: "sortBy" }] : []));
|
|
161
|
+
// --- STATE AND DATA SIGNALS ---
|
|
162
|
+
this.allTasks = signal([], ...(ngDevMode ? [{ debugName: "allTasks" }] : []));
|
|
163
|
+
this.currentTask = signal(null, ...(ngDevMode ? [{ debugName: "currentTask" }] : []));
|
|
164
|
+
this.selectedPriorities = signal(new Set([...VALID_PRIORITIES, NO_PRIORITY_KEY]), ...(ngDevMode ? [{ debugName: "selectedPriorities" }] : []));
|
|
165
|
+
// --- COMPUTED SIGNALS FOR UI ---
|
|
166
|
+
/**
|
|
167
|
+
* Computes a list of tasks that are filtered, sorted, and limited.
|
|
168
|
+
*/
|
|
169
|
+
this.filteredTasks = computed(() => {
|
|
170
|
+
const tasks = this.allTasks();
|
|
171
|
+
const limit = this.maxItems();
|
|
172
|
+
const taskType = this.taskType().name;
|
|
173
|
+
const selectedPrioritiesSet = this.selectedPriorities();
|
|
174
|
+
// 1. Filter by Task Type
|
|
175
|
+
const typeFiltered = taskType && taskType !== 'all' ? tasks.filter((task) => task.provider === taskType) : tasks;
|
|
176
|
+
// 2. Filter by selected Priorities
|
|
177
|
+
const priorityFiltered = typeFiltered.filter((task) => {
|
|
178
|
+
const priorityKey = task.priority || NO_PRIORITY_KEY;
|
|
179
|
+
return selectedPrioritiesSet.has(priorityKey);
|
|
180
|
+
});
|
|
181
|
+
// 3. Sort the filtered tasks
|
|
182
|
+
const sorted = this.sortTasks([...priorityFiltered]);
|
|
183
|
+
// 4. Limit the number of items
|
|
184
|
+
return sorted.slice(0, limit);
|
|
185
|
+
}, ...(ngDevMode ? [{ debugName: "filteredTasks" }] : []));
|
|
186
|
+
/**
|
|
187
|
+
* Generates the data for the priority filter chips in the header.
|
|
188
|
+
*/
|
|
189
|
+
this.priorityBadges = computed(() => {
|
|
190
|
+
const tasks = this.allTasks();
|
|
191
|
+
const taskType = this.taskType();
|
|
192
|
+
// 1. Filter by task type
|
|
193
|
+
const typeFiltered = taskType.name !== 'all' ? tasks.filter((task) => task.provider === taskType.name) : tasks;
|
|
194
|
+
// 2. Count priorities from the filtered list
|
|
195
|
+
const counts = [...VALID_PRIORITIES, NO_PRIORITY_KEY].reduce((acc, key) => {
|
|
196
|
+
acc[key] = 0;
|
|
197
|
+
return acc;
|
|
198
|
+
}, {});
|
|
199
|
+
for (const task of typeFiltered) {
|
|
200
|
+
const key = task.priority || NO_PRIORITY_KEY;
|
|
201
|
+
counts[key]++;
|
|
202
|
+
}
|
|
203
|
+
// 3. Build badge models
|
|
204
|
+
const priorityBadges = VALID_PRIORITIES.map((p) => ({
|
|
205
|
+
name: p,
|
|
206
|
+
label: p.charAt(0).toUpperCase() + p.slice(1),
|
|
207
|
+
count: counts[p],
|
|
208
|
+
color: this.getBadgeColorForPriority(p),
|
|
209
|
+
}));
|
|
210
|
+
const noPriorityBadge = {
|
|
211
|
+
name: NO_PRIORITY_KEY,
|
|
212
|
+
label: 'No Priority',
|
|
213
|
+
count: counts[NO_PRIORITY_KEY],
|
|
214
|
+
color: this.getBadgeColorForPriority(NO_PRIORITY_KEY),
|
|
215
|
+
};
|
|
216
|
+
return [...priorityBadges, noPriorityBadge];
|
|
217
|
+
}, ...(ngDevMode ? [{ debugName: "priorityBadges" }] : []));
|
|
218
|
+
this.#getTasks = effect(() => {
|
|
219
|
+
const limit = this.maxItems();
|
|
220
|
+
const assignee = this.assignee();
|
|
221
|
+
const taskType = this.taskType().name === 'all' ? [] : [this.taskType().name];
|
|
222
|
+
this.taskBoardService
|
|
223
|
+
.getTasks({ take: limit, assigneeIds: assignee.map((a) => a.id), types: taskType })
|
|
224
|
+
.then((tasks) => {
|
|
225
|
+
this.allTasks.set(tasks.items);
|
|
226
|
+
});
|
|
227
|
+
}, ...(ngDevMode ? [{ debugName: "#getTasks" }] : []));
|
|
228
|
+
}
|
|
229
|
+
#getTasks;
|
|
230
|
+
// --- SORTING COMPARATOR METHODS ---
|
|
231
|
+
/**
|
|
232
|
+
* Compares two tasks based on their priority.
|
|
233
|
+
*/
|
|
234
|
+
compareByPriority(a, b) {
|
|
235
|
+
const priorityA = a.priority || NO_PRIORITY_KEY;
|
|
236
|
+
const priorityB = b.priority || NO_PRIORITY_KEY;
|
|
237
|
+
return PRIORITY_ORDER[priorityA] - PRIORITY_ORDER[priorityB];
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Compares two tasks based on their due date.
|
|
241
|
+
*/
|
|
242
|
+
compareByDueDate(a, b) {
|
|
243
|
+
const now = new Date().getTime();
|
|
244
|
+
const dateA = a.endDate ? new Date(a.endDate).getTime() : null;
|
|
245
|
+
const dateB = b.endDate ? new Date(b.endDate).getTime() : null;
|
|
246
|
+
if (dateA === null && dateB === null)
|
|
247
|
+
return 0;
|
|
248
|
+
if (dateA === null)
|
|
249
|
+
return 1;
|
|
250
|
+
if (dateB === null)
|
|
251
|
+
return -1;
|
|
252
|
+
const aIsInFuture = dateA >= now;
|
|
253
|
+
const bIsInFuture = dateB >= now;
|
|
254
|
+
if (aIsInFuture && !bIsInFuture)
|
|
255
|
+
return -1;
|
|
256
|
+
if (!aIsInFuture && bIsInFuture)
|
|
257
|
+
return 1;
|
|
258
|
+
return aIsInFuture ? dateA - dateB : dateB - dateA;
|
|
259
|
+
}
|
|
260
|
+
// --- EVENT HANDLERS ---
|
|
261
|
+
onPriorityFilterChange(priorityKey) {
|
|
262
|
+
this.selectedPriorities.update((currentSet) => {
|
|
263
|
+
const newSet = new Set(currentSet);
|
|
264
|
+
if (newSet.has(priorityKey)) {
|
|
265
|
+
newSet.delete(priorityKey);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
newSet.add(priorityKey);
|
|
269
|
+
}
|
|
270
|
+
return newSet;
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
onTaskClick(task) {
|
|
274
|
+
this.taskClick.emit(task);
|
|
275
|
+
}
|
|
276
|
+
onMoreOptionsClick(task, event) {
|
|
277
|
+
event.nativeEvent.stopPropagation();
|
|
278
|
+
this.currentTask.set(task);
|
|
279
|
+
const x = event.nativeEvent.clientX;
|
|
280
|
+
const y = event.nativeEvent.clientY;
|
|
281
|
+
const element = event.nativeEvent.target;
|
|
282
|
+
this.contextMenu()?.showAt({ x, y }, element);
|
|
283
|
+
}
|
|
284
|
+
handleContextMenuItemClick(event) {
|
|
285
|
+
this.taskBoardService.executeCommand(event.item.data?.command, this.currentTask()?.provider ?? '');
|
|
286
|
+
}
|
|
287
|
+
async handleContextMenuOnOpening(event) {
|
|
288
|
+
const currentTask = this.currentTask();
|
|
289
|
+
if (!currentTask)
|
|
290
|
+
return;
|
|
291
|
+
const providerName = currentTask.provider;
|
|
292
|
+
if (!providerName)
|
|
293
|
+
return;
|
|
294
|
+
const provider = this.taskBoardService.getProvider(providerName);
|
|
295
|
+
if (!provider)
|
|
296
|
+
return;
|
|
297
|
+
const actions = await provider.getActions(currentTask);
|
|
298
|
+
for (const item of actions) {
|
|
299
|
+
event.items.push({
|
|
300
|
+
text: item.title,
|
|
301
|
+
icon: item.icon,
|
|
302
|
+
data: {
|
|
303
|
+
command: item.command,
|
|
304
|
+
},
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// --- FORMATTING & UTILITY METHODS ---
|
|
309
|
+
getBadgeColorForPriority(priorityKey) {
|
|
310
|
+
if (priorityKey === NO_PRIORITY_KEY) {
|
|
311
|
+
return 'secondary';
|
|
312
|
+
}
|
|
313
|
+
const colorMap = {
|
|
314
|
+
highest: 'danger',
|
|
315
|
+
high: 'danger',
|
|
316
|
+
medium: 'warning',
|
|
317
|
+
low: 'success',
|
|
318
|
+
lowest: 'success',
|
|
319
|
+
};
|
|
320
|
+
return colorMap[priorityKey];
|
|
321
|
+
}
|
|
322
|
+
sortTasks(tasks) {
|
|
323
|
+
const sortBy = this.sortBy().name;
|
|
324
|
+
return tasks.sort((a, b) => {
|
|
325
|
+
if (sortBy === 'priority') {
|
|
326
|
+
const priorityCompare = this.compareByPriority(a, b);
|
|
327
|
+
if (priorityCompare !== 0)
|
|
328
|
+
return priorityCompare;
|
|
329
|
+
return this.compareByDueDate(a, b);
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
const dateCompare = this.compareByDueDate(a, b);
|
|
333
|
+
if (dateCompare !== 0)
|
|
334
|
+
return dateCompare;
|
|
335
|
+
return this.compareByPriority(a, b);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskBoardWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
340
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXPTaskBoardWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { taskClick: "taskClick" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-size-full ax-p-4 ax-flex ax-flex-col\">\n <!-- Header with Priority Filter Chips -->\n <div class=\"ax-flex ax-gap-2 ax-flex-wrap ax-pb-4\">\n @for (badge of priorityBadges(); track badge.name) {\n <ng-container>\n @if (badge.count > 0) {\n <ax-chips\n [size]=\"'ax-sm'\"\n [color]=\"badge.color\"\n class=\"ax-cursor-pointer filter-badge\"\n [text]=\"`${badge.label} (${badge.count})`\"\n (click)=\"onPriorityFilterChange(badge.name)\"\n [look]=\"selectedPriorities().has(badge.name) ? 'solid' : 'outline'\"\n >\n </ax-chips>\n }\n </ng-container>\n }\n </div>\n\n <!-- Task Board -->\n <div class=\"ax-overflow-auto ax-overflow-x-hidden ax-grow\">\n <div class=\"ax-space-y-2\">\n @for (task of filteredTasks(); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n } @empty {\n <!-- Empty State -->\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-14 ax-px-4 ax-text-gray-400 empty-state ax-gap-3\"\n >\n <i class=\"fa-light fa-clipboard-list-check ax-text-5xl ax-text-gray-300\"></i>\n <p class=\"ax-text-center ax-font-medium\">\n {{ 'task-board.noTasksFound' | translate: { scope: 'dashboard' } | async }}\n </p>\n <p class=\"ax-text-center ax-text-sm\">\n {{ 'task-board.tryDifferentFilter' | translate: { scope: 'dashboard' } | async }}\n </p>\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- Task Item Template -->\n<ng-template #taskItemTemplateRef let-task>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-p-3 task-item priority-{{ task.priority }}\">\n <!-- Task Details -->\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\" (click)=\"onTaskClick(task)\">\n <!-- Title and Priority -->\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <ax-title class=\"ax-font-medium ax-truncate ax-pb-1 ax-grow min-w-0\" [title]=\"task.title\">\n {{ task.title }}\n </ax-title>\n <!-- More Options Button -->\n <ax-button look=\"link\" class=\"ax-sm\" (onClick)=\"onMoreOptionsClick(task, $event)\">\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"></ax-icon>\n </ax-button>\n </div>\n\n <!-- Metadata -->\n @if (task.endDate || task.assignee) {\n <div class=\"ax-flex ax-flex-wrap ax-gap-x-3 ax-gap-y-1 ax-pt-2 ax-text-xs\">\n @if (task.endDate) {\n <span class=\"ax-flex ax-items-center ax-gap-1 due-date\">\n <ax-icon><i class=\"fa-light fa-calendar\"></i></ax-icon>\n <ax-subtitle>{{ task.endDate | format: 'datetime' : { format: 'datetime' } | async }}</ax-subtitle>\n </span>\n }\n @if (task.assignee) {\n <span class=\"ax-flex ax-items-center ax-gap-1\">\n @if (task.assignee.avatarUrl) {\n <img [src]=\"task.assignee.avatarUrl\" class=\"ax-w-4 ax-h-4 ax-rounded-full\" />\n } @else {\n <ax-icon><i class=\"fa-light fa-user\"></i></ax-icon>\n }\n <ax-subtitle>{{ task.assignee.fullName }}</ax-subtitle>\n </span>\n }\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ax-context-menu\n #contextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: [":host{display:block;height:100%;width:100%}.task-item{transition:all .2s ease-in-out;border-left:3px solid transparent}.task-item:hover{background-color:rgba(var(--ax-sys-color-on-surface),.1);transform:translateY(-2px);box-shadow:0 2px 8px rgba(0,0,0,.05)}.task-item.priority-highest{border-left-color:rgb(var(--ax-sys-color-danger-500))}.task-item.priority-high{border-left-color:rgb(var(--ax-sys-color-danger-400))}.task-item.priority-medium{border-left-color:rgb(var(--ax-sys-color-warning-500))}.task-item.priority-low{border-left-color:rgb(var(--ax-sys-color-success-500))}.task-item.priority-lowest{border-left-color:rgb(var(--ax-sys-color-success-300))}.task-item:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,.05)}.empty-state{animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ax-space-y-2>*{animation:slideInRight .3s ease forwards;opacity:0}.ax-space-y-2>*:nth-child(1){animation-delay:.05s}.ax-space-y-2>*:nth-child(2){animation-delay:.1s}.ax-space-y-2>*:nth-child(3){animation-delay:.15s}.ax-space-y-2>*:nth-child(4){animation-delay:.2s}.ax-space-y-2>*:nth-child(5){animation-delay:.25s}.ax-space-y-2>*:nth-child(6){animation-delay:.3s}.ax-space-y-2>*:nth-child(7){animation-delay:.35s}.ax-space-y-2>*:nth-child(8){animation-delay:.4s}.ax-space-y-2>*:nth-child(9){animation-delay:.45s}.ax-space-y-2>*:nth-child(10){animation-delay:.5s}@keyframes slideInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXChipsComponent, selector: "ax-chips", inputs: ["tabIndex", "color", "text", "look", "size"], outputs: ["textChange", "lookChange", "sizeChange"] }, { kind: "component", type: 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: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: 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: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
341
|
+
}
|
|
342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskBoardWidgetViewComponent, decorators: [{
|
|
343
|
+
type: Component,
|
|
344
|
+
args: [{ standalone: true, imports: [
|
|
345
|
+
AsyncPipe,
|
|
346
|
+
CommonModule,
|
|
347
|
+
AXFormatPipe,
|
|
348
|
+
AXChipsComponent,
|
|
349
|
+
AXTranslatorPipe,
|
|
350
|
+
AXButtonComponent,
|
|
351
|
+
AXContextMenuComponent,
|
|
352
|
+
AXDecoratorIconComponent,
|
|
353
|
+
AXDecoratorGenericComponent,
|
|
354
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-size-full ax-p-4 ax-flex ax-flex-col\">\n <!-- Header with Priority Filter Chips -->\n <div class=\"ax-flex ax-gap-2 ax-flex-wrap ax-pb-4\">\n @for (badge of priorityBadges(); track badge.name) {\n <ng-container>\n @if (badge.count > 0) {\n <ax-chips\n [size]=\"'ax-sm'\"\n [color]=\"badge.color\"\n class=\"ax-cursor-pointer filter-badge\"\n [text]=\"`${badge.label} (${badge.count})`\"\n (click)=\"onPriorityFilterChange(badge.name)\"\n [look]=\"selectedPriorities().has(badge.name) ? 'solid' : 'outline'\"\n >\n </ax-chips>\n }\n </ng-container>\n }\n </div>\n\n <!-- Task Board -->\n <div class=\"ax-overflow-auto ax-overflow-x-hidden ax-grow\">\n <div class=\"ax-space-y-2\">\n @for (task of filteredTasks(); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n } @empty {\n <!-- Empty State -->\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-14 ax-px-4 ax-text-gray-400 empty-state ax-gap-3\"\n >\n <i class=\"fa-light fa-clipboard-list-check ax-text-5xl ax-text-gray-300\"></i>\n <p class=\"ax-text-center ax-font-medium\">\n {{ 'task-board.noTasksFound' | translate: { scope: 'dashboard' } | async }}\n </p>\n <p class=\"ax-text-center ax-text-sm\">\n {{ 'task-board.tryDifferentFilter' | translate: { scope: 'dashboard' } | async }}\n </p>\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- Task Item Template -->\n<ng-template #taskItemTemplateRef let-task>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-p-3 task-item priority-{{ task.priority }}\">\n <!-- Task Details -->\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\" (click)=\"onTaskClick(task)\">\n <!-- Title and Priority -->\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <ax-title class=\"ax-font-medium ax-truncate ax-pb-1 ax-grow min-w-0\" [title]=\"task.title\">\n {{ task.title }}\n </ax-title>\n <!-- More Options Button -->\n <ax-button look=\"link\" class=\"ax-sm\" (onClick)=\"onMoreOptionsClick(task, $event)\">\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"></ax-icon>\n </ax-button>\n </div>\n\n <!-- Metadata -->\n @if (task.endDate || task.assignee) {\n <div class=\"ax-flex ax-flex-wrap ax-gap-x-3 ax-gap-y-1 ax-pt-2 ax-text-xs\">\n @if (task.endDate) {\n <span class=\"ax-flex ax-items-center ax-gap-1 due-date\">\n <ax-icon><i class=\"fa-light fa-calendar\"></i></ax-icon>\n <ax-subtitle>{{ task.endDate | format: 'datetime' : { format: 'datetime' } | async }}</ax-subtitle>\n </span>\n }\n @if (task.assignee) {\n <span class=\"ax-flex ax-items-center ax-gap-1\">\n @if (task.assignee.avatarUrl) {\n <img [src]=\"task.assignee.avatarUrl\" class=\"ax-w-4 ax-h-4 ax-rounded-full\" />\n } @else {\n <ax-icon><i class=\"fa-light fa-user\"></i></ax-icon>\n }\n <ax-subtitle>{{ task.assignee.fullName }}</ax-subtitle>\n </span>\n }\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ax-context-menu\n #contextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: [":host{display:block;height:100%;width:100%}.task-item{transition:all .2s ease-in-out;border-left:3px solid transparent}.task-item:hover{background-color:rgba(var(--ax-sys-color-on-surface),.1);transform:translateY(-2px);box-shadow:0 2px 8px rgba(0,0,0,.05)}.task-item.priority-highest{border-left-color:rgb(var(--ax-sys-color-danger-500))}.task-item.priority-high{border-left-color:rgb(var(--ax-sys-color-danger-400))}.task-item.priority-medium{border-left-color:rgb(var(--ax-sys-color-warning-500))}.task-item.priority-low{border-left-color:rgb(var(--ax-sys-color-success-500))}.task-item.priority-lowest{border-left-color:rgb(var(--ax-sys-color-success-300))}.task-item:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,.05)}.empty-state{animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ax-space-y-2>*{animation:slideInRight .3s ease forwards;opacity:0}.ax-space-y-2>*:nth-child(1){animation-delay:.05s}.ax-space-y-2>*:nth-child(2){animation-delay:.1s}.ax-space-y-2>*:nth-child(3){animation-delay:.15s}.ax-space-y-2>*:nth-child(4){animation-delay:.2s}.ax-space-y-2>*:nth-child(5){animation-delay:.25s}.ax-space-y-2>*:nth-child(6){animation-delay:.3s}.ax-space-y-2>*:nth-child(7){animation-delay:.35s}.ax-space-y-2>*:nth-child(8){animation-delay:.4s}.ax-space-y-2>*:nth-child(9){animation-delay:.45s}.ax-space-y-2>*:nth-child(10){animation-delay:.5s}@keyframes slideInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}\n"] }]
|
|
355
|
+
}] });
|
|
356
|
+
|
|
357
|
+
var taskBoardWidget_component = /*#__PURE__*/Object.freeze({
|
|
358
|
+
__proto__: null,
|
|
359
|
+
AXPTaskBoardWidgetViewComponent: AXPTaskBoardWidgetViewComponent
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
const AXPTaskBoardWidget = {
|
|
363
|
+
name: 'task-board',
|
|
364
|
+
title: 'Task Board Widget',
|
|
365
|
+
categories: [AXP_WIDGETS_CHART_CATEGORY],
|
|
366
|
+
groups: [AXPWidgetGroupEnum.DashboardWidget],
|
|
367
|
+
type: 'dashboard',
|
|
368
|
+
icon: 'fa-light fa-clipboard-list-check',
|
|
369
|
+
properties: [
|
|
370
|
+
cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),
|
|
371
|
+
// ====== Title ======
|
|
372
|
+
{
|
|
373
|
+
order: 1,
|
|
374
|
+
name: 'title',
|
|
375
|
+
title: '@dashboard:task-board.task-board-title',
|
|
376
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
377
|
+
schema: {
|
|
378
|
+
defaultValue: 'Task Board',
|
|
379
|
+
dataType: 'string',
|
|
380
|
+
interface: {
|
|
381
|
+
name: 'title',
|
|
382
|
+
path: 'options.title',
|
|
383
|
+
type: AXPWidgetsCatalog.text,
|
|
384
|
+
options: {
|
|
385
|
+
placeholder: 'Enter task board title',
|
|
386
|
+
},
|
|
387
|
+
triggers: [
|
|
388
|
+
{
|
|
389
|
+
event: `{{ events.context('options.taskType') }}`,
|
|
390
|
+
action: `{{ widget.setValue(widget.find("taskType").output('item').title==='All' ? 'Task Board' : widget.find("taskType").output('item').title) }}`,
|
|
391
|
+
},
|
|
392
|
+
],
|
|
393
|
+
},
|
|
394
|
+
},
|
|
395
|
+
visible: true,
|
|
396
|
+
},
|
|
397
|
+
// ====== Task Type ======
|
|
398
|
+
{
|
|
399
|
+
order: 0,
|
|
400
|
+
name: 'taskType',
|
|
401
|
+
title: '@dashboard:task-board.task-type',
|
|
402
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
403
|
+
schema: {
|
|
404
|
+
defaultValue: { name: 'all', title: 'All', icon: 'fa-solid fa-list' },
|
|
405
|
+
dataType: 'object',
|
|
406
|
+
interface: {
|
|
407
|
+
name: 'taskType',
|
|
408
|
+
path: 'options.taskType',
|
|
409
|
+
type: AXPWidgetsCatalog.select,
|
|
410
|
+
options: {
|
|
411
|
+
textField: 'title',
|
|
412
|
+
valueField: 'name',
|
|
413
|
+
dataSource: 'task-types',
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
visible: true,
|
|
418
|
+
},
|
|
419
|
+
// ====== Sort By ======
|
|
420
|
+
{
|
|
421
|
+
name: 'sortBy',
|
|
422
|
+
title: '@dashboard:task-board.sort-by',
|
|
423
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
424
|
+
schema: {
|
|
425
|
+
defaultValue: 'priority',
|
|
426
|
+
dataType: 'string',
|
|
427
|
+
interface: {
|
|
428
|
+
name: 'sortBy',
|
|
429
|
+
path: 'options.sortBy',
|
|
430
|
+
type: AXPWidgetsCatalog.select,
|
|
431
|
+
options: {
|
|
432
|
+
valueField: 'name',
|
|
433
|
+
textField: 'title',
|
|
434
|
+
dataSource: [
|
|
435
|
+
{ title: 'Priority', name: 'priority' },
|
|
436
|
+
{ title: 'Due Date', name: 'dueDate' },
|
|
437
|
+
],
|
|
438
|
+
direction: 'horizontal',
|
|
439
|
+
multiple: false,
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
},
|
|
443
|
+
visible: true,
|
|
444
|
+
},
|
|
445
|
+
// ====== Display options ======
|
|
446
|
+
{
|
|
447
|
+
name: 'maxItems',
|
|
448
|
+
title: '@dashboard:task-board.max-items',
|
|
449
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
450
|
+
schema: {
|
|
451
|
+
defaultValue: 10,
|
|
452
|
+
dataType: 'number',
|
|
453
|
+
interface: {
|
|
454
|
+
name: 'maxItems',
|
|
455
|
+
path: 'options.maxItems',
|
|
456
|
+
type: AXPWidgetsCatalog.number,
|
|
457
|
+
options: {
|
|
458
|
+
minValue: 1,
|
|
459
|
+
maxValue: 50,
|
|
460
|
+
},
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
visible: true,
|
|
464
|
+
},
|
|
465
|
+
// ====== Asigned To ======
|
|
466
|
+
{
|
|
467
|
+
name: 'assignee',
|
|
468
|
+
title: '@dashboard:task-board.asigned-to',
|
|
469
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
470
|
+
schema: {
|
|
471
|
+
dataType: 'object',
|
|
472
|
+
interface: {
|
|
473
|
+
name: 'assignee',
|
|
474
|
+
path: 'options.assignee',
|
|
475
|
+
type: AXPWidgetsCatalog.select,
|
|
476
|
+
options: {
|
|
477
|
+
valueField: 'id',
|
|
478
|
+
textField: 'displayName',
|
|
479
|
+
dataSource: 'users',
|
|
480
|
+
allowSearch: true,
|
|
481
|
+
multiple: true,
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
},
|
|
485
|
+
visible: true,
|
|
486
|
+
},
|
|
487
|
+
],
|
|
488
|
+
components: {
|
|
489
|
+
view: {
|
|
490
|
+
component: () => Promise.resolve().then(function () { return taskBoardWidget_component; }).then((c) => c.AXPTaskBoardWidgetViewComponent),
|
|
491
|
+
},
|
|
492
|
+
},
|
|
493
|
+
meta: {
|
|
494
|
+
dimensions: {
|
|
495
|
+
width: 3,
|
|
496
|
+
height: 7,
|
|
497
|
+
minWidth: 3,
|
|
498
|
+
minHeight: 4,
|
|
499
|
+
maxWidth: 6,
|
|
500
|
+
maxHeight: 8,
|
|
501
|
+
},
|
|
502
|
+
},
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
class AXPTaskTypeDataSourceDefinition {
|
|
506
|
+
constructor() {
|
|
507
|
+
this.taskBoardService = inject(AXPTaskBoardService);
|
|
508
|
+
}
|
|
509
|
+
items() {
|
|
510
|
+
return Promise.resolve([
|
|
511
|
+
{
|
|
512
|
+
name: 'task-types',
|
|
513
|
+
title: 'Task Type',
|
|
514
|
+
source: () => {
|
|
515
|
+
return new AXDataSource({
|
|
516
|
+
key: 'name',
|
|
517
|
+
load: async (_) => {
|
|
518
|
+
try {
|
|
519
|
+
const providers = await this.taskBoardService.getTaskTypes();
|
|
520
|
+
const plainObjects = providers.map((provider) => ({
|
|
521
|
+
name: provider.name,
|
|
522
|
+
title: provider.title,
|
|
523
|
+
icon: provider.icon,
|
|
524
|
+
}));
|
|
525
|
+
const finalItems = [{ name: 'all', title: 'All', icon: 'fa-solid fa-list' }, ...plainObjects];
|
|
526
|
+
return {
|
|
527
|
+
items: finalItems,
|
|
528
|
+
total: finalItems.length,
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
catch (e) {
|
|
532
|
+
console.error(e);
|
|
533
|
+
throw e;
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
byKey: async (key) => {
|
|
537
|
+
const providers = await this.taskBoardService.getTaskTypes();
|
|
538
|
+
const provider = providers.find((item) => item.name === key);
|
|
539
|
+
if (provider) {
|
|
540
|
+
return {
|
|
541
|
+
name: provider.name,
|
|
542
|
+
title: provider.title,
|
|
543
|
+
icon: provider.icon,
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
return undefined;
|
|
547
|
+
},
|
|
548
|
+
pageSize: 100,
|
|
549
|
+
});
|
|
550
|
+
},
|
|
551
|
+
columns: [
|
|
552
|
+
{
|
|
553
|
+
name: 'name',
|
|
554
|
+
title: 'Name',
|
|
555
|
+
datatype: 'string',
|
|
556
|
+
type: AXPWidgetsCatalog.text,
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
name: 'title',
|
|
560
|
+
title: `Title`,
|
|
561
|
+
datatype: 'string',
|
|
562
|
+
type: AXPWidgetsCatalog.text,
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
name: 'icon',
|
|
566
|
+
title: `Icon`,
|
|
567
|
+
datatype: 'string',
|
|
568
|
+
type: AXPWidgetsCatalog.text,
|
|
569
|
+
},
|
|
570
|
+
],
|
|
571
|
+
filters: [
|
|
572
|
+
{
|
|
573
|
+
field: 'title',
|
|
574
|
+
title: 'Title',
|
|
575
|
+
operator: {
|
|
576
|
+
type: 'equal',
|
|
577
|
+
},
|
|
578
|
+
widget: {
|
|
579
|
+
type: AXPWidgetsCatalog.text,
|
|
580
|
+
},
|
|
581
|
+
filterType: {
|
|
582
|
+
advance: true,
|
|
583
|
+
inline: true,
|
|
584
|
+
},
|
|
585
|
+
},
|
|
586
|
+
],
|
|
587
|
+
textField: {
|
|
588
|
+
name: 'title',
|
|
589
|
+
title: 'Title',
|
|
590
|
+
},
|
|
591
|
+
valueField: {
|
|
592
|
+
name: 'name',
|
|
593
|
+
title: 'Name',
|
|
594
|
+
},
|
|
595
|
+
},
|
|
596
|
+
]);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
|
|
126
600
|
class AXPTaskBoardService {
|
|
127
601
|
constructor() {
|
|
128
602
|
this.calendarManagementService = inject(AXMCalendarManagementService);
|
|
@@ -130,61 +604,51 @@ class AXPTaskBoardService {
|
|
|
130
604
|
this.refresh$ = new Subject();
|
|
131
605
|
}
|
|
132
606
|
async getTaskTypes() {
|
|
133
|
-
|
|
134
|
-
return [];
|
|
135
|
-
}
|
|
136
|
-
return this.providers;
|
|
607
|
+
return this.providers ?? [];
|
|
137
608
|
}
|
|
138
609
|
async getTasks(options) {
|
|
139
|
-
if (!this.providers || (this.providers?.length
|
|
610
|
+
if (!this.providers || (this.providers?.length ?? 0) === 0) {
|
|
140
611
|
console.warn('No task providers available');
|
|
141
612
|
return { items: [], total: 0 };
|
|
142
613
|
}
|
|
143
|
-
const filteredProviders = this.providers.filter((provider) => (options?.types?.length ?? 0)
|
|
614
|
+
const filteredProviders = this.providers.filter((provider) => (options?.types?.length ?? 0) === 0 || options?.types?.includes(provider.name));
|
|
144
615
|
if (filteredProviders.length === 0) {
|
|
145
616
|
return { items: [], total: 0 };
|
|
146
617
|
}
|
|
147
|
-
//
|
|
148
|
-
// when a single provider (task type) is selected.
|
|
618
|
+
// Single provider case - handles pagination efficiently at the source.
|
|
149
619
|
if (filteredProviders.length === 1) {
|
|
150
620
|
const provider = filteredProviders[0];
|
|
151
|
-
// The provider's getTasks method should now handle pagination and return the required structure.
|
|
152
621
|
const result = await provider.getTasks(options);
|
|
153
|
-
//
|
|
154
|
-
const itemsWithProvider = result.items.map((t) => ({ ...t, provider: provider.name
|
|
622
|
+
// Add provider name to each task for identification.
|
|
623
|
+
const itemsWithProvider = result.items.map((t) => ({ ...t, provider: provider.name }));
|
|
155
624
|
return { items: itemsWithProvider, total: result.total };
|
|
156
625
|
}
|
|
157
|
-
//
|
|
158
|
-
// This part will not support true backend pagination but will fetch all and merge.
|
|
626
|
+
// Multi-provider case - fetch filtered data then paginate client-side.
|
|
159
627
|
const mergeData = [];
|
|
628
|
+
// Separate pagination from filtering to pass correct options to providers.
|
|
629
|
+
const { skip, take, ...providerOptions } = options ?? {};
|
|
160
630
|
const promises = filteredProviders.map((provider) =>
|
|
161
|
-
//
|
|
162
|
-
provider
|
|
163
|
-
.getTasks({ range: options?.range })
|
|
164
|
-
.then((result) => result.items.map((t) => ({ ...t, provider: provider.name, ...t.data }))));
|
|
631
|
+
// Pass all filters (e.g., assigneeIds) but ignore pagination for now.
|
|
632
|
+
provider.getTasks(providerOptions).then((result) => result.items.map((t) => ({ ...t, provider: provider.name }))));
|
|
165
633
|
const results = await Promise.all(promises);
|
|
166
634
|
for (const resultArray of results) {
|
|
167
635
|
mergeData.push(...resultArray);
|
|
168
636
|
}
|
|
169
|
-
// Apply pagination client-side
|
|
637
|
+
// Apply pagination client-side after merging the correctly filtered data.
|
|
170
638
|
const total = mergeData.length;
|
|
171
|
-
const
|
|
172
|
-
const
|
|
173
|
-
const items = mergeData.slice(
|
|
639
|
+
const finalSkip = skip ?? 0;
|
|
640
|
+
const finalTake = take ?? total;
|
|
641
|
+
const items = mergeData.slice(finalSkip, finalSkip + finalTake);
|
|
174
642
|
return { items, total };
|
|
175
643
|
}
|
|
176
644
|
async updateTaskDateRange(task, range) {
|
|
177
|
-
|
|
178
|
-
throw new Error('Task provider not found');
|
|
179
|
-
}
|
|
180
|
-
const provider = this.providers?.find((p) => p.name === task.provider);
|
|
645
|
+
const provider = this.getProvider(task.provider);
|
|
181
646
|
if (!provider) {
|
|
182
|
-
throw new Error(
|
|
647
|
+
throw new Error(`Task provider '${task.provider}' not found`);
|
|
183
648
|
}
|
|
184
|
-
// Create a task update object and call the
|
|
649
|
+
// Create a task update object and call the unified method
|
|
185
650
|
const taskWithNewRange = { ...task, startDate: range.from, endDate: range.end };
|
|
186
651
|
const updatedTasks = await provider.updateTasks([taskWithNewRange]);
|
|
187
|
-
// updateTasks returns an array, so we return the first (and only) element
|
|
188
652
|
if (updatedTasks.length > 0) {
|
|
189
653
|
return updatedTasks[0];
|
|
190
654
|
}
|
|
@@ -196,34 +660,27 @@ class AXPTaskBoardService {
|
|
|
196
660
|
if (!tasks || tasks.length === 0) {
|
|
197
661
|
return [];
|
|
198
662
|
}
|
|
199
|
-
if (!tasks[0].provider) {
|
|
200
|
-
throw new Error('Task provider not found');
|
|
201
|
-
}
|
|
202
663
|
// Ensure all tasks are from the same provider before performing a bulk update
|
|
203
|
-
if (tasks.every((t) => t.provider === tasks[0].provider)) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const updatedTasks = await provider.updateTasks(tasks);
|
|
210
|
-
// The provider itself no longer adds the provider name, so we don't need to remap.
|
|
211
|
-
// The returned tasks from the provider should be complete.
|
|
212
|
-
return updatedTasks;
|
|
664
|
+
if (!tasks.every((t) => t.provider === tasks[0].provider)) {
|
|
665
|
+
throw new Error('All tasks must have the same provider for a bulk update.');
|
|
666
|
+
}
|
|
667
|
+
const provider = this.getProvider(tasks[0].provider);
|
|
668
|
+
if (!provider) {
|
|
669
|
+
throw new Error(`Task provider '${tasks[0].provider}' not found`);
|
|
213
670
|
}
|
|
214
|
-
|
|
671
|
+
return provider.updateTasks(tasks);
|
|
215
672
|
}
|
|
216
673
|
executeCommand(command, providerName) {
|
|
217
|
-
const provider = this.
|
|
674
|
+
const provider = this.getProvider(providerName);
|
|
218
675
|
if (!provider) {
|
|
219
|
-
throw new Error(
|
|
676
|
+
throw new Error(`Task provider '${providerName}' not found`);
|
|
220
677
|
}
|
|
221
678
|
provider.executeCommand(command);
|
|
222
679
|
}
|
|
223
680
|
async getStatusName(key, providerName) {
|
|
224
|
-
const provider = this.
|
|
681
|
+
const provider = this.getProvider(providerName);
|
|
225
682
|
if (!provider) {
|
|
226
|
-
throw new Error(
|
|
683
|
+
throw new Error(`Task provider '${providerName}' not found`);
|
|
227
684
|
}
|
|
228
685
|
const statuses = await provider.getStatuses();
|
|
229
686
|
return statuses.find((s) => s.key === key)?.title ?? null;
|
|
@@ -239,10 +696,7 @@ class AXPTaskBoardService {
|
|
|
239
696
|
getProvider(name) {
|
|
240
697
|
if (!name)
|
|
241
698
|
return null;
|
|
242
|
-
|
|
243
|
-
if (provider)
|
|
244
|
-
return provider;
|
|
245
|
-
return null;
|
|
699
|
+
return this.providers?.find((p) => p.name === name) ?? null;
|
|
246
700
|
}
|
|
247
701
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
248
702
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskBoardService, providedIn: 'root' }); }
|
|
@@ -273,7 +727,7 @@ function routesFactory() {
|
|
|
273
727
|
children: [
|
|
274
728
|
{
|
|
275
729
|
path: '**',
|
|
276
|
-
loadComponent: () => import('./acorex-modules-task-management-task-board.page-
|
|
730
|
+
loadComponent: () => import('./acorex-modules-task-management-task-board.page-BBbHu2jz.mjs').then((c) => c.AXMTaskBoardPage),
|
|
277
731
|
},
|
|
278
732
|
],
|
|
279
733
|
},
|
|
@@ -294,6 +748,11 @@ class AXPTaskBoardModule {
|
|
|
294
748
|
multi: true,
|
|
295
749
|
useValue: AXPTaskBoardListener,
|
|
296
750
|
},
|
|
751
|
+
{
|
|
752
|
+
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
|
753
|
+
useClass: AXPTaskTypeDataSourceDefinition,
|
|
754
|
+
multi: true,
|
|
755
|
+
},
|
|
297
756
|
] }); }
|
|
298
757
|
}
|
|
299
758
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskBoardModule, decorators: [{
|
|
@@ -311,6 +770,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
311
770
|
multi: true,
|
|
312
771
|
useValue: AXPTaskBoardListener,
|
|
313
772
|
},
|
|
773
|
+
{
|
|
774
|
+
provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
|
|
775
|
+
useClass: AXPTaskTypeDataSourceDefinition,
|
|
776
|
+
multi: true,
|
|
777
|
+
},
|
|
314
778
|
],
|
|
315
779
|
}]
|
|
316
780
|
}] });
|
|
@@ -419,57 +883,37 @@ async function taskFactory(injector) {
|
|
|
419
883
|
entity: `${RootConfig.module.name}.${RootConfig.entities.taskChecklistItem.name}`,
|
|
420
884
|
title: RootConfig.entities.taskChecklistItem.titlePlural,
|
|
421
885
|
columns: ['title', 'isCompleted', 'completedBy', 'dueDate', 'assignedTo'],
|
|
422
|
-
conditions: [
|
|
423
|
-
|
|
424
|
-
],
|
|
425
|
-
actions: [
|
|
426
|
-
...entityDetailsCrudActions('taskId'),
|
|
427
|
-
],
|
|
886
|
+
conditions: [entityDetailsSimpleCondition('taskId')],
|
|
887
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
428
888
|
},
|
|
429
889
|
{
|
|
430
890
|
entity: `${RootConfig.module.name}.${RootConfig.entities.taskAssignment.name}`,
|
|
431
891
|
title: RootConfig.entities.taskAssignment.titlePlural,
|
|
432
892
|
columns: ['userId', 'role', 'assignedBy', 'assignedAt', 'isActive'],
|
|
433
|
-
conditions: [
|
|
434
|
-
|
|
435
|
-
],
|
|
436
|
-
actions: [
|
|
437
|
-
...entityDetailsCrudActions('taskId'),
|
|
438
|
-
],
|
|
893
|
+
conditions: [entityDetailsSimpleCondition('taskId')],
|
|
894
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
439
895
|
},
|
|
440
896
|
{
|
|
441
897
|
entity: `${RootConfig.module.name}.${RootConfig.entities.timeLog.name}`,
|
|
442
898
|
layoutType: 'page-list',
|
|
443
899
|
title: RootConfig.entities.timeLog.titlePlural,
|
|
444
900
|
columns: ['userId', 'startTime', 'duration', 'description', 'isApproved'],
|
|
445
|
-
conditions: [
|
|
446
|
-
|
|
447
|
-
],
|
|
448
|
-
actions: [
|
|
449
|
-
...entityDetailsCrudActions('taskId'),
|
|
450
|
-
],
|
|
901
|
+
conditions: [entityDetailsSimpleCondition('taskId')],
|
|
902
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
451
903
|
},
|
|
452
904
|
{
|
|
453
905
|
entity: `${RootConfig.module.name}.${RootConfig.entities.taskDependency.name}`,
|
|
454
906
|
title: RootConfig.entities.taskDependency.titlePlural,
|
|
455
907
|
columns: ['dependsOnTaskId', 'dependencyType', 'lagDays', 'isActive'],
|
|
456
|
-
conditions: [
|
|
457
|
-
|
|
458
|
-
],
|
|
459
|
-
actions: [
|
|
460
|
-
...entityDetailsCrudActions('taskId'),
|
|
461
|
-
],
|
|
908
|
+
conditions: [entityDetailsSimpleCondition('taskId')],
|
|
909
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
462
910
|
},
|
|
463
911
|
{
|
|
464
912
|
entity: `${RootConfig.module.name}.${RootConfig.entities.taskContext.name}`,
|
|
465
913
|
title: RootConfig.entities.taskContext.titlePlural,
|
|
466
914
|
columns: ['contextType', 'contextTitle', 'isPrimary'],
|
|
467
|
-
conditions: [
|
|
468
|
-
|
|
469
|
-
],
|
|
470
|
-
actions: [
|
|
471
|
-
...entityDetailsCrudActions('taskId'),
|
|
472
|
-
],
|
|
915
|
+
conditions: [entityDetailsSimpleCondition('taskId')],
|
|
916
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
473
917
|
},
|
|
474
918
|
],
|
|
475
919
|
groups: [
|
|
@@ -1045,7 +1489,7 @@ async function taskFactory(injector) {
|
|
|
1045
1489
|
{ name: 'progress' },
|
|
1046
1490
|
{ name: 'estimatedHours' },
|
|
1047
1491
|
{ name: 'actualHours' },
|
|
1048
|
-
{ name: 'isArchived' }
|
|
1492
|
+
{ name: 'isArchived' },
|
|
1049
1493
|
],
|
|
1050
1494
|
commands: {
|
|
1051
1495
|
create: {
|
|
@@ -1074,7 +1518,7 @@ async function taskFactory(injector) {
|
|
|
1074
1518
|
},
|
|
1075
1519
|
list: {
|
|
1076
1520
|
execute: async (e) => {
|
|
1077
|
-
return await dataService.query(
|
|
1521
|
+
return await dataService.query(e);
|
|
1078
1522
|
},
|
|
1079
1523
|
type: AXPEntityQueryType.List,
|
|
1080
1524
|
},
|
|
@@ -1728,13 +2172,13 @@ async function taskFactory(injector) {
|
|
|
1728
2172
|
],
|
|
1729
2173
|
},
|
|
1730
2174
|
list: {
|
|
1731
|
-
actions: [
|
|
1732
|
-
...entityMasterCrudActions(),
|
|
1733
|
-
entityMasterDeleteAction(),
|
|
1734
|
-
],
|
|
2175
|
+
actions: [...entityMasterCrudActions(), entityMasterDeleteAction()],
|
|
1735
2176
|
views: [
|
|
1736
2177
|
createAllQueryView({
|
|
1737
|
-
sorts: [
|
|
2178
|
+
sorts: [
|
|
2179
|
+
{ name: 'dueDate', dir: 'asc' },
|
|
2180
|
+
{ name: 'priority', dir: 'desc' },
|
|
2181
|
+
],
|
|
1738
2182
|
}),
|
|
1739
2183
|
],
|
|
1740
2184
|
},
|
|
@@ -1944,7 +2388,7 @@ async function taskAssignmentFactory(injector) {
|
|
|
1944
2388
|
{ name: 'role' },
|
|
1945
2389
|
{ name: 'assignedBy', options: { dataPath: 'assignedByUser.displayName' } },
|
|
1946
2390
|
{ name: 'assignedAt' },
|
|
1947
|
-
{ name: 'isActive' }
|
|
2391
|
+
{ name: 'isActive' },
|
|
1948
2392
|
],
|
|
1949
2393
|
//#endregion
|
|
1950
2394
|
//#region ---- Commands ----
|
|
@@ -1977,7 +2421,7 @@ async function taskAssignmentFactory(injector) {
|
|
|
1977
2421
|
},
|
|
1978
2422
|
list: {
|
|
1979
2423
|
execute: async (e) => {
|
|
1980
|
-
return await dataService.query(
|
|
2424
|
+
return await dataService.query(e);
|
|
1981
2425
|
},
|
|
1982
2426
|
type: AXPEntityQueryType.List,
|
|
1983
2427
|
},
|
|
@@ -1987,10 +2431,7 @@ async function taskAssignmentFactory(injector) {
|
|
|
1987
2431
|
interfaces: {
|
|
1988
2432
|
master: {
|
|
1989
2433
|
create: {
|
|
1990
|
-
sections: [
|
|
1991
|
-
{ id: 'basic-info' },
|
|
1992
|
-
{ id: 'settings' },
|
|
1993
|
-
],
|
|
2434
|
+
sections: [{ id: 'basic-info' }, { id: 'settings' }],
|
|
1994
2435
|
properties: [
|
|
1995
2436
|
{
|
|
1996
2437
|
name: 'userId',
|
|
@@ -2035,10 +2476,7 @@ async function taskAssignmentFactory(injector) {
|
|
|
2035
2476
|
],
|
|
2036
2477
|
},
|
|
2037
2478
|
update: {
|
|
2038
|
-
sections: [
|
|
2039
|
-
{ id: 'basic-info' },
|
|
2040
|
-
{ id: 'settings' },
|
|
2041
|
-
],
|
|
2479
|
+
sections: [{ id: 'basic-info' }, { id: 'settings' }],
|
|
2042
2480
|
properties: [
|
|
2043
2481
|
{
|
|
2044
2482
|
name: 'userId',
|
|
@@ -2147,12 +2585,10 @@ async function taskAssignmentFactory(injector) {
|
|
|
2147
2585
|
actions: [],
|
|
2148
2586
|
},
|
|
2149
2587
|
list: {
|
|
2150
|
-
actions: [
|
|
2151
|
-
...entityDetailsCrudActions('taskId'),
|
|
2152
|
-
],
|
|
2588
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
2153
2589
|
views: [
|
|
2154
2590
|
createAllQueryView({
|
|
2155
|
-
sorts: [{ name: 'assignedAt', dir: 'desc' }]
|
|
2591
|
+
sorts: [{ name: 'assignedAt', dir: 'desc' }],
|
|
2156
2592
|
}),
|
|
2157
2593
|
],
|
|
2158
2594
|
},
|
|
@@ -2240,9 +2676,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2240
2676
|
},
|
|
2241
2677
|
},
|
|
2242
2678
|
},
|
|
2243
|
-
validations: [
|
|
2244
|
-
{ rule: 'required' },
|
|
2245
|
-
],
|
|
2679
|
+
validations: [{ rule: 'required' }],
|
|
2246
2680
|
},
|
|
2247
2681
|
{
|
|
2248
2682
|
name: 'title',
|
|
@@ -2264,9 +2698,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2264
2698
|
},
|
|
2265
2699
|
},
|
|
2266
2700
|
},
|
|
2267
|
-
validations: [
|
|
2268
|
-
{ rule: 'required' },
|
|
2269
|
-
],
|
|
2701
|
+
validations: [{ rule: 'required' }],
|
|
2270
2702
|
},
|
|
2271
2703
|
{
|
|
2272
2704
|
name: 'description',
|
|
@@ -2310,9 +2742,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2310
2742
|
},
|
|
2311
2743
|
},
|
|
2312
2744
|
},
|
|
2313
|
-
validations: [
|
|
2314
|
-
{ rule: 'required' },
|
|
2315
|
-
],
|
|
2745
|
+
validations: [{ rule: 'required' }],
|
|
2316
2746
|
},
|
|
2317
2747
|
// Assignment
|
|
2318
2748
|
{
|
|
@@ -2435,7 +2865,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2435
2865
|
{ name: 'completedBy', options: { dataPath: 'completedByUser.displayName' } },
|
|
2436
2866
|
{ name: 'dueDate' },
|
|
2437
2867
|
{ name: 'assignedTo', options: { dataPath: 'assignedUser.displayName' } },
|
|
2438
|
-
{ name: 'order' }
|
|
2868
|
+
{ name: 'order' },
|
|
2439
2869
|
],
|
|
2440
2870
|
//#endregion
|
|
2441
2871
|
//#region ---- Commands ----
|
|
@@ -2468,7 +2898,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2468
2898
|
},
|
|
2469
2899
|
list: {
|
|
2470
2900
|
execute: async (e) => {
|
|
2471
|
-
return await dataService.query(
|
|
2901
|
+
return await dataService.query(e);
|
|
2472
2902
|
},
|
|
2473
2903
|
type: AXPEntityQueryType.List,
|
|
2474
2904
|
},
|
|
@@ -2478,10 +2908,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2478
2908
|
interfaces: {
|
|
2479
2909
|
master: {
|
|
2480
2910
|
create: {
|
|
2481
|
-
sections: [
|
|
2482
|
-
{ id: 'basic-info' },
|
|
2483
|
-
{ id: 'assignment' },
|
|
2484
|
-
],
|
|
2911
|
+
sections: [{ id: 'basic-info' }, { id: 'assignment' }],
|
|
2485
2912
|
properties: [
|
|
2486
2913
|
{
|
|
2487
2914
|
name: 'title',
|
|
@@ -2526,11 +2953,7 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2526
2953
|
],
|
|
2527
2954
|
},
|
|
2528
2955
|
update: {
|
|
2529
|
-
sections: [
|
|
2530
|
-
{ id: 'basic-info' },
|
|
2531
|
-
{ id: 'assignment' },
|
|
2532
|
-
{ id: 'status' },
|
|
2533
|
-
],
|
|
2956
|
+
sections: [{ id: 'basic-info' }, { id: 'assignment' }, { id: 'status' }],
|
|
2534
2957
|
properties: [
|
|
2535
2958
|
{
|
|
2536
2959
|
name: 'title',
|
|
@@ -2695,12 +3118,13 @@ async function taskChecklistItemFactory(injector) {
|
|
|
2695
3118
|
actions: [],
|
|
2696
3119
|
},
|
|
2697
3120
|
list: {
|
|
2698
|
-
actions: [
|
|
2699
|
-
...entityDetailsCrudActions('taskId'),
|
|
2700
|
-
],
|
|
3121
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
2701
3122
|
views: [
|
|
2702
3123
|
createAllQueryView({
|
|
2703
|
-
sorts: [
|
|
3124
|
+
sorts: [
|
|
3125
|
+
{ name: 'order', dir: 'asc' },
|
|
3126
|
+
{ name: 'title', dir: 'asc' },
|
|
3127
|
+
],
|
|
2704
3128
|
}),
|
|
2705
3129
|
],
|
|
2706
3130
|
},
|
|
@@ -2871,12 +3295,7 @@ async function taskContextFactory(injector) {
|
|
|
2871
3295
|
},
|
|
2872
3296
|
},
|
|
2873
3297
|
],
|
|
2874
|
-
columns: [
|
|
2875
|
-
{ name: 'contextType' },
|
|
2876
|
-
{ name: 'contextTitle' },
|
|
2877
|
-
{ name: 'contextId' },
|
|
2878
|
-
{ name: 'isPrimary' }
|
|
2879
|
-
],
|
|
3298
|
+
columns: [{ name: 'contextType' }, { name: 'contextTitle' }, { name: 'contextId' }, { name: 'isPrimary' }],
|
|
2880
3299
|
commands: {
|
|
2881
3300
|
create: {
|
|
2882
3301
|
execute: async (data) => {
|
|
@@ -2904,7 +3323,7 @@ async function taskContextFactory(injector) {
|
|
|
2904
3323
|
},
|
|
2905
3324
|
list: {
|
|
2906
3325
|
execute: async (e) => {
|
|
2907
|
-
return await dataService.query(
|
|
3326
|
+
return await dataService.query(e);
|
|
2908
3327
|
},
|
|
2909
3328
|
type: AXPEntityQueryType.List,
|
|
2910
3329
|
},
|
|
@@ -2912,10 +3331,7 @@ async function taskContextFactory(injector) {
|
|
|
2912
3331
|
interfaces: {
|
|
2913
3332
|
master: {
|
|
2914
3333
|
create: {
|
|
2915
|
-
sections: [
|
|
2916
|
-
{ id: 'basic-info' },
|
|
2917
|
-
{ id: 'settings' },
|
|
2918
|
-
],
|
|
3334
|
+
sections: [{ id: 'basic-info' }, { id: 'settings' }],
|
|
2919
3335
|
properties: [
|
|
2920
3336
|
{
|
|
2921
3337
|
name: 'contextType',
|
|
@@ -2952,10 +3368,7 @@ async function taskContextFactory(injector) {
|
|
|
2952
3368
|
],
|
|
2953
3369
|
},
|
|
2954
3370
|
update: {
|
|
2955
|
-
sections: [
|
|
2956
|
-
{ id: 'basic-info' },
|
|
2957
|
-
{ id: 'settings' },
|
|
2958
|
-
],
|
|
3371
|
+
sections: [{ id: 'basic-info' }, { id: 'settings' }],
|
|
2959
3372
|
properties: [
|
|
2960
3373
|
{
|
|
2961
3374
|
name: 'contextType',
|
|
@@ -3048,12 +3461,13 @@ async function taskContextFactory(injector) {
|
|
|
3048
3461
|
actions: [],
|
|
3049
3462
|
},
|
|
3050
3463
|
list: {
|
|
3051
|
-
actions: [
|
|
3052
|
-
...entityDetailsCrudActions('taskId'),
|
|
3053
|
-
],
|
|
3464
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
3054
3465
|
views: [
|
|
3055
3466
|
createAllQueryView({
|
|
3056
|
-
sorts: [
|
|
3467
|
+
sorts: [
|
|
3468
|
+
{ name: 'contextType', dir: 'asc' },
|
|
3469
|
+
{ name: 'contextTitle', dir: 'asc' },
|
|
3470
|
+
],
|
|
3057
3471
|
}),
|
|
3058
3472
|
],
|
|
3059
3473
|
},
|
|
@@ -3235,7 +3649,7 @@ async function taskDependencyFactory(injector) {
|
|
|
3235
3649
|
{ name: 'dependsOnTaskId', options: { dataPath: 'dependsOnTask.title' } },
|
|
3236
3650
|
{ name: 'dependencyType' },
|
|
3237
3651
|
{ name: 'lagDays' },
|
|
3238
|
-
{ name: 'isActive' }
|
|
3652
|
+
{ name: 'isActive' },
|
|
3239
3653
|
],
|
|
3240
3654
|
commands: {
|
|
3241
3655
|
create: {
|
|
@@ -3264,7 +3678,7 @@ async function taskDependencyFactory(injector) {
|
|
|
3264
3678
|
},
|
|
3265
3679
|
list: {
|
|
3266
3680
|
execute: async (e) => {
|
|
3267
|
-
return await dataService.query(
|
|
3681
|
+
return await dataService.query(e);
|
|
3268
3682
|
},
|
|
3269
3683
|
type: AXPEntityQueryType.List,
|
|
3270
3684
|
},
|
|
@@ -3272,10 +3686,7 @@ async function taskDependencyFactory(injector) {
|
|
|
3272
3686
|
interfaces: {
|
|
3273
3687
|
master: {
|
|
3274
3688
|
create: {
|
|
3275
|
-
sections: [
|
|
3276
|
-
{ id: 'basic-info' },
|
|
3277
|
-
{ id: 'settings' },
|
|
3278
|
-
],
|
|
3689
|
+
sections: [{ id: 'basic-info' }, { id: 'settings' }],
|
|
3279
3690
|
properties: [
|
|
3280
3691
|
{
|
|
3281
3692
|
name: 'dependsOnTaskId',
|
|
@@ -3312,10 +3723,7 @@ async function taskDependencyFactory(injector) {
|
|
|
3312
3723
|
],
|
|
3313
3724
|
},
|
|
3314
3725
|
update: {
|
|
3315
|
-
sections: [
|
|
3316
|
-
{ id: 'basic-info' },
|
|
3317
|
-
{ id: 'settings' },
|
|
3318
|
-
],
|
|
3726
|
+
sections: [{ id: 'basic-info' }, { id: 'settings' }],
|
|
3319
3727
|
properties: [
|
|
3320
3728
|
{
|
|
3321
3729
|
name: 'dependsOnTaskId',
|
|
@@ -3408,12 +3816,10 @@ async function taskDependencyFactory(injector) {
|
|
|
3408
3816
|
actions: [],
|
|
3409
3817
|
},
|
|
3410
3818
|
list: {
|
|
3411
|
-
actions: [
|
|
3412
|
-
...entityDetailsCrudActions('taskId'),
|
|
3413
|
-
],
|
|
3819
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
3414
3820
|
views: [
|
|
3415
3821
|
createAllQueryView({
|
|
3416
|
-
sorts: [{ name: 'dependencyType', dir: 'asc' }]
|
|
3822
|
+
sorts: [{ name: 'dependencyType', dir: 'asc' }],
|
|
3417
3823
|
}),
|
|
3418
3824
|
],
|
|
3419
3825
|
},
|
|
@@ -3791,7 +4197,7 @@ async function taskStatusFactory(injector) {
|
|
|
3791
4197
|
{ name: 'order' },
|
|
3792
4198
|
{ name: 'isDefault' },
|
|
3793
4199
|
{ name: 'isFinal' },
|
|
3794
|
-
{ name: 'isActive' }
|
|
4200
|
+
{ name: 'isActive' },
|
|
3795
4201
|
],
|
|
3796
4202
|
commands: {
|
|
3797
4203
|
create: {
|
|
@@ -3820,7 +4226,7 @@ async function taskStatusFactory(injector) {
|
|
|
3820
4226
|
},
|
|
3821
4227
|
list: {
|
|
3822
4228
|
execute: async (e) => {
|
|
3823
|
-
return await dataService.query(
|
|
4229
|
+
return await dataService.query(e);
|
|
3824
4230
|
},
|
|
3825
4231
|
type: AXPEntityQueryType.List,
|
|
3826
4232
|
},
|
|
@@ -4266,7 +4672,10 @@ async function taskStatusFactory(injector) {
|
|
|
4266
4672
|
],
|
|
4267
4673
|
views: [
|
|
4268
4674
|
createAllQueryView({
|
|
4269
|
-
sorts: [
|
|
4675
|
+
sorts: [
|
|
4676
|
+
{ name: 'order', dir: 'asc' },
|
|
4677
|
+
{ name: 'title', dir: 'asc' },
|
|
4678
|
+
],
|
|
4270
4679
|
}),
|
|
4271
4680
|
],
|
|
4272
4681
|
},
|
|
@@ -4461,7 +4870,7 @@ async function taskTemplateFactory(injector) {
|
|
|
4461
4870
|
{ name: 'title' },
|
|
4462
4871
|
{ name: 'name' },
|
|
4463
4872
|
{ name: 'taskTypeId', options: { dataPath: 'taskType.title' } },
|
|
4464
|
-
{ name: 'isPublic' }
|
|
4873
|
+
{ name: 'isPublic' },
|
|
4465
4874
|
],
|
|
4466
4875
|
commands: {
|
|
4467
4876
|
create: {
|
|
@@ -4490,7 +4899,7 @@ async function taskTemplateFactory(injector) {
|
|
|
4490
4899
|
},
|
|
4491
4900
|
list: {
|
|
4492
4901
|
execute: async (e) => {
|
|
4493
|
-
return await dataService.query(
|
|
4902
|
+
return await dataService.query(e);
|
|
4494
4903
|
},
|
|
4495
4904
|
type: AXPEntityQueryType.List,
|
|
4496
4905
|
},
|
|
@@ -4498,11 +4907,7 @@ async function taskTemplateFactory(injector) {
|
|
|
4498
4907
|
interfaces: {
|
|
4499
4908
|
master: {
|
|
4500
4909
|
create: {
|
|
4501
|
-
sections: [
|
|
4502
|
-
{ id: 'basic-info' },
|
|
4503
|
-
{ id: 'task-data' },
|
|
4504
|
-
{ id: 'settings' },
|
|
4505
|
-
],
|
|
4910
|
+
sections: [{ id: 'basic-info' }, { id: 'task-data' }, { id: 'settings' }],
|
|
4506
4911
|
properties: [
|
|
4507
4912
|
{
|
|
4508
4913
|
name: 'title',
|
|
@@ -4555,11 +4960,7 @@ async function taskTemplateFactory(injector) {
|
|
|
4555
4960
|
],
|
|
4556
4961
|
},
|
|
4557
4962
|
update: {
|
|
4558
|
-
sections: [
|
|
4559
|
-
{ id: 'basic-info' },
|
|
4560
|
-
{ id: 'task-data' },
|
|
4561
|
-
{ id: 'settings' },
|
|
4562
|
-
],
|
|
4963
|
+
sections: [{ id: 'basic-info' }, { id: 'task-data' }, { id: 'settings' }],
|
|
4563
4964
|
properties: [
|
|
4564
4965
|
{
|
|
4565
4966
|
name: 'title',
|
|
@@ -4689,18 +5090,13 @@ async function taskTemplateFactory(injector) {
|
|
|
4689
5090
|
},
|
|
4690
5091
|
},
|
|
4691
5092
|
],
|
|
4692
|
-
actions: [
|
|
4693
|
-
entityMasterDeleteAction(),
|
|
4694
|
-
],
|
|
5093
|
+
actions: [entityMasterDeleteAction()],
|
|
4695
5094
|
},
|
|
4696
5095
|
list: {
|
|
4697
|
-
actions: [
|
|
4698
|
-
...entityMasterCrudActions(),
|
|
4699
|
-
entityMasterDeleteAction(),
|
|
4700
|
-
],
|
|
5096
|
+
actions: [...entityMasterCrudActions(), entityMasterDeleteAction()],
|
|
4701
5097
|
views: [
|
|
4702
5098
|
createAllQueryView({
|
|
4703
|
-
sorts: [{ name: 'title', dir: 'asc' }]
|
|
5099
|
+
sorts: [{ name: 'title', dir: 'asc' }],
|
|
4704
5100
|
}),
|
|
4705
5101
|
],
|
|
4706
5102
|
},
|
|
@@ -4750,17 +5146,13 @@ async function taskTypeFactory(injector) {
|
|
|
4750
5146
|
entity: `${RootConfig.module.name}.${RootConfig.entities.taskStatus.name}`,
|
|
4751
5147
|
title: RootConfig.entities.taskStatus.titlePlural,
|
|
4752
5148
|
columns: ['name', 'title', 'color', 'isDefault', 'isFinal', 'order'],
|
|
4753
|
-
conditions: [
|
|
4754
|
-
entityDetailsSimpleCondition('taskTypeId')
|
|
4755
|
-
],
|
|
5149
|
+
conditions: [entityDetailsSimpleCondition('taskTypeId')],
|
|
4756
5150
|
},
|
|
4757
5151
|
{
|
|
4758
5152
|
entity: `${RootConfig.module.name}.${RootConfig.entities.task.name}`,
|
|
4759
5153
|
title: RootConfig.entities.task.titlePlural,
|
|
4760
5154
|
columns: ['title', 'statusId', 'priority', 'dueDate', 'progress'],
|
|
4761
|
-
conditions: [
|
|
4762
|
-
entityDetailsSimpleCondition('taskTypeId')
|
|
4763
|
-
],
|
|
5155
|
+
conditions: [entityDetailsSimpleCondition('taskTypeId')],
|
|
4764
5156
|
},
|
|
4765
5157
|
],
|
|
4766
5158
|
//#endregion
|
|
@@ -4807,9 +5199,7 @@ async function taskTypeFactory(injector) {
|
|
|
4807
5199
|
},
|
|
4808
5200
|
},
|
|
4809
5201
|
},
|
|
4810
|
-
validations: [
|
|
4811
|
-
{ rule: 'required' },
|
|
4812
|
-
],
|
|
5202
|
+
validations: [{ rule: 'required' }],
|
|
4813
5203
|
},
|
|
4814
5204
|
{
|
|
4815
5205
|
name: 'name',
|
|
@@ -4831,9 +5221,7 @@ async function taskTypeFactory(injector) {
|
|
|
4831
5221
|
},
|
|
4832
5222
|
},
|
|
4833
5223
|
},
|
|
4834
|
-
validations: [
|
|
4835
|
-
{ rule: 'required' },
|
|
4836
|
-
],
|
|
5224
|
+
validations: [{ rule: 'required' }],
|
|
4837
5225
|
},
|
|
4838
5226
|
{
|
|
4839
5227
|
name: 'description',
|
|
@@ -5095,7 +5483,7 @@ async function taskTypeFactory(injector) {
|
|
|
5095
5483
|
{ name: 'isActive' },
|
|
5096
5484
|
{ name: 'hasChecklist' },
|
|
5097
5485
|
{ name: 'hasTimeTracking' },
|
|
5098
|
-
{ name: 'hasAttachments' }
|
|
5486
|
+
{ name: 'hasAttachments' },
|
|
5099
5487
|
],
|
|
5100
5488
|
//#endregion
|
|
5101
5489
|
//#region ---- Commands ----
|
|
@@ -5128,7 +5516,7 @@ async function taskTypeFactory(injector) {
|
|
|
5128
5516
|
},
|
|
5129
5517
|
list: {
|
|
5130
5518
|
execute: async (e) => {
|
|
5131
|
-
return await dataService.query(
|
|
5519
|
+
return await dataService.query(e);
|
|
5132
5520
|
},
|
|
5133
5521
|
type: AXPEntityQueryType.List,
|
|
5134
5522
|
},
|
|
@@ -5138,12 +5526,7 @@ async function taskTypeFactory(injector) {
|
|
|
5138
5526
|
interfaces: {
|
|
5139
5527
|
master: {
|
|
5140
5528
|
create: {
|
|
5141
|
-
sections: [
|
|
5142
|
-
{ id: 'basic-info' },
|
|
5143
|
-
{ id: 'configuration' },
|
|
5144
|
-
{ id: 'features' },
|
|
5145
|
-
{ id: 'settings' },
|
|
5146
|
-
],
|
|
5529
|
+
sections: [{ id: 'basic-info' }, { id: 'configuration' }, { id: 'features' }, { id: 'settings' }],
|
|
5147
5530
|
properties: [
|
|
5148
5531
|
{
|
|
5149
5532
|
name: 'title',
|
|
@@ -5252,12 +5635,7 @@ async function taskTypeFactory(injector) {
|
|
|
5252
5635
|
],
|
|
5253
5636
|
},
|
|
5254
5637
|
update: {
|
|
5255
|
-
sections: [
|
|
5256
|
-
{ id: 'basic-info' },
|
|
5257
|
-
{ id: 'configuration' },
|
|
5258
|
-
{ id: 'features' },
|
|
5259
|
-
{ id: 'settings' },
|
|
5260
|
-
],
|
|
5638
|
+
sections: [{ id: 'basic-info' }, { id: 'configuration' }, { id: 'features' }, { id: 'settings' }],
|
|
5261
5639
|
properties: [
|
|
5262
5640
|
{
|
|
5263
5641
|
name: 'title',
|
|
@@ -5507,18 +5885,13 @@ async function taskTypeFactory(injector) {
|
|
|
5507
5885
|
},
|
|
5508
5886
|
},
|
|
5509
5887
|
],
|
|
5510
|
-
actions: [
|
|
5511
|
-
entityMasterDeleteAction(),
|
|
5512
|
-
],
|
|
5888
|
+
actions: [entityMasterDeleteAction()],
|
|
5513
5889
|
},
|
|
5514
5890
|
list: {
|
|
5515
|
-
actions: [
|
|
5516
|
-
...entityMasterCrudActions(),
|
|
5517
|
-
entityMasterDeleteAction(),
|
|
5518
|
-
],
|
|
5891
|
+
actions: [...entityMasterCrudActions(), entityMasterDeleteAction()],
|
|
5519
5892
|
views: [
|
|
5520
5893
|
createAllQueryView({
|
|
5521
|
-
sorts: [{ name: 'title', dir: 'asc' }]
|
|
5894
|
+
sorts: [{ name: 'title', dir: 'asc' }],
|
|
5522
5895
|
}),
|
|
5523
5896
|
],
|
|
5524
5897
|
},
|
|
@@ -5742,7 +6115,7 @@ async function timeLogFactory(injector) {
|
|
|
5742
6115
|
{ name: 'startTime' },
|
|
5743
6116
|
{ name: 'duration' },
|
|
5744
6117
|
{ name: 'description' },
|
|
5745
|
-
{ name: 'isApproved' }
|
|
6118
|
+
{ name: 'isApproved' },
|
|
5746
6119
|
],
|
|
5747
6120
|
commands: {
|
|
5748
6121
|
create: {
|
|
@@ -5771,7 +6144,7 @@ async function timeLogFactory(injector) {
|
|
|
5771
6144
|
},
|
|
5772
6145
|
list: {
|
|
5773
6146
|
execute: async (e) => {
|
|
5774
|
-
return await dataService.query(
|
|
6147
|
+
return await dataService.query(e);
|
|
5775
6148
|
},
|
|
5776
6149
|
type: AXPEntityQueryType.List,
|
|
5777
6150
|
},
|
|
@@ -5779,10 +6152,7 @@ async function timeLogFactory(injector) {
|
|
|
5779
6152
|
interfaces: {
|
|
5780
6153
|
master: {
|
|
5781
6154
|
create: {
|
|
5782
|
-
sections: [
|
|
5783
|
-
{ id: 'basic-info' },
|
|
5784
|
-
{ id: 'time-details' },
|
|
5785
|
-
],
|
|
6155
|
+
sections: [{ id: 'basic-info' }, { id: 'time-details' }],
|
|
5786
6156
|
properties: [
|
|
5787
6157
|
{
|
|
5788
6158
|
name: 'userId',
|
|
@@ -5827,11 +6197,7 @@ async function timeLogFactory(injector) {
|
|
|
5827
6197
|
],
|
|
5828
6198
|
},
|
|
5829
6199
|
update: {
|
|
5830
|
-
sections: [
|
|
5831
|
-
{ id: 'basic-info' },
|
|
5832
|
-
{ id: 'time-details' },
|
|
5833
|
-
{ id: 'approval' },
|
|
5834
|
-
],
|
|
6200
|
+
sections: [{ id: 'basic-info' }, { id: 'time-details' }, { id: 'approval' }],
|
|
5835
6201
|
properties: [
|
|
5836
6202
|
{
|
|
5837
6203
|
name: 'userId',
|
|
@@ -5964,12 +6330,10 @@ async function timeLogFactory(injector) {
|
|
|
5964
6330
|
actions: [],
|
|
5965
6331
|
},
|
|
5966
6332
|
list: {
|
|
5967
|
-
actions: [
|
|
5968
|
-
...entityDetailsCrudActions('taskId'),
|
|
5969
|
-
],
|
|
6333
|
+
actions: [...entityDetailsCrudActions('taskId')],
|
|
5970
6334
|
views: [
|
|
5971
6335
|
createAllQueryView({
|
|
5972
|
-
sorts: [{ name: 'startTime', dir: 'desc' }]
|
|
6336
|
+
sorts: [{ name: 'startTime', dir: 'desc' }],
|
|
5973
6337
|
}),
|
|
5974
6338
|
],
|
|
5975
6339
|
},
|
|
@@ -5986,7 +6350,9 @@ var timeLog_entity = /*#__PURE__*/Object.freeze({
|
|
|
5986
6350
|
|
|
5987
6351
|
class AXMTaskManagementModule {
|
|
5988
6352
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMTaskManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5989
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMTaskManagementModule, imports: [CommonModule,
|
|
6353
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMTaskManagementModule, imports: [CommonModule,
|
|
6354
|
+
AXPTaskBoardModule,
|
|
6355
|
+
AXMCalendarManagementModule, i1$1.AXPLayoutBuilderModule] }); }
|
|
5990
6356
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMTaskManagementModule, providers: [
|
|
5991
6357
|
// Entity Provider
|
|
5992
6358
|
{
|
|
@@ -6063,12 +6429,24 @@ class AXMTaskManagementModule {
|
|
|
6063
6429
|
provide: AXMTaskTemplateService,
|
|
6064
6430
|
useClass: AXMTaskTemplateServiceImpl,
|
|
6065
6431
|
},
|
|
6066
|
-
], imports: [CommonModule,
|
|
6432
|
+
], imports: [CommonModule,
|
|
6433
|
+
AXPTaskBoardModule,
|
|
6434
|
+
AXMCalendarManagementModule,
|
|
6435
|
+
AXPLayoutBuilderModule.forChild({
|
|
6436
|
+
widgets: [AXPTaskBoardWidget],
|
|
6437
|
+
})] }); }
|
|
6067
6438
|
}
|
|
6068
6439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMTaskManagementModule, decorators: [{
|
|
6069
6440
|
type: NgModule,
|
|
6070
6441
|
args: [{
|
|
6071
|
-
imports: [
|
|
6442
|
+
imports: [
|
|
6443
|
+
CommonModule,
|
|
6444
|
+
AXPTaskBoardModule,
|
|
6445
|
+
AXMCalendarManagementModule,
|
|
6446
|
+
AXPLayoutBuilderModule.forChild({
|
|
6447
|
+
widgets: [AXPTaskBoardWidget],
|
|
6448
|
+
}),
|
|
6449
|
+
],
|
|
6072
6450
|
providers: [
|
|
6073
6451
|
// Entity Provider
|
|
6074
6452
|
{
|
|
@@ -6181,5 +6559,5 @@ class AXMSettingProvider {
|
|
|
6181
6559
|
* Generated bundle index. Do not edit.
|
|
6182
6560
|
*/
|
|
6183
6561
|
|
|
6184
|
-
export { AXMSearchCommandProvider, AXMSettingProvider, AXMTaskAssignmentService, AXMTaskAssignmentServiceImpl, AXMTaskChecklistItemService, AXMTaskChecklistItemServiceImpl, AXMTaskContextService, AXMTaskContextServiceImpl, AXMTaskDependencyService, AXMTaskDependencyServiceImpl, AXMTaskManagementEntityProvider, AXMTaskManagementMenuProvider, AXMTaskManagementModule, AXMTaskService, AXMTaskServiceImpl, AXMTaskStatusService, AXMTaskStatusServiceImpl, AXMTaskTemplateService, AXMTaskTemplateServiceImpl, AXMTaskTypeService, AXMTaskTypeServiceImpl, AXMTimeLogService, AXMTimeLogServiceImpl, AXPTaskBoardModule, AXPTaskBoardService, RootConfig, taskAssignmentFactory, taskChecklistItemFactory, taskContextFactory, taskDependencyFactory, taskFactory, taskStatusFactory, taskTemplateFactory, taskTypeFactory, timeLogFactory };
|
|
6562
|
+
export { AXMSearchCommandProvider, AXMSettingProvider, AXMTaskAssignmentService, AXMTaskAssignmentServiceImpl, AXMTaskChecklistItemService, AXMTaskChecklistItemServiceImpl, AXMTaskContextService, AXMTaskContextServiceImpl, AXMTaskDependencyService, AXMTaskDependencyServiceImpl, AXMTaskManagementEntityProvider, AXMTaskManagementMenuProvider, AXMTaskManagementModule, AXMTaskService, AXMTaskServiceImpl, AXMTaskStatusService, AXMTaskStatusServiceImpl, AXMTaskTemplateService, AXMTaskTemplateServiceImpl, AXMTaskTypeService, AXMTaskTypeServiceImpl, AXMTimeLogService, AXMTimeLogServiceImpl, AXPTaskBoardModule, AXPTaskBoardService, AXPTaskBoardWidget, AXPTaskBoardWidgetViewComponent, AXPTaskTypeDataSourceDefinition, RootConfig, taskAssignmentFactory, taskChecklistItemFactory, taskContextFactory, taskDependencyFactory, taskFactory, taskStatusFactory, taskTemplateFactory, taskTypeFactory, timeLogFactory };
|
|
6185
6563
|
//# sourceMappingURL=acorex-modules-task-management.mjs.map
|