@acorex/modules 18.2.0 → 18.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/application-management/lib/application-management.source.d.ts +1 -0
- package/application-management/lib/const.d.ts +5 -0
- package/application-management/lib/menu.provider.d.ts +3 -3
- package/application-management/lib/services/application-module-management.service.d.ts +10 -0
- package/application-management/lib/services/edition-management.service.d.ts +10 -0
- package/application-management/lib/services/entity-management.service.d.ts +10 -0
- package/application-management/lib/services/feature-management.service.d.ts +10 -0
- package/application-management/lib/services/permission-management.service.d.ts +10 -0
- package/application-management/lib/services/property-management.service.d.ts +10 -0
- package/auth/lib/auth.config.d.ts +6 -0
- package/auth/lib/login/password/password.component.d.ts +1 -0
- package/auth/lib/menu.provider.d.ts +2 -3
- package/conversation/index.d.ts +15 -4
- package/conversation/lib/const.d.ts +7 -0
- package/conversation/lib/conversation.module.d.ts +3 -3
- package/conversation/lib/entities/chat/chat.module.d.ts +29 -0
- package/conversation/lib/entities/chat/chat.service.d.ts +14 -0
- package/conversation/lib/entities/chat/chat.type.d.ts +22 -0
- package/conversation/lib/entities/chat/components/chat-item/chat-item.component.d.ts +16 -0
- package/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.d.ts +5 -0
- package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts +12 -0
- package/conversation/lib/entities/chat/components/chat-preview/chat-preview.component.d.ts +31 -0
- package/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.d.ts +7 -0
- package/conversation/lib/entities/chat/pages/chat/chat.component.d.ts +23 -0
- package/conversation/lib/{comments → entities/comments}/comment.module.d.ts +1 -1
- package/{platform-management/lib/comments/comment-management.service.d.ts → conversation/lib/entities/comments/comments.service.d.ts} +7 -4
- package/conversation/lib/{comments → entities/comments/pages}/comment-list-view.component.d.ts +1 -1
- package/esm2022/application-management/lib/application-management.module.mjs +36 -1
- package/esm2022/application-management/lib/application-management.source.mjs +2 -1
- package/esm2022/application-management/lib/const.mjs +6 -0
- package/esm2022/application-management/lib/entities/application-module.entity.mjs +10 -13
- package/esm2022/application-management/lib/entities/edition.entity.mjs +10 -13
- package/esm2022/application-management/lib/entities/entity.entity.mjs +10 -13
- package/esm2022/application-management/lib/entities/feature.entity.mjs +10 -13
- package/esm2022/application-management/lib/entities/modules.entity.mjs +2 -2
- package/esm2022/application-management/lib/entities/permission.entity.mjs +10 -13
- package/esm2022/application-management/lib/entities/property.entity.mjs +10 -13
- package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +5 -4
- package/esm2022/application-management/lib/menu.provider.mjs +17 -19
- package/esm2022/application-management/lib/module-designer/module-designer.component.mjs +3 -3
- package/esm2022/application-management/lib/services/application-module-management.service.mjs +17 -0
- package/esm2022/application-management/lib/services/edition-management.service.mjs +17 -0
- package/esm2022/application-management/lib/services/entity-management.service.mjs +17 -0
- package/esm2022/application-management/lib/services/feature-management.service.mjs +17 -0
- package/esm2022/application-management/lib/services/permission-management.service.mjs +17 -0
- package/esm2022/application-management/lib/services/property-management.service.mjs +17 -0
- package/esm2022/auth/lib/account/account.module.mjs +6 -2
- package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +3 -3
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +3 -3
- package/esm2022/auth/lib/auth.config.mjs +1 -1
- package/esm2022/auth/lib/forgot/password/password.component.mjs +2 -2
- package/esm2022/auth/lib/login/password/password.component.mjs +6 -3
- package/esm2022/auth/lib/menu.provider.mjs +32 -44
- package/esm2022/auth/lib/two-factor/two-factor-code/two-factor-code.component.mjs +2 -2
- package/esm2022/backend/lib/data/api/data-provider.mjs +7 -2
- package/esm2022/conversation/index.mjs +16 -5
- package/esm2022/conversation/lib/const.mjs +8 -0
- package/esm2022/conversation/lib/conversation.module.mjs +7 -7
- package/esm2022/conversation/lib/entities/chat/chat.module.mjs +141 -0
- package/esm2022/conversation/lib/entities/chat/chat.service.mjs +23 -0
- package/esm2022/conversation/lib/entities/chat/chat.type.mjs +2 -0
- package/esm2022/conversation/lib/entities/chat/components/chat-item/chat-item.component.mjs +53 -0
- package/esm2022/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.mjs +13 -0
- package/esm2022/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.mjs +28 -0
- package/esm2022/conversation/lib/entities/chat/components/chat-preview/chat-preview.component.mjs +124 -0
- package/esm2022/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.mjs +22 -0
- package/esm2022/conversation/lib/entities/chat/pages/chat/chat.component.mjs +80 -0
- package/esm2022/conversation/lib/entities/comments/comment.module.mjs +100 -0
- package/esm2022/conversation/lib/entities/comments/comments.service.mjs +21 -0
- package/esm2022/conversation/lib/entities/comments/comments.type.mjs +2 -0
- package/esm2022/conversation/lib/entities/comments/pages/comment-list-view.component.mjs +392 -0
- package/esm2022/conversation/lib/{comments → entities/comments/pages}/comment-lookup-popup.component.mjs +1 -1
- package/esm2022/form-template-management/acorex-modules-form-template-management.mjs +5 -0
- package/esm2022/form-template-management/index.mjs +2 -0
- package/esm2022/form-template-management/lib/components/widgets/template-designer/index.mjs +3 -0
- package/esm2022/form-template-management/lib/components/widgets/template-designer/template-designer-widget-view.component.mjs +44 -0
- package/esm2022/form-template-management/lib/components/widgets/template-designer/template-designer-widget.config.mjs +23 -0
- package/esm2022/form-template-management/lib/const.mjs +8 -0
- package/esm2022/form-template-management/lib/entities/category/category.entity.mjs +241 -0
- package/esm2022/form-template-management/lib/entities/category/category.module.mjs +28 -0
- package/esm2022/form-template-management/lib/entities/category/category.service.mjs +17 -0
- package/esm2022/form-template-management/lib/entities/category/category.types.mjs +2 -0
- package/esm2022/form-template-management/lib/entities/category/index.mjs +5 -0
- package/esm2022/form-template-management/lib/entities/template/index.mjs +5 -0
- package/esm2022/form-template-management/lib/entities/template/template.entity.mjs +434 -0
- package/esm2022/form-template-management/lib/entities/template/template.module.mjs +28 -0
- package/esm2022/form-template-management/lib/entities/template/template.service.mjs +17 -0
- package/esm2022/form-template-management/lib/entities/template/template.types.mjs +2 -0
- package/esm2022/form-template-management/lib/entity.provider.mjs +25 -0
- package/esm2022/form-template-management/lib/form-template-management.module.mjs +133 -0
- package/esm2022/form-template-management/lib/menu.provider.mjs +32 -0
- package/esm2022/form-template-management/lib/pages/designer/designer.page.mjs +29 -0
- package/esm2022/form-template-management/lib/services/designer-connector.service.mjs +33 -0
- package/esm2022/form-template-management/lib/services/template.provider.mjs +31 -0
- package/esm2022/form-template-management/lib/workflows/create-template.workflow.mjs +40 -0
- package/esm2022/form-template-management/lib/workflows/design-template.workflow.mjs +32 -0
- package/esm2022/localization-management/acorex-modules-localization-management.mjs +5 -0
- package/esm2022/localization-management/index.mjs +8 -0
- package/esm2022/localization-management/lib/const.mjs +9 -0
- package/esm2022/localization-management/lib/culture/culture.entity.mjs +239 -0
- package/esm2022/localization-management/lib/culture/culture.service.mjs +17 -0
- package/esm2022/localization-management/lib/culture/culture.types.mjs +2 -0
- package/esm2022/localization-management/lib/culture/index.mjs +4 -0
- package/esm2022/localization-management/lib/entity.loader.mjs +36 -0
- package/esm2022/localization-management/lib/language/index.mjs +4 -0
- package/esm2022/localization-management/lib/language/language-slot/language-slot.component.mjs +30 -0
- package/esm2022/localization-management/lib/language/language.entity.mjs +239 -0
- package/esm2022/localization-management/lib/language/language.service.mjs +17 -0
- package/esm2022/localization-management/lib/language/language.types.mjs +2 -0
- package/esm2022/localization-management/lib/localization-management.module.mjs +99 -0
- package/esm2022/localization-management/lib/localization-management.source.mjs +4 -0
- package/esm2022/localization-management/lib/localization-store.service.mjs +34 -0
- package/esm2022/localization-management/lib/menu.provider.mjs +44 -0
- package/esm2022/localization-management/lib/time-zone/index.mjs +4 -0
- package/esm2022/localization-management/lib/time-zone/time-zone.entity.mjs +256 -0
- package/esm2022/localization-management/lib/time-zone/time-zone.service.mjs +17 -0
- package/esm2022/localization-management/lib/time-zone/time-zone.types.mjs +2 -0
- package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-item/admin-notification-item.component.mjs +3 -3
- package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-slot/admin-notification-slot.component.mjs +3 -3
- package/esm2022/notification-management/lib/const.mjs +9 -0
- package/esm2022/notification-management/lib/entities/my-notification.mjs +8 -15
- package/esm2022/notification-management/lib/entities/notification-channel.entity.mjs +3 -3
- package/esm2022/notification-management/lib/entities/notification-template.entity.mjs +4 -4
- package/esm2022/notification-management/lib/entities/notification.entity.mjs +4 -4
- package/esm2022/notification-management/lib/menu.provider.mjs +37 -40
- package/esm2022/platform-management/index.mjs +2 -3
- package/esm2022/platform-management/lib/common/common.module.mjs +65 -0
- package/esm2022/platform-management/lib/common/common.source.mjs +5 -0
- package/esm2022/platform-management/lib/common/country/country-datasource.provider.mjs +27 -0
- package/esm2022/platform-management/lib/common/country/country.entity.mjs +696 -0
- package/esm2022/platform-management/lib/common/country/country.service.mjs +17 -0
- package/esm2022/platform-management/lib/common/country/country.types.mjs +2 -0
- package/esm2022/platform-management/lib/common/country/index.mjs +4 -0
- package/esm2022/platform-management/lib/common/currency/currency.entity.mjs +283 -0
- package/esm2022/platform-management/lib/common/currency/currency.service.mjs +17 -0
- package/esm2022/platform-management/lib/common/currency/currency.types.mjs +2 -0
- package/esm2022/platform-management/lib/common/currency/index.mjs +4 -0
- package/esm2022/platform-management/lib/common/entity.loader.mjs +36 -0
- package/esm2022/platform-management/lib/common/index.mjs +5 -0
- package/esm2022/platform-management/lib/common/province/index.mjs +4 -0
- package/esm2022/platform-management/lib/common/province/province.entity.mjs +307 -0
- package/esm2022/platform-management/lib/common/province/province.service.mjs +17 -0
- package/esm2022/platform-management/lib/common/province/province.types.mjs +2 -0
- package/esm2022/platform-management/lib/const.mjs +12 -0
- package/esm2022/platform-management/lib/global-variables/entities/global-variable.entity.mjs +58 -7
- package/esm2022/platform-management/lib/global-variables/entity.loader.mjs +8 -11
- package/esm2022/platform-management/lib/menu.provider.mjs +56 -34
- package/esm2022/platform-management/lib/platform-management.module.mjs +11 -32
- package/esm2022/setting-management/acorex-modules-setting-management.mjs +5 -0
- package/esm2022/setting-management/index.mjs +5 -0
- package/esm2022/setting-management/lib/const.mjs +7 -0
- package/esm2022/setting-management/lib/entities/index.mjs +2 -0
- package/esm2022/setting-management/lib/entities/setting/index.mjs +5 -0
- package/esm2022/setting-management/lib/entities/setting/setting.entity.mjs +244 -0
- package/esm2022/setting-management/lib/entities/setting/setting.module.mjs +28 -0
- package/esm2022/setting-management/lib/entities/setting/setting.service.mjs +17 -0
- package/esm2022/setting-management/lib/entities/setting/setting.types.mjs +2 -0
- package/esm2022/setting-management/lib/entity.provider.mjs +25 -0
- package/esm2022/setting-management/lib/menu.provider.mjs +32 -0
- package/esm2022/setting-management/lib/setting-management.module.mjs +44 -0
- package/esm2022/text-template-management/acorex-modules-text-template-management.mjs +5 -0
- package/esm2022/text-template-management/index.mjs +6 -0
- package/esm2022/text-template-management/lib/const.mjs +8 -0
- package/esm2022/text-template-management/lib/entities/category/category.entity.mjs +257 -0
- package/esm2022/text-template-management/lib/entities/category/category.module.mjs +28 -0
- package/esm2022/text-template-management/lib/entities/category/category.service.mjs +17 -0
- package/esm2022/text-template-management/lib/entities/category/category.types.mjs +2 -0
- package/esm2022/text-template-management/lib/entities/category/index.mjs +5 -0
- package/esm2022/text-template-management/lib/entities/index.mjs +3 -0
- package/esm2022/text-template-management/lib/entities/template/index.mjs +5 -0
- package/esm2022/text-template-management/lib/entities/template/template.entity.mjs +405 -0
- package/esm2022/text-template-management/lib/entities/template/template.module.mjs +28 -0
- package/esm2022/text-template-management/lib/entities/template/template.service.mjs +17 -0
- package/esm2022/text-template-management/lib/entities/template/template.types.mjs +2 -0
- package/esm2022/text-template-management/lib/entity.provider.mjs +29 -0
- package/esm2022/text-template-management/lib/menu.provider.mjs +37 -0
- package/esm2022/text-template-management/lib/setting.provider.mjs +48 -0
- package/esm2022/text-template-management/lib/text-template-management.module.mjs +56 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-BCaCCEXO.mjs → acorex-modules-application-management-module-designer.component-DjRdIBQt.mjs} +5 -5
- package/fesm2022/{acorex-modules-application-management-module-designer.component-BCaCCEXO.mjs.map → acorex-modules-application-management-module-designer.component-DjRdIBQt.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +356 -257
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-D2WBJhj6.mjs → acorex-modules-auth-acorex-modules-auth-Chw_5AKM.mjs} +46 -52
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-Chw_5AKM.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-B7BwymT_.mjs → acorex-modules-auth-app-chooser.component-DN04Uoqa.mjs} +5 -5
- package/fesm2022/acorex-modules-auth-app-chooser.component-DN04Uoqa.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-login.module-BjvPlYQZ.mjs → acorex-modules-auth-login.module-Bir7SJ8b.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-BjvPlYQZ.mjs.map → acorex-modules-auth-login.module-Bir7SJ8b.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-CeqMPrx8.mjs → acorex-modules-auth-master.layout-DwijDvUp.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-master.layout-CeqMPrx8.mjs.map → acorex-modules-auth-master.layout-DwijDvUp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-87NrYq3i.mjs → acorex-modules-auth-password.component-C1S8V4Bw.mjs} +9 -6
- package/fesm2022/acorex-modules-auth-password.component-C1S8V4Bw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-X3BUidi1.mjs → acorex-modules-auth-password.component-CuLQNJ-W.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-X3BUidi1.mjs.map → acorex-modules-auth-password.component-CuLQNJ-W.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-D1JZT2cF.mjs → acorex-modules-auth-routes-ILpWODmz.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-D1JZT2cF.mjs.map → acorex-modules-auth-routes-ILpWODmz.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-6qDoCUBo.mjs +83 -0
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-6qDoCUBo.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-B_7l39pX.mjs → acorex-modules-auth-two-factor-code.component-BJKmvI7y.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-B_7l39pX.mjs.map → acorex-modules-auth-two-factor-code.component-BJKmvI7y.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-C28ix6Wr.mjs → acorex-modules-auth-two-factor.module-bgwR1LBc.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-C28ix6Wr.mjs.map → acorex-modules-auth-two-factor.module-bgwR1LBc.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-backend.mjs +7 -2
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +501 -44
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-form-template-management-designer.page-NhIPhsRs.mjs +32 -0
- package/fesm2022/acorex-modules-form-template-management-designer.page-NhIPhsRs.mjs.map +1 -0
- package/fesm2022/acorex-modules-form-template-management.mjs +1135 -0
- package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-localization-management.mjs +1025 -0
- package/fesm2022/acorex-modules-localization-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management.mjs +64 -67
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1424 -201
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-setting-management.mjs +393 -0
- package/fesm2022/acorex-modules-setting-management.mjs.map +1 -0
- package/fesm2022/{acorex-modules-template-management.mjs → acorex-modules-text-template-management.mjs} +317 -506
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -0
- package/form-template-management/README.md +4 -0
- package/form-template-management/index.d.ts +1 -0
- package/form-template-management/lib/components/widgets/template-designer/index.d.ts +2 -0
- package/form-template-management/lib/components/widgets/template-designer/template-designer-widget-view.component.d.ts +8 -0
- package/form-template-management/lib/components/widgets/template-designer/template-designer-widget.config.d.ts +7 -0
- package/form-template-management/lib/const.d.ts +7 -0
- package/form-template-management/lib/entities/category/category.entity.d.ts +3 -0
- package/form-template-management/lib/entities/category/category.module.d.ts +6 -0
- package/form-template-management/lib/entities/category/category.service.d.ts +10 -0
- package/form-template-management/lib/entities/category/category.types.d.ts +5 -0
- package/form-template-management/lib/entities/category/index.d.ts +4 -0
- package/form-template-management/lib/entities/template/index.d.ts +4 -0
- package/form-template-management/lib/entities/template/template.entity.d.ts +3 -0
- package/form-template-management/lib/entities/template/template.module.d.ts +6 -0
- package/form-template-management/lib/entities/template/template.service.d.ts +10 -0
- package/form-template-management/lib/entities/template/template.types.d.ts +7 -0
- package/form-template-management/lib/entity.provider.d.ts +9 -0
- package/form-template-management/lib/form-template-management.module.d.ts +12 -0
- package/form-template-management/lib/menu.provider.d.ts +5 -0
- package/form-template-management/lib/pages/designer/designer.page.d.ts +7 -0
- package/form-template-management/lib/services/designer-connector.service.d.ts +7 -0
- package/form-template-management/lib/services/template.provider.d.ts +8 -0
- package/form-template-management/lib/workflows/create-template.workflow.d.ts +2 -0
- package/form-template-management/lib/workflows/design-template.workflow.d.ts +9 -0
- package/localization-management/README.md +4 -0
- package/localization-management/index.d.ts +7 -0
- package/localization-management/lib/const.d.ts +8 -0
- package/localization-management/lib/culture/culture.entity.d.ts +3 -0
- package/localization-management/lib/culture/culture.service.d.ts +10 -0
- package/localization-management/lib/culture/culture.types.d.ts +12 -0
- package/localization-management/lib/culture/index.d.ts +3 -0
- package/localization-management/lib/entity.loader.d.ts +9 -0
- package/localization-management/lib/language/index.d.ts +3 -0
- package/localization-management/lib/language/language-slot/language-slot.component.d.ts +19 -0
- package/localization-management/lib/localization-management.module.d.ts +10 -0
- package/localization-management/lib/localization-management.source.d.ts +3 -0
- package/localization-management/lib/localization-store.service.d.ts +7 -0
- package/localization-management/lib/menu.provider.d.ts +5 -0
- package/localization-management/lib/time-zone/index.d.ts +3 -0
- package/{template-management/lib/entities/text-template.entity.d.ts → localization-management/lib/time-zone/time-zone.entity.d.ts} +1 -1
- package/localization-management/lib/time-zone/time-zone.service.d.ts +10 -0
- package/localization-management/lib/time-zone/time-zone.types.d.ts +9 -0
- package/notification-management/lib/const.d.ts +8 -0
- package/notification-management/lib/menu.provider.d.ts +3 -3
- package/package.json +34 -22
- package/platform-management/index.d.ts +1 -2
- package/platform-management/lib/common/common.module.d.ts +6 -0
- package/platform-management/lib/common/common.source.d.ts +4 -0
- package/platform-management/lib/common/country/country-datasource.provider.d.ts +5 -0
- package/platform-management/lib/common/country/country.entity.d.ts +3 -0
- package/platform-management/lib/common/country/country.service.d.ts +10 -0
- package/platform-management/lib/common/country/country.types.d.ts +18 -0
- package/platform-management/lib/common/country/index.d.ts +3 -0
- package/platform-management/lib/common/currency/currency.entity.d.ts +3 -0
- package/platform-management/lib/common/currency/currency.service.d.ts +10 -0
- package/platform-management/lib/common/currency/currency.types.d.ts +6 -0
- package/platform-management/lib/common/currency/index.d.ts +3 -0
- package/{template-management/lib → platform-management/lib/common}/entity.loader.d.ts +3 -3
- package/platform-management/lib/common/index.d.ts +4 -0
- package/platform-management/lib/common/province/index.d.ts +3 -0
- package/platform-management/lib/common/province/province.entity.d.ts +3 -0
- package/platform-management/lib/common/province/province.service.d.ts +10 -0
- package/platform-management/lib/common/province/province.types.d.ts +7 -0
- package/platform-management/lib/const.d.ts +11 -0
- package/platform-management/lib/menu.provider.d.ts +3 -3
- package/platform-management/lib/platform-management.module.d.ts +2 -1
- package/setting-management/README.md +3 -0
- package/setting-management/index.d.ts +4 -0
- package/setting-management/lib/const.d.ts +6 -0
- package/setting-management/lib/entities/index.d.ts +1 -0
- package/setting-management/lib/entities/setting/index.d.ts +4 -0
- package/setting-management/lib/entities/setting/setting.entity.d.ts +3 -0
- package/setting-management/lib/entities/setting/setting.module.d.ts +6 -0
- package/setting-management/lib/entities/setting/setting.service.d.ts +10 -0
- package/setting-management/lib/entities/setting/setting.types.d.ts +5 -0
- package/setting-management/lib/entity.provider.d.ts +9 -0
- package/setting-management/lib/menu.provider.d.ts +5 -0
- package/setting-management/lib/setting-management.module.d.ts +7 -0
- package/text-template-management/README.md +3 -0
- package/text-template-management/index.d.ts +5 -0
- package/text-template-management/lib/const.d.ts +7 -0
- package/text-template-management/lib/entities/category/category.entity.d.ts +3 -0
- package/text-template-management/lib/entities/category/category.module.d.ts +6 -0
- package/text-template-management/lib/entities/category/category.service.d.ts +10 -0
- package/text-template-management/lib/entities/category/category.types.d.ts +5 -0
- package/text-template-management/lib/entities/category/index.d.ts +4 -0
- package/text-template-management/lib/entities/index.d.ts +2 -0
- package/text-template-management/lib/entities/template/index.d.ts +4 -0
- package/text-template-management/lib/entities/template/template.entity.d.ts +3 -0
- package/text-template-management/lib/entities/template/template.module.d.ts +6 -0
- package/text-template-management/lib/entities/template/template.service.d.ts +10 -0
- package/text-template-management/lib/entities/template/template.types.d.ts +9 -0
- package/text-template-management/lib/entity.provider.d.ts +9 -0
- package/text-template-management/lib/menu.provider.d.ts +5 -0
- package/text-template-management/lib/setting.provider.d.ts +4 -0
- package/text-template-management/lib/text-template-management.module.d.ts +8 -0
- package/conversation/lib/comments/comments.service.d.ts +0 -5
- package/esm2022/conversation/lib/comments/comment-list-view.component.mjs +0 -393
- package/esm2022/conversation/lib/comments/comment.module.mjs +0 -89
- package/esm2022/conversation/lib/comments/comments.service.mjs +0 -4
- package/esm2022/conversation/lib/comments/comments.type.mjs +0 -2
- package/esm2022/form-management/acorex-modules-form-management.mjs +0 -5
- package/esm2022/form-management/index.mjs +0 -2
- package/esm2022/form-management/lib/designer/designer.page.mjs +0 -24
- package/esm2022/form-management/lib/form-management.module.mjs +0 -53
- package/esm2022/form-management/lib/menu.provider.mjs +0 -35
- package/esm2022/platform-management/lib/comments/comment-management.service.mjs +0 -18
- package/esm2022/platform-management/lib/languages/entities/language.entity.mjs +0 -234
- package/esm2022/platform-management/lib/languages/entity.loader.mjs +0 -26
- package/esm2022/platform-management/lib/languages/index.mjs +0 -5
- package/esm2022/platform-management/lib/languages/language-management.service.mjs +0 -16
- package/esm2022/platform-management/lib/languages/language.types.mjs +0 -2
- package/esm2022/template-management/acorex-modules-template-management.mjs +0 -5
- package/esm2022/template-management/index.mjs +0 -8
- package/esm2022/template-management/lib/entities/category.entity.mjs +0 -234
- package/esm2022/template-management/lib/entities/index.mjs +0 -4
- package/esm2022/template-management/lib/entities/template-variable.entity.mjs +0 -308
- package/esm2022/template-management/lib/entities/text-template.entity.mjs +0 -386
- package/esm2022/template-management/lib/entity.loader.mjs +0 -36
- package/esm2022/template-management/lib/menu.provider.mjs +0 -43
- package/esm2022/template-management/lib/template-management.module.mjs +0 -61
- package/esm2022/template-management/lib/template-management.types.mjs +0 -2
- package/esm2022/template-management/lib/template.service.mjs +0 -17
- package/esm2022/template-management/lib/text-management.source.mjs +0 -3
- package/esm2022/template-management/lib/text-template-category.service.mjs +0 -17
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-D2WBJhj6.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-B7BwymT_.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-87NrYq3i.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs +0 -83
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-management-designer.page-SoPH2V7i.mjs +0 -27
- package/fesm2022/acorex-modules-form-management-designer.page-SoPH2V7i.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-management.mjs +0 -93
- package/fesm2022/acorex-modules-form-management.mjs.map +0 -1
- package/fesm2022/acorex-modules-template-management.mjs.map +0 -1
- package/form-management/README.md +0 -4
- package/form-management/index.d.ts +0 -1
- package/form-management/lib/designer/designer.page.d.ts +0 -5
- package/form-management/lib/form-management.module.d.ts +0 -8
- package/form-management/lib/menu.provider.d.ts +0 -5
- package/platform-management/lib/languages/entity.loader.d.ts +0 -9
- package/platform-management/lib/languages/index.d.ts +0 -4
- package/template-management/README.md +0 -3
- package/template-management/index.d.ts +0 -7
- package/template-management/lib/entities/category.entity.d.ts +0 -3
- package/template-management/lib/entities/index.d.ts +0 -3
- package/template-management/lib/entities/template-variable.entity.d.ts +0 -3
- package/template-management/lib/menu.provider.d.ts +0 -5
- package/template-management/lib/template-management.module.d.ts +0 -6
- package/template-management/lib/template-management.types.d.ts +0 -19
- package/template-management/lib/template.service.d.ts +0 -10
- package/template-management/lib/text-management.source.d.ts +0 -2
- package/template-management/lib/text-template-category.service.d.ts +0 -10
- /package/conversation/lib/{comments → entities/comments}/comments.type.d.ts +0 -0
- /package/conversation/lib/{comments → entities/comments/pages}/comment-lookup-popup.component.d.ts +0 -0
- /package/{platform-management/lib/languages/entities → localization-management/lib/language}/language.entity.d.ts +0 -0
- /package/{platform-management/lib/languages/language-management.service.d.ts → localization-management/lib/language/language.service.d.ts} +0 -0
- /package/{platform-management/lib/languages → localization-management/lib/language}/language.types.d.ts +0 -0
@@ -1,46 +1,84 @@
|
|
1
|
-
import * as
|
2
|
-
import {
|
3
|
-
import { ActivatedRoute, RouterModule } from '@angular/router';
|
4
|
-
import { AXDialogService } from '@acorex/components/dialog';
|
5
|
-
import { AXPopupService } from '@acorex/components/popup';
|
6
|
-
import { AXToastService } from '@acorex/components/toast';
|
7
|
-
import { AXPlatform } from '@acorex/core/platform';
|
8
|
-
import { AXPHtmlUtils } from '@acorex/platform/core';
|
1
|
+
import * as i2$2 from '@acorex/components/avatar';
|
2
|
+
import { AXAvatarModule } from '@acorex/components/avatar';
|
9
3
|
import * as i4 from '@acorex/components/button';
|
10
4
|
import { AXButtonModule } from '@acorex/components/button';
|
5
|
+
import * as i12 from '@acorex/components/comment';
|
6
|
+
import { AXCommentModule } from '@acorex/components/comment';
|
11
7
|
import * as i2 from '@acorex/components/decorators';
|
12
8
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import {
|
17
|
-
import * as i1 from '@angular/forms';
|
18
|
-
import { FormsModule } from '@angular/forms';
|
19
|
-
import * as i3 from '@acorex/components/wysiwyg';
|
20
|
-
import { AXWysiwygModule } from '@acorex/components/wysiwyg';
|
21
|
-
import * as i5 from '@acorex/components/avatar';
|
22
|
-
import { AXAvatarModule } from '@acorex/components/avatar';
|
23
|
-
import * as i6 from '@acorex/components/image';
|
24
|
-
import { AXImageModule } from '@acorex/components/image';
|
9
|
+
import * as i10 from '@acorex/components/dropdown';
|
10
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
11
|
+
import * as i9 from '@acorex/components/dropdown-button';
|
12
|
+
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
25
13
|
import * as i7 from '@acorex/components/form';
|
26
14
|
import { AXFormModule } from '@acorex/components/form';
|
27
|
-
import * as
|
15
|
+
import * as i1$1 from '@acorex/components/image';
|
16
|
+
import { AXImageModule } from '@acorex/components/image';
|
17
|
+
import { AXLabelModule } from '@acorex/components/label';
|
18
|
+
import * as i5 from '@acorex/components/loading';
|
28
19
|
import { AXLoadingModule } from '@acorex/components/loading';
|
29
|
-
import
|
30
|
-
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
31
|
-
import * as i10 from '@acorex/components/dropdown';
|
32
|
-
import { AXDropdownModule } from '@acorex/components/dropdown';
|
20
|
+
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
33
21
|
import * as i11 from '@acorex/components/skeleton';
|
34
22
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
35
|
-
import * as
|
36
|
-
import {
|
37
|
-
import * as
|
38
|
-
import {
|
23
|
+
import * as i3$1 from '@acorex/components/text-box';
|
24
|
+
import { AXTextBoxModule } from '@acorex/components/text-box';
|
25
|
+
import * as i3 from '@acorex/components/wysiwyg';
|
26
|
+
import { AXWysiwygModule } from '@acorex/components/wysiwyg';
|
39
27
|
import * as i14 from '@acorex/core/format';
|
40
28
|
import { AXFormatModule } from '@acorex/core/format';
|
41
|
-
import
|
42
|
-
import {
|
43
|
-
import
|
29
|
+
import * as i13 from '@angular/common';
|
30
|
+
import { CommonModule } from '@angular/common';
|
31
|
+
import * as i0 from '@angular/core';
|
32
|
+
import { Injectable, Component, signal, viewChild, inject, computed, ChangeDetectionStrategy, NgModule, input, output, afterNextRender, ViewEncapsulation, importProvidersFrom } from '@angular/core';
|
33
|
+
import * as i1 from '@angular/forms';
|
34
|
+
import { FormsModule } from '@angular/forms';
|
35
|
+
import * as i2$4 from '@angular/router';
|
36
|
+
import { ActivatedRoute, RouterModule, Router } from '@angular/router';
|
37
|
+
import { AXMEntityCrudServiceImpl, AXPEntityDataProviderImpl } from '@acorex/platform/common';
|
38
|
+
import { AXDialogService } from '@acorex/components/dialog';
|
39
|
+
import { AXPopupService } from '@acorex/components/popup';
|
40
|
+
import { AXToastService } from '@acorex/components/toast';
|
41
|
+
import { AXPlatform } from '@acorex/core/platform';
|
42
|
+
import { AXPHtmlUtils } from '@acorex/platform/core';
|
43
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
44
|
+
import * as i2$1 from '@acorex/platform/layout/builder';
|
45
|
+
import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
46
|
+
import * as i1$2 from '@acorex/components/badge';
|
47
|
+
import { AXBadgeModule } from '@acorex/components/badge';
|
48
|
+
import * as i2$3 from '@acorex/components/conversation';
|
49
|
+
import { AXConversationService, AXConversationModule } from '@acorex/components/conversation';
|
50
|
+
import * as i4$1 from '@acorex/components/tabs';
|
51
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
52
|
+
import * as i1$3 from '@acorex/core/utils';
|
53
|
+
import { UtilsModule } from '@acorex/core/utils';
|
54
|
+
import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
|
55
|
+
import { AXPSessionService } from '@acorex/platform/auth';
|
56
|
+
import { AXFileService } from '@acorex/core/file';
|
57
|
+
|
58
|
+
const AXMConverstionModuleConst = {
|
59
|
+
moduleName: 'Converstion',
|
60
|
+
moduleRoute: 'converstion',
|
61
|
+
i18n: '#converstion',
|
62
|
+
chatName: 'Chat',
|
63
|
+
commentName: 'Comment',
|
64
|
+
};
|
65
|
+
|
66
|
+
class AXMCommentService extends AXMEntityCrudServiceImpl {
|
67
|
+
}
|
68
|
+
class AXMCommentServiceImpl extends AXMEntityCrudServiceImpl {
|
69
|
+
constructor() {
|
70
|
+
super(`${AXMConverstionModuleConst.moduleName}.${AXMConverstionModuleConst.commentName}`);
|
71
|
+
this.messageReactionDataProvider = new AXPEntityDataProviderImpl(super.storageService, 'messageReaction');
|
72
|
+
}
|
73
|
+
async like(payload) {
|
74
|
+
return this.messageReactionDataProvider.insertOne(payload);
|
75
|
+
}
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
77
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentServiceImpl }); }
|
78
|
+
}
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentServiceImpl, decorators: [{
|
80
|
+
type: Injectable
|
81
|
+
}], ctorParameters: () => [] });
|
44
82
|
|
45
83
|
class AXMCommentLookupPopup extends AXBasePageComponent {
|
46
84
|
constructor() {
|
@@ -89,9 +127,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
89
127
|
}]
|
90
128
|
}] });
|
91
129
|
|
92
|
-
class AXMCommentService extends AXMEntityCrudServiceImpl {
|
93
|
-
}
|
94
|
-
|
95
130
|
class AXMCommentListViewComponent {
|
96
131
|
constructor() {
|
97
132
|
this.hasCooldown = signal(false);
|
@@ -434,7 +469,6 @@ class AXMCommentListViewComponent {
|
|
434
469
|
}
|
435
470
|
scrollMain() {
|
436
471
|
console.log('clicked');
|
437
|
-
debugger;
|
438
472
|
//
|
439
473
|
const comment = this.isReplyingMode() ? this.activeReplyComment() : this.activeEditComment();
|
440
474
|
const el = document.getElementById(comment.id);
|
@@ -454,7 +488,7 @@ class AXMCommentListViewComponent {
|
|
454
488
|
return date ? Date.now() - date.getTime() : undefined;
|
455
489
|
}
|
456
490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
457
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMCommentListViewComponent, selector: "axm-comment-list-view", viewQueries: [{ propertyName: "wysiwygEditor", first: true, predicate: ["w"], descendants: true, isSignal: true }, { propertyName: "wysiwyg", first: true, predicate: ["w"], descendants: true, isSignal: true }], ngImport: i0, template: "<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-surface 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-surface\">\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\" [look]=\"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=\"secondary\">\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=\"secondary\" (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\" [look]=\"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=\"secondary\">\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=\"secondary\" (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\n >} @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\n class=\"ax-mx-auto\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"154\"\n height=\"161\"\n viewBox=\"0 0 154 161\"\n fill=\"none\"\n >\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 />\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\"\n stroke=\"#E5E7EB\"\n />\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 />\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 />\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\"\n stroke=\"#818CF8\"\n />\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 />\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 />\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 />\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 >\n <div (click)=\"scrollMain()\" class=\"ax-flex ax-justify-start ax-items-center ax-cursor-pointer\">\n <i\n [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\"\n ></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 >\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\n class=\"ax-truncate\"\n [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.content ?? '')\n : sanitizeHtml(activeEditComment()?.content ?? '')\n \"\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-wysiwyg-toolbar>\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-suffix>\n <ax-dropdown-button\n [disabled]=\"hasCooldown()\"\n type=\"submit\"\n color=\"primary\"\n mode=\"split\"\n text=\"Send\"\n (onClick)=\"submitComment()\"\n >\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-wysiwyg-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>\n", styles: ["ax-wysiwyg-container .ax-editor-container{border-top-left-radius:0!important;border-top-right-radius:0!important}ax-wysiwyg-container .ax-error-message{padding-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i3.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i3.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "component", type: i3.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i3.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i3.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i3.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i3.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i5.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "component", type: i6.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i7.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i7.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i7.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: i8.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i9.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i11.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: i12.AXCommentViewComponent, selector: "ax-comment-view" }, { kind: "component", type: i12.AXCommentContainerComponent, selector: "ax-comment-container" }, { kind: "component", type: i12.AxCommentItemComponent, selector: "ax-comment-item", inputs: ["replyCount"] }, { kind: "component", type: i12.AXCommentLikeComponent, selector: "ax-comment-like", inputs: ["liked"] }, { kind: "component", type: i12.AXMenuOptionsComponent, selector: "ax-comment-menu-options" }, { kind: "component", type: i12.AXCommentReplyTextComponent, selector: "ax-comment-reply-text" }, { kind: "component", type: i12.AXCommentDateComponent, selector: "ax-comment-date" }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
491
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMCommentListViewComponent, selector: "axm-comment-list-view", viewQueries: [{ propertyName: "wysiwygEditor", first: true, predicate: ["w"], descendants: true, isSignal: true }, { propertyName: "wysiwyg", first: true, predicate: ["w"], descendants: true, isSignal: true }], ngImport: i0, template: "<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-surface 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-surface\">\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\" [look]=\"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=\"secondary\">\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=\"secondary\" (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\" [look]=\"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=\"secondary\">\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=\"secondary\" (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\n >} @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\n class=\"ax-mx-auto\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"154\"\n height=\"161\"\n viewBox=\"0 0 154 161\"\n fill=\"none\"\n >\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 />\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\"\n stroke=\"#E5E7EB\"\n />\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 />\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 />\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\"\n stroke=\"#818CF8\"\n />\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 />\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 />\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 />\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 >\n <div (click)=\"scrollMain()\" class=\"ax-flex ax-justify-start ax-items-center ax-cursor-pointer\">\n <i\n [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\"\n ></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 >\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\n class=\"ax-truncate\"\n [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.content ?? '')\n : sanitizeHtml(activeEditComment()?.content ?? '')\n \"\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-wysiwyg-toolbar>\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-suffix>\n <ax-dropdown-button\n [disabled]=\"hasCooldown()\"\n type=\"submit\"\n color=\"primary\"\n mode=\"split\"\n text=\"Send\"\n (onClick)=\"submitComment()\"\n >\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-wysiwyg-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>\n", styles: ["ax-wysiwyg-container .ax-editor-container{border-top-left-radius:0!important;border-top-right-radius:0!important}ax-wysiwyg-container .ax-error-message{padding-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i3.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i3.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "component", type: i3.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i3.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i3.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i3.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i3.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i2$2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "component", type: i1$1.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i7.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i7.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i7.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i9.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i11.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: i12.AXCommentViewComponent, selector: "ax-comment-view" }, { kind: "component", type: i12.AXCommentContainerComponent, selector: "ax-comment-container" }, { kind: "component", type: i12.AxCommentItemComponent, selector: "ax-comment-item", inputs: ["replyCount"] }, { kind: "component", type: i12.AXCommentLikeComponent, selector: "ax-comment-like", inputs: ["liked"] }, { kind: "component", type: i12.AXMenuOptionsComponent, selector: "ax-comment-menu-options" }, { kind: "component", type: i12.AXCommentReplyTextComponent, selector: "ax-comment-reply-text" }, { kind: "component", type: i12.AXCommentDateComponent, selector: "ax-comment-date" }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
458
492
|
}
|
459
493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentListViewComponent, decorators: [{
|
460
494
|
type: Component,
|
@@ -481,7 +515,12 @@ class AXMCommentModule {
|
|
481
515
|
AXFormatModule,
|
482
516
|
AXSkeletonModule,
|
483
517
|
AXCommentModule], exports: [AXMCommentListViewComponent] }); }
|
484
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentModule,
|
518
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentModule, providers: [
|
519
|
+
{
|
520
|
+
provide: AXMCommentService,
|
521
|
+
useClass: AXMCommentServiceImpl,
|
522
|
+
},
|
523
|
+
], imports: [FormsModule,
|
485
524
|
CommonModule,
|
486
525
|
RouterModule,
|
487
526
|
AXDecoratorModule,
|
@@ -525,20 +564,438 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
525
564
|
AXCommentModule,
|
526
565
|
],
|
527
566
|
exports: [AXMCommentListViewComponent],
|
528
|
-
providers: [
|
567
|
+
providers: [
|
568
|
+
{
|
569
|
+
provide: AXMCommentService,
|
570
|
+
useClass: AXMCommentServiceImpl,
|
571
|
+
},
|
572
|
+
],
|
573
|
+
}]
|
574
|
+
}] });
|
575
|
+
|
576
|
+
class AXMChatService extends AXMEntityCrudServiceImpl {
|
577
|
+
}
|
578
|
+
class AXMChatServiceImpl extends AXMChatService {
|
579
|
+
markChatAsRead(roomId) {
|
580
|
+
throw new Error('Method not implemented.');
|
581
|
+
}
|
582
|
+
async getTotalUnread() {
|
583
|
+
throw new Error('Method not implemented.');
|
584
|
+
}
|
585
|
+
constructor() {
|
586
|
+
super(`${AXMConverstionModuleConst.moduleName}.${AXMConverstionModuleConst.chatName}`);
|
587
|
+
}
|
588
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
589
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatServiceImpl }); }
|
590
|
+
}
|
591
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatServiceImpl, decorators: [{
|
592
|
+
type: Injectable
|
593
|
+
}], ctorParameters: () => [] });
|
594
|
+
|
595
|
+
class AXMChatItemFooterComponent {
|
596
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatItemFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
597
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXMChatItemFooterComponent, selector: "axm-chat-item-footer", ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
598
|
+
}
|
599
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatItemFooterComponent, decorators: [{
|
600
|
+
type: Component,
|
601
|
+
args: [{ selector: 'axm-chat-item-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
602
|
+
}] });
|
603
|
+
|
604
|
+
class AXMChatItemHeaderComponent {
|
605
|
+
constructor() {
|
606
|
+
this.total = input.required();
|
607
|
+
this.unread = input.required();
|
608
|
+
this.tab = viewChild.required('tab');
|
609
|
+
this.tabsState = signal(0);
|
610
|
+
this.activeTab = output();
|
611
|
+
afterNextRender(() => {
|
612
|
+
this.tab().onActiveTabChanged.subscribe((i) => {
|
613
|
+
this.tabsState.set(i.index);
|
614
|
+
this.activeTab.emit(i.index);
|
615
|
+
});
|
616
|
+
});
|
617
|
+
}
|
618
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatItemHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
619
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMChatItemHeaderComponent, selector: "axm-chat-item-header", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, unread: { classPropertyName: "unread", publicName: "unread", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { activeTab: "activeTab" }, viewQueries: [{ propertyName: "tab", first: true, predicate: ["tab"], descendants: true, isSignal: true }], ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i4$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i4$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
620
|
+
}
|
621
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatItemHeaderComponent, decorators: [{
|
622
|
+
type: Component,
|
623
|
+
args: [{ selector: 'axm-chat-item-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
624
|
+
}], ctorParameters: () => [] });
|
625
|
+
|
626
|
+
class AXMChatItemComponent {
|
627
|
+
constructor() {
|
628
|
+
//input
|
629
|
+
this.data = input.required();
|
630
|
+
//output
|
631
|
+
this.pressChatItem = output();
|
632
|
+
//variables
|
633
|
+
this.sessionService = inject(AXPSessionService);
|
634
|
+
this.router = inject(Router);
|
635
|
+
this.activatedRoute = inject(ActivatedRoute);
|
636
|
+
this.fullName = computed(() => this.data().roomMembers[0].firstName + ' ' + this.data().roomMembers[0].lastName);
|
637
|
+
this.myId = this.sessionService.user?.id;
|
638
|
+
}
|
639
|
+
//methods
|
640
|
+
extractInitials(name) {
|
641
|
+
const words = name.split(' ');
|
642
|
+
const initials = words.map((word) => word.charAt(0).toUpperCase());
|
643
|
+
return initials.join('');
|
644
|
+
}
|
645
|
+
async onPressChatItem(id) {
|
646
|
+
this.pressChatItem.emit(id);
|
647
|
+
await this.router.navigate([id], { relativeTo: this.activatedRoute });
|
648
|
+
}
|
649
|
+
messageSeenStatus() {
|
650
|
+
if (this.myId === this.data().lastMessage.createdBy.id) {
|
651
|
+
return '';
|
652
|
+
}
|
653
|
+
else {
|
654
|
+
if (this.data().lastMessage.hasSeen) {
|
655
|
+
return 'ax-icon-dobble-check';
|
656
|
+
}
|
657
|
+
else {
|
658
|
+
return 'ax-icon-check';
|
659
|
+
}
|
660
|
+
}
|
661
|
+
}
|
662
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
663
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMChatItemComponent, selector: "axm-chat-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pressChatItem: "pressChatItem" }, ngImport: i0, template: "<div\n [id]=\"data().id\"\n 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>\n <div class=\"ax-flex ax-min-w-[100px] ax-gap-3\">\n <div>\n <ax-avatar class=\"ax-relative\" color=\"primary\" look=\"rounded\">\n <ax-badge\n class=\"ax-absolute ax-bottom-0 ax-right-0 !ax-size-3 ax-border !ax-border-white ax-rounded-full\"\n color=\"success\"\n ></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\n [class]=\"data().unreadCount ? 'ax-visible' : 'ax-invisible'\"\n color=\"success\"\n [text]=\"data().unreadCount.toString()\"\n ></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> -->\n", styles: [".black{background-color:#000}\n"], dependencies: [{ kind: "component", type: i1$1.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i2$2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
664
|
+
}
|
665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatItemComponent, decorators: [{
|
666
|
+
type: Component,
|
667
|
+
args: [{ selector: 'axm-chat-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [id]=\"data().id\"\n 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>\n <div class=\"ax-flex ax-min-w-[100px] ax-gap-3\">\n <div>\n <ax-avatar class=\"ax-relative\" color=\"primary\" look=\"rounded\">\n <ax-badge\n class=\"ax-absolute ax-bottom-0 ax-right-0 !ax-size-3 ax-border !ax-border-white ax-rounded-full\"\n color=\"success\"\n ></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\n [class]=\"data().unreadCount ? 'ax-visible' : 'ax-invisible'\"\n color=\"success\"\n [text]=\"data().unreadCount.toString()\"\n ></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> -->\n", styles: [".black{background-color:#000}\n"] }]
|
668
|
+
}] });
|
669
|
+
|
670
|
+
class AXMChatPreviewHeaderComponent {
|
671
|
+
constructor() {
|
672
|
+
this.pressBack = output();
|
673
|
+
}
|
674
|
+
emitBack() {
|
675
|
+
this.pressBack.emit();
|
676
|
+
}
|
677
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatPreviewHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
678
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMChatPreviewHeaderComponent, selector: "axm-chat-preview-header", outputs: { pressBack: "pressBack" }, ngImport: i0, template: "<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\" look=\"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>\n", styles: [""], dependencies: [{ kind: "component", type: i1$1.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i2$2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
679
|
+
}
|
680
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatPreviewHeaderComponent, decorators: [{
|
681
|
+
type: Component,
|
682
|
+
args: [{ selector: 'axm-chat-preview-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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\" look=\"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>\n" }]
|
683
|
+
}] });
|
684
|
+
|
685
|
+
class AXMChatPreviewComponent {
|
686
|
+
constructor(elRef) {
|
687
|
+
this.elRef = elRef;
|
688
|
+
// Signal for dynamic max-height (using computed logic for real-time updates)
|
689
|
+
this.activatedRoute = inject(ActivatedRoute);
|
690
|
+
this.fileService = inject(AXFileService);
|
691
|
+
this.conversationService = inject(AXConversationService);
|
692
|
+
this.options = signal({
|
693
|
+
disabled: false,
|
694
|
+
readonly: false,
|
695
|
+
value: '',
|
696
|
+
});
|
697
|
+
this.conversationViewMaxHeight = signal('');
|
698
|
+
this.initialTextAreaHeight = 0;
|
699
|
+
this.textareaHeight = signal(0);
|
700
|
+
this.dynamicHeight = computed(() => {
|
701
|
+
const baseOffset = 275;
|
702
|
+
const currentHeight = this.textareaHeight();
|
703
|
+
const dynamicOffset = baseOffset + (currentHeight - this.initialTextAreaHeight);
|
704
|
+
return `calc(100vh - ${dynamicOffset}px) !important`;
|
705
|
+
});
|
706
|
+
afterNextRender(() => {
|
707
|
+
const textareaContainer = this.elRef.nativeElement.querySelector('ax-conversation-input > div');
|
708
|
+
if (textareaContainer) {
|
709
|
+
this.initialTextAreaHeight = textareaContainer.offsetHeight;
|
710
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
711
|
+
for (const entry of entries) {
|
712
|
+
if (entry.target === textareaContainer) {
|
713
|
+
const currentHeight = entry.contentRect.height;
|
714
|
+
this.textareaHeight.set(currentHeight);
|
715
|
+
}
|
716
|
+
}
|
717
|
+
});
|
718
|
+
this.resizeObserver.observe(textareaContainer);
|
719
|
+
}
|
720
|
+
else {
|
721
|
+
console.warn('Textarea Container element not found.');
|
722
|
+
}
|
723
|
+
this.activatedRoute.params.subscribe((params) => {
|
724
|
+
console.log(params['id']);
|
725
|
+
this.messageId = params['id'];
|
726
|
+
this.conversationService.chats.set([
|
727
|
+
{
|
728
|
+
id: '0',
|
729
|
+
sendTime: new Date(),
|
730
|
+
type: 'text',
|
731
|
+
readTime: new Date(),
|
732
|
+
content: this.messageId,
|
733
|
+
name: 'test name',
|
734
|
+
},
|
735
|
+
]);
|
736
|
+
});
|
737
|
+
});
|
738
|
+
}
|
739
|
+
ngOnDestroy() {
|
740
|
+
if (this.resizeObserver) {
|
741
|
+
this.resizeObserver.disconnect();
|
742
|
+
}
|
743
|
+
}
|
744
|
+
handleFileChange(event) {
|
745
|
+
console.log('File Changed:', event);
|
746
|
+
}
|
747
|
+
handleCancelRecord(event) {
|
748
|
+
console.log('Recording Cancelled:', event);
|
749
|
+
}
|
750
|
+
handleEndRecord(event) {
|
751
|
+
this.fileService.blobToBase64(event.data.value).then((c) => {
|
752
|
+
this.conversationService.chats.update((values) => [
|
753
|
+
...values,
|
754
|
+
{
|
755
|
+
id: `${Math.floor(Math.random() * 100)}`,
|
756
|
+
content: c,
|
757
|
+
sendTime: new Date(),
|
758
|
+
type: 'voice',
|
759
|
+
},
|
760
|
+
]);
|
761
|
+
});
|
762
|
+
}
|
763
|
+
handleOnSend(e) {
|
764
|
+
console.log('Message Sent:', e);
|
765
|
+
if (e.data.value) {
|
766
|
+
this.options.update((prev) => ({ ...prev, value: '' }));
|
767
|
+
this.conversationService.chats.update((values) => [
|
768
|
+
...values,
|
769
|
+
{
|
770
|
+
id: `${Math.floor(Math.random() * 100)}`,
|
771
|
+
content: e.data.value,
|
772
|
+
sendTime: new Date(),
|
773
|
+
type: e.data.type,
|
774
|
+
replyTo: e.data.replyChat,
|
775
|
+
fromId: '10',
|
776
|
+
},
|
777
|
+
]);
|
778
|
+
}
|
779
|
+
this.scrollToEnd();
|
780
|
+
}
|
781
|
+
handleOnAction(e) {
|
782
|
+
console.log('Action Triggered:', e);
|
783
|
+
}
|
784
|
+
scrollToEnd() {
|
785
|
+
const conversationView = document.querySelector('ax-conversation-view');
|
786
|
+
if (conversationView) {
|
787
|
+
conversationView.scrollTo({
|
788
|
+
top: conversationView.scrollHeight,
|
789
|
+
behavior: 'smooth',
|
790
|
+
});
|
791
|
+
}
|
792
|
+
}
|
793
|
+
addMockMessage() { }
|
794
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatPreviewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
795
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXMChatPreviewComponent, selector: "axm-chat-preview", ngImport: i0, template: "<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", styles: ["ax-conversation-container>div.ax-conversation-container{padding:1rem!important}ax-conversation-container>div.ax-conversation-container ax-conversation-view{padding:1.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$3.AXConversationViewComponent, selector: "ax-conversation-view", outputs: ["onAction"] }, { kind: "component", type: i2$3.AXConversationInputComponent, selector: "ax-conversation-input", inputs: ["look", "maxLength", "hasAttachment", "haVoice", "acceptFileType"], outputs: ["onSendClick", "onStartRecording", "onCancelRecording"] }, { kind: "component", type: i2$3.AXConversationContainerComponent, selector: "ax-conversation-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
796
|
+
}
|
797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatPreviewComponent, decorators: [{
|
798
|
+
type: Component,
|
799
|
+
args: [{ selector: 'axm-chat-preview', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: ["ax-conversation-container>div.ax-conversation-container{padding:1rem!important}ax-conversation-container>div.ax-conversation-container ax-conversation-view{padding:1.5rem}\n"] }]
|
800
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
801
|
+
|
802
|
+
class AXMChatComponent {
|
803
|
+
constructor() {
|
804
|
+
this.chatService = inject(AXMChatService);
|
805
|
+
this.route = inject(ActivatedRoute);
|
806
|
+
this.routeParams = this.route.snapshot;
|
807
|
+
this.data = signal(undefined);
|
808
|
+
this.filteredData = computed(() => (this.data()?.items).filter((i) => i.unreadCount));
|
809
|
+
this.displayData = computed(() => (this.activeTab() ? this.filteredData() : this.data()?.items));
|
810
|
+
this.activeTab = signal(0);
|
811
|
+
this.allCount = computed(() => this.data()?.total ?? 0);
|
812
|
+
this.unreadCount = signal(0);
|
813
|
+
}
|
814
|
+
async ngOnInit() {
|
815
|
+
await this.loadData();
|
816
|
+
}
|
817
|
+
async loadData() {
|
818
|
+
this.data.set(await this.chatService.query({
|
819
|
+
params: {
|
820
|
+
roomType: 'default',
|
821
|
+
entityId: this.routeParams.params?.['module'] + '.' + this.routeParams.params?.['entity'],
|
822
|
+
instanceId: this.routeParams.params?.['id'],
|
823
|
+
},
|
824
|
+
skip: 0,
|
825
|
+
take: 10,
|
826
|
+
}));
|
827
|
+
this.unreadCount.set(await this.chatService.getTotalUnread());
|
828
|
+
console.log(this.unreadCount());
|
829
|
+
}
|
830
|
+
async markChatAsRead(roomId) {
|
831
|
+
let oldUnreadCount;
|
832
|
+
try {
|
833
|
+
if (this.data()) {
|
834
|
+
const targetRoom = this.data()?.items.find((i) => i.id === roomId && i.unreadCount);
|
835
|
+
if (!targetRoom) {
|
836
|
+
return;
|
837
|
+
}
|
838
|
+
oldUnreadCount = targetRoom.unreadCount;
|
839
|
+
// Mark chat as read on the service
|
840
|
+
await this.chatService.markChatAsRead(roomId);
|
841
|
+
// Update the signal state
|
842
|
+
this.data.update((old) => ({
|
843
|
+
total: old.total,
|
844
|
+
items: old.items.map((i) => (i.id === roomId ? { ...i, unreadCount: 0 } : i)),
|
845
|
+
}));
|
846
|
+
this.unreadCount.update((i) => --i);
|
847
|
+
}
|
848
|
+
}
|
849
|
+
catch (error) {
|
850
|
+
// Roll back the update only if oldUnreadCount is defined
|
851
|
+
if (oldUnreadCount !== undefined) {
|
852
|
+
this.data.update((old) => ({
|
853
|
+
total: old.total,
|
854
|
+
items: old.items.map((i) => (i.id === roomId ? { ...i, unreadCount: oldUnreadCount } : i)),
|
855
|
+
}));
|
856
|
+
}
|
857
|
+
console.error('Error marking chat as read:', error);
|
858
|
+
}
|
859
|
+
}
|
860
|
+
setActiveTabData(event) {
|
861
|
+
this.activeTab.set(event);
|
862
|
+
}
|
863
|
+
goBack() { }
|
864
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
865
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMChatComponent, selector: "axm-chat", ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i1$3.AXResizableDirective, selector: "[axResizable]", inputs: ["minWidth"] }, { kind: "directive", type: i2$4.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AXMChatItemComponent, selector: "axm-chat-item", inputs: ["data"], outputs: ["pressChatItem"] }, { kind: "component", type: AXMChatItemHeaderComponent, selector: "axm-chat-item-header", inputs: ["total", "unread"], outputs: ["activeTab"] }, { kind: "component", type: AXMChatItemFooterComponent, selector: "axm-chat-item-footer" }, { kind: "component", type: AXMChatPreviewHeaderComponent, selector: "axm-chat-preview-header", outputs: ["pressBack"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
866
|
+
}
|
867
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatComponent, decorators: [{
|
868
|
+
type: Component,
|
869
|
+
args: [{ selector: 'axm-chat', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
870
|
+
}] });
|
871
|
+
|
872
|
+
const routes = [
|
873
|
+
{
|
874
|
+
path: '',
|
875
|
+
component: AXPRootLayoutComponent,
|
876
|
+
children: [
|
877
|
+
{
|
878
|
+
path: 'chat',
|
879
|
+
//loadComponent: () => import('./pages/chat/chat.component').then((i) => i.AXMChatComponent),
|
880
|
+
component: AXMChatComponent,
|
881
|
+
children: [
|
882
|
+
{
|
883
|
+
path: ':id',
|
884
|
+
// loadComponent: () =>
|
885
|
+
// import('./components/chat-preview/chat-preview.component').then((i) => i.AXMChatPreviewComponent),
|
886
|
+
component: AXMChatPreviewComponent,
|
887
|
+
},
|
888
|
+
],
|
889
|
+
},
|
890
|
+
],
|
891
|
+
},
|
892
|
+
];
|
893
|
+
class AXMChatModule {
|
894
|
+
static forRoot(config) {
|
895
|
+
return {
|
896
|
+
ngModule: AXMChatModule,
|
897
|
+
providers: [config.provider],
|
898
|
+
};
|
899
|
+
}
|
900
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
901
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMChatModule, declarations: [AXMChatItemComponent,
|
902
|
+
AXMChatComponent,
|
903
|
+
AXMChatItemHeaderComponent,
|
904
|
+
AXMChatPreviewComponent,
|
905
|
+
AXMChatItemFooterComponent,
|
906
|
+
AXMChatPreviewHeaderComponent], imports: [AXImageModule,
|
907
|
+
AXAvatarModule,
|
908
|
+
AXBadgeModule,
|
909
|
+
AXDecoratorModule,
|
910
|
+
AXTextBoxModule,
|
911
|
+
AXTabsModule,
|
912
|
+
CommonModule,
|
913
|
+
FormsModule,
|
914
|
+
AXConversationModule,
|
915
|
+
AXButtonModule,
|
916
|
+
AXLoadingModule,
|
917
|
+
UtilsModule, i2$4.RouterModule], exports: [AXMChatItemComponent,
|
918
|
+
AXMChatComponent,
|
919
|
+
AXMChatItemHeaderComponent,
|
920
|
+
AXMChatPreviewComponent,
|
921
|
+
AXMChatItemFooterComponent,
|
922
|
+
AXMChatPreviewHeaderComponent,
|
923
|
+
RouterModule] }); }
|
924
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatModule, providers: [
|
925
|
+
{
|
926
|
+
provide: AXMChatService,
|
927
|
+
useClass: AXMChatServiceImpl,
|
928
|
+
},
|
929
|
+
importProvidersFrom(AXConversationModule.forRoot()),
|
930
|
+
], imports: [AXImageModule,
|
931
|
+
AXAvatarModule,
|
932
|
+
AXBadgeModule,
|
933
|
+
AXDecoratorModule,
|
934
|
+
AXTextBoxModule,
|
935
|
+
AXTabsModule,
|
936
|
+
CommonModule,
|
937
|
+
FormsModule,
|
938
|
+
AXConversationModule,
|
939
|
+
AXButtonModule,
|
940
|
+
AXLoadingModule,
|
941
|
+
UtilsModule,
|
942
|
+
RouterModule.forChild(routes), RouterModule] }); }
|
943
|
+
}
|
944
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMChatModule, decorators: [{
|
945
|
+
type: NgModule,
|
946
|
+
args: [{
|
947
|
+
declarations: [
|
948
|
+
AXMChatItemComponent,
|
949
|
+
AXMChatComponent,
|
950
|
+
AXMChatItemHeaderComponent,
|
951
|
+
AXMChatPreviewComponent,
|
952
|
+
AXMChatItemFooterComponent,
|
953
|
+
AXMChatPreviewHeaderComponent,
|
954
|
+
],
|
955
|
+
imports: [
|
956
|
+
AXImageModule,
|
957
|
+
AXAvatarModule,
|
958
|
+
AXBadgeModule,
|
959
|
+
AXDecoratorModule,
|
960
|
+
AXTextBoxModule,
|
961
|
+
AXTabsModule,
|
962
|
+
CommonModule,
|
963
|
+
FormsModule,
|
964
|
+
AXConversationModule,
|
965
|
+
AXButtonModule,
|
966
|
+
AXLoadingModule,
|
967
|
+
UtilsModule,
|
968
|
+
RouterModule.forChild(routes),
|
969
|
+
],
|
970
|
+
exports: [
|
971
|
+
AXMChatItemComponent,
|
972
|
+
AXMChatComponent,
|
973
|
+
AXMChatItemHeaderComponent,
|
974
|
+
AXMChatPreviewComponent,
|
975
|
+
AXMChatItemFooterComponent,
|
976
|
+
AXMChatPreviewHeaderComponent,
|
977
|
+
RouterModule,
|
978
|
+
],
|
979
|
+
providers: [
|
980
|
+
{
|
981
|
+
provide: AXMChatService,
|
982
|
+
useClass: AXMChatServiceImpl,
|
983
|
+
},
|
984
|
+
importProvidersFrom(AXConversationModule.forRoot()),
|
985
|
+
],
|
529
986
|
}]
|
530
987
|
}] });
|
531
988
|
|
532
989
|
class AXMConversationModule {
|
533
990
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMConversationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
534
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMConversationModule, imports: [AXMCommentModule], exports: [
|
535
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMConversationModule, imports: [AXMCommentModule] }); }
|
991
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMConversationModule, imports: [AXMCommentModule, AXMChatModule], exports: [AXMCommentModule, AXMChatModule] }); }
|
992
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMConversationModule, imports: [AXMCommentModule, AXMChatModule, AXMCommentModule, AXMChatModule] }); }
|
536
993
|
}
|
537
994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMConversationModule, decorators: [{
|
538
995
|
type: NgModule,
|
539
996
|
args: [{
|
540
|
-
imports: [AXMCommentModule],
|
541
|
-
exports: [
|
997
|
+
imports: [AXMCommentModule, AXMChatModule],
|
998
|
+
exports: [AXMCommentModule, AXMChatModule],
|
542
999
|
}]
|
543
1000
|
}] });
|
544
1001
|
|
@@ -546,5 +1003,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
546
1003
|
* Generated bundle index. Do not edit.
|
547
1004
|
*/
|
548
1005
|
|
549
|
-
export { AXMCommentListViewComponent, AXMCommentModule, AXMCommentService, AXMConversationModule };
|
1006
|
+
export { AXMChatComponent, AXMChatItemComponent, AXMChatItemFooterComponent, AXMChatItemHeaderComponent, AXMChatModule, AXMChatPreviewComponent, AXMChatPreviewHeaderComponent, AXMChatService, AXMChatServiceImpl, AXMCommentListViewComponent, AXMCommentLookupPopup, AXMCommentModule, AXMCommentService, AXMCommentServiceImpl, AXMConversationModule, AXMConverstionModuleConst };
|
550
1007
|
//# sourceMappingURL=acorex-modules-conversation.mjs.map
|