@acorex/modules 20.2.3 → 20.2.4-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/index.d.ts +16 -8
- package/document-management/index.d.ts +27 -24
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BBGqLgJC.mjs → acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs} +10 -10
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BBGqLgJC.mjs.map → acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-B7Nv62Jj.mjs → acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-B7Nv62Jj.mjs.map → acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-DmEDBKqL.mjs → acorex-modules-auth-login.module-DGPRxnXo.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-DmEDBKqL.mjs.map → acorex-modules-auth-login.module-DGPRxnXo.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-B8L2FPDN.mjs → acorex-modules-auth-master.layout-BNFGuQQs.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-B8L2FPDN.mjs.map → acorex-modules-auth-master.layout-BNFGuQQs.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-BRJu8jom.mjs → acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-BRJu8jom.mjs.map → acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-Bh0uhx6-.mjs → acorex-modules-auth-password.component-Dyox9sR4.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-Bh0uhx6-.mjs.map → acorex-modules-auth-password.component-Dyox9sR4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-FNLwhWMe.mjs → acorex-modules-auth-password.component-ln2kDKPR.mjs} +3 -3
- package/fesm2022/acorex-modules-auth-password.component-ln2kDKPR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-xqc264U-.mjs → acorex-modules-auth-routes-7vr8T08D.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-xqc264U-.mjs.map → acorex-modules-auth-routes-7vr8T08D.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-C8jrenEW.mjs → acorex-modules-auth-two-factor.module-D6XCUP_A.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-C8jrenEW.mjs.map → acorex-modules-auth-two-factor.module-D6XCUP_A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Cu1SCNnF.mjs → acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Cu1SCNnF.mjs.map → acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common.mjs +503 -235
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +57 -445
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +119 -4
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +9 -9
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BvIGh15O.mjs → acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs} +862 -145
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-ClgS3Q8D.mjs → acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-ClgS3Q8D.mjs.map → acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BWMANjYL.mjs → acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BWMANjYL.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-BmJB8bb8.mjs → acorex-modules-document-management-details-view.component-BKNvUhdl.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-BmJB8bb8.mjs.map → acorex-modules-document-management-details-view.component-BKNvUhdl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs +116 -0
- package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DoUkm43Y.mjs → acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DoUkm43Y.mjs.map → acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive.component-R1V4W9u3.mjs → acorex-modules-document-management-drive.component-DutBXTtm.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive.component-R1V4W9u3.mjs.map → acorex-modules-document-management-drive.component-DutBXTtm.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C-9UNa_X.mjs → acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C-9UNa_X.mjs.map → acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DL3PEFfv.mjs → acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DL3PEFfv.mjs.map → acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-BGUDmglV.mjs → acorex-modules-document-management-list-view.component-DdLTVccZ.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-BGUDmglV.mjs.map → acorex-modules-document-management-list-view.component-DdLTVccZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs → acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Cbwf5Ved.mjs → acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Cbwf5Ved.mjs.map → acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DXiQj-Hb.mjs → acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DXiQj-Hb.mjs.map → acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-C8RZC3TM.mjs → acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-C8RZC3TM.mjs.map → acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B70rSvao.mjs → acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B70rSvao.mjs.map → acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.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-CeQnu6WW.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs} +34 -12
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs → acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs.map → acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs → acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs.map → acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs → acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs.map → acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs → acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs} +2 -3
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs → acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs → acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs} +10 -14
- package/fesm2022/acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs → acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs.map → acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-8iEAzfh5.mjs → acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs} +2 -8
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BiJX9lxr.mjs → acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs} +2 -2
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BiJX9lxr.mjs.map → acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs.map} +1 -1
- package/fesm2022/acorex-modules-help-desk.mjs +1 -1
- package/fesm2022/acorex-modules-identifier-management.mjs +81 -39
- package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +4 -3
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +0 -1
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs +121 -0
- package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs.map +1 -0
- package/fesm2022/acorex-modules-meeting-management.mjs +2899 -0
- package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs +544 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management.mjs +145 -126
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs → acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs} +114 -68
- package/fesm2022/acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +22 -1
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs → acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs} +6 -6
- package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs.map → acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs → acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs} +2 -2
- package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs.map → acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs → acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs} +12 -10
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs → acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs} +2 -2
- package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs.map → acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-party-management-party-role.entity-C5BeakjX.mjs → acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs} +7 -7
- package/fesm2022/acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party.entity-Blwg8o3o.mjs → acorex-modules-party-management-party.entity-DAvqOPic.mjs} +4 -4
- package/fesm2022/acorex-modules-party-management-party.entity-DAvqOPic.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management.mjs +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +98 -97
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs → acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs} +2 -2
- package/fesm2022/acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +5 -5
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs → acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs} +11 -1
- package/fesm2022/acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs.map +1 -0
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/{acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs → acorex-modules-task-management-task-board.page-DbpqZaC7.mjs} +16 -11
- package/fesm2022/acorex-modules-task-management-task-board.page-DbpqZaC7.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +3026 -2821
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +39 -1
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/form-template-management/index.d.ts +3 -0
- package/identifier-management/index.d.ts +15 -16
- package/meeting-management/README.md +29 -0
- package/meeting-management/index.d.ts +248 -0
- package/notification-management/index.d.ts +6 -4
- package/package.json +9 -5
- package/task-management/index.d.ts +34 -2
- package/workflow-management/index.d.ts +4 -33
- package/fesm2022/acorex-modules-auth-password.component-FNLwhWMe.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BvIGh15O.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs.map +0 -1
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-8iEAzfh5.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-role.entity-C5BeakjX.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs +0 -244
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs.map +0 -1
|
@@ -4,29 +4,30 @@ import * as i2$3 from '@acorex/platform/layout/builder';
|
|
|
4
4
|
import { AXPWidgetsCatalog, AXPValueWidgetComponent, cloneProperty, AXPWidgetGroupEnum, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
5
5
|
import { AXMEntityCrudServiceImpl, AXPEntityService, AXP_ENTITY_DEFINITION_LOADER, AXPEntityStorageService, AXPEntityDataProviderImpl } from '@acorex/platform/layout/entity';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { Injectable, NgModule, inject, signal, computed, effect, InjectionToken, viewChild, ViewContainerRef, input, output, afterNextRender, inputBinding, outputBinding, ChangeDetectionStrategy, Component,
|
|
8
|
-
import { AXPSessionService } from '@acorex/platform/auth';
|
|
7
|
+
import { Injectable, NgModule, inject, signal, computed, effect, Injector, InjectionToken, viewChild, ViewContainerRef, input, output, afterNextRender, inputBinding, outputBinding, ChangeDetectionStrategy, Component, ChangeDetectorRef } from '@angular/core';
|
|
8
|
+
import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
|
|
9
9
|
import { firstValueFrom } from 'rxjs';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i1$1 from '@acorex/platform/layout/components';
|
|
11
|
+
import { AXPUserAvatarComponent, AXPComponentSlotModule, AXP_TASK_BADGE_PROVIDERS } from '@acorex/platform/layout/components';
|
|
12
|
+
import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
|
|
13
|
+
import { Router, ROUTES } from '@angular/router';
|
|
14
|
+
import * as i3 from '@acorex/components/badge';
|
|
11
15
|
import { AXBadgeModule } from '@acorex/components/badge';
|
|
12
|
-
import * as
|
|
16
|
+
import * as i5 from '@acorex/components/button';
|
|
13
17
|
import { AXButtonModule } from '@acorex/components/button';
|
|
14
|
-
import * as i2 from '@acorex/components/decorators';
|
|
18
|
+
import * as i2$2 from '@acorex/components/decorators';
|
|
15
19
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
16
20
|
import * as i4 from '@acorex/components/popover';
|
|
17
21
|
import { AXPopoverModule, AXPopoverComponent } from '@acorex/components/popover';
|
|
18
|
-
import * as i2$
|
|
22
|
+
import * as i2$1 from '@acorex/components/tabs';
|
|
19
23
|
import { AXTabsModule } from '@acorex/components/tabs';
|
|
20
24
|
import { AXToastService } from '@acorex/components/toast';
|
|
21
|
-
import * as
|
|
25
|
+
import * as i2 from '@acorex/core/format';
|
|
22
26
|
import { AXFormatModule } from '@acorex/core/format';
|
|
23
|
-
import { Router } from '@angular/router';
|
|
24
27
|
import { AXImageModule } from '@acorex/components/image';
|
|
25
|
-
import * as i1
|
|
26
|
-
import { AXPUserAvatarComponent, AXPComponentSlotModule } from '@acorex/platform/layout/components';
|
|
27
|
-
import * as i2$1 from '@angular/common';
|
|
28
|
+
import * as i1 from '@angular/common';
|
|
28
29
|
import { CommonModule, DatePipe } from '@angular/common';
|
|
29
|
-
import * as i5 from '@acorex/core/translation';
|
|
30
|
+
import * as i5$1 from '@acorex/core/translation';
|
|
30
31
|
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
|
31
32
|
import { AXP_WIDGETS_UTILITY_CATEGORY } from '@acorex/modules/dashboard-management';
|
|
32
33
|
import { AXP_APPEARANCE_PROPERTY_GROUP, AXP_STYLING_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/widgets';
|
|
@@ -36,6 +37,7 @@ import { AXPDataGenerator } from '@acorex/platform/core';
|
|
|
36
37
|
|
|
37
38
|
const config = {
|
|
38
39
|
i18n: 'notification-management',
|
|
40
|
+
route: 'notifications',
|
|
39
41
|
};
|
|
40
42
|
const RootConfig = {
|
|
41
43
|
config,
|
|
@@ -1389,7 +1391,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
1389
1391
|
}]
|
|
1390
1392
|
}] });
|
|
1391
1393
|
|
|
1392
|
-
class
|
|
1394
|
+
class AXMMenuProvider {
|
|
1393
1395
|
constructor() {
|
|
1394
1396
|
this.entityService = inject(AXPEntityService);
|
|
1395
1397
|
this.sessionService = inject(AXPSessionService);
|
|
@@ -1399,49 +1401,18 @@ class AXMNotificationManagmentModuleMenuProvider {
|
|
|
1399
1401
|
if (!isAuthorized) {
|
|
1400
1402
|
return;
|
|
1401
1403
|
}
|
|
1402
|
-
//
|
|
1403
1404
|
const scope = RootConfig.config.i18n;
|
|
1404
1405
|
const moduleName = RootConfig.module.name;
|
|
1405
|
-
context.addItems([
|
|
1406
|
-
{
|
|
1407
|
-
name: moduleName,
|
|
1408
|
-
priority: 9001,
|
|
1409
|
-
text: `t('root-menu', {scope: "${scope}"})`,
|
|
1410
|
-
icon: 'fa-light fa-bells',
|
|
1411
|
-
data: {
|
|
1412
|
-
// requiredPermission: 'demo.admin.settings',
|
|
1413
|
-
},
|
|
1414
|
-
children: [
|
|
1415
|
-
{
|
|
1416
|
-
text: `t('templates', {scope: "${scope}"})`,
|
|
1417
|
-
//TODO something might be missing here notificationTemplate vs notification- template
|
|
1418
|
-
path: this.entityService.createPath(moduleName, RootConfig.entities.template.name),
|
|
1419
|
-
icon: 'fa-light fa-file-invoice',
|
|
1420
|
-
data: {
|
|
1421
|
-
// requiredPermission: '',
|
|
1422
|
-
},
|
|
1423
|
-
},
|
|
1424
|
-
// {
|
|
1425
|
-
// text: `t('reports', {scope: "${scope}"})`,
|
|
1426
|
-
// path: this.entityService.createPath(moduleName, RootConfig.entities.notification.name),
|
|
1427
|
-
// icon: 'fa-light fa-file-chart-column',
|
|
1428
|
-
// data: {
|
|
1429
|
-
// // requiredPermission: '',
|
|
1430
|
-
// },
|
|
1431
|
-
// },
|
|
1432
|
-
],
|
|
1433
|
-
},
|
|
1434
|
-
]);
|
|
1435
|
-
//
|
|
1436
1406
|
context.find('user-profile').addItems([
|
|
1437
1407
|
{
|
|
1438
|
-
name: '
|
|
1408
|
+
name: 'notifications',
|
|
1439
1409
|
text: `t('my', {scope: "${scope}"})`,
|
|
1440
1410
|
icon: 'fa-light fa-bell',
|
|
1441
|
-
path: this.
|
|
1442
|
-
|
|
1443
|
-
//
|
|
1444
|
-
|
|
1411
|
+
path: `${this.sessionService.application?.name}/${RootConfig.config.route}`,
|
|
1412
|
+
badgeKey: 'badge-notification',
|
|
1413
|
+
// data: {
|
|
1414
|
+
// requiredPermission: '',
|
|
1415
|
+
// },
|
|
1445
1416
|
},
|
|
1446
1417
|
]);
|
|
1447
1418
|
}
|
|
@@ -1588,7 +1559,7 @@ class AXMNotificationConnectorService {
|
|
|
1588
1559
|
*/
|
|
1589
1560
|
async markAsRead(payload = { id: [] }) {
|
|
1590
1561
|
try {
|
|
1591
|
-
this.isLoading.set(true);
|
|
1562
|
+
// this.isLoading.set(true);
|
|
1592
1563
|
this.error.set(null);
|
|
1593
1564
|
await this.notificationService.markAsRead(payload);
|
|
1594
1565
|
// Update local state to reflect read status without toggling
|
|
@@ -1597,9 +1568,7 @@ class AXMNotificationConnectorService {
|
|
|
1597
1568
|
this.notifications.update((notifications) => notifications.map((notification) => {
|
|
1598
1569
|
if (payload.id.includes(notification.id)) {
|
|
1599
1570
|
// Only set readAt when it is null (no toggling to unread)
|
|
1600
|
-
return notification.readAt === null
|
|
1601
|
-
? { ...notification, readAt: new Date() }
|
|
1602
|
-
: notification;
|
|
1571
|
+
return notification.readAt === null ? { ...notification, readAt: new Date() } : notification;
|
|
1603
1572
|
}
|
|
1604
1573
|
return notification;
|
|
1605
1574
|
}));
|
|
@@ -1613,7 +1582,7 @@ class AXMNotificationConnectorService {
|
|
|
1613
1582
|
this.error.set(err instanceof Error ? err.message : 'Failed to mark notifications as read');
|
|
1614
1583
|
}
|
|
1615
1584
|
finally {
|
|
1616
|
-
this.isLoading.set(false);
|
|
1585
|
+
// this.isLoading.set(false);
|
|
1617
1586
|
}
|
|
1618
1587
|
}
|
|
1619
1588
|
async markAllAsRead() {
|
|
@@ -1764,6 +1733,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
1764
1733
|
}]
|
|
1765
1734
|
}], ctorParameters: () => [] });
|
|
1766
1735
|
|
|
1736
|
+
// Provides a live unread notifications count for header/task badges
|
|
1737
|
+
class AXMNotificationBadgeProvider {
|
|
1738
|
+
constructor() {
|
|
1739
|
+
this.notificationService = inject(AXMNotificationConnectorService);
|
|
1740
|
+
this.key = 'badge-notification';
|
|
1741
|
+
this.count = computed(() => this.notificationService.unreadCount(), ...(ngDevMode ? [{ debugName: "count" }] : []));
|
|
1742
|
+
}
|
|
1743
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationBadgeProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1744
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationBadgeProvider }); }
|
|
1745
|
+
}
|
|
1746
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationBadgeProvider, decorators: [{
|
|
1747
|
+
type: Injectable
|
|
1748
|
+
}] });
|
|
1749
|
+
|
|
1750
|
+
class AXMEntityLoader {
|
|
1751
|
+
constructor() {
|
|
1752
|
+
this.injector = inject(Injector);
|
|
1753
|
+
}
|
|
1754
|
+
preload() {
|
|
1755
|
+
const module = RootConfig.module.name;
|
|
1756
|
+
return Array.from(Object.values(RootConfig.entities)).map((entity) => ({
|
|
1757
|
+
module: module,
|
|
1758
|
+
entity: entity.name,
|
|
1759
|
+
}));
|
|
1760
|
+
}
|
|
1761
|
+
async get(moduleName, entityName) {
|
|
1762
|
+
if (moduleName == RootConfig.module.name) {
|
|
1763
|
+
return new Promise(async (resolve) => {
|
|
1764
|
+
switch (entityName) {
|
|
1765
|
+
case RootConfig.entities.template.name: {
|
|
1766
|
+
const entity = (await Promise.resolve().then(function () { return template_entity; })).notificationTemplateEntityFactory;
|
|
1767
|
+
resolve(entity(this.injector));
|
|
1768
|
+
break;
|
|
1769
|
+
}
|
|
1770
|
+
case RootConfig.entities.channel.name: {
|
|
1771
|
+
const entity = (await Promise.resolve().then(function () { return channel_entity; })).notificationChannelEntityFactory;
|
|
1772
|
+
resolve(entity(this.injector));
|
|
1773
|
+
break;
|
|
1774
|
+
}
|
|
1775
|
+
//TODO: Add your custom entity here
|
|
1776
|
+
case 'my-notification': {
|
|
1777
|
+
const entity = (await Promise.resolve().then(function () { return myNotification; })).myNotificationEntityFactory;
|
|
1778
|
+
resolve(entity(this.injector));
|
|
1779
|
+
break;
|
|
1780
|
+
}
|
|
1781
|
+
case RootConfig.entities.notification.name: {
|
|
1782
|
+
const entity = (await Promise.resolve().then(function () { return notification_entity; })).notificationEntityFactory;
|
|
1783
|
+
resolve(entity(this.injector));
|
|
1784
|
+
break;
|
|
1785
|
+
}
|
|
1786
|
+
default:
|
|
1787
|
+
resolve(null);
|
|
1788
|
+
}
|
|
1789
|
+
});
|
|
1790
|
+
}
|
|
1791
|
+
return null;
|
|
1792
|
+
}
|
|
1793
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1794
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader }); }
|
|
1795
|
+
}
|
|
1796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader, decorators: [{
|
|
1797
|
+
type: Injectable
|
|
1798
|
+
}] });
|
|
1799
|
+
|
|
1767
1800
|
class AXPNotificationDefinitionProvider {
|
|
1768
1801
|
}
|
|
1769
1802
|
const DEFAULT_NOTIFICATION_DEFINITION = [
|
|
@@ -1843,7 +1876,9 @@ class AXMAdminNotificationItemComponent {
|
|
|
1843
1876
|
constructor() {
|
|
1844
1877
|
this.notificationDefinitionService = inject(AXPNotificationDefinitionService);
|
|
1845
1878
|
this.div = viewChild('component', ...(ngDevMode ? [{ debugName: "div", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
|
|
1846
|
-
this.adminSlot = inject(AXMAdminNotificationSlotComponent
|
|
1879
|
+
this.adminSlot = inject(AXMAdminNotificationSlotComponent, {
|
|
1880
|
+
optional: true,
|
|
1881
|
+
});
|
|
1847
1882
|
this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
|
|
1848
1883
|
this.onPressNotificationItem = output();
|
|
1849
1884
|
this.#af = afterNextRender(() => this.renderComponent());
|
|
@@ -1851,7 +1886,7 @@ class AXMAdminNotificationItemComponent {
|
|
|
1851
1886
|
pressNotificationItem(id) {
|
|
1852
1887
|
this.onPressNotificationItem.emit(id);
|
|
1853
1888
|
this.getNotificationProvider()?.execute({ name: 'click' }, this.data());
|
|
1854
|
-
this.adminSlot
|
|
1889
|
+
this.adminSlot?.popover()?.close();
|
|
1855
1890
|
}
|
|
1856
1891
|
getNotificationProvider() {
|
|
1857
1892
|
return this.notificationDefinitionService.resolve(this.data().type);
|
|
@@ -1862,7 +1897,7 @@ class AXMAdminNotificationItemComponent {
|
|
|
1862
1897
|
}
|
|
1863
1898
|
onAction(command) {
|
|
1864
1899
|
this.getNotificationProvider()?.execute(command, this.data());
|
|
1865
|
-
this.adminSlot
|
|
1900
|
+
this.adminSlot?.popover()?.close();
|
|
1866
1901
|
}
|
|
1867
1902
|
async renderComponent() {
|
|
1868
1903
|
if (this.getNotificationContent() && this.getNotificationProvider()) {
|
|
@@ -1879,7 +1914,7 @@ class AXMAdminNotificationItemComponent {
|
|
|
1879
1914
|
}
|
|
1880
1915
|
#af;
|
|
1881
1916
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1882
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div\n class=\"notification-item\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n }
|
|
1917
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div\n class=\"notification-item\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n <!-- @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n } -->\n <div class=\"notification-time\">{{ data().createAt | format: 'timeleft' | async }}</div>\n </div>\n </div>\n @if (this.getNotificationContent() && this.getNotificationProvider()) {\n <div #component></div>\n } @else {\n <div class=\"notification-body\">{{ data().body }}</div>\n }\n </div>\n</div>\n", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-align:start;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1883
1918
|
}
|
|
1884
1919
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationItemComponent, decorators: [{
|
|
1885
1920
|
type: Component,
|
|
@@ -1891,7 +1926,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
1891
1926
|
AXImageModule,
|
|
1892
1927
|
AXBadgeModule,
|
|
1893
1928
|
AXFormatModule,
|
|
1894
|
-
], template: "<div\n class=\"notification-item\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n }
|
|
1929
|
+
], template: "<div\n class=\"notification-item\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n <!-- @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n } -->\n <div class=\"notification-time\">{{ data().createAt | format: 'timeleft' | async }}</div>\n </div>\n </div>\n @if (this.getNotificationContent() && this.getNotificationProvider()) {\n <div #component></div>\n } @else {\n <div class=\"notification-body\">{{ data().body }}</div>\n }\n </div>\n</div>\n", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-align:start;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"] }]
|
|
1895
1930
|
}] });
|
|
1896
1931
|
|
|
1897
1932
|
class AXMAdminNotificationPanelComponent {
|
|
@@ -2035,10 +2070,10 @@ class AXMAdminNotificationPanelComponent {
|
|
|
2035
2070
|
}
|
|
2036
2071
|
}
|
|
2037
2072
|
viewAllNotifications() {
|
|
2038
|
-
this.router.navigate([`${this.sessionService.application?.name}/
|
|
2073
|
+
this.router.navigate([`${this.sessionService.application?.name}/notifications`]);
|
|
2039
2074
|
}
|
|
2040
2075
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2041
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNewNotfication: "onNewNotfication" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\n }\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type:
|
|
2076
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNewNotfication: "onNewNotfication" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\n }\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2$1.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2042
2077
|
}
|
|
2043
2078
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
|
|
2044
2079
|
type: Component,
|
|
@@ -2062,63 +2097,13 @@ class AXMAdminNotificationSlotComponent {
|
|
|
2062
2097
|
this.totalNewNotification.set(value);
|
|
2063
2098
|
}
|
|
2064
2099
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2065
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type:
|
|
2100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", inputs: ["providedTabs"], outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2066
2101
|
}
|
|
2067
2102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
|
|
2068
2103
|
type: Component,
|
|
2069
2104
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXBadgeModule, AXPopoverModule, AXMAdminNotificationPanelComponent], template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n" }]
|
|
2070
2105
|
}] });
|
|
2071
2106
|
|
|
2072
|
-
class AXMEntityLoader {
|
|
2073
|
-
constructor() {
|
|
2074
|
-
this.injector = inject(Injector);
|
|
2075
|
-
}
|
|
2076
|
-
preload() {
|
|
2077
|
-
const module = RootConfig.module.name;
|
|
2078
|
-
return Array.from(Object.values(RootConfig.entities)).map((entity) => ({
|
|
2079
|
-
module: module,
|
|
2080
|
-
entity: entity.name,
|
|
2081
|
-
}));
|
|
2082
|
-
}
|
|
2083
|
-
async get(moduleName, entityName) {
|
|
2084
|
-
if (moduleName == RootConfig.module.name) {
|
|
2085
|
-
return new Promise(async (resolve) => {
|
|
2086
|
-
switch (entityName) {
|
|
2087
|
-
case RootConfig.entities.template.name: {
|
|
2088
|
-
const entity = (await Promise.resolve().then(function () { return template_entity; })).notificationTemplateEntityFactory;
|
|
2089
|
-
resolve(entity(this.injector));
|
|
2090
|
-
break;
|
|
2091
|
-
}
|
|
2092
|
-
case RootConfig.entities.channel.name: {
|
|
2093
|
-
const entity = (await Promise.resolve().then(function () { return channel_entity; })).notificationChannelEntityFactory;
|
|
2094
|
-
resolve(entity(this.injector));
|
|
2095
|
-
break;
|
|
2096
|
-
}
|
|
2097
|
-
//TODO: Add your custom entity here
|
|
2098
|
-
case 'my-notification': {
|
|
2099
|
-
const entity = (await Promise.resolve().then(function () { return myNotification; })).myNotificationEntityFactory;
|
|
2100
|
-
resolve(entity(this.injector));
|
|
2101
|
-
break;
|
|
2102
|
-
}
|
|
2103
|
-
case RootConfig.entities.notification.name: {
|
|
2104
|
-
const entity = (await Promise.resolve().then(function () { return notification_entity; })).notificationEntityFactory;
|
|
2105
|
-
resolve(entity(this.injector));
|
|
2106
|
-
break;
|
|
2107
|
-
}
|
|
2108
|
-
default:
|
|
2109
|
-
resolve(null);
|
|
2110
|
-
}
|
|
2111
|
-
});
|
|
2112
|
-
}
|
|
2113
|
-
return null;
|
|
2114
|
-
}
|
|
2115
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2116
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader }); }
|
|
2117
|
-
}
|
|
2118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader, decorators: [{
|
|
2119
|
-
type: Injectable
|
|
2120
|
-
}] });
|
|
2121
|
-
|
|
2122
2107
|
/**
|
|
2123
2108
|
* Notification Widget Component
|
|
2124
2109
|
* Displays notifications in a card with tabs
|
|
@@ -2337,7 +2322,7 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2337
2322
|
popover: () => ({ close: () => { } }),
|
|
2338
2323
|
},
|
|
2339
2324
|
},
|
|
2340
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-
|
|
2325
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full ax-flex ax-flex-col ax-gap-2\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default ax-shrink-0\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-overflow-auto\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item [data]=\"item\" (onPressNotificationItem)=\"onAdminItemClick($event)\" />\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2341
2326
|
}
|
|
2342
2327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationWidgetViewComponent, decorators: [{
|
|
2343
2328
|
type: Component,
|
|
@@ -2358,7 +2343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
2358
2343
|
popover: () => ({ close: () => { } }),
|
|
2359
2344
|
},
|
|
2360
2345
|
},
|
|
2361
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-p-2 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-
|
|
2346
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-p-2 ax-size-full ax-flex ax-flex-col ax-gap-2\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default ax-shrink-0\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-overflow-auto\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item [data]=\"item\" (onPressNotificationItem)=\"onAdminItemClick($event)\" />\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"] }]
|
|
2362
2347
|
}], ctorParameters: () => [] });
|
|
2363
2348
|
|
|
2364
2349
|
var notificationWidget_component = /*#__PURE__*/Object.freeze({
|
|
@@ -2504,10 +2489,35 @@ const AXPMyNotificationDashboardWidget = {
|
|
|
2504
2489
|
},
|
|
2505
2490
|
};
|
|
2506
2491
|
|
|
2492
|
+
function routesFactory() {
|
|
2493
|
+
const routes = [
|
|
2494
|
+
{
|
|
2495
|
+
path: ':app/notifications',
|
|
2496
|
+
canActivate: [AXPAuthGuard],
|
|
2497
|
+
loadComponent: () => {
|
|
2498
|
+
return AXPRootLayoutComponent;
|
|
2499
|
+
},
|
|
2500
|
+
title: 'Notifications',
|
|
2501
|
+
children: [
|
|
2502
|
+
{
|
|
2503
|
+
path: '',
|
|
2504
|
+
loadComponent: () => import('./acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs').then((c) => c.AXMNotificationPageComponent),
|
|
2505
|
+
data: { reuse: true },
|
|
2506
|
+
},
|
|
2507
|
+
],
|
|
2508
|
+
},
|
|
2509
|
+
];
|
|
2510
|
+
return routes;
|
|
2511
|
+
}
|
|
2507
2512
|
class AXMNotificationManagementModule {
|
|
2508
2513
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2509
2514
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1$1.AXPComponentSlotModule, i2$3.AXPLayoutBuilderModule] }); }
|
|
2510
2515
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, providers: [
|
|
2516
|
+
{
|
|
2517
|
+
provide: ROUTES,
|
|
2518
|
+
multi: true,
|
|
2519
|
+
useFactory: routesFactory,
|
|
2520
|
+
},
|
|
2511
2521
|
{
|
|
2512
2522
|
provide: AXMNotificationManagementTemplateEntityService,
|
|
2513
2523
|
useClass: AXMNotificationManagementTemplateEntityServiceImpl,
|
|
@@ -2527,7 +2537,7 @@ class AXMNotificationManagementModule {
|
|
|
2527
2537
|
},
|
|
2528
2538
|
{
|
|
2529
2539
|
provide: AXP_MENU_PROVIDER,
|
|
2530
|
-
useClass:
|
|
2540
|
+
useClass: AXMMenuProvider,
|
|
2531
2541
|
multi: true,
|
|
2532
2542
|
},
|
|
2533
2543
|
{
|
|
@@ -2539,6 +2549,11 @@ class AXMNotificationManagementModule {
|
|
|
2539
2549
|
},
|
|
2540
2550
|
multi: true,
|
|
2541
2551
|
},
|
|
2552
|
+
{
|
|
2553
|
+
provide: AXP_TASK_BADGE_PROVIDERS,
|
|
2554
|
+
useClass: AXMNotificationBadgeProvider,
|
|
2555
|
+
multi: true,
|
|
2556
|
+
},
|
|
2542
2557
|
], imports: [AXPComponentSlotModule.forChild({
|
|
2543
2558
|
'root-header-end': [
|
|
2544
2559
|
{
|
|
@@ -2548,9 +2563,7 @@ class AXMNotificationManagementModule {
|
|
|
2548
2563
|
],
|
|
2549
2564
|
}),
|
|
2550
2565
|
AXPLayoutBuilderModule.forChild({
|
|
2551
|
-
widgets: [
|
|
2552
|
-
AXPMyNotificationDashboardWidget,
|
|
2553
|
-
],
|
|
2566
|
+
widgets: [AXPMyNotificationDashboardWidget],
|
|
2554
2567
|
})] }); }
|
|
2555
2568
|
}
|
|
2556
2569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, decorators: [{
|
|
@@ -2566,14 +2579,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
2566
2579
|
],
|
|
2567
2580
|
}),
|
|
2568
2581
|
AXPLayoutBuilderModule.forChild({
|
|
2569
|
-
widgets: [
|
|
2570
|
-
AXPMyNotificationDashboardWidget,
|
|
2571
|
-
],
|
|
2582
|
+
widgets: [AXPMyNotificationDashboardWidget],
|
|
2572
2583
|
}),
|
|
2573
2584
|
],
|
|
2574
2585
|
exports: [],
|
|
2575
2586
|
declarations: [],
|
|
2576
2587
|
providers: [
|
|
2588
|
+
{
|
|
2589
|
+
provide: ROUTES,
|
|
2590
|
+
multi: true,
|
|
2591
|
+
useFactory: routesFactory,
|
|
2592
|
+
},
|
|
2577
2593
|
{
|
|
2578
2594
|
provide: AXMNotificationManagementTemplateEntityService,
|
|
2579
2595
|
useClass: AXMNotificationManagementTemplateEntityServiceImpl,
|
|
@@ -2593,7 +2609,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
2593
2609
|
},
|
|
2594
2610
|
{
|
|
2595
2611
|
provide: AXP_MENU_PROVIDER,
|
|
2596
|
-
useClass:
|
|
2612
|
+
useClass: AXMMenuProvider,
|
|
2597
2613
|
multi: true,
|
|
2598
2614
|
},
|
|
2599
2615
|
{
|
|
@@ -2605,6 +2621,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
2605
2621
|
},
|
|
2606
2622
|
multi: true,
|
|
2607
2623
|
},
|
|
2624
|
+
{
|
|
2625
|
+
provide: AXP_TASK_BADGE_PROVIDERS,
|
|
2626
|
+
useClass: AXMNotificationBadgeProvider,
|
|
2627
|
+
multi: true,
|
|
2628
|
+
},
|
|
2608
2629
|
],
|
|
2609
2630
|
}]
|
|
2610
2631
|
}] });
|
|
@@ -3000,7 +3021,6 @@ async function myNotificationEntityFactory(injector) {
|
|
|
3000
3021
|
commands: {
|
|
3001
3022
|
create: {
|
|
3002
3023
|
execute: async (data) => {
|
|
3003
|
-
console.log('CREATE', data);
|
|
3004
3024
|
const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });
|
|
3005
3025
|
await dataProvider.insertOne(entity);
|
|
3006
3026
|
return entity;
|
|
@@ -3008,7 +3028,6 @@ async function myNotificationEntityFactory(injector) {
|
|
|
3008
3028
|
},
|
|
3009
3029
|
delete: {
|
|
3010
3030
|
execute: async (id) => {
|
|
3011
|
-
console.log('CREATE', id);
|
|
3012
3031
|
await dataProvider.deleteOne(id);
|
|
3013
3032
|
},
|
|
3014
3033
|
},
|
|
@@ -3236,5 +3255,5 @@ async function notificationLogEntityFactory(injector) {
|
|
|
3236
3255
|
* Generated bundle index. Do not edit.
|
|
3237
3256
|
*/
|
|
3238
3257
|
|
|
3239
|
-
export { AXMNotificationConnectorService, AXMNotificationEntityService, AXMNotificationEntityServiceImpl, AXMNotificationManagementChannelEntityService, AXMNotificationManagementChannelEntityServiceImpl, AXMNotificationManagementModule, AXMNotificationManagementTemplateEntityModule, AXMNotificationManagementTemplateEntityService, AXMNotificationManagementTemplateEntityServiceImpl,
|
|
3258
|
+
export { AXMMenuProvider, AXMNotificationConnectorService, AXMNotificationEntityService, AXMNotificationEntityServiceImpl, AXMNotificationManagementChannelEntityService, AXMNotificationManagementChannelEntityServiceImpl, AXMNotificationManagementModule, AXMNotificationManagementTemplateEntityModule, AXMNotificationManagementTemplateEntityService, AXMNotificationManagementTemplateEntityServiceImpl, AXMOsNotificationService, AXMSettingProvider, AXPMyNotificationDashboardWidget, AXPNotificationDefinitionProvider, AXPNotificationDefinitionProviderDefault, AXPNotificationDefinitionService, AXPNotificationWidgetViewComponent, AXP_NOTIFICATION_DEFINITION_PROVIDER, RootConfig, myNotificationEntityFactory, notificationChannelEntityFactory, notificationEntityFactory, notificationLogEntityFactory, notificationTemplateEntityFactory };
|
|
3240
3259
|
//# sourceMappingURL=acorex-modules-notification-management.mjs.map
|