@acorex/modules 19.3.3-next.0 → 19.3.4
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/conversation/lib/entities/comments/pages/comment-list-view.component.d.ts +3 -2
- package/dashboard-management/index.d.ts +3 -1
- package/dashboard-management/lib/entities/dashboard/dashboard.types.d.ts +4 -0
- package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.d.ts +6 -25
- package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.store.d.ts +1 -26
- package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.type.d.ts +8 -0
- package/dashboard-management/lib/features/home-dashboard/dashboard-popups/add-dashboard-popup.d.ts +10 -2
- package/dashboard-management/lib/features/home-dashboard/dashboard-popups/dashboard-popup.service.d.ts +1 -1
- package/dashboard-management/lib/features/home-dashboard/index.d.ts +1 -0
- package/dashboard-management/lib/menu.provider.d.ts +1 -0
- package/document-management/lib/features/document-explorer/views/attachement-widget/attachment-widget.component.d.ts +126 -0
- package/document-management/lib/features/shared/document-manager.types.d.ts +1 -1
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +1 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-ClxaJcjD.mjs → acorex-modules-application-management-module-designer.component-cD24pUfN.mjs} +7 -7
- package/fesm2022/{acorex-modules-application-management-module-designer.component-ClxaJcjD.mjs.map → acorex-modules-application-management-module-designer.component-cD24pUfN.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +41 -41
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DJZcD1j3.mjs → acorex-modules-auth-acorex-modules-auth-DCWtLiHM.mjs} +43 -43
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DJZcD1j3.mjs.map → acorex-modules-auth-acorex-modules-auth-DCWtLiHM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DlYxDGQr.mjs → acorex-modules-auth-app-chooser.component-VMhnsjYn.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DlYxDGQr.mjs.map → acorex-modules-auth-app-chooser.component-VMhnsjYn.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-blank.layout-DIttom0K.mjs +18 -0
- package/fesm2022/{acorex-modules-auth-blank.layout-B1a0710P.mjs.map → acorex-modules-auth-blank.layout-DIttom0K.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-D-XgzifC.mjs → acorex-modules-auth-login.module-DxLjSR75.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-login.module-D-XgzifC.mjs.map → acorex-modules-auth-login.module-DxLjSR75.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-ZaCb3CED.mjs → acorex-modules-auth-master.layout-Dpb-D34R.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-master.layout-ZaCb3CED.mjs.map → acorex-modules-auth-master.layout-Dpb-D34R.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-Bcwod5kV.mjs +59 -0
- package/fesm2022/{acorex-modules-auth-password.component-CLTZoufP.mjs.map → acorex-modules-auth-password.component-Bcwod5kV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-C-xRIhrM.mjs → acorex-modules-auth-password.component-CEAzmwdd.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-C-xRIhrM.mjs.map → acorex-modules-auth-password.component-CEAzmwdd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-4T5jq7su.mjs → acorex-modules-auth-routes-DHX4wD9P.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-4T5jq7su.mjs.map → acorex-modules-auth-routes-DHX4wD9P.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Ow7QtAWc.mjs → acorex-modules-auth-tenant-chooser.component-S07bx8PP.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Ow7QtAWc.mjs.map → acorex-modules-auth-tenant-chooser.component-S07bx8PP.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-two-factor-code.component-CK9J4jMb.mjs +40 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-PqOn37Gg.mjs.map → acorex-modules-auth-two-factor-code.component-CK9J4jMb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-D72KIpvA.mjs → acorex-modules-auth-two-factor.module-CZyzLTm3.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-two-factor.module-D72KIpvA.mjs.map → acorex-modules-auth-two-factor.module-CZyzLTm3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Btnu_Oeq.mjs → acorex-modules-auth-user-sessions.component-SuhoNCuQ.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Btnu_Oeq.mjs.map → acorex-modules-auth-user-sessions.component-SuhoNCuQ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/{acorex-modules-common-search-popup.component-C3XUb6pF.mjs → acorex-modules-common-search-popup.component-DQYBNkIc.mjs} +4 -4
- package/fesm2022/{acorex-modules-common-search-popup.component-C3XUb6pF.mjs.map → acorex-modules-common-search-popup.component-DQYBNkIc.mjs.map} +1 -1
- package/fesm2022/acorex-modules-common.mjs +19 -19
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +45 -45
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +4994 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-Dw7YKb_h.mjs → acorex-modules-document-management-acorex-modules-document-management-kZDDtr98.mjs} +151 -139
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-kZDDtr98.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-attachment-widget.component-DlwLjrkw.mjs +32 -0
- package/fesm2022/acorex-modules-document-management-attachment-widget.component-DlwLjrkw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-Ty5V60Tu.mjs → acorex-modules-document-management-create-folder-dialog.component-CPXnUlUx.mjs} +6 -6
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-Ty5V60Tu.mjs.map → acorex-modules-document-management-create-folder-dialog.component-CPXnUlUx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-BuUJq8WU.mjs → acorex-modules-document-management-details-view.component-9LB0w9DQ.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-details-view.component-BuUJq8WU.mjs.map → acorex-modules-document-management-details-view.component-9LB0w9DQ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DSCIj1X_.mjs → acorex-modules-document-management-drive-choose.component-CPIB0bcn.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DSCIj1X_.mjs.map → acorex-modules-document-management-drive-choose.component-CPIB0bcn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DvrdSkIZ.mjs → acorex-modules-document-management-large-icons-view.component-D--yZaJt.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DvrdSkIZ.mjs.map → acorex-modules-document-management-large-icons-view.component-D--yZaJt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-rIxsD8sE.mjs → acorex-modules-document-management-large-tiles-view.component-CNeKXArZ.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-rIxsD8sE.mjs.map → acorex-modules-document-management-large-tiles-view.component-CNeKXArZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-1iPUnhr1.mjs → acorex-modules-document-management-link-dialog.component-DKbO2nX8.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-1iPUnhr1.mjs.map → acorex-modules-document-management-link-dialog.component-DKbO2nX8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-BrutZLAU.mjs → acorex-modules-document-management-list-view.component-q2bCwMab.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-list-view.component-BrutZLAU.mjs.map → acorex-modules-document-management-list-view.component-q2bCwMab.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-lock-dialog.component-By36woOc.mjs +52 -0
- package/fesm2022/{acorex-modules-document-management-lock-dialog.component-BwKdUUcf.mjs.map → acorex-modules-document-management-lock-dialog.component-By36woOc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CQOLEctF.mjs → acorex-modules-document-management-permission-definition.provider-Cqkd87Cb.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CQOLEctF.mjs.map → acorex-modules-document-management-permission-definition.provider-Cqkd87Cb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-zSY0PShA.mjs → acorex-modules-document-management-rename-node-dialog.component-WZYHoTrK.mjs} +6 -6
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-zSY0PShA.mjs.map → acorex-modules-document-management-rename-node-dialog.component-WZYHoTrK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-BiNdRpqs.mjs → acorex-modules-document-management-share-dialog.component-Diof2rpe.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-BiNdRpqs.mjs.map → acorex-modules-document-management-share-dialog.component-Diof2rpe.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-Bj6G6aqt.mjs +55 -0
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-BvR5OuCV.mjs.map → acorex-modules-document-management-share-email-dialog.component-Bj6G6aqt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CFB6g5r6.mjs → acorex-modules-document-management-small-icons-view.component-iCcvLfHC.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CFB6g5r6.mjs.map → acorex-modules-document-management-small-icons-view.component-iCcvLfHC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-Dp2Lnb3c.mjs → acorex-modules-document-management-small-tiles-view.component-BlxmyYrn.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-Dp2Lnb3c.mjs.map → acorex-modules-document-management-small-tiles-view.component-BlxmyYrn.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-unlock-dialog.component-CNjFnm2w.mjs +37 -0
- package/fesm2022/{acorex-modules-document-management-unlock-dialog.component-DkZQ84kg.mjs.map → acorex-modules-document-management-unlock-dialog.component-CNjFnm2w.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-CJ2Qoott.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-BL9GxOV_.mjs} +56 -56
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CJ2Qoott.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-BL9GxOV_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjNsUAZq.mjs → acorex-modules-form-template-management-category.entity-DgpkNWIh.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjNsUAZq.mjs.map → acorex-modules-form-template-management-category.entity-DgpkNWIh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-designer.page-Bd_bZ_7p.mjs → acorex-modules-form-template-management-designer.page-BmSMzkbb.mjs} +4 -4
- package/fesm2022/{acorex-modules-form-template-management-designer.page-Bd_bZ_7p.mjs.map → acorex-modules-form-template-management-designer.page-BmSMzkbb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CqZ8ytjA.mjs → acorex-modules-form-template-management-permission-definition.provider-DwpvJvia.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CqZ8ytjA.mjs.map → acorex-modules-form-template-management-permission-definition.provider-DwpvJvia.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-LrzsYkiL.mjs → acorex-modules-form-template-management-settings.provider-BDlPJPWl.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-LrzsYkiL.mjs.map → acorex-modules-form-template-management-settings.provider-BDlPJPWl.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-M-R2U9CH.mjs → acorex-modules-form-template-management-template-picker.component-DWZby-TS.mjs} +4 -4
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-M-R2U9CH.mjs.map → acorex-modules-form-template-management-template-picker.component-DWZby-TS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-BP75i9zU.mjs → acorex-modules-form-template-management-template-widget-edit.component-CZ7DLKVC.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-BP75i9zU.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-CZ7DLKVC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CCaHPkWq.mjs → acorex-modules-form-template-management-template.entity-DbDR1qAp.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CCaHPkWq.mjs.map → acorex-modules-form-template-management-template.entity-DbDR1qAp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CUOsh6e5.mjs → acorex-modules-form-template-management-viewer-popup.component-B4EoS2iO.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CUOsh6e5.mjs.map → acorex-modules-form-template-management-viewer-popup.component-B4EoS2iO.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-DcmAnBue.mjs → acorex-modules-issue-management-acorex-modules-issue-management-7RWgBq87.mjs} +62 -65
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-DcmAnBue.mjs.map → acorex-modules-issue-management-acorex-modules-issue-management-7RWgBq87.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management-capture-screen.component-BzvY3UMh.mjs +28 -0
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-BMpafdHr.mjs.map → acorex-modules-issue-management-capture-screen.component-BzvY3UMh.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +10 -10
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +36 -36
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-DE0Ek0dk.mjs → acorex-modules-organization-management-add-item.component-sP_aikRE.mjs} +5 -5
- package/fesm2022/{acorex-modules-organization-management-add-item.component-DE0Ek0dk.mjs.map → acorex-modules-organization-management-add-item.component-sP_aikRE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-RuvkSheN.mjs → acorex-modules-organization-management-org-chart-configuration.page-CaNP3qwK.mjs} +5 -5
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-RuvkSheN.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-CaNP3qwK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-2EZNvjAH.mjs → acorex-modules-organization-management-org-chart-configuration.service-CtA19B8x.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-2EZNvjAH.mjs.map → acorex-modules-organization-management-org-chart-configuration.service-CtA19B8x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-C2qYJxpY.mjs → acorex-modules-organization-management-org-chart.page-B-TZkfTX.mjs} +12 -12
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-C2qYJxpY.mjs.map → acorex-modules-organization-management-org-chart.page-B-TZkfTX.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs +320 -0
- package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs +412 -0
- package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs +332 -0
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-DhPT9kzv.mjs → acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs} +63 -27
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-role.entity-C-AIIaDo.mjs → acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs} +58 -8
- package/fesm2022/acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs +324 -0
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs +320 -0
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs +287 -0
- package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +451 -106
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BaYlXX3M.mjs → acorex-modules-platform-management-acorex-modules-platform-management-D8qCuwrP.mjs} +267 -207
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-D8qCuwrP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DB8pe9so.mjs → acorex-modules-platform-management-list-version.component-C4efcHZE.mjs} +8 -8
- package/fesm2022/acorex-modules-platform-management-list-version.component-C4efcHZE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-settings.provider-BQzM-lyt.mjs → acorex-modules-platform-management-settings.provider-DOR4HWty.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-BQzM-lyt.mjs.map → acorex-modules-platform-management-settings.provider-DOR4HWty.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +43 -43
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
- package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +35 -35
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-XDFtTqft.mjs → acorex-modules-settings-management-setting-page.component-X33xeQrg.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-XDFtTqft.mjs.map → acorex-modules-settings-management-setting-page.component-X33xeQrg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-B_6RIU9e.mjs → acorex-modules-settings-management-setting-view.component-DryghOjs.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-B_6RIU9e.mjs.map → acorex-modules-settings-management-setting-view.component-DryghOjs.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +6 -6
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +43 -43
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/organization-management/lib/const.d.ts +38 -2
- package/organization-management/lib/entities/index.d.ts +6 -0
- package/organization-management/lib/entities/position/position.types.d.ts +5 -0
- package/organization-management/lib/entities/position-category/index.d.ts +3 -0
- package/organization-management/lib/entities/position-category/position-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/position-category/position-category.module.d.ts +6 -0
- package/organization-management/lib/entities/position-category/position-category.service.d.ts +10 -0
- package/organization-management/lib/entities/position-category/position-category.types.d.ts +7 -0
- package/organization-management/lib/entities/responsibility/index.d.ts +3 -0
- package/organization-management/lib/entities/responsibility/responsibility.entity.d.ts +3 -0
- package/organization-management/lib/entities/responsibility/responsibility.module.d.ts +7 -0
- package/organization-management/lib/entities/responsibility/responsibility.service.d.ts +10 -0
- package/organization-management/lib/entities/responsibility/responsibility.types.d.ts +6 -0
- package/organization-management/lib/entities/responsibility-category/index.d.ts +3 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.module.d.ts +7 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.service.d.ts +10 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.types.d.ts +7 -0
- package/organization-management/lib/entities/role/role.types.d.ts +3 -0
- package/organization-management/lib/entities/role-category/index.d.ts +3 -0
- package/organization-management/lib/entities/role-category/role-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/role-category/role-category.module.d.ts +6 -0
- package/organization-management/lib/entities/role-category/role-category.service.d.ts +10 -0
- package/organization-management/lib/entities/role-category/role-category.types.d.ts +7 -0
- package/organization-management/lib/entities/skill/index.d.ts +3 -0
- package/organization-management/lib/entities/skill/skill.entity.d.ts +3 -0
- package/organization-management/lib/entities/skill/skill.module.d.ts +6 -0
- package/organization-management/lib/entities/skill/skill.service.d.ts +10 -0
- package/organization-management/lib/entities/skill/skill.types.d.ts +6 -0
- package/organization-management/lib/entities/skill-category/index.d.ts +3 -0
- package/organization-management/lib/entities/skill-category/skill-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/skill-category/skill-category.module.d.ts +6 -0
- package/organization-management/lib/entities/skill-category/skill-category.service.d.ts +10 -0
- package/organization-management/lib/entities/skill-category/skill-category.types.d.ts +7 -0
- package/organization-management/lib/features/organization-chart/org-chart-configuration.page.d.ts +38 -2
- package/organization-management/lib/features/organization-chart/org-chart.page.d.ts +38 -2
- package/organization-management/lib/organization-management.module.d.ts +17 -11
- package/package.json +1 -1
- package/platform-management/lib/entities/data-source/coulmn-def.widget.d.ts +1 -4
- package/platform-management/lib/entities/promotion/promotion.datasource.d.ts +7 -0
- package/platform-management/lib/features/app-terms/components/notify-app/notify-app.component.d.ts +1 -2
- package/platform-management/lib/features/app-terms/pages/list/list-terms.component.d.ts +0 -1
- package/platform-management/lib/features/app-version/check-version.service.d.ts +1 -3
- package/platform-management/lib/features/app-version/components/list-versions/list-version.component.d.ts +2 -1
- package/platform-management/lib/features/app-version/components/notify-app/notify-app.component.d.ts +2 -3
- package/platform-management/lib/features/app-version/workflows/change-log.workflow.d.ts +8 -0
- package/fesm2022/acorex-modules-auth-blank.layout-B1a0710P.mjs +0 -18
- package/fesm2022/acorex-modules-auth-password.component-CLTZoufP.mjs +0 -59
- package/fesm2022/acorex-modules-auth-two-factor-code.component-PqOn37Gg.mjs +0 -40
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-Ccj2AaJ1.mjs +0 -3755
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-Ccj2AaJ1.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-home-dashboard-BXD0g_tp.mjs +0 -835
- package/fesm2022/acorex-modules-dashboard-management-home-dashboard-BXD0g_tp.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Dw7YKb_h.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-lock-dialog.component-BwKdUUcf.mjs +0 -52
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-BvR5OuCV.mjs +0 -55
- package/fesm2022/acorex-modules-document-management-unlock-dialog.component-DkZQ84kg.mjs +0 -37
- package/fesm2022/acorex-modules-issue-management-capture-screen.component-BMpafdHr.mjs +0 -28
- package/fesm2022/acorex-modules-organization-management-position.entity-DhPT9kzv.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-C-AIIaDo.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BaYlXX3M.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-list-version.component-DB8pe9so.mjs.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-conversation.mjs","sources":["../../../../libs/modules/conversation/src/lib/const.ts","../../../../libs/modules/conversation/src/lib/entities/comments/comments.service.ts","../../../../libs/modules/conversation/src/lib/entities/comments/pages/comment-lookup-popup.component.ts","../../../../libs/modules/conversation/src/lib/entities/comments/pages/comment-list-view.component.ts","../../../../libs/modules/conversation/src/lib/entities/comments/pages/comment-list-view.component.html","../../../../libs/modules/conversation/src/lib/entities/comments/comment.module.ts","../../../../libs/modules/conversation/src/lib/entities/chat/chat.service.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-header/chat-item-header.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-header/chat-item-header.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item/chat-item.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item/chat-item.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview/chat-preview.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview/chat-preview.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/pages/chat/chat.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/pages/chat/chat.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/chat.module.ts","../../../../libs/modules/conversation/src/lib/conversation.module.ts","../../../../libs/modules/conversation/src/acorex-modules-conversation.ts"],"sourcesContent":["export const AXMConverstionModuleConst = {\n moduleName: 'Converstion',\n moduleRoute: 'converstion',\n i18n: '#converstion',\n chatName: 'Chat',\n commentName: 'Comment',\n};\n","import { AXMEntityCrudServiceImpl, AXPEntityDataProviderImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { AXMConverstionModuleConst } from '../../const';\nimport {\n AXMComment,\n AXMCreateCommentDto,\n AXMCommentEntityModel,\n AXMMessageReactionEntityModel,\n} from './comments.type';\n\nexport abstract class AXMCommentService extends AXMEntityCrudServiceImpl<\n string,\n AXMComment,\n AXMComment,\n AXMCreateCommentDto\n> {\n abstract like(payload: AXMMessageReactionEntityModel): Promise<string>;\n}\n\n@Injectable()\nexport class AXMCommentServiceImpl extends AXMEntityCrudServiceImpl<\n string,\n AXMComment,\n AXMComment,\n AXMCreateCommentDto\n> {\n protected messageReactionDataProvider = new AXPEntityDataProviderImpl<string, AXMMessageReactionEntityModel>(\n super.storageService,\n 'messageReaction'\n );\n\n constructor() {\n super(`${AXMConverstionModuleConst.moduleName}.${AXMConverstionModuleConst.commentName}`);\n }\n\n async like(payload: AXMMessageReactionEntityModel): Promise<string> {\n return this.messageReactionDataProvider.insertOne(payload);\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPLayoutBuilderModule, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { Component } from '@angular/core';\n\n@Component({\n template: `<axp-widgets-container class=\"ax-flex ax-flex-col ax-gap-2 ax-p-4\" [context]=\"context\" (onContextChanged)=\"context=$event.data\">\n <div class=\"ax-m-5\">\n <ng-container axp-widget-renderer [node]=\"lookupNode\" [mode]=\"'edit'\"> </ng-container>\n </div>\n </axp-widgets-container>\n\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Accept & Send\" color=\"primary\" (onClick)=\"handleClose()\"></ax-button>\n </ax-suffix>\n </ax-footer>`,\n imports: [AXDecoratorModule, AXPLayoutBuilderModule, AXButtonModule]\n})\nexport class AXMCommentLookupPopup extends AXBasePageComponent {\n protected lookupNode: AXPWidgetNode = {\n name: 'lookup',\n path: 'lookup',\n type: 'lookup-editor',\n options: {\n entity: 'axoidc.users',\n },\n };\n context = {};\n\n handleClose() {\n this.close({\n result: true,\n data: this.context,\n });\n }\n}\n","import { AXWysiwygContainerComponent } from '@acorex/components/wysiwyg';\nimport { ChangeDetectionStrategy, Component, computed, inject, OnInit, signal, viewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AXStyleLookType } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXPopupConfig, AXPopupService } from '@acorex/components/popup';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPHtmlUtils, AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport { AXMCommentService } from '../comments.service';\nimport { AXMCreateCommentDto, AXMCommentEntityModel, AXMMessageReactionEntityModel } from '../comments.type';\nimport { AXMCommentLookupPopup } from './comment-lookup-popup.component';\n@Component({\n templateUrl: './comment-list-view.component.html',\n selector: 'axm-comment-list-view',\n standalone: false,\n styles: `ax-wysiwyg-container{\n .ax-editor-container{\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n }\n .ax-error-message{\n padding-left: 0.5rem;\n }\n\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMCommentListViewComponent implements OnInit {\n protected hasCooldown = signal(false);\n protected commentContent = signal('');\n\n protected isSubmitting = signal(false);\n protected isReplyingMode = signal(false);\n protected isEditingMode = signal(false);\n protected isLoading = signal(true);\n\n protected failedImageIds = signal<string[]>([]);\n protected activeReplyComment = signal<undefined | AXMCommentEntityModel>(undefined);\n protected activeEditComment = signal<undefined | AXMCommentEntityModel>(undefined);\n protected wysiwygEditor = viewChild.required<AXWysiwygContainerComponent>('w');\n\n private commentService = inject(AXMCommentService);\n private platform = inject(AXPlatform);\n private route = inject(ActivatedRoute);\n private popupService = inject(AXPopupService);\n private toastService = inject(AXToastService);\n private dialogService = inject(AXDialogService);\n private htmlUtils = inject(AXPHtmlUtils);\n\n private readonly routeParams = this.route.snapshot;\n private getPayload = computed(\n () =>\n ({\n params: this.payload(),\n skip: 0,\n take: 10,\n } as AXPQueryRequest)\n );\n payload = computed(() => ({\n roomType: 'default',\n entityId: this.routeParams.params?.['module'] + '.' + this.routeParams.params?.['entity'],\n instanceId: this.routeParams.params?.['id'],\n }));\n\n protected comments = signal<AXMCommentEntityModel[]>([]);\n private wysiwyg = viewChild<AXWysiwygContainerComponent>('w');\n\n ngOnInit(): void {\n this.loadComments();\n }\n\n protected wysiwygOptions = signal<{\n look: AXStyleLookType;\n }>({\n look: 'solid',\n });\n\n protected avatarConfig = signal<{\n color: string;\n look: 'sharp' | 'soft' | 'rounded';\n type: string;\n }>({\n color: 'primary',\n look: 'rounded',\n type: 'solid', // 'image' | 'text' | 'icon' | 'default'\n });\n\n validateContent = (content: string) => {\n let isValid = true;\n\n if (!content || content === '<p><br></p>') {\n isValid = false;\n }\n return {\n rule: 'callback',\n result: isValid,\n message: isValid ? '' : 'Please fill the content',\n value: content,\n };\n };\n\n sanitizeHtml(htmlContent: string) {\n return this.htmlUtils.getSafeHTMLfromHTML(htmlContent);\n }\n\n handleImageError(imageId: string): void {\n this.failedImageIds.update((ids) => [...ids, imageId]);\n }\n\n checkImageExists(imageId: string): boolean {\n return !this.failedImageIds().includes(imageId);\n }\n\n extractInitials(name: string): string {\n const words = name.split(' ');\n const initials = words.map((word) => word.charAt(0).toUpperCase());\n return initials.join('');\n }\n\n async loadComments() {\n this.isLoading.set(true);\n // const response = await this.commentService.get(this.payload());\n const response: AXPPagedListResult<AXMCommentEntityModel> = await this.commentService.query(this.getPayload());\n\n this.comments.set(response.items);\n setTimeout(() => {\n this.isLoading.set(false);\n }, 250);\n }\n\n editMessage(comment: AXMCommentEntityModel, reply?: AXMCommentEntityModel) {\n this.isReplyingMode.set(false);\n this.activeReplyComment.set(undefined);\n this.isEditingMode.set(true);\n this.activeEditComment.set(comment);\n const contentToEdit = reply ? reply.content : comment.content;\n this.commentContent.set(contentToEdit);\n document.getElementsByClassName('ql-editor')[0].innerHTML = contentToEdit;\n this.wysiwygEditor().getHostElement().scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n\n replyMessage(comment: AXMCommentEntityModel, reply?: AXMCommentEntityModel) {\n this.isEditingMode.set(false);\n this.activeEditComment.set(undefined);\n this.isReplyingMode.set(true);\n this.activeReplyComment.set(comment);\n if (reply) {\n const mention = `<a data-id=\"${reply.id}\">@${reply.user?.userName}</a> `;\n this.commentContent.set(mention);\n this.wysiwyg()?.focus();\n document.getElementsByClassName('ql-editor')[0].innerHTML = mention;\n }\n this.wysiwygEditor().getHostElement().scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n\n async deleteComment(comment: AXMCommentEntityModel) {\n const dialog = this.dialogService.open({\n icon: 'fa-regular fa-warning',\n content: 'Are you sure you want to delete this comment?',\n title: 'Delete Comment',\n type: 'danger',\n orientation: 'horizontal',\n buttons: [\n {\n text: 'Delete',\n color: 'danger',\n onClick: async (e: any) => {\n e.handled = true;\n e.source.text = 'Deleting...';\n e.source.disabled = true;\n e.source.loading = true;\n try {\n await this.commentService.deleteOne(comment.id!);\n this.removeMessageById(comment.id!);\n this.toastService.show({\n content: 'Comment deleted successfully.',\n color: 'success',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n (this.isEditingMode() && this.activeEditComment()?.id === comment.id) || this.resetReplyEditState;\n dialog.close();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to delete comment!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n },\n },\n {\n text: 'Cancel',\n color: 'default',\n autofocus: true,\n onClick: (e) => {\n dialog.close();\n },\n },\n ],\n closeButton: false,\n });\n }\n\n async deleteReply(comment: AXMCommentEntityModel, reply: AXMCommentEntityModel) {\n const dialog = this.dialogService.open({\n icon: 'fa-regular fa-warning',\n content: 'Are you sure you want to delete this reply?',\n title: 'Delete Reply',\n type: 'danger',\n orientation: 'horizontal',\n buttons: [\n {\n text: 'Delete',\n color: 'danger',\n onClick: async (e: any) => {\n e.handled = true;\n e.source.text = 'Deleting...';\n e.source.disabled = true;\n e.source.loading = true;\n try {\n await this.commentService.deleteOne(comment.id!);\n this.removeMessageById(comment.id!, reply.id);\n this.toastService.show({\n content: 'Comment deleted successfully.',\n color: 'success',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n dialog.close();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to delete comment!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n },\n },\n {\n text: 'Cancel',\n color: 'default',\n autofocus: true,\n onClick: (e) => {\n dialog.close();\n },\n },\n ],\n closeButton: false,\n });\n }\n\n resetReplyEditState() {\n this.isEditingMode.set(false);\n this.activeEditComment.set(undefined);\n this.isReplyingMode.set(false);\n this.activeReplyComment.set(undefined);\n }\n\n async toggleLike(comment: AXMCommentEntityModel, reply?: AXMCommentEntityModel) {\n if (reply) {\n this.updateLikeStatus(comment.id!, reply.id);\n const payload: AXMMessageReactionEntityModel = {\n id: reply.id!,\n messageId: reply.id!,\n type: 'like',\n };\n\n try {\n await this.commentService.like(payload);\n } catch (error) {\n this.updateLikeStatus(comment.id!, reply.id);\n }\n } else {\n this.updateLikeStatus(comment.id!);\n const payload: AXMMessageReactionEntityModel = {\n id: comment.id!,\n messageId: comment.id!,\n type: 'like',\n };\n\n try {\n await this.commentService.like(payload);\n } catch (error) {\n this.updateLikeStatus(comment.id!);\n }\n }\n }\n\n private updateLikeStatus(commentId: string, replyId?: string) {\n this.comments.update((commentsList) => {\n return commentsList.map((comment) => {\n if (comment.id === commentId) {\n if (replyId) {\n const updatedReplies = comment.replies?.map((reply) =>\n reply.id === replyId\n ? {\n ...reply,\n isLiked: !reply.isLiked,\n reactionsCount: reply.isLiked ? --reply.reactionsCount! : ++reply.reactionsCount!,\n }\n : reply\n );\n\n return {\n ...comment,\n replies: updatedReplies,\n };\n } else {\n return {\n ...comment,\n isLiked: !comment.isLiked,\n reactionsCount: comment.isLiked ? --comment.reactionsCount! : ++comment.reactionsCount!,\n };\n }\n }\n return comment;\n });\n });\n }\n\n private removeMessageById(commentId: string, replyId?: string) {\n this.comments.update((commentsList) =>\n commentsList\n .map((comment) => {\n if (comment.id === commentId) {\n if (replyId) {\n return {\n ...comment,\n replies: comment.replies?.filter((reply) => reply.id !== replyId),\n };\n }\n return null;\n }\n return comment;\n })\n .filter((comment) => comment !== null)\n );\n }\n\n async submitComment(isPrivate: boolean = false): Promise<void> {\n if (!this.validateContent(this.commentContent()).result) {\n return;\n }\n\n let memberLookup;\n if (isPrivate) {\n const popupConfig: AXPopupConfig = {\n header: true,\n size: 'md',\n draggable: true,\n hasBackdrop: true,\n closeButton: true,\n closeOnBackdropClick: false,\n };\n const popup = await this.popupService.open(AXMCommentLookupPopup, popupConfig);\n memberLookup = popup.data?.data?.lookup;\n }\n if (this.isEditingMode()) {\n const payload = {\n content: this.commentContent(),\n };\n //todo why ? need not nullable id !-!\n await this.commentService.updateOne(this.activeEditComment()?.id!, payload);\n this.isSubmitting.set(true);\n this.hasCooldown.set(true);\n this.isEditingMode.set(false);\n this.activeEditComment.set(undefined);\n } else {\n const payload: AXMCreateCommentDto = {\n ...this.payload(),\n content: this.commentContent(),\n contentType: 'text',\n isPrivate: isPrivate,\n replyId: this.activeReplyComment()?.id ?? null,\n //members: isPrivate ? [memberLookup] : [],\n };\n await this.commentService.insertOne(payload);\n this.isSubmitting.set(true);\n this.hasCooldown.set(true);\n\n this.isReplyingMode.set(false);\n this.activeReplyComment.set(undefined);\n }\n const response: AXPPagedListResult<AXMCommentEntityModel> = await this.commentService.query(this.getPayload());\n this.comments.set(response.items);\n this.commentContent.set('');\n document.getElementsByClassName('ql-editor')[0].innerHTML = '';\n this.isSubmitting.set(false);\n setTimeout(() => {\n this.hasCooldown.set(false);\n }, 1000);\n }\n\n scrollMain() {\n console.log('clicked');\n //\n const comment = this.isReplyingMode() ? this.activeReplyComment() : this.activeEditComment();\n const el = document.getElementById((comment as AXMCommentEntityModel).id!);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth', block: 'center' });\n const content = el?.firstElementChild?.children[1] as HTMLElement;\n const prevBg = content.style.background;\n content.style.borderRadius = '0.25rem';\n content.style.transition = 'background 1s ease-in-out';\n content.style.background = `rgba(var(--ax-color-on-surface), var(--tw-bg-opacity))`;\n setTimeout(() => {\n content.style.background = prevBg || 'rgba(0, 0, 0, 0)';\n }, 1000);\n }\n }\n\n calcDefrenetTime(date: Date | undefined) {\n return date ? Date.now() - date.getTime() : undefined;\n }\n}\n","<div class=\"ax-mt-2\">\n <ax-comment-container>\n @if(isLoading()){\n <div class=\"ax-flex ax-items-center ax-py-12 ax-bg-lightest ax-px-5\">\n <ax-skeleton class=\"ax-min-w-16 ax-h-16 ax-rounded-full ax-me-4\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-8/12 ax-h-2 ax-rounded-full\"></ax-skeleton>\n </div>\n </div>\n } @else if(!isLoading() && comments().length > 0){\n <ax-comment-view class=\"ax-bg-lightest\">\n @for(comment of comments(); track comment.id){\n <ax-comment-item [id]=\"comment.id!\" [replyCount]=\"comment.replies?.length ?? 0\">\n <ax-avatar [color]=\"avatarConfig().color\" [shape]=\"avatarConfig().look\">\n @if(checkImageExists(comment.id!) && comment.user && comment.user.picture){\n <ax-image (onError)=\"handleImageError(comment.id!)\" [src]=\"comment.user!.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(comment.user?.firstName + ' ' + comment.user?.lastName)\n }}</span>\n </ax-text>\n }\n </ax-avatar>\n <ax-title>{{ comment.user?.firstName + ' ' + comment.user?.lastName }}</ax-title>\n <ax-comment-date>{{ calcDefrenetTime(comment.createdAt) | format : 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\" (click)=\"editMessage(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(comment.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(comment)\" [liked]=\"comment.isLiked!\">\n {{ comment.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"replyMessage(comment)\"></ax-comment-reply-text>\n @for(reply of comment.replies; track reply.id){\n <ax-comment-item [id]=\"reply.id\">\n <ax-avatar [color]=\"avatarConfig().color\" [shape]=\"avatarConfig().look\">\n @if(reply && checkImageExists(reply.id!) && reply.user && reply.user.picture){\n <ax-image (onError)=\"handleImageError(reply.id!)\" [src]=\"reply.user!.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(reply.user?.firstName + ' ' + reply.user?.lastName)\n }}</span>\n </ax-text>\n }\n </ax-avatar>\n <ax-title>{{ (reply?.user?.firstName ?? '') + ' ' + (reply?.user?.lastName ?? '') }}</ax-title>\n <ax-comment-date>{{ calcDefrenetTime(reply.createdAt) | format : 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\" (click)=\"editMessage(comment, reply)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteReply(comment, reply)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(reply.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(comment, reply)\" [liked]=\"reply.isLiked!\">\n {{ reply.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"replyMessage(comment, reply)\"></ax-comment-reply-text>\n </ax-comment-item>\n }\n </ax-comment-item>\n } </ax-comment-view>} @else{\n <div>\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-justify-center ax-items-center ax-p-10\">\n <svg class=\"ax-mx-auto\" xmlns=\"http://www.w3.org/2000/svg\" width=\"154\" height=\"161\" viewBox=\"0 0 154 161\"\n fill=\"none\">\n <path\n d=\"M0.0616455 84.4268C0.0616455 42.0213 34.435 7.83765 76.6507 7.83765C118.803 7.83765 153.224 42.0055 153.224 84.4268C153.224 102.42 147.026 118.974 136.622 132.034C122.282 150.138 100.367 161 76.6507 161C52.7759 161 30.9882 150.059 16.6633 132.034C6.25961 118.974 0.0616455 102.42 0.0616455 84.4268Z\"\n fill=\"#EEF2FF\" />\n <path\n d=\"M96.8189 0.632498L96.8189 0.632384L96.8083 0.630954C96.2034 0.549581 95.5931 0.5 94.9787 0.5H29.338C22.7112 0.5 17.3394 5.84455 17.3394 12.4473V142.715C17.3394 149.318 22.7112 154.662 29.338 154.662H123.948C130.591 154.662 135.946 149.317 135.946 142.715V38.9309C135.946 38.0244 135.847 37.1334 135.648 36.2586L135.648 36.2584C135.117 33.9309 133.874 31.7686 132.066 30.1333C132.066 30.1331 132.065 30.1329 132.065 30.1327L103.068 3.65203C103.068 3.6519 103.067 3.65177 103.067 3.65164C101.311 2.03526 99.1396 0.995552 96.8189 0.632498Z\"\n fill=\"white\" stroke=\"#E5E7EB\" />\n <ellipse cx=\"80.0618\" cy=\"81\" rx=\"28.0342\" ry=\"28.0342\" fill=\"#EEF2FF\" />\n <path\n d=\"M99.2393 61.3061L99.2391 61.3058C88.498 50.5808 71.1092 50.5804 60.3835 61.3061C49.6423 72.0316 49.6422 89.4361 60.3832 100.162C71.109 110.903 88.4982 110.903 99.2393 100.162C109.965 89.4363 109.965 72.0317 99.2393 61.3061ZM105.863 54.6832C120.249 69.0695 120.249 92.3985 105.863 106.785C91.4605 121.171 68.1468 121.171 53.7446 106.785C39.3582 92.3987 39.3582 69.0693 53.7446 54.683C68.1468 40.2965 91.4605 40.2966 105.863 54.6832Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M110.782 119.267L102.016 110.492C104.888 108.267 107.476 105.651 109.564 102.955L118.329 111.729L110.782 119.267Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M139.122 125.781L139.122 125.78L123.313 109.988C123.313 109.987 123.313 109.987 123.312 109.986C121.996 108.653 119.849 108.657 118.521 109.985L118.871 110.335L118.521 109.985L109.047 119.459C107.731 120.775 107.735 122.918 109.044 124.247L109.047 124.249L124.858 140.06C128.789 143.992 135.191 143.992 139.122 140.06C143.069 136.113 143.069 129.728 139.122 125.781Z\"\n fill=\"#A5B4FC\" stroke=\"#818CF8\" />\n <path\n d=\"M83.185 87.2285C82.5387 87.2285 82.0027 86.6926 82.0027 86.0305C82.0027 83.3821 77.9987 83.3821 77.9987 86.0305C77.9987 86.6926 77.4627 87.2285 76.8006 87.2285C76.1543 87.2285 75.6183 86.6926 75.6183 86.0305C75.6183 80.2294 84.3831 80.2451 84.3831 86.0305C84.3831 86.6926 83.8471 87.2285 83.185 87.2285Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M93.3528 77.0926H88.403C87.7409 77.0926 87.2049 76.5567 87.2049 75.8946C87.2049 75.2483 87.7409 74.7123 88.403 74.7123H93.3528C94.0149 74.7123 94.5509 75.2483 94.5509 75.8946C94.5509 76.5567 94.0149 77.0926 93.3528 77.0926Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M71.5987 77.0925H66.6488C65.9867 77.0925 65.4507 76.5565 65.4507 75.8945C65.4507 75.2481 65.9867 74.7122 66.6488 74.7122H71.5987C72.245 74.7122 72.781 75.2481 72.781 75.8945C72.781 76.5565 72.245 77.0925 71.5987 77.0925Z\"\n fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"21.5128\" width=\"41.0256\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"133.65\" width=\"54.7009\" height=\"5.47009\" rx=\"2.73504\" fill=\"#A5B4FC\" />\n <rect x=\"38.3522\" y=\"29.7179\" width=\"13.6752\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"56.13\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"61.6001\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"67.0702\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n </svg>\n <div>\n <h2 class=\"ax-text-center ax-text-neutral-600 ax-font-semibold ax-leading-loose ax-pb-2\">\n There is no Comment!\n </h2>\n </div>\n </div>\n </div>\n }\n </ax-comment-container>\n <ax-form>\n <ax-form-field>\n <div>\n @if(isReplyingMode() || isEditingMode()){\n <div\n class=\"ax-flex ax-justify-between ax-rounded-b-none ax-border ax-border-b-0 ax-rounded-lg ax-bg-on-surface ax-px-6 ax-py-3 ax-w-full ax-items-center ax-overflow-hidden ax-text-sm ax-leading-none\">\n <div (click)=\"scrollMain()\" class=\"ax-flex ax-justify-start ax-items-center ax-cursor-pointer\">\n <i [class]=\"isReplyingMode() ? 'fa-reply' : 'fa-pen'\"\n class=\"fa-solid ax-text-primary-500 dark:ax-text-primary-300 ax-text-2xl ax-me-4\"></i>\n <div\n class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-between ax-align-middle ax-leading-4 ax-overflow-hidden\">\n <p class=\"ax-text-primary-500 dark:ax-text-primary-300\">\n {{ isReplyingMode() ? 'Reply to ' : 'Edit Message' }}\n <span class=\"ax-font-bold\">\n {{\n isReplyingMode()\n ? activeReplyComment()?.user?.firstName + ' ' + activeReplyComment()?.user?.lastName\n : ''\n }}\n </span>\n </p>\n <div class=\"ax-truncate\" [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.content ?? '')\n : sanitizeHtml(activeEditComment()?.content ?? '')\n \"></div>\n </div>\n </div>\n <div><i (click)=\"resetReplyEditState()\" class=\"fa-solid ax-text-2xl fa-xmark ax-cursor-pointer\"></i></div>\n </div>\n }\n <ax-wysiwyg-container #w [look]=\"wysiwygOptions().look\" [(ngModel)]=\"commentContent\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-toolbar>\n <ax-content>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n </ax-content>\n <ax-suffix>\n <ax-dropdown-button [disabled]=\"hasCooldown()\" type=\"submit\" color=\"primary\" mode=\"split\" text=\"Send\"\n (onClick)=\"submitComment()\">\n @if(isSubmitting()){ <ax-loading></ax-loading> }\n <ax-button-item-list>\n <ax-button-item (click)=\"submitComment(true)\" text=\"Send Private ...\" name=\"private\" data=\"private\">\n <ax-prefix>\n <ax-icon icon=\"fa-regular fa-user-secret\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n </ax-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateContent }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </div>\n </ax-form-field>\n </ax-form>\n</div>","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCommentModule } from '@acorex/components/comment';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { AXWysiwygModule } from '@acorex/components/wysiwyg';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { AXMCommentService, AXMCommentServiceImpl } from './comments.service';\nimport { AXMCommentListViewComponent } from './pages/comment-list-view.component';\n\n@NgModule({\n declarations: [AXMCommentListViewComponent],\n imports: [\n FormsModule,\n CommonModule,\n RouterModule,\n AXDecoratorModule,\n AXWysiwygModule,\n AXButtonModule,\n AXTextBoxModule,\n AXLabelModule,\n AXAvatarModule,\n AXImageModule,\n AXSelectBoxModule,\n AXFormModule,\n AXLoadingModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXFormatModule,\n AXToolBarModule,\n AXSkeletonModule,\n AXCommentModule,\n ],\n exports: [AXMCommentListViewComponent],\n providers: [\n {\n provide: AXMCommentService,\n useClass: AXMCommentServiceImpl,\n },\n ],\n})\nexport class AXMCommentModule {}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { AXMConverstionModuleConst } from '../../const';\nimport { AXMChatRoom } from './chat.type';\n\nexport abstract class AXMChatService extends AXMEntityCrudServiceImpl<string, AXMChatRoom> {\n abstract getTotalUnread(): Promise<number>;\n abstract markChatAsRead(roomId: string): Promise<void>;\n}\n\n@Injectable()\nexport class AXMChatServiceImpl extends AXMChatService {\n override markChatAsRead(roomId: string): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n async getTotalUnread(): Promise<number> {\n throw new Error('Method not implemented.');\n }\n\n constructor() {\n super(`${AXMConverstionModuleConst.moduleName}.${AXMConverstionModuleConst.chatName}`);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'axm-chat-item-footer',\n templateUrl: './chat-item-footer.component.html',\n styleUrls: ['./chat-item-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatItemFooterComponent {}\n","<div class=\"ax-p-4\">\n <ax-button class=\"ax-w-full\" color=\"primary\" text=\"New Conversation\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-plus\"></i>\n </ax-icon>\n </ax-prefix>\n </ax-button>\n</div>\n","import { AXTabsComponent } from '@acorex/components/tabs';\nimport { afterNextRender, ChangeDetectionStrategy, Component, input, output, signal, viewChild } from '@angular/core';\n\n@Component({\n selector: 'axm-chat-item-header',\n templateUrl: './chat-item-header.component.html',\n styleUrls: ['./chat-item-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatItemHeaderComponent {\n total = input.required<number>();\n unread = input.required<number>();\n tab = viewChild.required<AXTabsComponent>('tab');\n tabsState = signal<number>(0);\n activeTab = output<number>();\n constructor() {\n afterNextRender(() => {\n this.tab().onActiveTabChanged.subscribe((i) => {\n this.tabsState.set(i.index);\n this.activeTab.emit(i.index);\n });\n });\n }\n}\n","<div>\n <div class=\"ax-p-3\">\n <ax-text-box look=\"fill\" [placeholder]=\"'Search by username or email ...'\">\n <ax-prefix class=\"ax-ps-2\"> <ax-icon class=\"ax-text-neutral-400 ax-icon ax-icon-search\"> </ax-icon></ax-prefix\n ></ax-text-box>\n </div>\n <ax-divider></ax-divider>\n <ax-tabs #tab class=\"ax-text-neutral-400 ax-border-t\" [look]=\"'with-line'\">\n <ax-tab-item class=\"ax-tabs-fit !ax-py-5\" text=\"All\">\n <ax-suffix>\n <ax-badge [text]=\"total().toString()\" [color]=\"tabsState() === 0 ? 'primary' : 'secondary'\"></ax-badge>\n </ax-suffix>\n </ax-tab-item>\n @if(unread()){\n <ax-tab-item class=\"ax-tabs-fit !ax-py-5\" text=\"Unread\">\n <ax-suffix>\n <ax-badge [text]=\"unread().toString()\" [color]=\"tabsState() === 1 ? 'primary' : 'secondary'\"></ax-badge>\n </ax-suffix>\n </ax-tab-item>\n }\n </ax-tabs>\n</div>\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AXMChatRoom } from '../../chat.type';\n\n@Component({\n selector: 'axm-chat-item',\n templateUrl: './chat-item.component.html',\n styleUrls: ['./chat-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatItemComponent {\n //input\n data = input.required<AXMChatRoom>();\n\n //output\n pressChatItem = output<string>();\n\n //variables\n private sessionService = inject(AXPSessionService);\n private router = inject(Router);\n private activatedRoute = inject(ActivatedRoute);\n protected fullName = computed(() => this.data().roomMembers[0].firstName + ' ' + this.data().roomMembers[0].lastName);\n protected myId = this.sessionService.user?.id;\n\n //methods\n protected extractInitials(name: string): string {\n const words = name.split(' ');\n const initials = words.map((word) => word.charAt(0).toUpperCase());\n return initials.join('');\n }\n\n protected async onPressChatItem(id: string) {\n this.pressChatItem.emit(id);\n await this.router.navigate([id], { relativeTo: this.activatedRoute });\n }\n\n protected messageSeenStatus(): string {\n if (this.myId === this.data().lastMessage.createdBy.id) {\n return '';\n } else {\n if (this.data().lastMessage.hasSeen) {\n return 'ax-icon-dobble-check';\n } else {\n return 'ax-icon-check';\n }\n }\n }\n}\n","<div [id]=\"data().id\" class=\"ax-cursor-pointer hover:ax-bg-on-surface ax-flex ax-items-center ax-p-3 ax-justify-between\"\n (click)=\"onPressChatItem(data().id)\">\n <div class=\"ax-flex ax-min-w-[100px] ax-gap-3\">\n <div>\n <ax-avatar class=\"ax-relative\" color=\"primary\" shape=\"rounded\">\n <ax-badge class=\"ax-absolute ax-bottom-0 ax-right-0 !ax-size-3 ax-border !ax-border-white ax-rounded-full\"\n color=\"success\"></ax-badge>\n @if(data().roomMembers[0].picture){\n <ax-image [src]=\"data().roomMembers[0].picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{ extractInitials(fullName()) }}</span>\n </ax-text>\n }\n </ax-avatar>\n </div>\n\n <div class=\"ax-py-1 ax-flex ax-flex-col ax-truncate\">\n <p class=\"ax-font-semibold ax-w-full ax-truncate ax-pb-1\">{{ fullName() }}</p>\n <p class=\"ax-text-sm ax-font-normal ax-text-neutral-400 ax-w-full ax-truncate\">\n {{ data().lastMessage.content }}\n </p>\n </div>\n </div>\n\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-1\">\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n @if(true) {\n <ax-icon class=\"ax-icon ax-text-success-500\" [class]=\"messageSeenStatus()\"></ax-icon>\n }\n <ax-text class=\"ax-text-sm ax-font-normal ax-text-neutral-400 ax-text-nowrap\">{{\n data().lastMessage.createdAt.toDateString()\n }}</ax-text>\n </div>\n <ax-badge [class]=\"data().unreadCount ? 'ax-visible' : 'ax-invisible'\" color=\"success\"\n [text]=\"data().unreadCount.toString()\"></ax-badge>\n </div>\n</div>\n<!-- <div class=\"ax-p-3\">\n <div class=\"ax-grid ax-grid-cols-12\">\n \n </div>\n</div> -->","import { ChangeDetectionStrategy, Component, output } from '@angular/core';\n\n@Component({\n selector: 'axm-chat-preview-header',\n templateUrl: './chat-preview-header.component.html',\n styleUrls: ['./chat-preview-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatPreviewHeaderComponent {\n pressBack = output<void>();\n protected emitBack() {\n this.pressBack.emit();\n }\n}\n","<div class=\"ax-flex ax-justify-between ax-items-center ax-py-[0.61rem] ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-gap-5\">\n <div class=\"md:ax-hidden ax-flex ax-justify-center ax-items-center ax-text-xl\">\n <ax-button look=\"blank\" class=\"ax-md\" (onClick)=\"emitBack()\">\n <ax-icon> <i class=\"ax-text-neutral-400 fa-regular fa-chevron-left\"></i></ax-icon>\n </ax-button>\n </div>\n <ax-avatar class=\"ax-relative ax-shrink-0\" color=\"primary\" shape=\"rounded\">\n @if(false){\n <ax-image>\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\"></span>\n </ax-text>\n }\n </ax-avatar>\n <div>\n <div class=\"ax-text-xl\">Office Chat</div>\n <div class=\"ax-text-neutral-400 ax-text-xs\">23 members, 10 online</div>\n </div>\n </div>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-x-10 ax-text-xl ax-text-neutral-400\">\n <i class=\"fa-regular fa-phone-flip\"> </i>\n <i class=\"fa-regular fa-search\"> </i>\n <i class=\"fa-regular fa-ellipsis-vertical\"> </i>\n </div>\n</div>","import { AXConversationActionEvent, AXConversationService } from '@acorex/components/conversation';\nimport { AXFileService } from '@acorex/core/file';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n OnDestroy,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'axm-chat-preview',\n templateUrl: './chat-preview.component.html',\n styleUrls: ['./chat-preview.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatPreviewComponent implements OnDestroy {\n // Signal for dynamic max-height (using computed logic for real-time updates)\n\n private activatedRoute = inject(ActivatedRoute);\n private fileService: AXFileService = inject(AXFileService);\n private conversationService = inject(AXConversationService);\n\n protected options = signal({\n disabled: false,\n readonly: false,\n value: '',\n });\n\n protected conversationViewMaxHeight = signal('');\n private resizeObserver!: ResizeObserver;\n private initialTextAreaHeight = 0;\n private textareaHeight = signal<number>(0);\n\n private messageId: string;\n\n constructor(private elRef: ElementRef) {\n afterNextRender(() => {\n const textareaContainer = this.elRef.nativeElement.querySelector('ax-conversation-input > div');\n\n if (textareaContainer) {\n this.initialTextAreaHeight = textareaContainer.offsetHeight;\n this.resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === textareaContainer) {\n const currentHeight = entry.contentRect.height;\n this.textareaHeight.set(currentHeight);\n }\n }\n });\n\n this.resizeObserver.observe(textareaContainer);\n } else {\n console.warn('Textarea Container element not found.');\n }\n this.activatedRoute.params.subscribe((params) => {\n console.log(params['id']);\n this.messageId = params['id'];\n this.conversationService.chats.set([\n {\n id: '0',\n sendTime: new Date(),\n type: 'text',\n readTime: new Date(),\n content: this.messageId,\n name: 'test name',\n },\n ]);\n });\n });\n }\n\n protected dynamicHeight = computed(() => {\n const baseOffset = 275;\n const currentHeight = this.textareaHeight();\n const dynamicOffset = baseOffset + (currentHeight - this.initialTextAreaHeight);\n return `calc(100vh - ${dynamicOffset}px) !important`;\n });\n\n ngOnDestroy(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n handleFileChange(event: any): void {\n console.log('File Changed:', event);\n }\n\n handleCancelRecord(event: any): void {\n console.log('Recording Cancelled:', event);\n }\n\n handleEndRecord(event: any): void {\n this.fileService.blobToBase64(event.data.value).then((c) => {\n this.conversationService.chats.update((values: any) => [\n ...values,\n {\n id: `${Math.floor(Math.random() * 100)}`,\n content: c,\n sendTime: new Date(),\n type: 'voice',\n },\n ]);\n });\n }\n\n handleOnSend(e: any): void {\n console.log('Message Sent:', e);\n\n if (e.data.value) {\n this.options.update((prev) => ({ ...prev, value: '' }));\n this.conversationService.chats.update((values: any) => [\n ...values,\n {\n id: `${Math.floor(Math.random() * 100)}`,\n content: e.data.value,\n sendTime: new Date(),\n type: e.data.type,\n replyTo: e.data.replyChat,\n fromId: '10',\n },\n ]);\n }\n this.scrollToEnd();\n }\n\n handleOnAction(e: AXConversationActionEvent): void {\n console.log('Action Triggered:', e);\n }\n\n scrollToEnd() {\n const conversationView = document.querySelector('ax-conversation-view');\n if (conversationView) {\n conversationView.scrollTo({\n top: conversationView.scrollHeight,\n behavior: 'smooth',\n });\n }\n }\n\n addMockMessage() {}\n}\n","<ax-conversation-container>\n <ax-conversation-view (onAction)=\"handleOnAction($event)\" [style.height]=\"dynamicHeight()\"> </ax-conversation-view>\n <ax-conversation-input\n placeholder=\"placeholder\"\n [(ngModel)]=\"options().value\"\n (onSendClick)=\"handleOnSend($event)\"\n (onFileChange)=\"handleFileChange($event)\"\n (onStopRecording)=\"handleEndRecord($event)\"\n (onCancelRecording)=\"handleCancelRecord($event)\"\n >\n </ax-conversation-input>\n</ax-conversation-container>\n","import { AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport { ChangeDetectionStrategy, Component, computed, inject, OnInit, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AXMChatService } from '../../chat.service';\nimport { AXMChatRoom } from '../../chat.type';\n\n@Component({\n selector: 'axm-chat',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AXMChatComponent implements OnInit {\n chatService = inject(AXMChatService);\n private route = inject(ActivatedRoute);\n private readonly routeParams = this.route.snapshot;\n protected data = signal<AXPPagedListResult<AXMChatRoom> | undefined>(undefined);\n protected filteredData = computed(() => (this.data()?.items as AXMChatRoom[]).filter((i) => i.unreadCount));\n\n protected displayData = computed(() => (this.activeTab() ? this.filteredData() : this.data()?.items));\n\n protected activeTab = signal(0);\n\n protected allCount = computed(() => this.data()?.total ?? 0);\n protected unreadCount = signal(0);\n\n async ngOnInit(): Promise<void> {\n await this.loadData();\n }\n private async loadData() {\n this.data.set(\n await this.chatService.query({\n params: {\n roomType: 'default',\n entityId: this.routeParams.params?.['module'] + '.' + this.routeParams.params?.['entity'],\n instanceId: this.routeParams.params?.['id'],\n },\n skip: 0,\n take: 10,\n } as AXPQueryRequest)\n );\n this.unreadCount.set(await this.chatService.getTotalUnread());\n console.log(this.unreadCount());\n }\n\n protected async markChatAsRead(roomId: string) {\n let oldUnreadCount: number | undefined;\n\n try {\n if (this.data()) {\n const targetRoom = this.data()?.items.find((i: AXMChatRoom) => i.id === roomId && i.unreadCount);\n\n if (!targetRoom) {\n return;\n }\n oldUnreadCount = targetRoom.unreadCount;\n // Mark chat as read on the service\n await this.chatService.markChatAsRead(roomId);\n // Update the signal state\n this.data.update((old) => ({\n total: old!.total,\n items: old!.items.map((i: AXMChatRoom) => (i.id === roomId ? { ...i, unreadCount: 0 } : i)),\n }));\n this.unreadCount.update((i) => --i);\n }\n } catch (error) {\n // Roll back the update only if oldUnreadCount is defined\n if (oldUnreadCount !== undefined) {\n this.data.update((old) => ({\n total: old!.total,\n items: old!.items.map((i: AXMChatRoom) => (i.id === roomId ? { ...i, unreadCount: oldUnreadCount! } : i)),\n }));\n }\n console.error('Error marking chat as read:', error);\n }\n }\n setActiveTabData(event: number) {\n this.activeTab.set(event);\n }\n goBack() { }\n}\n","<div class=\"ax-flex ax-h-full\">\n <div class=\"ax-w-full ax-border-e ax-hidden md:ax-block md:ax-w-2/5 xl:ax-w-1/4\" axResizable>\n <div class=\"ax-flex ax-flex-col ax-justify-between ax-h-full\">\n <div>\n <axm-chat-item-header\n (activeTab)=\"setActiveTabData($event)\"\n [unread]=\"unreadCount()\"\n [total]=\"allCount()\"\n ></axm-chat-item-header>\n <div class=\"ax-overflow-y-auto ax-max-h-[calc(100vh-303px)]\">\n @for(i of displayData() ; track i.id){\n <axm-chat-item [data]=\"i\" (click)=\"markChatAsRead(i.id)\"></axm-chat-item>\n }\n </div>\n </div>\n <div>\n <axm-chat-item-footer></axm-chat-item-footer>\n </div>\n </div>\n </div>\n <div class=\"ax-h-full md:ax-w-3/5 xl:ax-w-3/4 ax-relative\">\n <axm-chat-preview-header (pressBack)=\"goBack()\"></axm-chat-preview-header>\n <!-- <axm-chat-preview></axm-chat-preview> -->\n <router-outlet></router-outlet>\n \n </div>\n</div>\n","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXConversationModule } from '@acorex/components/conversation';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { CommonModule } from '@angular/common';\nimport { EnvironmentProviders, importProvidersFrom, ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AXMChatService, AXMChatServiceImpl } from './chat.service';\nimport { AXMChatItemFooterComponent } from './components/chat-item-footer/chat-item-footer.component';\nimport { AXMChatItemHeaderComponent } from './components/chat-item-header/chat-item-header.component';\nimport { AXMChatItemComponent } from './components/chat-item/chat-item.component';\nimport { AXMChatPreviewHeaderComponent } from './components/chat-preview-header/chat-preview-header.component';\nimport { AXMChatPreviewComponent } from './components/chat-preview/chat-preview.component';\nimport { AXMChatComponent } from './pages/chat/chat.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: AXPRootLayoutComponent,\n children: [\n {\n path: 'chat',\n //loadComponent: () => import('./pages/chat/chat.component').then((i) => i.AXMChatComponent),\n component: AXMChatComponent,\n children: [\n {\n path: ':id',\n // loadComponent: () =>\n // import('./components/chat-preview/chat-preview.component').then((i) => i.AXMChatPreviewComponent),\n component: AXMChatPreviewComponent,\n },\n ],\n },\n ],\n },\n];\n@NgModule({\n declarations: [\n AXMChatItemComponent,\n AXMChatComponent,\n AXMChatItemHeaderComponent,\n AXMChatPreviewComponent,\n AXMChatItemFooterComponent,\n AXMChatPreviewHeaderComponent,\n ],\n imports: [\n AXImageModule,\n AXAvatarModule,\n AXBadgeModule,\n AXDecoratorModule,\n AXTextBoxModule,\n AXTabsModule,\n CommonModule,\n FormsModule,\n AXConversationModule,\n AXButtonModule,\n AXLoadingModule,\n RouterModule.forChild(routes),\n ],\n exports: [\n AXMChatItemComponent,\n AXMChatComponent,\n AXMChatItemHeaderComponent,\n AXMChatPreviewComponent,\n AXMChatItemFooterComponent,\n AXMChatPreviewHeaderComponent,\n RouterModule,\n ],\n providers: [\n {\n provide: AXMChatService,\n useClass: AXMChatServiceImpl,\n },\n importProvidersFrom(AXConversationModule.forRoot()),\n ],\n})\nexport class AXMChatModule {\n static forRoot(config: { provider: Array<Provider | EnvironmentProviders> }): ModuleWithProviders<AXMChatModule> {\n return {\n ngModule: AXMChatModule,\n providers: [config.provider],\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXMChatModule } from './entities/chat/chat.module';\nimport { AXMCommentModule } from './entities/comments/comment.module';\n\n@NgModule({\n imports: [AXMCommentModule, AXMChatModule],\n exports: [AXMCommentModule, AXMChatModule],\n})\nexport class AXMConversationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i5","i6","i8","i4","i2.AXMChatItemComponent","i3.AXMChatItemHeaderComponent","i4.AXMChatItemFooterComponent","i5.AXMChatPreviewHeaderComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-modules-conversation.mjs","sources":["../../../../libs/modules/conversation/src/lib/const.ts","../../../../libs/modules/conversation/src/lib/entities/comments/comments.service.ts","../../../../libs/modules/conversation/src/lib/entities/comments/pages/comment-lookup-popup.component.ts","../../../../libs/modules/conversation/src/lib/entities/comments/pages/comment-list-view.component.ts","../../../../libs/modules/conversation/src/lib/entities/comments/pages/comment-list-view.component.html","../../../../libs/modules/conversation/src/lib/entities/comments/comment.module.ts","../../../../libs/modules/conversation/src/lib/entities/chat/chat.service.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-header/chat-item-header.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item-header/chat-item-header.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item/chat-item.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-item/chat-item.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview/chat-preview.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/components/chat-preview/chat-preview.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/pages/chat/chat.component.ts","../../../../libs/modules/conversation/src/lib/entities/chat/pages/chat/chat.component.html","../../../../libs/modules/conversation/src/lib/entities/chat/chat.module.ts","../../../../libs/modules/conversation/src/lib/conversation.module.ts","../../../../libs/modules/conversation/src/acorex-modules-conversation.ts"],"sourcesContent":["export const AXMConverstionModuleConst = {\n moduleName: 'Converstion',\n moduleRoute: 'converstion',\n i18n: '#converstion',\n chatName: 'Chat',\n commentName: 'Comment',\n};\n","import { AXMEntityCrudServiceImpl, AXPEntityDataProviderImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { AXMConverstionModuleConst } from '../../const';\nimport {\n AXMComment,\n AXMCreateCommentDto,\n AXMCommentEntityModel,\n AXMMessageReactionEntityModel,\n} from './comments.type';\n\nexport abstract class AXMCommentService extends AXMEntityCrudServiceImpl<\n string,\n AXMComment,\n AXMComment,\n AXMCreateCommentDto\n> {\n abstract like(payload: AXMMessageReactionEntityModel): Promise<string>;\n}\n\n@Injectable()\nexport class AXMCommentServiceImpl extends AXMEntityCrudServiceImpl<\n string,\n AXMComment,\n AXMComment,\n AXMCreateCommentDto\n> {\n protected messageReactionDataProvider = new AXPEntityDataProviderImpl<string, AXMMessageReactionEntityModel>(\n super.storageService,\n 'messageReaction'\n );\n\n constructor() {\n super(`${AXMConverstionModuleConst.moduleName}.${AXMConverstionModuleConst.commentName}`);\n }\n\n async like(payload: AXMMessageReactionEntityModel): Promise<string> {\n return this.messageReactionDataProvider.insertOne(payload);\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPLayoutBuilderModule, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { Component } from '@angular/core';\n\n@Component({\n template: `<axp-widgets-container class=\"ax-flex ax-flex-col ax-gap-2 ax-p-4\" [context]=\"context\" (onContextChanged)=\"context=$event.data\">\n <div class=\"ax-m-5\">\n <ng-container axp-widget-renderer [node]=\"lookupNode\" [mode]=\"'edit'\"> </ng-container>\n </div>\n </axp-widgets-container>\n\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Accept & Send\" color=\"primary\" (onClick)=\"handleClose()\"></ax-button>\n </ax-suffix>\n </ax-footer>`,\n imports: [AXDecoratorModule, AXPLayoutBuilderModule, AXButtonModule]\n})\nexport class AXMCommentLookupPopup extends AXBasePageComponent {\n protected lookupNode: AXPWidgetNode = {\n name: 'lookup',\n path: 'lookup',\n type: 'lookup-editor',\n options: {\n entity: 'axoidc.users',\n },\n };\n context = {};\n\n handleClose() {\n this.close({\n result: true,\n data: this.context,\n });\n }\n}\n","import { AXWysiwygContainerComponent } from '@acorex/components/wysiwyg';\nimport { ChangeDetectionStrategy, Component, computed, inject, OnInit, Sanitizer, SecurityContext, signal, viewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AXStyleLookType } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXPopupConfig, AXPopupService } from '@acorex/components/popup';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport { AXMCommentService } from '../comments.service';\nimport { AXMCreateCommentDto, AXMCommentEntityModel, AXMMessageReactionEntityModel } from '../comments.type';\nimport { AXMCommentLookupPopup } from './comment-lookup-popup.component';\nimport { DomSanitizer } from '@angular/platform-browser';\n@Component({\n templateUrl: './comment-list-view.component.html',\n selector: 'axm-comment-list-view',\n standalone: false,\n styles: `ax-wysiwyg-container{\n .ax-editor-container{\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n }\n .ax-error-message{\n padding-left: 0.5rem;\n }\n\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMCommentListViewComponent implements OnInit {\n protected hasCooldown = signal(false);\n protected commentContent = signal('');\n\n protected isSubmitting = signal(false);\n protected isReplyingMode = signal(false);\n protected isEditingMode = signal(false);\n protected isLoading = signal(true);\n\n protected failedImageIds = signal<string[]>([]);\n protected activeReplyComment = signal<undefined | AXMCommentEntityModel>(undefined);\n protected activeEditComment = signal<undefined | AXMCommentEntityModel>(undefined);\n protected wysiwygEditor = viewChild.required<AXWysiwygContainerComponent>('w');\n\n private commentService = inject(AXMCommentService);\n private platform = inject(AXPlatform);\n private route = inject(ActivatedRoute);\n private popupService = inject(AXPopupService);\n private toastService = inject(AXToastService);\n private dialogService = inject(AXDialogService);\n sanitize = inject(DomSanitizer)\n\n private readonly routeParams = this.route.snapshot;\n private getPayload = computed(\n () =>\n ({\n params: this.payload(),\n skip: 0,\n take: 10,\n } as AXPQueryRequest)\n );\n payload = computed(() => ({\n roomType: 'default',\n entityId: this.routeParams.params?.['module'] + '.' + this.routeParams.params?.['entity'],\n instanceId: this.routeParams.params?.['id'],\n }));\n\n protected comments = signal<AXMCommentEntityModel[]>([]);\n private wysiwyg = viewChild<AXWysiwygContainerComponent>('w');\n\n ngOnInit(): void {\n this.loadComments();\n }\n\n protected wysiwygOptions = signal<{\n look: AXStyleLookType;\n }>({\n look: 'solid',\n });\n\n protected avatarConfig = signal<{\n color: string;\n look: 'sharp' | 'soft' | 'rounded';\n type: string;\n }>({\n color: 'primary',\n look: 'rounded',\n type: 'solid', // 'image' | 'text' | 'icon' | 'default'\n });\n\n validateContent = (content: string) => {\n let isValid = true;\n\n if (!content || content === '<p><br></p>') {\n isValid = false;\n }\n return {\n rule: 'callback',\n result: isValid,\n message: isValid ? '' : 'Please fill the content',\n value: content,\n };\n };\n\n sanitizeHtml(htmlContent: string) {\n return this.sanitize.bypassSecurityTrustHtml(htmlContent)\n }\n\n handleImageError(imageId: string): void {\n this.failedImageIds.update((ids) => [...ids, imageId]);\n }\n\n checkImageExists(imageId: string): boolean {\n return !this.failedImageIds().includes(imageId);\n }\n\n extractInitials(name: string): string {\n const words = name.split(' ');\n const initials = words.map((word) => word.charAt(0).toUpperCase());\n return initials.join('');\n }\n\n async loadComments() {\n this.isLoading.set(true);\n // const response = await this.commentService.get(this.payload());\n const response: AXPPagedListResult<AXMCommentEntityModel> = await this.commentService.query(this.getPayload());\n\n this.comments.set(response.items);\n setTimeout(() => {\n this.isLoading.set(false);\n }, 250);\n }\n\n editMessage(comment: AXMCommentEntityModel, reply?: AXMCommentEntityModel) {\n this.isReplyingMode.set(false);\n this.activeReplyComment.set(undefined);\n this.isEditingMode.set(true);\n this.activeEditComment.set(comment);\n const contentToEdit = reply ? reply.content : comment.content;\n this.commentContent.set(contentToEdit);\n document.getElementsByClassName('ql-editor')[0].innerHTML = contentToEdit;\n this.wysiwygEditor().getHostElement().scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n\n replyMessage(comment: AXMCommentEntityModel, reply?: AXMCommentEntityModel) {\n this.isEditingMode.set(false);\n this.activeEditComment.set(undefined);\n this.isReplyingMode.set(true);\n this.activeReplyComment.set(comment);\n if (reply) {\n const mention = `<a data-id=\"${reply.id}\">@${reply.user?.userName}</a> `;\n this.commentContent.set(mention);\n this.wysiwyg()?.focus();\n document.getElementsByClassName('ql-editor')[0].innerHTML = mention;\n }\n this.wysiwygEditor().getHostElement().scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n\n async deleteComment(comment: AXMCommentEntityModel) {\n const dialog = this.dialogService.open({\n icon: 'fa-regular fa-warning',\n content: 'Are you sure you want to delete this comment?',\n title: 'Delete Comment',\n type: 'danger',\n orientation: 'horizontal',\n buttons: [\n {\n text: 'Delete',\n color: 'danger',\n onClick: async (e: any) => {\n e.handled = true;\n e.source.text = 'Deleting...';\n e.source.disabled = true;\n e.source.loading = true;\n try {\n await this.commentService.deleteOne(comment.id!);\n this.removeMessageById(comment.id!);\n this.toastService.show({\n content: 'Comment deleted successfully.',\n color: 'success',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n (this.isEditingMode() && this.activeEditComment()?.id === comment.id) || this.resetReplyEditState;\n dialog.close();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to delete comment!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n },\n },\n {\n text: 'Cancel',\n color: 'default',\n autofocus: true,\n onClick: (e) => {\n dialog.close();\n },\n },\n ],\n closeButton: false,\n });\n }\n\n async deleteReply(comment: AXMCommentEntityModel, reply: AXMCommentEntityModel) {\n const dialog = this.dialogService.open({\n icon: 'fa-regular fa-warning',\n content: 'Are you sure you want to delete this reply?',\n title: 'Delete Reply',\n type: 'danger',\n orientation: 'horizontal',\n buttons: [\n {\n text: 'Delete',\n color: 'danger',\n onClick: async (e: any) => {\n e.handled = true;\n e.source.text = 'Deleting...';\n e.source.disabled = true;\n e.source.loading = true;\n try {\n await this.commentService.deleteOne(comment.id!);\n this.removeMessageById(comment.id!, reply.id);\n this.toastService.show({\n content: 'Comment deleted successfully.',\n color: 'success',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n dialog.close();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to delete comment!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n },\n },\n {\n text: 'Cancel',\n color: 'default',\n autofocus: true,\n onClick: (e) => {\n dialog.close();\n },\n },\n ],\n closeButton: false,\n });\n }\n\n resetReplyEditState() {\n this.isEditingMode.set(false);\n this.activeEditComment.set(undefined);\n this.isReplyingMode.set(false);\n this.activeReplyComment.set(undefined);\n }\n\n async toggleLike(comment: AXMCommentEntityModel, reply?: AXMCommentEntityModel) {\n if (reply) {\n this.updateLikeStatus(comment.id!, reply.id);\n const payload: AXMMessageReactionEntityModel = {\n id: reply.id!,\n messageId: reply.id!,\n type: 'like',\n };\n\n try {\n await this.commentService.like(payload);\n } catch (error) {\n this.updateLikeStatus(comment.id!, reply.id);\n }\n } else {\n this.updateLikeStatus(comment.id!);\n const payload: AXMMessageReactionEntityModel = {\n id: comment.id!,\n messageId: comment.id!,\n type: 'like',\n };\n\n try {\n await this.commentService.like(payload);\n } catch (error) {\n this.updateLikeStatus(comment.id!);\n }\n }\n }\n\n private updateLikeStatus(commentId: string, replyId?: string) {\n this.comments.update((commentsList) => {\n return commentsList.map((comment) => {\n if (comment.id === commentId) {\n if (replyId) {\n const updatedReplies = comment.replies?.map((reply) =>\n reply.id === replyId\n ? {\n ...reply,\n isLiked: !reply.isLiked,\n reactionsCount: reply.isLiked ? --reply.reactionsCount! : ++reply.reactionsCount!,\n }\n : reply\n );\n\n return {\n ...comment,\n replies: updatedReplies,\n };\n } else {\n return {\n ...comment,\n isLiked: !comment.isLiked,\n reactionsCount: comment.isLiked ? --comment.reactionsCount! : ++comment.reactionsCount!,\n };\n }\n }\n return comment;\n });\n });\n }\n\n private removeMessageById(commentId: string, replyId?: string) {\n this.comments.update((commentsList) =>\n commentsList\n .map((comment) => {\n if (comment.id === commentId) {\n if (replyId) {\n return {\n ...comment,\n replies: comment.replies?.filter((reply) => reply.id !== replyId),\n };\n }\n return null;\n }\n return comment;\n })\n .filter((comment) => comment !== null)\n );\n }\n\n async submitComment(isPrivate: boolean = false): Promise<void> {\n if (!this.validateContent(this.commentContent()).result) {\n return;\n }\n\n let memberLookup;\n if (isPrivate) {\n const popupConfig: AXPopupConfig = {\n header: true,\n size: 'md',\n draggable: true,\n hasBackdrop: true,\n closeButton: true,\n closeOnBackdropClick: false,\n };\n const popup = await this.popupService.open(AXMCommentLookupPopup, popupConfig);\n memberLookup = popup.data?.data?.lookup;\n }\n if (this.isEditingMode()) {\n const payload = {\n content: this.commentContent(),\n };\n //todo why ? need not nullable id !-!\n await this.commentService.updateOne(this.activeEditComment()?.id!, payload);\n this.isSubmitting.set(true);\n this.hasCooldown.set(true);\n this.isEditingMode.set(false);\n this.activeEditComment.set(undefined);\n } else {\n const payload: AXMCreateCommentDto = {\n ...this.payload(),\n content: this.commentContent(),\n contentType: 'text',\n isPrivate: isPrivate,\n replyId: this.activeReplyComment()?.id ?? null,\n //members: isPrivate ? [memberLookup] : [],\n };\n await this.commentService.insertOne(payload);\n this.isSubmitting.set(true);\n this.hasCooldown.set(true);\n\n this.isReplyingMode.set(false);\n this.activeReplyComment.set(undefined);\n }\n const response: AXPPagedListResult<AXMCommentEntityModel> = await this.commentService.query(this.getPayload());\n this.comments.set(response.items);\n this.commentContent.set('');\n document.getElementsByClassName('ql-editor')[0].innerHTML = '';\n this.isSubmitting.set(false);\n setTimeout(() => {\n this.hasCooldown.set(false);\n }, 1000);\n }\n\n scrollMain() {\n console.log('clicked');\n //\n const comment = this.isReplyingMode() ? this.activeReplyComment() : this.activeEditComment();\n const el = document.getElementById((comment as AXMCommentEntityModel).id!);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth', block: 'center' });\n const content = el?.firstElementChild?.children[1] as HTMLElement;\n const prevBg = content.style.background;\n content.style.borderRadius = '0.25rem';\n content.style.transition = 'background 1s ease-in-out';\n content.style.background = `rgba(var(--ax-color-on-surface), var(--tw-bg-opacity))`;\n setTimeout(() => {\n content.style.background = prevBg || 'rgba(0, 0, 0, 0)';\n }, 1000);\n }\n }\n\n calcDefrenetTime(date: Date | undefined) {\n return date ? Date.now() - date.getTime() : undefined;\n }\n}\n","<div class=\"ax-mt-2\">\n <ax-comment-container>\n @if(isLoading()){\n <div class=\"ax-flex ax-items-center ax-py-12 ax-bg-lightest ax-px-5\">\n <ax-skeleton class=\"ax-min-w-16 ax-h-16 ax-rounded-full ax-me-4\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-8/12 ax-h-2 ax-rounded-full\"></ax-skeleton>\n </div>\n </div>\n } @else if(!isLoading() && comments().length > 0){\n <ax-comment-view class=\"ax-bg-lightest\">\n @for(comment of comments(); track comment.id){\n <ax-comment-item [id]=\"comment.id!\" [replyCount]=\"comment.replies?.length ?? 0\">\n <ax-avatar [color]=\"avatarConfig().color\" [shape]=\"avatarConfig().look\">\n @if(checkImageExists(comment.id!) && comment.user && comment.user.picture){\n <ax-image (onError)=\"handleImageError(comment.id!)\" [src]=\"comment.user!.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(comment.user?.firstName + ' ' + comment.user?.lastName)\n }}</span>\n </ax-text>\n }\n </ax-avatar>\n <ax-title>{{ comment.user?.firstName + ' ' + comment.user?.lastName }}</ax-title>\n <ax-comment-date>{{ calcDefrenetTime(comment.createdAt) | format : 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\" (click)=\"editMessage(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(comment.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(comment)\" [liked]=\"comment.isLiked!\">\n {{ comment.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"replyMessage(comment)\"></ax-comment-reply-text>\n @for(reply of comment.replies; track reply.id){\n <ax-comment-item [id]=\"reply.id\">\n <ax-avatar [color]=\"avatarConfig().color\" [shape]=\"avatarConfig().look\">\n @if(reply && checkImageExists(reply.id!) && reply.user && reply.user.picture){\n <ax-image (onError)=\"handleImageError(reply.id!)\" [src]=\"reply.user!.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(reply.user?.firstName + ' ' + reply.user?.lastName)\n }}</span>\n </ax-text>\n }\n </ax-avatar>\n <ax-title>{{ (reply?.user?.firstName ?? '') + ' ' + (reply?.user?.lastName ?? '') }}</ax-title>\n <ax-comment-date>{{ calcDefrenetTime(reply.createdAt) | format : 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\" (click)=\"editMessage(comment, reply)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteReply(comment, reply)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(reply.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(comment, reply)\" [liked]=\"reply.isLiked!\">\n {{ reply.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"replyMessage(comment, reply)\"></ax-comment-reply-text>\n </ax-comment-item>\n }\n </ax-comment-item>\n } </ax-comment-view>} @else{\n <div>\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-justify-center ax-items-center ax-p-10\">\n <svg class=\"ax-mx-auto\" xmlns=\"http://www.w3.org/2000/svg\" width=\"154\" height=\"161\" viewBox=\"0 0 154 161\"\n fill=\"none\">\n <path\n d=\"M0.0616455 84.4268C0.0616455 42.0213 34.435 7.83765 76.6507 7.83765C118.803 7.83765 153.224 42.0055 153.224 84.4268C153.224 102.42 147.026 118.974 136.622 132.034C122.282 150.138 100.367 161 76.6507 161C52.7759 161 30.9882 150.059 16.6633 132.034C6.25961 118.974 0.0616455 102.42 0.0616455 84.4268Z\"\n fill=\"#EEF2FF\" />\n <path\n d=\"M96.8189 0.632498L96.8189 0.632384L96.8083 0.630954C96.2034 0.549581 95.5931 0.5 94.9787 0.5H29.338C22.7112 0.5 17.3394 5.84455 17.3394 12.4473V142.715C17.3394 149.318 22.7112 154.662 29.338 154.662H123.948C130.591 154.662 135.946 149.317 135.946 142.715V38.9309C135.946 38.0244 135.847 37.1334 135.648 36.2586L135.648 36.2584C135.117 33.9309 133.874 31.7686 132.066 30.1333C132.066 30.1331 132.065 30.1329 132.065 30.1327L103.068 3.65203C103.068 3.6519 103.067 3.65177 103.067 3.65164C101.311 2.03526 99.1396 0.995552 96.8189 0.632498Z\"\n fill=\"white\" stroke=\"#E5E7EB\" />\n <ellipse cx=\"80.0618\" cy=\"81\" rx=\"28.0342\" ry=\"28.0342\" fill=\"#EEF2FF\" />\n <path\n d=\"M99.2393 61.3061L99.2391 61.3058C88.498 50.5808 71.1092 50.5804 60.3835 61.3061C49.6423 72.0316 49.6422 89.4361 60.3832 100.162C71.109 110.903 88.4982 110.903 99.2393 100.162C109.965 89.4363 109.965 72.0317 99.2393 61.3061ZM105.863 54.6832C120.249 69.0695 120.249 92.3985 105.863 106.785C91.4605 121.171 68.1468 121.171 53.7446 106.785C39.3582 92.3987 39.3582 69.0693 53.7446 54.683C68.1468 40.2965 91.4605 40.2966 105.863 54.6832Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M110.782 119.267L102.016 110.492C104.888 108.267 107.476 105.651 109.564 102.955L118.329 111.729L110.782 119.267Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M139.122 125.781L139.122 125.78L123.313 109.988C123.313 109.987 123.313 109.987 123.312 109.986C121.996 108.653 119.849 108.657 118.521 109.985L118.871 110.335L118.521 109.985L109.047 119.459C107.731 120.775 107.735 122.918 109.044 124.247L109.047 124.249L124.858 140.06C128.789 143.992 135.191 143.992 139.122 140.06C143.069 136.113 143.069 129.728 139.122 125.781Z\"\n fill=\"#A5B4FC\" stroke=\"#818CF8\" />\n <path\n d=\"M83.185 87.2285C82.5387 87.2285 82.0027 86.6926 82.0027 86.0305C82.0027 83.3821 77.9987 83.3821 77.9987 86.0305C77.9987 86.6926 77.4627 87.2285 76.8006 87.2285C76.1543 87.2285 75.6183 86.6926 75.6183 86.0305C75.6183 80.2294 84.3831 80.2451 84.3831 86.0305C84.3831 86.6926 83.8471 87.2285 83.185 87.2285Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M93.3528 77.0926H88.403C87.7409 77.0926 87.2049 76.5567 87.2049 75.8946C87.2049 75.2483 87.7409 74.7123 88.403 74.7123H93.3528C94.0149 74.7123 94.5509 75.2483 94.5509 75.8946C94.5509 76.5567 94.0149 77.0926 93.3528 77.0926Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M71.5987 77.0925H66.6488C65.9867 77.0925 65.4507 76.5565 65.4507 75.8945C65.4507 75.2481 65.9867 74.7122 66.6488 74.7122H71.5987C72.245 74.7122 72.781 75.2481 72.781 75.8945C72.781 76.5565 72.245 77.0925 71.5987 77.0925Z\"\n fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"21.5128\" width=\"41.0256\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"133.65\" width=\"54.7009\" height=\"5.47009\" rx=\"2.73504\" fill=\"#A5B4FC\" />\n <rect x=\"38.3522\" y=\"29.7179\" width=\"13.6752\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"56.13\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"61.6001\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"67.0702\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n </svg>\n <div>\n <h2 class=\"ax-text-center ax-text-neutral-600 ax-font-semibold ax-leading-loose ax-pb-2\">\n There is no Comment!\n </h2>\n </div>\n </div>\n </div>\n }\n </ax-comment-container>\n <ax-form>\n <ax-form-field>\n <div>\n @if(isReplyingMode() || isEditingMode()){\n <div\n class=\"ax-flex ax-justify-between ax-rounded-b-none ax-border ax-border-b-0 ax-rounded-lg ax-bg-on-surface ax-px-6 ax-py-3 ax-w-full ax-items-center ax-overflow-hidden ax-text-sm ax-leading-none\">\n <div (click)=\"scrollMain()\" class=\"ax-flex ax-justify-start ax-items-center ax-cursor-pointer\">\n <i [class]=\"isReplyingMode() ? 'fa-reply' : 'fa-pen'\"\n class=\"fa-solid ax-text-primary-500 dark:ax-text-primary-300 ax-text-2xl ax-me-4\"></i>\n <div\n class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-between ax-align-middle ax-leading-4 ax-overflow-hidden\">\n <p class=\"ax-text-primary-500 dark:ax-text-primary-300\">\n {{ isReplyingMode() ? 'Reply to ' : 'Edit Message' }}\n <span class=\"ax-font-bold\">\n {{\n isReplyingMode()\n ? activeReplyComment()?.user?.firstName + ' ' + activeReplyComment()?.user?.lastName\n : ''\n }}\n </span>\n </p>\n <div class=\"ax-truncate\" [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.content ?? '')\n : sanitizeHtml(activeEditComment()?.content ?? '')\n \"></div>\n </div>\n </div>\n <div><i (click)=\"resetReplyEditState()\" class=\"fa-solid ax-text-2xl fa-xmark ax-cursor-pointer\"></i></div>\n </div>\n }\n <ax-wysiwyg-container #w [look]=\"wysiwygOptions().look\" [(ngModel)]=\"commentContent\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-toolbar>\n <ax-content>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n </ax-content>\n <ax-suffix>\n <ax-dropdown-button [disabled]=\"hasCooldown()\" type=\"submit\" color=\"primary\" mode=\"split\" text=\"Send\"\n (onClick)=\"submitComment()\">\n @if(isSubmitting()){ <ax-loading></ax-loading> }\n <ax-button-item-list>\n <ax-button-item (click)=\"submitComment(true)\" text=\"Send Private ...\" name=\"private\" data=\"private\">\n <ax-prefix>\n <ax-icon icon=\"fa-regular fa-user-secret\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n </ax-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateContent }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </div>\n </ax-form-field>\n </ax-form>\n</div>","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCommentModule } from '@acorex/components/comment';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { AXWysiwygModule } from '@acorex/components/wysiwyg';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { AXMCommentService, AXMCommentServiceImpl } from './comments.service';\nimport { AXMCommentListViewComponent } from './pages/comment-list-view.component';\n\n@NgModule({\n declarations: [AXMCommentListViewComponent],\n imports: [\n FormsModule,\n CommonModule,\n RouterModule,\n AXDecoratorModule,\n AXWysiwygModule,\n AXButtonModule,\n AXTextBoxModule,\n AXLabelModule,\n AXAvatarModule,\n AXImageModule,\n AXSelectBoxModule,\n AXFormModule,\n AXLoadingModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXFormatModule,\n AXToolBarModule,\n AXSkeletonModule,\n AXCommentModule,\n ],\n exports: [AXMCommentListViewComponent],\n providers: [\n {\n provide: AXMCommentService,\n useClass: AXMCommentServiceImpl,\n },\n ],\n})\nexport class AXMCommentModule {}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { AXMConverstionModuleConst } from '../../const';\nimport { AXMChatRoom } from './chat.type';\n\nexport abstract class AXMChatService extends AXMEntityCrudServiceImpl<string, AXMChatRoom> {\n abstract getTotalUnread(): Promise<number>;\n abstract markChatAsRead(roomId: string): Promise<void>;\n}\n\n@Injectable()\nexport class AXMChatServiceImpl extends AXMChatService {\n override markChatAsRead(roomId: string): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n async getTotalUnread(): Promise<number> {\n throw new Error('Method not implemented.');\n }\n\n constructor() {\n super(`${AXMConverstionModuleConst.moduleName}.${AXMConverstionModuleConst.chatName}`);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'axm-chat-item-footer',\n templateUrl: './chat-item-footer.component.html',\n styleUrls: ['./chat-item-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatItemFooterComponent {}\n","<div class=\"ax-p-4\">\n <ax-button class=\"ax-w-full\" color=\"primary\" text=\"New Conversation\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-plus\"></i>\n </ax-icon>\n </ax-prefix>\n </ax-button>\n</div>\n","import { AXTabsComponent } from '@acorex/components/tabs';\nimport { afterNextRender, ChangeDetectionStrategy, Component, input, output, signal, viewChild } from '@angular/core';\n\n@Component({\n selector: 'axm-chat-item-header',\n templateUrl: './chat-item-header.component.html',\n styleUrls: ['./chat-item-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatItemHeaderComponent {\n total = input.required<number>();\n unread = input.required<number>();\n tab = viewChild.required<AXTabsComponent>('tab');\n tabsState = signal<number>(0);\n activeTab = output<number>();\n constructor() {\n afterNextRender(() => {\n this.tab().onActiveTabChanged.subscribe((i) => {\n this.tabsState.set(i.index);\n this.activeTab.emit(i.index);\n });\n });\n }\n}\n","<div>\n <div class=\"ax-p-3\">\n <ax-text-box look=\"fill\" [placeholder]=\"'Search by username or email ...'\">\n <ax-prefix class=\"ax-ps-2\"> <ax-icon class=\"ax-text-neutral-400 ax-icon ax-icon-search\"> </ax-icon></ax-prefix\n ></ax-text-box>\n </div>\n <ax-divider></ax-divider>\n <ax-tabs #tab class=\"ax-text-neutral-400 ax-border-t\" [look]=\"'with-line'\">\n <ax-tab-item class=\"ax-tabs-fit !ax-py-5\" text=\"All\">\n <ax-suffix>\n <ax-badge [text]=\"total().toString()\" [color]=\"tabsState() === 0 ? 'primary' : 'secondary'\"></ax-badge>\n </ax-suffix>\n </ax-tab-item>\n @if(unread()){\n <ax-tab-item class=\"ax-tabs-fit !ax-py-5\" text=\"Unread\">\n <ax-suffix>\n <ax-badge [text]=\"unread().toString()\" [color]=\"tabsState() === 1 ? 'primary' : 'secondary'\"></ax-badge>\n </ax-suffix>\n </ax-tab-item>\n }\n </ax-tabs>\n</div>\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AXMChatRoom } from '../../chat.type';\n\n@Component({\n selector: 'axm-chat-item',\n templateUrl: './chat-item.component.html',\n styleUrls: ['./chat-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatItemComponent {\n //input\n data = input.required<AXMChatRoom>();\n\n //output\n pressChatItem = output<string>();\n\n //variables\n private sessionService = inject(AXPSessionService);\n private router = inject(Router);\n private activatedRoute = inject(ActivatedRoute);\n protected fullName = computed(() => this.data().roomMembers[0].firstName + ' ' + this.data().roomMembers[0].lastName);\n protected myId = this.sessionService.user?.id;\n\n //methods\n protected extractInitials(name: string): string {\n const words = name.split(' ');\n const initials = words.map((word) => word.charAt(0).toUpperCase());\n return initials.join('');\n }\n\n protected async onPressChatItem(id: string) {\n this.pressChatItem.emit(id);\n await this.router.navigate([id], { relativeTo: this.activatedRoute });\n }\n\n protected messageSeenStatus(): string {\n if (this.myId === this.data().lastMessage.createdBy.id) {\n return '';\n } else {\n if (this.data().lastMessage.hasSeen) {\n return 'ax-icon-dobble-check';\n } else {\n return 'ax-icon-check';\n }\n }\n }\n}\n","<div [id]=\"data().id\" class=\"ax-cursor-pointer hover:ax-bg-on-surface ax-flex ax-items-center ax-p-3 ax-justify-between\"\n (click)=\"onPressChatItem(data().id)\">\n <div class=\"ax-flex ax-min-w-[100px] ax-gap-3\">\n <div>\n <ax-avatar class=\"ax-relative\" color=\"primary\" shape=\"rounded\">\n <ax-badge class=\"ax-absolute ax-bottom-0 ax-right-0 !ax-size-3 ax-border !ax-border-white ax-rounded-full\"\n color=\"success\"></ax-badge>\n @if(data().roomMembers[0].picture){\n <ax-image [src]=\"data().roomMembers[0].picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{ extractInitials(fullName()) }}</span>\n </ax-text>\n }\n </ax-avatar>\n </div>\n\n <div class=\"ax-py-1 ax-flex ax-flex-col ax-truncate\">\n <p class=\"ax-font-semibold ax-w-full ax-truncate ax-pb-1\">{{ fullName() }}</p>\n <p class=\"ax-text-sm ax-font-normal ax-text-neutral-400 ax-w-full ax-truncate\">\n {{ data().lastMessage.content }}\n </p>\n </div>\n </div>\n\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-1\">\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n @if(true) {\n <ax-icon class=\"ax-icon ax-text-success-500\" [class]=\"messageSeenStatus()\"></ax-icon>\n }\n <ax-text class=\"ax-text-sm ax-font-normal ax-text-neutral-400 ax-text-nowrap\">{{\n data().lastMessage.createdAt.toDateString()\n }}</ax-text>\n </div>\n <ax-badge [class]=\"data().unreadCount ? 'ax-visible' : 'ax-invisible'\" color=\"success\"\n [text]=\"data().unreadCount.toString()\"></ax-badge>\n </div>\n</div>\n<!-- <div class=\"ax-p-3\">\n <div class=\"ax-grid ax-grid-cols-12\">\n \n </div>\n</div> -->","import { ChangeDetectionStrategy, Component, output } from '@angular/core';\n\n@Component({\n selector: 'axm-chat-preview-header',\n templateUrl: './chat-preview-header.component.html',\n styleUrls: ['./chat-preview-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatPreviewHeaderComponent {\n pressBack = output<void>();\n protected emitBack() {\n this.pressBack.emit();\n }\n}\n","<div class=\"ax-flex ax-justify-between ax-items-center ax-py-[0.61rem] ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-gap-5\">\n <div class=\"md:ax-hidden ax-flex ax-justify-center ax-items-center ax-text-xl\">\n <ax-button look=\"blank\" class=\"ax-md\" (onClick)=\"emitBack()\">\n <ax-icon> <i class=\"ax-text-neutral-400 fa-regular fa-chevron-left\"></i></ax-icon>\n </ax-button>\n </div>\n <ax-avatar class=\"ax-relative ax-shrink-0\" color=\"primary\" shape=\"rounded\">\n @if(false){\n <ax-image>\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\"></span>\n </ax-text>\n }\n </ax-avatar>\n <div>\n <div class=\"ax-text-xl\">Office Chat</div>\n <div class=\"ax-text-neutral-400 ax-text-xs\">23 members, 10 online</div>\n </div>\n </div>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-x-10 ax-text-xl ax-text-neutral-400\">\n <i class=\"fa-regular fa-phone-flip\"> </i>\n <i class=\"fa-regular fa-search\"> </i>\n <i class=\"fa-regular fa-ellipsis-vertical\"> </i>\n </div>\n</div>","import { AXConversationActionEvent, AXConversationService } from '@acorex/components/conversation';\nimport { AXFileService } from '@acorex/core/file';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n OnDestroy,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'axm-chat-preview',\n templateUrl: './chat-preview.component.html',\n styleUrls: ['./chat-preview.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXMChatPreviewComponent implements OnDestroy {\n // Signal for dynamic max-height (using computed logic for real-time updates)\n\n private activatedRoute = inject(ActivatedRoute);\n private fileService: AXFileService = inject(AXFileService);\n private conversationService = inject(AXConversationService);\n\n protected options = signal({\n disabled: false,\n readonly: false,\n value: '',\n });\n\n protected conversationViewMaxHeight = signal('');\n private resizeObserver!: ResizeObserver;\n private initialTextAreaHeight = 0;\n private textareaHeight = signal<number>(0);\n\n private messageId: string;\n\n constructor(private elRef: ElementRef) {\n afterNextRender(() => {\n const textareaContainer = this.elRef.nativeElement.querySelector('ax-conversation-input > div');\n\n if (textareaContainer) {\n this.initialTextAreaHeight = textareaContainer.offsetHeight;\n this.resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === textareaContainer) {\n const currentHeight = entry.contentRect.height;\n this.textareaHeight.set(currentHeight);\n }\n }\n });\n\n this.resizeObserver.observe(textareaContainer);\n } else {\n console.warn('Textarea Container element not found.');\n }\n this.activatedRoute.params.subscribe((params) => {\n console.log(params['id']);\n this.messageId = params['id'];\n this.conversationService.chats.set([\n {\n id: '0',\n sendTime: new Date(),\n type: 'text',\n readTime: new Date(),\n content: this.messageId,\n name: 'test name',\n },\n ]);\n });\n });\n }\n\n protected dynamicHeight = computed(() => {\n const baseOffset = 275;\n const currentHeight = this.textareaHeight();\n const dynamicOffset = baseOffset + (currentHeight - this.initialTextAreaHeight);\n return `calc(100vh - ${dynamicOffset}px) !important`;\n });\n\n ngOnDestroy(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n handleFileChange(event: any): void {\n console.log('File Changed:', event);\n }\n\n handleCancelRecord(event: any): void {\n console.log('Recording Cancelled:', event);\n }\n\n handleEndRecord(event: any): void {\n this.fileService.blobToBase64(event.data.value).then((c) => {\n this.conversationService.chats.update((values: any) => [\n ...values,\n {\n id: `${Math.floor(Math.random() * 100)}`,\n content: c,\n sendTime: new Date(),\n type: 'voice',\n },\n ]);\n });\n }\n\n handleOnSend(e: any): void {\n console.log('Message Sent:', e);\n\n if (e.data.value) {\n this.options.update((prev) => ({ ...prev, value: '' }));\n this.conversationService.chats.update((values: any) => [\n ...values,\n {\n id: `${Math.floor(Math.random() * 100)}`,\n content: e.data.value,\n sendTime: new Date(),\n type: e.data.type,\n replyTo: e.data.replyChat,\n fromId: '10',\n },\n ]);\n }\n this.scrollToEnd();\n }\n\n handleOnAction(e: AXConversationActionEvent): void {\n console.log('Action Triggered:', e);\n }\n\n scrollToEnd() {\n const conversationView = document.querySelector('ax-conversation-view');\n if (conversationView) {\n conversationView.scrollTo({\n top: conversationView.scrollHeight,\n behavior: 'smooth',\n });\n }\n }\n\n addMockMessage() {}\n}\n","<ax-conversation-container>\n <ax-conversation-view (onAction)=\"handleOnAction($event)\" [style.height]=\"dynamicHeight()\"> </ax-conversation-view>\n <ax-conversation-input\n placeholder=\"placeholder\"\n [(ngModel)]=\"options().value\"\n (onSendClick)=\"handleOnSend($event)\"\n (onFileChange)=\"handleFileChange($event)\"\n (onStopRecording)=\"handleEndRecord($event)\"\n (onCancelRecording)=\"handleCancelRecord($event)\"\n >\n </ax-conversation-input>\n</ax-conversation-container>\n","import { AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport { ChangeDetectionStrategy, Component, computed, inject, OnInit, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AXMChatService } from '../../chat.service';\nimport { AXMChatRoom } from '../../chat.type';\n\n@Component({\n selector: 'axm-chat',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AXMChatComponent implements OnInit {\n chatService = inject(AXMChatService);\n private route = inject(ActivatedRoute);\n private readonly routeParams = this.route.snapshot;\n protected data = signal<AXPPagedListResult<AXMChatRoom> | undefined>(undefined);\n protected filteredData = computed(() => (this.data()?.items as AXMChatRoom[]).filter((i) => i.unreadCount));\n\n protected displayData = computed(() => (this.activeTab() ? this.filteredData() : this.data()?.items));\n\n protected activeTab = signal(0);\n\n protected allCount = computed(() => this.data()?.total ?? 0);\n protected unreadCount = signal(0);\n\n async ngOnInit(): Promise<void> {\n await this.loadData();\n }\n private async loadData() {\n this.data.set(\n await this.chatService.query({\n params: {\n roomType: 'default',\n entityId: this.routeParams.params?.['module'] + '.' + this.routeParams.params?.['entity'],\n instanceId: this.routeParams.params?.['id'],\n },\n skip: 0,\n take: 10,\n } as AXPQueryRequest)\n );\n this.unreadCount.set(await this.chatService.getTotalUnread());\n console.log(this.unreadCount());\n }\n\n protected async markChatAsRead(roomId: string) {\n let oldUnreadCount: number | undefined;\n\n try {\n if (this.data()) {\n const targetRoom = this.data()?.items.find((i: AXMChatRoom) => i.id === roomId && i.unreadCount);\n\n if (!targetRoom) {\n return;\n }\n oldUnreadCount = targetRoom.unreadCount;\n // Mark chat as read on the service\n await this.chatService.markChatAsRead(roomId);\n // Update the signal state\n this.data.update((old) => ({\n total: old!.total,\n items: old!.items.map((i: AXMChatRoom) => (i.id === roomId ? { ...i, unreadCount: 0 } : i)),\n }));\n this.unreadCount.update((i) => --i);\n }\n } catch (error) {\n // Roll back the update only if oldUnreadCount is defined\n if (oldUnreadCount !== undefined) {\n this.data.update((old) => ({\n total: old!.total,\n items: old!.items.map((i: AXMChatRoom) => (i.id === roomId ? { ...i, unreadCount: oldUnreadCount! } : i)),\n }));\n }\n console.error('Error marking chat as read:', error);\n }\n }\n setActiveTabData(event: number) {\n this.activeTab.set(event);\n }\n goBack() { }\n}\n","<div class=\"ax-flex ax-h-full\">\n <div class=\"ax-w-full ax-border-e ax-hidden md:ax-block md:ax-w-2/5 xl:ax-w-1/4\" axResizable>\n <div class=\"ax-flex ax-flex-col ax-justify-between ax-h-full\">\n <div>\n <axm-chat-item-header\n (activeTab)=\"setActiveTabData($event)\"\n [unread]=\"unreadCount()\"\n [total]=\"allCount()\"\n ></axm-chat-item-header>\n <div class=\"ax-overflow-y-auto ax-max-h-[calc(100vh-303px)]\">\n @for(i of displayData() ; track i.id){\n <axm-chat-item [data]=\"i\" (click)=\"markChatAsRead(i.id)\"></axm-chat-item>\n }\n </div>\n </div>\n <div>\n <axm-chat-item-footer></axm-chat-item-footer>\n </div>\n </div>\n </div>\n <div class=\"ax-h-full md:ax-w-3/5 xl:ax-w-3/4 ax-relative\">\n <axm-chat-preview-header (pressBack)=\"goBack()\"></axm-chat-preview-header>\n <!-- <axm-chat-preview></axm-chat-preview> -->\n <router-outlet></router-outlet>\n \n </div>\n</div>\n","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXConversationModule } from '@acorex/components/conversation';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { CommonModule } from '@angular/common';\nimport { EnvironmentProviders, importProvidersFrom, ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AXMChatService, AXMChatServiceImpl } from './chat.service';\nimport { AXMChatItemFooterComponent } from './components/chat-item-footer/chat-item-footer.component';\nimport { AXMChatItemHeaderComponent } from './components/chat-item-header/chat-item-header.component';\nimport { AXMChatItemComponent } from './components/chat-item/chat-item.component';\nimport { AXMChatPreviewHeaderComponent } from './components/chat-preview-header/chat-preview-header.component';\nimport { AXMChatPreviewComponent } from './components/chat-preview/chat-preview.component';\nimport { AXMChatComponent } from './pages/chat/chat.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: AXPRootLayoutComponent,\n children: [\n {\n path: 'chat',\n //loadComponent: () => import('./pages/chat/chat.component').then((i) => i.AXMChatComponent),\n component: AXMChatComponent,\n children: [\n {\n path: ':id',\n // loadComponent: () =>\n // import('./components/chat-preview/chat-preview.component').then((i) => i.AXMChatPreviewComponent),\n component: AXMChatPreviewComponent,\n },\n ],\n },\n ],\n },\n];\n@NgModule({\n declarations: [\n AXMChatItemComponent,\n AXMChatComponent,\n AXMChatItemHeaderComponent,\n AXMChatPreviewComponent,\n AXMChatItemFooterComponent,\n AXMChatPreviewHeaderComponent,\n ],\n imports: [\n AXImageModule,\n AXAvatarModule,\n AXBadgeModule,\n AXDecoratorModule,\n AXTextBoxModule,\n AXTabsModule,\n CommonModule,\n FormsModule,\n AXConversationModule,\n AXButtonModule,\n AXLoadingModule,\n RouterModule.forChild(routes),\n ],\n exports: [\n AXMChatItemComponent,\n AXMChatComponent,\n AXMChatItemHeaderComponent,\n AXMChatPreviewComponent,\n AXMChatItemFooterComponent,\n AXMChatPreviewHeaderComponent,\n RouterModule,\n ],\n providers: [\n {\n provide: AXMChatService,\n useClass: AXMChatServiceImpl,\n },\n importProvidersFrom(AXConversationModule.forRoot()),\n ],\n})\nexport class AXMChatModule {\n static forRoot(config: { provider: Array<Provider | EnvironmentProviders> }): ModuleWithProviders<AXMChatModule> {\n return {\n ngModule: AXMChatModule,\n providers: [config.provider],\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXMChatModule } from './entities/chat/chat.module';\nimport { AXMCommentModule } from './entities/comments/comment.module';\n\n@NgModule({\n imports: [AXMCommentModule, AXMChatModule],\n exports: [AXMCommentModule, AXMChatModule],\n})\nexport class AXMConversationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i5","i6","i8","i4","i2.AXMChatItemComponent","i3.AXMChatItemHeaderComponent","i4.AXMChatItemFooterComponent","i5.AXMChatPreviewHeaderComponent"],"mappings":"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"}
|