@acorex-platform/module-conversation-client 0.0.57 → 0.0.58

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.
Files changed (28) hide show
  1. package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs} +225 -164
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-BNk7zaP4.mjs → acorex-platform-module-conversation-client-after-message-sent.command-Bp_2U5HU.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-BNk7zaP4.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-Bp_2U5HU.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-LKjjSJ5L.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Duw4WB9K.mjs} +3 -3
  6. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-LKjjSJ5L.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Duw4WB9K.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-conversation-client-assist-message-renderer.component-B3j1g0zP.mjs → acorex-platform-module-conversation-client-assist-message-renderer.component-CnMc1kr_.mjs} +40 -27
  8. package/fesm2022/acorex-platform-module-conversation-client-assist-message-renderer.component-CnMc1kr_.mjs.map +1 -0
  9. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-BRlpKAUb.mjs → acorex-platform-module-conversation-client-chat-call-session-page.component-BCO-UEk3.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-BRlpKAUb.mjs.map → acorex-platform-module-conversation-client-chat-call-session-page.component-BCO-UEk3.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-CS3wAOf9.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-D8VXSxog.mjs} +6 -2
  12. package/fesm2022/acorex-platform-module-conversation-client-chat-call-start-popup.component-D8VXSxog.mjs.map +1 -0
  13. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-BDHn6lsM.mjs → acorex-platform-module-conversation-client-comments-page.component-C7zC8Cqu.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-BDHn6lsM.mjs.map → acorex-platform-module-conversation-client-comments-page.component-C7zC8Cqu.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-BL336_ps.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-kvOvYsa3.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-BL336_ps.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-kvOvYsa3.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-BrDiRNsa.mjs → acorex-platform-module-conversation-client-open-chat.command-CfzIRObR.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-BrDiRNsa.mjs.map → acorex-platform-module-conversation-client-open-chat.command-CfzIRObR.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-DMW93mNL.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-BKphfk-P.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-DMW93mNL.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-BKphfk-P.mjs.map} +1 -1
  21. package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-Bz_jgHiS.mjs → acorex-platform-module-conversation-client-sync-read-state.command-GdaU3JZP.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-Bz_jgHiS.mjs.map → acorex-platform-module-conversation-client-sync-read-state.command-GdaU3JZP.mjs.map} +1 -1
  23. package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
  24. package/package.json +2 -2
  25. package/types/acorex-platform-module-conversation-client.d.ts +4 -0
  26. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs.map +0 -1
  27. package/fesm2022/acorex-platform-module-conversation-client-assist-message-renderer.component-B3j1g0zP.mjs.map +0 -1
  28. package/fesm2022/acorex-platform-module-conversation-client-chat-call-start-popup.component-CS3wAOf9.mjs.map +0 -1
@@ -2,13 +2,14 @@ import { AXPAvatarComponent } from '@acorex-platform/framework-client/layout/com
2
2
  import { AXPRtcApiAbstract } from '@acorex-platform/extension-rtc-core-gateway';
3
3
  import { AXBasePageComponent } from '@acorex/components/page';
4
4
  import { AXPopupService } from '@acorex/components/popup';
5
+ import { AXPDialogOpener } from '@acorex-platform/framework-client/core';
5
6
  import { AXToastService } from '@acorex/components/toast';
6
7
  import * as i1 from '@acorex/core/translation';
7
8
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
8
9
  import { AsyncPipe } from '@angular/common';
9
10
  import * as i0 from '@angular/core';
10
11
  import { inject, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
11
- import { H as AXMChatCallActiveSessionService, I as axmResolveConversationListAvatar, J as axmEnsureChatCallRtcReady, K as axmOpenChatCallSessionDialog } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
12
+ import { H as AXMChatCallActiveSessionService, I as axmResolveConversationListAvatar, J as axmEnsureChatCallRtcReady, K as axmOpenChatCallSessionDialog } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
12
13
 
13
14
  //#region ----- Imports -----
14
15
  //#endregion
@@ -21,6 +22,7 @@ class AXMChatCallStartPopupComponent extends AXBasePageComponent {
21
22
  super(...arguments);
22
23
  //#region ----- Services & Dependencies -----
23
24
  this.popupService = inject(AXPopupService);
25
+ this.dialogOpener = inject(AXPDialogOpener);
24
26
  this.activeCallSessions = inject(AXMChatCallActiveSessionService);
25
27
  this.rtcApi = inject(AXPRtcApiAbstract, { optional: true });
26
28
  this.translationService = inject(AXTranslationService);
@@ -69,12 +71,14 @@ class AXMChatCallStartPopupComponent extends AXBasePageComponent {
69
71
  return;
70
72
  }
71
73
  const popupService = this.popupService;
74
+ const dialogOpener = this.dialogOpener;
72
75
  const activeCallSessions = this.activeCallSessions;
73
76
  this.close();
74
77
  await axmOpenChatCallSessionDialog({
75
78
  conversation,
76
79
  media: mediaType,
77
80
  popupService,
81
+ dialogOpener,
78
82
  activeCallSessions,
79
83
  });
80
84
  }
@@ -89,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
89
93
  }] });
90
94
 
91
95
  export { AXMChatCallStartPopupComponent };
92
- //# sourceMappingURL=acorex-platform-module-conversation-client-chat-call-start-popup.component-CS3wAOf9.mjs.map
96
+ //# sourceMappingURL=acorex-platform-module-conversation-client-chat-call-start-popup.component-D8VXSxog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-conversation-client-chat-call-start-popup.component-D8VXSxog.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/chat/plugins/call/chat-call-start-popup.component.ts","../../../../libs/modules/conversation/client/src/lib/features/chat/plugins/call/chat-call-start-popup.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPAvatarComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPRtcApiAbstract } from '@acorex-platform/extension-rtc-core-gateway';\nimport type { AXConversation } from '@acorex/components/conversation';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPDialogOpener } from '@acorex-platform/framework-client/core';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { axmResolveConversationListAvatar } from '../utils/chat-avatar.util';\nimport { axmEnsureChatCallRtcReady } from './chat-call-rtc-ready.util';\nimport type { AXMChatCallMediaType } from './chat-call-session.types';\nimport { axmOpenChatCallSessionDialog } from './open-chat-call-session.dialog';\nimport { AXMChatCallActiveSessionService } from './chat-call-active-session.service';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport type { AXMChatCallMediaType } from './chat-call-session.types';\n\nexport interface AXMChatCallStartPopupData {\n conversation: AXConversation;\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n/**\n * Call-start popup: choose voice or video for a conversation contact.\n */\n@Component({\n selector: 'axm-chat-call-start-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-dark',\n },\n imports: [AXPAvatarComponent, AXTranslationModule, AsyncPipe],\n templateUrl: './chat-call-start-popup.component.html',\n styles: [\n `\n .axm-chat-call-start-overlay .ax-popup {\n width: min(24rem, 92vw) !important;\n max-width: 92vw;\n }\n\n axm-chat-call-start-popup {\n display: block;\n width: 100%;\n }\n\n .axm-chat-call-start {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n min-height: 0;\n padding: 2rem 1.25rem 1.5rem;\n }\n\n .axm-chat-call-start__content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n max-width: 22rem;\n min-height: 0;\n gap: 2rem;\n }\n\n .axm-chat-call-start__profile {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: 0.625rem;\n margin-top: 0;\n }\n\n .axm-chat-call-start__avatar {\n margin-bottom: 0.25rem;\n }\n\n .axm-chat-call-start__name {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n line-height: 1.3;\n }\n\n .axm-chat-call-start__hint {\n margin: 0;\n max-width: 18rem;\n font-size: 0.8125rem;\n line-height: 1.45;\n opacity: 0.65;\n }\n\n .axm-chat-call-start__actions {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n gap: 0.5rem;\n padding-bottom: 0.25rem;\n }\n\n .axm-chat-call-start__action {\n display: flex;\n flex: 1 1 0;\n min-width: 0;\n max-width: 6.5rem;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n cursor: pointer;\n }\n\n .axm-chat-call-start__action:focus-visible {\n outline: 2px solid rgba(76, 175, 80, 0.8);\n outline-offset: 4px;\n border-radius: 0.5rem;\n }\n\n .axm-chat-call-start__action-circle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 3.5rem;\n height: 3.5rem;\n border-radius: 9999px;\n font-size: 1.25rem;\n }\n\n .axm-chat-call-start__action-circle--primary {\n background: #4caf50;\n color: #ffffff;\n }\n\n .axm-chat-call-start__action-circle--cancel {\n background: #ffffff;\n color: #1a1c1e;\n }\n\n .axm-chat-call-start__action-label {\n font-size: 0.6875rem;\n line-height: 1.25;\n text-align: center;\n white-space: normal;\n word-break: break-word;\n }\n\n .axm-chat-call-start__status {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 2rem;\n text-align: center;\n font-size: 0.9375rem;\n }\n\n .axm-chat-call-start__status--error {\n color: #ff8a80;\n }\n\n .axm-chat-call-start__text-button {\n padding: 0.5rem 1rem;\n border: 1px solid currentColor;\n border-radius: 9999px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n opacity: 0.85;\n }\n `,\n ],\n})\nexport class AXMChatCallStartPopupComponent extends AXBasePageComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly popupService = inject(AXPopupService);\n private readonly dialogOpener = inject(AXPDialogOpener);\n private readonly activeCallSessions = inject(AXMChatCallActiveSessionService);\n private readonly rtcApi = inject(AXPRtcApiAbstract, { optional: true });\n private readonly translationService = inject(AXTranslationService);\n private readonly toastService = inject(AXToastService);\n\n //#endregion\n\n //#region ----- Popup Inputs -----\n\n /** Assigned by {@link AXPopupService} via `data`. */\n conversation?: AXConversation;\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected get hasConversation(): boolean {\n return !!this.conversation?.id?.trim();\n }\n\n protected get displayName(): string {\n if (!this.conversation) {\n return '';\n }\n return axmResolveConversationListAvatar(this.conversation).title;\n }\n\n protected get avatarSrc(): string {\n if (!this.conversation) {\n return '';\n }\n return axmResolveConversationListAvatar(this.conversation).avatar ?? '';\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onStartVideo(): void {\n void this.#beginCall('video');\n }\n\n protected onStartVoice(): void {\n void this.#beginCall('voice');\n }\n\n protected onCancel(): void {\n this.close();\n }\n\n //#endregion\n\n //#region ----- Call Actions -----\n\n async #beginCall(mediaType: AXMChatCallMediaType): Promise<void> {\n const conversation = this.conversation;\n if (!conversation?.id?.trim()) {\n return;\n }\n\n if (\n !(await axmEnsureChatCallRtcReady({\n rtc: this.rtcApi,\n translation: this.translationService,\n toast: this.toastService,\n }))\n ) {\n return;\n }\n\n const popupService = this.popupService;\n const dialogOpener = this.dialogOpener;\n const activeCallSessions = this.activeCallSessions;\n this.close();\n await axmOpenChatCallSessionDialog({\n conversation,\n media: mediaType,\n popupService,\n dialogOpener,\n activeCallSessions,\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-chat-call-start\">\n <!-- ----- Missing conversation payload ----- -->\n @if (!hasConversation) {\n <div class=\"axm-chat-call-start__status axm-chat-call-start__status--error\">\n <p>{{ '@conversation:chat.call.load-error' | translate | async }}</p>\n <button type=\"button\" class=\"axm-chat-call-start__text-button\" (click)=\"onCancel()\">\n {{ '@conversation:chat.call.cancel' | translate | async }}\n </button>\n </div>\n }\n <!-- ----- Call start content ----- -->\n @else {\n <div class=\"axm-chat-call-start__content\">\n <!-- ----- Contact avatar and name ----- -->\n <div class=\"axm-chat-call-start__profile\">\n <axp-avatar\n class=\"axm-chat-call-start__avatar\"\n [size]=\"96\"\n [fullName]=\"displayName\"\n [src]=\"avatarSrc\"\n />\n <h1 class=\"axm-chat-call-start__name\">{{ displayName }}</h1>\n <p class=\"axm-chat-call-start__hint\">\n {{ '@conversation:chat.call.hint' | translate | async }}\n </p>\n </div>\n\n <!-- ----- Voice / cancel / video actions ----- -->\n <div class=\"axm-chat-call-start__actions\">\n <button\n type=\"button\"\n class=\"axm-chat-call-start__action\"\n (click)=\"onStartVideo()\"\n >\n <span class=\"axm-chat-call-start__action-circle axm-chat-call-start__action-circle--primary\">\n <i class=\"fa-solid fa-video\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-chat-call-start__action-label\">\n {{ '@conversation:chat.call.start-video' | translate | async }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"axm-chat-call-start__action\"\n (click)=\"onCancel()\"\n >\n <span class=\"axm-chat-call-start__action-circle axm-chat-call-start__action-circle--cancel\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-chat-call-start__action-label\">\n {{ '@conversation:chat.call.cancel' | translate | async }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"axm-chat-call-start__action\"\n (click)=\"onStartVoice()\"\n >\n <span class=\"axm-chat-call-start__action-circle axm-chat-call-start__action-circle--primary\">\n <i class=\"fa-solid fa-phone\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-chat-call-start__action-label\">\n {{ '@conversation:chat.call.start-call' | translate | async }}\n </span>\n </button>\n </div>\n </div>\n }\n</div>\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { input, inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { ActivatedRoute } from '@angular/router';
4
4
  import { AXPPageLayoutBaseComponent, AXPPageLayoutBase } from '@acorex-platform/framework-client/layout/views';
5
- import { h as AXMCommentComponent } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
5
+ import { h as AXMCommentComponent } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
6
6
 
7
7
  //#region ---- Comments Page Component ----
8
8
  /**
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
80
80
  }], propDecorators: { rootContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "rootContext", required: true }] }], pageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageConfig", required: false }] }] } });
81
81
 
82
82
  export { AXMCommentsPageComponent };
83
- //# sourceMappingURL=acorex-platform-module-conversation-client-comments-page.component-BDHn6lsM.mjs.map
83
+ //# sourceMappingURL=acorex-platform-module-conversation-client-comments-page.component-C7zC8Cqu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-comments-page.component-BDHn6lsM.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/comment/comments-page/comments-page.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';\nimport { AXMCommentComponent } from '../comment.component';\n\n//#region ---- Comments Page Component ----\n\n/**\n * Page component that renders comments using AXMCommentComponent.\n * Used when comments plugin has display: 'page'.\n * Receives rootContext (entity data) and derives refrenceType/refrenceId from route params and context.\n */\n@Component({\n selector: 'axm-comments-page',\n imports: [AXMCommentComponent],\n template: `\n @if (refrenceType() && refrenceId()) {\n <axm-comment\n [refrenceType]=\"refrenceType()!\"\n [refrenceId]=\"refrenceId()!\"\n [subject]=\"subject()\"\n ></axm-comment>\n }\n `,\n styles: `\n\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMCommentsPageComponent,\n },\n ],\n})\nexport class AXMCommentsPageComponent extends AXPPageLayoutBaseComponent {\n\n //#region ---- Inputs ----\n\n /** Entity data context passed by the page host */\n rootContext = input.required<Record<string, any>>();\n\n /** Page-level configuration from the entity page definition */\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private route = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected refrenceType = computed(() => {\n const moduleName = this.route.snapshot.parent?.paramMap.get('module');\n const entityName = this.route.snapshot.paramMap.get('entity');\n if (moduleName && entityName) {\n return `${moduleName}.${entityName}`;\n }\n return null;\n });\n\n protected refrenceId = computed(() => {\n const ctx = this.rootContext();\n return ctx?.['id'] ?? null;\n });\n\n protected subject = computed(() => {\n const ctx = this.rootContext();\n return ctx?.['title'] ?? '';\n });\n\n //#endregion\n\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;AAKA;AAEA;;;;AAIG;AA6BG,MAAO,wBAAyB,SAAQ,0BAA0B,CAAA;AA5BxE,IAAA,WAAA,GAAA;;;;QAiCE,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ;wFAAuB;;AAGnD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK;kGAA2B;;;AAMrC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;;;AAM5B,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrE,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7D,YAAA,IAAI,UAAU,IAAI,UAAU,EAAE;AAC5B,gBAAA,OAAO,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,UAAU,EAAE;YACtC;AACA,YAAA,OAAO,IAAI;QACb,CAAC;yFAAC;AAEQ,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AACnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI;QAC5B,CAAC;uFAAC;AAEQ,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE;QAC7B,CAAC;oFAAC;AAIH,IAAA;8GAzCY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAPxB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,wBAAwB;AACtC,aAAA;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAvBS;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EATS,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA0BlB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA5BpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB,CAAC,mBAAmB,CAAC,EAAA,QAAA,EACpB;;;;;;;;GAQT,EAAA,eAAA,EASgB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAA,wBAA0B;AACtC,yBAAA;AACF,qBAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;;;"}
1
+ {"version":3,"file":"acorex-platform-module-conversation-client-comments-page.component-C7zC8Cqu.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/comment/comments-page/comments-page.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';\nimport { AXMCommentComponent } from '../comment.component';\n\n//#region ---- Comments Page Component ----\n\n/**\n * Page component that renders comments using AXMCommentComponent.\n * Used when comments plugin has display: 'page'.\n * Receives rootContext (entity data) and derives refrenceType/refrenceId from route params and context.\n */\n@Component({\n selector: 'axm-comments-page',\n imports: [AXMCommentComponent],\n template: `\n @if (refrenceType() && refrenceId()) {\n <axm-comment\n [refrenceType]=\"refrenceType()!\"\n [refrenceId]=\"refrenceId()!\"\n [subject]=\"subject()\"\n ></axm-comment>\n }\n `,\n styles: `\n\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMCommentsPageComponent,\n },\n ],\n})\nexport class AXMCommentsPageComponent extends AXPPageLayoutBaseComponent {\n\n //#region ---- Inputs ----\n\n /** Entity data context passed by the page host */\n rootContext = input.required<Record<string, any>>();\n\n /** Page-level configuration from the entity page definition */\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private route = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected refrenceType = computed(() => {\n const moduleName = this.route.snapshot.parent?.paramMap.get('module');\n const entityName = this.route.snapshot.paramMap.get('entity');\n if (moduleName && entityName) {\n return `${moduleName}.${entityName}`;\n }\n return null;\n });\n\n protected refrenceId = computed(() => {\n const ctx = this.rootContext();\n return ctx?.['id'] ?? null;\n });\n\n protected subject = computed(() => {\n const ctx = this.rootContext();\n return ctx?.['title'] ?? '';\n });\n\n //#endregion\n\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injectable } from '@angular/core';
3
- import { A as AXMConversationEntityStoreService } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
3
+ import { A as AXMConversationEntityStoreService } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
4
4
 
5
5
  //#endregion
6
6
  //#region ---- Command ----
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
27
27
  }] });
28
28
 
29
29
  export { AXMConversationMarkConversationUnreadCommand };
30
- //# sourceMappingURL=acorex-platform-module-conversation-client-mark-conversation-unread.command-BL336_ps.mjs.map
30
+ //# sourceMappingURL=acorex-platform-module-conversation-client-mark-conversation-unread.command-kvOvYsa3.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-mark-conversation-unread.command-BL336_ps.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/mark-conversation-unread.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXMConversationEntityStoreService } from '../chat/services/conversation-entity-store.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMMarkConversationUnreadOptions {\n conversationId: string;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationMarkConversationUnreadCommand implements AXPCommand<AXMMarkConversationUnreadOptions, void> {\n private readonly store = inject(AXMConversationEntityStoreService);\n\n async execute(input: AXMMarkConversationUnreadOptions | unknown): AXPCommandExecuteResultPromise<void> {\n const options = input as AXMMarkConversationUnreadOptions;\n const conversation = await this.store.getConversation(options.conversationId);\n if (!conversation) {\n return { success: false };\n }\n const unreadCount = Math.max(1, conversation.unreadCount ?? 0);\n await this.store.setUnreadCount(options.conversationId, unreadCount);\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAiBA;AAEA;MAGa,4CAA4C,CAAA;AADzD,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iCAAiC,CAAC;AAYnE,IAAA;IAVC,MAAM,OAAO,CAAC,KAAiD,EAAA;QAC7D,MAAM,OAAO,GAAG,KAAyC;AACzD,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;AACA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;AAC9D,QAAA,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;AACpE,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3D;8GAZW,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5C,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4CAA4C,cAD/B,MAAM,EAAA,CAAA,CAAA;;2FACnB,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBADxD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
1
+ {"version":3,"file":"acorex-platform-module-conversation-client-mark-conversation-unread.command-kvOvYsa3.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/mark-conversation-unread.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXMConversationEntityStoreService } from '../chat/services/conversation-entity-store.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMMarkConversationUnreadOptions {\n conversationId: string;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationMarkConversationUnreadCommand implements AXPCommand<AXMMarkConversationUnreadOptions, void> {\n private readonly store = inject(AXMConversationEntityStoreService);\n\n async execute(input: AXMMarkConversationUnreadOptions | unknown): AXPCommandExecuteResultPromise<void> {\n const options = input as AXMMarkConversationUnreadOptions;\n const conversation = await this.store.getConversation(options.conversationId);\n if (!conversation) {\n return { success: false };\n }\n const unreadCount = Math.max(1, conversation.unreadCount ?? 0);\n await this.store.setUnreadCount(options.conversationId, unreadCount);\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAiBA;AAEA;MAGa,4CAA4C,CAAA;AADzD,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iCAAiC,CAAC;AAYnE,IAAA;IAVC,MAAM,OAAO,CAAC,KAAiD,EAAA;QAC7D,MAAM,OAAO,GAAG,KAAyC;AACzD,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;AACA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;AAC9D,QAAA,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;AACpE,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3D;8GAZW,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5C,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4CAA4C,cAD/B,MAAM,EAAA,CAAA,CAAA;;2FACnB,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBADxD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
@@ -4,7 +4,7 @@ import { AXPInAppInboxConnectorService } from '@acorex-platform/module-communica
4
4
  import * as i0 from '@angular/core';
5
5
  import { inject, Injectable } from '@angular/core';
6
6
  import { Router } from '@angular/router';
7
- import { g as buildConversationChatInAppCorrelationPrefix } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
7
+ import { g as buildConversationChatInAppCorrelationPrefix } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
8
8
 
9
9
  //#endregion
10
10
  //#region ----- Command -----
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
54
54
  }] });
55
55
 
56
56
  export { AXMConversationOpenChatCommand };
57
- //# sourceMappingURL=acorex-platform-module-conversation-client-open-chat.command-BrDiRNsa.mjs.map
57
+ //# sourceMappingURL=acorex-platform-module-conversation-client-open-chat.command-CfzIRObR.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-open-chat.command-BrDiRNsa.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/open-chat.command.ts"],"sourcesContent":["import { AXConversationService } from '@acorex/components/conversation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPInAppInboxConnectorService } from '@acorex-platform/module-communication-management-client';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { buildConversationChatInAppCorrelationPrefix } from '../chat/services/conversation-chat-notification.util';\n\n//#region ----- Types -----\n\nexport interface AXMOpenChatOptions {\n conversationId?: string;\n}\n\n//#endregion\n\n//#region ----- Command -----\n\n/** Opens an existing conversation in the chat app. */\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationOpenChatCommand implements AXPCommand<AXMOpenChatOptions, { conversationId: string }> {\n //#region ----- Services & Dependencies -----\n\n private readonly conversationService = inject(AXConversationService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly router = inject(Router);\n private readonly inboxConnector = inject(AXPInAppInboxConnectorService, { optional: true });\n\n //#endregion\n\n async execute(input: AXMOpenChatOptions | unknown): AXPCommandExecuteResultPromise<{ conversationId: string }> {\n const conversationId =\n typeof (input as AXMOpenChatOptions)?.conversationId === 'string'\n ? (input as AXMOpenChatOptions).conversationId!.trim()\n : '';\n\n if (!conversationId) {\n return { success: false, message: { text: '@conversation:chat.route.conversation-not-found' } };\n }\n\n await this.markConversationInAppNotificationRead(conversationId);\n\n await this.conversationService.selectConversation(conversationId);\n await this.router.navigate([this.applicationRouteSegment(), 'chat', conversationId]);\n return { success: true, kind: 'object', data: { conversationId } };\n }\n\n //#region ----- Private -----\n\n private async markConversationInAppNotificationRead(conversationId: string): Promise<void> {\n if (!this.inboxConnector) {\n return;\n }\n try {\n await this.inboxConnector.markReadByCorrelationIdPrefix(\n buildConversationChatInAppCorrelationPrefix(conversationId),\n );\n } catch {\n // Best-effort — navigation should still proceed.\n }\n }\n\n private applicationRouteSegment(): string {\n return this.sessionService.application?.name?.trim() || 'platform';\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;AAcA;AAEA;AAEA;MAEa,8BAA8B,CAAA;AAD3C,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACnD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAyC5F,IAAA;;IArCC,MAAM,OAAO,CAAC,KAAmC,EAAA;AAC/C,QAAA,MAAM,cAAc,GAClB,OAAQ,KAA4B,EAAE,cAAc,KAAK;AACvD,cAAG,KAA4B,CAAC,cAAe,CAAC,IAAI;cAClD,EAAE;QAER,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,iDAAiD,EAAE,EAAE;QACjG;AAEA,QAAA,MAAM,IAAI,CAAC,qCAAqC,CAAC,cAAc,CAAC;QAEhE,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACjE,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AACpF,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE;IACpE;;IAIQ,MAAM,qCAAqC,CAAC,cAAsB,EAAA;AACxE,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB;QACF;AACA,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CACrD,2CAA2C,CAAC,cAAc,CAAC,CAC5D;QACH;AAAE,QAAA,MAAM;;QAER;IACF;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU;IACpE;8GA5CW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
1
+ {"version":3,"file":"acorex-platform-module-conversation-client-open-chat.command-CfzIRObR.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/open-chat.command.ts"],"sourcesContent":["import { AXConversationService } from '@acorex/components/conversation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPInAppInboxConnectorService } from '@acorex-platform/module-communication-management-client';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { buildConversationChatInAppCorrelationPrefix } from '../chat/services/conversation-chat-notification.util';\n\n//#region ----- Types -----\n\nexport interface AXMOpenChatOptions {\n conversationId?: string;\n}\n\n//#endregion\n\n//#region ----- Command -----\n\n/** Opens an existing conversation in the chat app. */\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationOpenChatCommand implements AXPCommand<AXMOpenChatOptions, { conversationId: string }> {\n //#region ----- Services & Dependencies -----\n\n private readonly conversationService = inject(AXConversationService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly router = inject(Router);\n private readonly inboxConnector = inject(AXPInAppInboxConnectorService, { optional: true });\n\n //#endregion\n\n async execute(input: AXMOpenChatOptions | unknown): AXPCommandExecuteResultPromise<{ conversationId: string }> {\n const conversationId =\n typeof (input as AXMOpenChatOptions)?.conversationId === 'string'\n ? (input as AXMOpenChatOptions).conversationId!.trim()\n : '';\n\n if (!conversationId) {\n return { success: false, message: { text: '@conversation:chat.route.conversation-not-found' } };\n }\n\n await this.markConversationInAppNotificationRead(conversationId);\n\n await this.conversationService.selectConversation(conversationId);\n await this.router.navigate([this.applicationRouteSegment(), 'chat', conversationId]);\n return { success: true, kind: 'object', data: { conversationId } };\n }\n\n //#region ----- Private -----\n\n private async markConversationInAppNotificationRead(conversationId: string): Promise<void> {\n if (!this.inboxConnector) {\n return;\n }\n try {\n await this.inboxConnector.markReadByCorrelationIdPrefix(\n buildConversationChatInAppCorrelationPrefix(conversationId),\n );\n } catch {\n // Best-effort — navigation should still proceed.\n }\n }\n\n private applicationRouteSegment(): string {\n return this.sessionService.application?.name?.trim() || 'platform';\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;AAcA;AAEA;AAEA;MAEa,8BAA8B,CAAA;AAD3C,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACnD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAyC5F,IAAA;;IArCC,MAAM,OAAO,CAAC,KAAmC,EAAA;AAC/C,QAAA,MAAM,cAAc,GAClB,OAAQ,KAA4B,EAAE,cAAc,KAAK;AACvD,cAAG,KAA4B,CAAC,cAAe,CAAC,IAAI;cAClD,EAAE;QAER,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,iDAAiD,EAAE,EAAE;QACjG;AAEA,QAAA,MAAM,IAAI,CAAC,qCAAqC,CAAC,cAAc,CAAC;QAEhE,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACjE,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AACpF,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE;IACpE;;IAIQ,MAAM,qCAAqC,CAAC,cAAsB,EAAA;AACxE,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB;QACF;AACA,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CACrD,2CAA2C,CAAC,cAAc,CAAC,CAC5D;QACH;AAAE,QAAA,MAAM;;QAER;IACF;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU;IACpE;8GA5CW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injectable } from '@angular/core';
3
- import { a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
3
+ import { a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
4
4
 
5
5
  //#endregion
6
6
  //#region ---- Command ----
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
31
31
  }] });
32
32
 
33
33
  export { AXMConversationRetryAssistResponseCommand };
34
- //# sourceMappingURL=acorex-platform-module-conversation-client-retry-assist-response.command-DMW93mNL.mjs.map
34
+ //# sourceMappingURL=acorex-platform-module-conversation-client-retry-assist-response.command-BKphfk-P.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-retry-assist-response.command-DMW93mNL.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/retry-assist-response.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXConversationMessage } from '@acorex/components/conversation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport { AXM_CONVERSATION_ASSIST_RESPONSE_PORT } from '../chat/services/conversation-assist-response.port';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMRetryAssistResponseOptions {\n conversationId: string;\n messageId: string;\n}\n\nexport interface AXMRetryAssistResponseResult {\n message: AXConversationMessage;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationRetryAssistResponseCommand\n implements AXPCommand<AXMRetryAssistResponseOptions, AXMRetryAssistResponseResult>\n{\n private readonly assistResponse = inject(AXM_CONVERSATION_ASSIST_RESPONSE_PORT, { optional: true });\n\n async execute(input: AXMRetryAssistResponseOptions | unknown): AXPCommandExecuteResultPromise<AXMRetryAssistResponseResult> {\n const options = input as AXMRetryAssistResponseOptions;\n if (!this.assistResponse) {\n return { success: false, message: { text: 'Assist response service is not available.' } };\n }\n\n try {\n const message = await this.assistResponse.retryAssistResponse(options.conversationId, options.messageId);\n return { success: true, kind: 'object', data: { message } };\n } catch (error: unknown) {\n console.error('[Conversation:RetryAssistResponse] Failed:', error);\n return { success: false };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAuBA;AAEA;MAGa,yCAAyC,CAAA;AADtD,IAAA,WAAA,GAAA;QAImB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAgBpG,IAAA;IAdC,MAAM,OAAO,CAAC,KAA8C,EAAA;QAC1D,MAAM,OAAO,GAAG,KAAsC;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE,EAAE;QAC3F;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC;AACxG,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;QAC7D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;IACF;8GAlBW,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yCAAyC,cAD5B,MAAM,EAAA,CAAA,CAAA;;2FACnB,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBADrD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
1
+ {"version":3,"file":"acorex-platform-module-conversation-client-retry-assist-response.command-BKphfk-P.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/retry-assist-response.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXConversationMessage } from '@acorex/components/conversation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport { AXM_CONVERSATION_ASSIST_RESPONSE_PORT } from '../chat/services/conversation-assist-response.port';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMRetryAssistResponseOptions {\n conversationId: string;\n messageId: string;\n}\n\nexport interface AXMRetryAssistResponseResult {\n message: AXConversationMessage;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationRetryAssistResponseCommand\n implements AXPCommand<AXMRetryAssistResponseOptions, AXMRetryAssistResponseResult>\n{\n private readonly assistResponse = inject(AXM_CONVERSATION_ASSIST_RESPONSE_PORT, { optional: true });\n\n async execute(input: AXMRetryAssistResponseOptions | unknown): AXPCommandExecuteResultPromise<AXMRetryAssistResponseResult> {\n const options = input as AXMRetryAssistResponseOptions;\n if (!this.assistResponse) {\n return { success: false, message: { text: 'Assist response service is not available.' } };\n }\n\n try {\n const message = await this.assistResponse.retryAssistResponse(options.conversationId, options.messageId);\n return { success: true, kind: 'object', data: { message } };\n } catch (error: unknown) {\n console.error('[Conversation:RetryAssistResponse] Failed:', error);\n return { success: false };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAuBA;AAEA;MAGa,yCAAyC,CAAA;AADtD,IAAA,WAAA,GAAA;QAImB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAgBpG,IAAA;IAdC,MAAM,OAAO,CAAC,KAA8C,EAAA;QAC1D,MAAM,OAAO,GAAG,KAAsC;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE,EAAE;QAC3F;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC;AACxG,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;QAC7D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;IACF;8GAlBW,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yCAAyC,cAD5B,MAAM,EAAA,CAAA,CAAA;;2FACnB,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBADrD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injectable } from '@angular/core';
3
- import { A as AXMConversationEntityStoreService, d as AXMConversationFocusService, e as AXMConversationInAppNotificationSyncService, f as axmMessageCountsTowardUnread } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
3
+ import { A as AXMConversationEntityStoreService, d as AXMConversationFocusService, e as AXMConversationInAppNotificationSyncService, f as axmMessageCountsTowardUnread } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
4
4
  import { axmIsChannelRoom } from '@acorex-platform/module-conversation-client/contracts';
5
5
 
6
6
  //#endregion
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
65
65
  }] });
66
66
 
67
67
  export { AXMConversationSyncReadStateCommand };
68
- //# sourceMappingURL=acorex-platform-module-conversation-client-sync-read-state.command-Bz_jgHiS.mjs.map
68
+ //# sourceMappingURL=acorex-platform-module-conversation-client-sync-read-state.command-GdaU3JZP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-sync-read-state.command-Bz_jgHiS.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/sync-read-state.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\n\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXMConversationInAppNotificationSyncService } from '../chat/services/conversation-in-app-notification-sync.service';\nimport { AXMConversationEntityStoreService } from '../chat/services/conversation-entity-store.service';\nimport { AXMConversationFocusService } from '../chat/services/conversation-focus.service';\nimport { axmMessageCountsTowardUnread } from '../chat/plugins/utils/conversation-unread.util';\nimport { axmIsChannelRoom } from '@acorex-platform/module-conversation-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMSyncReadStateOptions {\n conversationId: string;\n messageIds?: string[];\n currentUserId: string;\n /** Explicit user action (sidebar Mark as Read). Skips the “must be viewing” guard. */\n force?: boolean;\n /** Inbox row was marked read — do not treat as a chat-page focus requirement. */\n fromInbox?: boolean;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationSyncReadStateCommand implements AXPCommand<AXMSyncReadStateOptions, void> {\n private readonly store = inject(AXMConversationEntityStoreService);\n private readonly focus = inject(AXMConversationFocusService);\n private readonly inAppSync = inject(AXMConversationInAppNotificationSyncService);\n\n async execute(input: AXMSyncReadStateOptions | unknown): AXPCommandExecuteResultPromise<void> {\n const options = input as AXMSyncReadStateOptions;\n const conversationId = options.conversationId?.trim();\n if (!conversationId) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const channelConversation =\n this.store.getCachedConversation(conversationId) ?? (await this.store.getConversation(conversationId));\n if (axmIsChannelRoom(channelConversation)) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const allowWithoutFocus = Boolean(options.force || options.fromInbox);\n if (!allowWithoutFocus && !this.focus.isFocused(conversationId)) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const currentUserId = options.currentUserId?.trim();\n const messageIds = options.messageIds?.filter((id) => id?.trim()) ?? [];\n const idsToMark =\n messageIds.length > 0\n ? messageIds\n : currentUserId\n ? await this.collectUnreadMessageIds(conversationId, currentUserId)\n : [];\n\n if (idsToMark.length > 0 && currentUserId) {\n await this.focus.markMessagesRead(conversationId, idsToMark, currentUserId);\n } else {\n const cachedConversation = this.store.getCachedConversation(conversationId);\n if ((cachedConversation?.unreadCount ?? 0) !== 0) {\n await this.store.setUnreadCount(conversationId, 0);\n }\n }\n\n if (currentUserId) {\n await this.inAppSync.markConversationInAppNotificationRead(conversationId, currentUserId, {\n force: true,\n });\n }\n return { success: true, kind: 'object', data: undefined };\n }\n\n private async collectUnreadMessageIds(conversationId: string, currentUserId: string): Promise<string[]> {\n const cached = this.store.getCachedMessageList(conversationId);\n const messages = cached ?? (await this.store.loadConversationMessages(conversationId));\n return messages\n .filter((message) => axmMessageCountsTowardUnread(message, currentUserId))\n .map((message) => message.id)\n .filter((id): id is string => Boolean(id?.trim()));\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-conversation-client-sync-read-state.command-GdaU3JZP.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/sync-read-state.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\n\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXMConversationInAppNotificationSyncService } from '../chat/services/conversation-in-app-notification-sync.service';\nimport { AXMConversationEntityStoreService } from '../chat/services/conversation-entity-store.service';\nimport { AXMConversationFocusService } from '../chat/services/conversation-focus.service';\nimport { axmMessageCountsTowardUnread } from '../chat/plugins/utils/conversation-unread.util';\nimport { axmIsChannelRoom } from '@acorex-platform/module-conversation-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMSyncReadStateOptions {\n conversationId: string;\n messageIds?: string[];\n currentUserId: string;\n /** Explicit user action (sidebar Mark as Read). Skips the “must be viewing” guard. */\n force?: boolean;\n /** Inbox row was marked read — do not treat as a chat-page focus requirement. */\n fromInbox?: boolean;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationSyncReadStateCommand implements AXPCommand<AXMSyncReadStateOptions, void> {\n private readonly store = inject(AXMConversationEntityStoreService);\n private readonly focus = inject(AXMConversationFocusService);\n private readonly inAppSync = inject(AXMConversationInAppNotificationSyncService);\n\n async execute(input: AXMSyncReadStateOptions | unknown): AXPCommandExecuteResultPromise<void> {\n const options = input as AXMSyncReadStateOptions;\n const conversationId = options.conversationId?.trim();\n if (!conversationId) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const channelConversation =\n this.store.getCachedConversation(conversationId) ?? (await this.store.getConversation(conversationId));\n if (axmIsChannelRoom(channelConversation)) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const allowWithoutFocus = Boolean(options.force || options.fromInbox);\n if (!allowWithoutFocus && !this.focus.isFocused(conversationId)) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const currentUserId = options.currentUserId?.trim();\n const messageIds = options.messageIds?.filter((id) => id?.trim()) ?? [];\n const idsToMark =\n messageIds.length > 0\n ? messageIds\n : currentUserId\n ? await this.collectUnreadMessageIds(conversationId, currentUserId)\n : [];\n\n if (idsToMark.length > 0 && currentUserId) {\n await this.focus.markMessagesRead(conversationId, idsToMark, currentUserId);\n } else {\n const cachedConversation = this.store.getCachedConversation(conversationId);\n if ((cachedConversation?.unreadCount ?? 0) !== 0) {\n await this.store.setUnreadCount(conversationId, 0);\n }\n }\n\n if (currentUserId) {\n await this.inAppSync.markConversationInAppNotificationRead(conversationId, currentUserId, {\n force: true,\n });\n }\n return { success: true, kind: 'object', data: undefined };\n }\n\n private async collectUnreadMessageIds(conversationId: string, currentUserId: string): Promise<string[]> {\n const cached = this.store.getCachedMessageList(conversationId);\n const messages = cached ?? (await this.store.loadConversationMessages(conversationId));\n return messages\n .filter((message) => axmMessageCountsTowardUnread(message, currentUserId))\n .map((message) => message.id)\n .filter((id): id is string => Boolean(id?.trim()));\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { a4 as AXMAddReactionCommand, G as AXMAssistSuggestionChipsComponent, a5 as AXMChannelFeedItemComponent, a6 as AXMChannelFeedPage, a7 as AXMChatAnnouncementChannelService, a8 as AXMChatComponent, a9 as AXMChatComposerAssistPickerComponent, T as AXMChatComposerEnsureAssistConversationDirective, W as AXMChatConversationApi, aa as AXMChatEmptyAssistSessionService, V as AXMChatEntityConversationApi, ab as AXMChatEntityConversationFocusHandler, ac as AXMChatEntityConversationRoomQueryService, ad as AXMChatEntityMessageApi, ae as AXMChatEntityRealtimeApi, af as AXMChatEntityUserApi, o as AXMChatMessageApi, ag as AXMChatRealtimeApi, U as AXMChatUserApi, h as AXMCommentComponent, ah as AXMCommentManagementService, ai as AXMCommentPopupComponent, aj as AXMCommentRealtimeService, ak as AXMCommentRealtimeServiceImpl, al as AXMCommentService, am as AXMCommentServiceImpl, an as AXMCommentWidgetViewComponent, ao as AXMConversationAssistBackgroundOperationHandler, A as AXMConversationEntityStoreService, d as AXMConversationFocusService, ap as AXMConversationModule, Z as AXMConversationRealtimeBus, aq as AXMEntityChatService, ar as AXMMiniChatComponent, as as AXMMiniChatFileDropService, at as AXMMiniChatFooterDockComponent, au as AXMMiniChatHeaderSlotComponent, av as AXMMiniChatHistoryComponent, aw as AXMMiniChatInboxHistoryComponent, ax as AXMMiniChatLauncherComponent, ay as AXMMiniChatPageActionComponent, az as AXMMiniChatPanelComponent, aA as AXMMiniChatPanelService, aB as AXMMiniChatPopupWindowComponent, aC as AXMShowCommentPopupCommand, q as AXM_AI_MANAGEMENT_AGENT_ENTITY_NAME, aD as AXM_AI_MANAGEMENT_ASSIST_ENTITY_NAME, p as AXM_AI_MANAGEMENT_MODULE_NAME, aE as AXM_ASSIST_DEFAULT_RESOLVER_PORT, aF as AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, aG as AXM_CHAT_ASSIST_CATALOG_PORT, aH as AXM_CHAT_EMPTY_STATE_COMPONENT, aI as AXM_CHAT_SIDEBAR_ACTION_PROVIDER, aJ as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS, aK as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY, a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT, aL as AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY, aM as AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE, b as AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, aN as AXM_CONVERSATION_TAB_BOT, aO as AXM_ENTITY_LIST_CHAT_ID, aP as AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER, aQ as AXM_MINI_CHAT_INBOX_SESSION_KEY, aR as AXM_MINI_CHAT_POPUP_DOCK, aS as AXM_MINI_CHAT_SCOPE_ENTITY, aT as AXM_MINI_CHAT_SCOPE_METADATA_KEY, aU as AXPCommentWidget, aV as COMMENTS_PAGE_COMPONENT_KEY, aW as CONVERSATION_AFTER_MESSAGE_SENT_COMMAND, aX as CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND, aY as CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND, aZ as CONVERSATION_OPEN_CHAT_COMMAND, a_ as CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND, a$ as CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND, b0 as CONVERSATION_START_ASSIST_CHAT_COMMAND, b1 as CONVERSATION_START_DIRECT_CHAT_COMMAND, b2 as CONVERSATION_SYNC_READ_STATE_COMMAND, b3 as axmApplyAnswerTextToAssistPayloadLine, b4 as axmAssistFollowUpItemsFromUnknown, z as axmAssistHasFinalizeMetadata, b5 as axmAssistLastTranscriptLine, b6 as axmAssistNormalizeFollowUpItemForConversation, b7 as axmAssistNormalizeFollowUpItemsForConversation, b8 as axmAssistPersistedMessageLooksComplete, b9 as axmAssistResolveFollowUpCommandName, ba as axmAssistStarterPromptChipItems, bb as axmAssistSuggestionIconForLabel, x as axmAssistUserFacingPayloadLine, C as axmAssistUserVisibleItemsForLine, bc as axmAssistWidgetNodeDedupeKey, a3 as axmAssistWidgetNodeFromUnknown, bd as axmBuildAiChatConversationMetadata, be as axmBuildAssistPeerParticipantFromCreateData, bf as axmBuildAssistPeerParticipantFromId, bg as axmBuildAssistTranscriptLinePayload, bh as axmBuildAutoTitleFromUserText, bi as axmBuildEntityChatConversationMetadata, bj as axmBuildEntityChatRoomEntityRef, bk as axmChatAiPeerParticipantId, bl as axmChatAiTargetAvatarUrl, bm as axmChatAiTargetDisplayDescription, bn as axmChatAiTargetDisplayName, bo as axmChatAiTargetShortcutDescriptionKey, k as axmChatRenderableAssistWidgetNode, bp as axmCoerceDate, bq as axmCoerceTimestampMs, br as axmComputeConversationUnreadCount, c as axmConversationHasAiChat, bs as axmConversationIsEntityChat, bt as axmConversationIsGlobalChat, bu as axmConversationMatchesEntity, bv as axmConversationMatchesHistoryScope, bw as axmEntityRefForMiniChatPageContext, bx as axmEntityRefFromLaunchContext, by as axmExcludeEntityChatConversations, bz as axmExtractAssistIdFromMetadata, bA as axmExtractAssistSnapshotFromMetadata, bB as axmExtractDirectAgentIdFromMetadata, bC as axmExtractEntityRefFromMetadata, bD as axmExtractModelEntityIdFromMetadata, bE as axmExtractTextFromPayload, bF as axmFilterChatAiTargets, bG as axmFlattenConversationCreateMetadata, bH as axmHydrateRealtimeConversationMessage, bI as axmInboxConversationTab, bJ as axmIsAssistBotConversation, bK as axmIsAssistPeerParticipant, bL as axmIsAssistResponseMessage, s as axmIsAssistRetryableStatus, bM as axmIsAssistStreamingMessage, y as axmIsAssistStreamingStatus, bN as axmIsAssistTerminalStatus, bO as axmIsUnsupportedLegacyAgentAssistConversation, bP as axmLoadChatAiTargets, f as axmMessageCountsTowardUnread, bQ as axmMessageEntityToMessage, bR as axmMiniChatHistoryScopeFromDraft, bS as axmMiniChatHistoryScopeFromOpen, bT as axmMiniChatHistoryScopeKey, bU as axmMiniChatWindowOwnsRoute, bV as axmNormalizeAssistTranscriptForChatUi, bW as axmNormalizeAssistTranscriptLineResponses, v as axmParseAssistTranscriptLinePayload, m as axmParseAssistTranscriptTextEnvelope, l as axmPartitionAssistAnswerText, bX as axmPreferLocalUnreadCount, u as axmReadAssistAiTranscript, w as axmReadAssistAiTranscriptRaw, D as axmReadAssistFollowUpStatus, t as axmReadAssistResponseError, r as axmReadAssistResponseStatus, E as axmReadPlainTextMessagePayload, bY as axmReadReplyToUserMessageId, bZ as axmRemoveMiniChatHistoryItem, b_ as axmResolveAssistFinalAnswerText, b$ as axmResolveChatAiTargetText, c0 as axmRoomEntityToConversation, c1 as axmRoomIsEntityChat, c2 as axmRoomLaunchContext, c3 as axmRoomMatchesEntity, c4 as axmRoomWithAssistPeerDisplayName, B as axmSanitizeAssistUserAnswerText, c5 as axmShouldPreferPersistedAssistOverLiveCache, c6 as axmSortMessagesNewestFirst, c7 as axmSyncAssistPeerDisplayName, j as axmSyntheticEmbedMessage, c8 as axmUpsertMiniChatHistoryItem, c9 as axmUserRowToParticipant, ca as axpShowCommentPopupCommandDefinition, cb as channelFeedPageRoutes, cc as commentsPlugin, cd as createConversationServiceSessionAdapter, ce as persistChatAttachment } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BTmQeViz.mjs';
1
+ export { a4 as AXMAddReactionCommand, G as AXMAssistSuggestionChipsComponent, a5 as AXMChannelFeedItemComponent, a6 as AXMChannelFeedPage, a7 as AXMChatAnnouncementChannelService, a8 as AXMChatComponent, a9 as AXMChatComposerAssistPickerComponent, T as AXMChatComposerEnsureAssistConversationDirective, W as AXMChatConversationApi, aa as AXMChatEmptyAssistSessionService, V as AXMChatEntityConversationApi, ab as AXMChatEntityConversationFocusHandler, ac as AXMChatEntityConversationRoomQueryService, ad as AXMChatEntityMessageApi, ae as AXMChatEntityRealtimeApi, af as AXMChatEntityUserApi, o as AXMChatMessageApi, ag as AXMChatRealtimeApi, U as AXMChatUserApi, h as AXMCommentComponent, ah as AXMCommentManagementService, ai as AXMCommentPopupComponent, aj as AXMCommentRealtimeService, ak as AXMCommentRealtimeServiceImpl, al as AXMCommentService, am as AXMCommentServiceImpl, an as AXMCommentWidgetViewComponent, ao as AXMConversationAssistBackgroundOperationHandler, A as AXMConversationEntityStoreService, d as AXMConversationFocusService, ap as AXMConversationModule, Z as AXMConversationRealtimeBus, aq as AXMEntityChatService, ar as AXMMiniChatComponent, as as AXMMiniChatFileDropService, at as AXMMiniChatFooterDockComponent, au as AXMMiniChatHeaderSlotComponent, av as AXMMiniChatHistoryComponent, aw as AXMMiniChatInboxHistoryComponent, ax as AXMMiniChatLauncherComponent, ay as AXMMiniChatPageActionComponent, az as AXMMiniChatPanelComponent, aA as AXMMiniChatPanelService, aB as AXMMiniChatPopupWindowComponent, aC as AXMShowCommentPopupCommand, q as AXM_AI_MANAGEMENT_AGENT_ENTITY_NAME, aD as AXM_AI_MANAGEMENT_ASSIST_ENTITY_NAME, p as AXM_AI_MANAGEMENT_MODULE_NAME, aE as AXM_ASSIST_DEFAULT_RESOLVER_PORT, aF as AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, aG as AXM_CHAT_ASSIST_CATALOG_PORT, aH as AXM_CHAT_EMPTY_STATE_COMPONENT, aI as AXM_CHAT_SIDEBAR_ACTION_PROVIDER, aJ as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS, aK as AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY, a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT, aL as AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY, aM as AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE, b as AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, aN as AXM_CONVERSATION_TAB_BOT, aO as AXM_ENTITY_LIST_CHAT_ID, aP as AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER, aQ as AXM_MINI_CHAT_INBOX_SESSION_KEY, aR as AXM_MINI_CHAT_POPUP_DOCK, aS as AXM_MINI_CHAT_SCOPE_ENTITY, aT as AXM_MINI_CHAT_SCOPE_METADATA_KEY, aU as AXPCommentWidget, aV as COMMENTS_PAGE_COMPONENT_KEY, aW as CONVERSATION_AFTER_MESSAGE_SENT_COMMAND, aX as CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND, aY as CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND, aZ as CONVERSATION_OPEN_CHAT_COMMAND, a_ as CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND, a$ as CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND, b0 as CONVERSATION_START_ASSIST_CHAT_COMMAND, b1 as CONVERSATION_START_DIRECT_CHAT_COMMAND, b2 as CONVERSATION_SYNC_READ_STATE_COMMAND, b3 as axmApplyAnswerTextToAssistPayloadLine, b4 as axmAssistFollowUpItemsFromUnknown, z as axmAssistHasFinalizeMetadata, b5 as axmAssistLastTranscriptLine, b6 as axmAssistNormalizeFollowUpItemForConversation, b7 as axmAssistNormalizeFollowUpItemsForConversation, b8 as axmAssistPersistedMessageLooksComplete, b9 as axmAssistResolveFollowUpCommandName, ba as axmAssistStarterPromptChipItems, bb as axmAssistSuggestionIconForLabel, x as axmAssistUserFacingPayloadLine, C as axmAssistUserVisibleItemsForLine, bc as axmAssistWidgetNodeDedupeKey, a3 as axmAssistWidgetNodeFromUnknown, bd as axmBuildAiChatConversationMetadata, be as axmBuildAssistPeerParticipantFromCreateData, bf as axmBuildAssistPeerParticipantFromId, bg as axmBuildAssistTranscriptLinePayload, bh as axmBuildAutoTitleFromUserText, bi as axmBuildEntityChatConversationMetadata, bj as axmBuildEntityChatRoomEntityRef, bk as axmChatAiPeerParticipantId, bl as axmChatAiTargetAvatarUrl, bm as axmChatAiTargetDisplayDescription, bn as axmChatAiTargetDisplayName, bo as axmChatAiTargetShortcutDescriptionKey, k as axmChatRenderableAssistWidgetNode, bp as axmCoerceDate, bq as axmCoerceTimestampMs, br as axmComputeConversationUnreadCount, c as axmConversationHasAiChat, bs as axmConversationIsEntityChat, bt as axmConversationIsGlobalChat, bu as axmConversationMatchesEntity, bv as axmConversationMatchesHistoryScope, bw as axmEntityRefForMiniChatPageContext, bx as axmEntityRefFromLaunchContext, by as axmExcludeEntityChatConversations, bz as axmExtractAssistIdFromMetadata, bA as axmExtractAssistSnapshotFromMetadata, bB as axmExtractDirectAgentIdFromMetadata, bC as axmExtractEntityRefFromMetadata, bD as axmExtractModelEntityIdFromMetadata, bE as axmExtractTextFromPayload, bF as axmFilterChatAiTargets, bG as axmFlattenConversationCreateMetadata, bH as axmHydrateRealtimeConversationMessage, bI as axmInboxConversationTab, bJ as axmIsAssistBotConversation, bK as axmIsAssistPeerParticipant, bL as axmIsAssistResponseMessage, s as axmIsAssistRetryableStatus, bM as axmIsAssistStreamingMessage, y as axmIsAssistStreamingStatus, bN as axmIsAssistTerminalStatus, bO as axmIsUnsupportedLegacyAgentAssistConversation, bP as axmLoadChatAiTargets, f as axmMessageCountsTowardUnread, bQ as axmMessageEntityToMessage, bR as axmMiniChatHistoryScopeFromDraft, bS as axmMiniChatHistoryScopeFromOpen, bT as axmMiniChatHistoryScopeKey, bU as axmMiniChatWindowOwnsRoute, bV as axmNormalizeAssistTranscriptForChatUi, bW as axmNormalizeAssistTranscriptLineResponses, v as axmParseAssistTranscriptLinePayload, m as axmParseAssistTranscriptTextEnvelope, l as axmPartitionAssistAnswerText, bX as axmPreferLocalUnreadCount, u as axmReadAssistAiTranscript, w as axmReadAssistAiTranscriptRaw, D as axmReadAssistFollowUpStatus, t as axmReadAssistResponseError, r as axmReadAssistResponseStatus, E as axmReadPlainTextMessagePayload, bY as axmReadReplyToUserMessageId, bZ as axmRemoveMiniChatHistoryItem, b_ as axmResolveAssistFinalAnswerText, b$ as axmResolveChatAiTargetText, c0 as axmRoomEntityToConversation, c1 as axmRoomIsEntityChat, c2 as axmRoomLaunchContext, c3 as axmRoomMatchesEntity, c4 as axmRoomWithAssistPeerDisplayName, B as axmSanitizeAssistUserAnswerText, c5 as axmShouldPreferPersistedAssistOverLiveCache, c6 as axmSortMessagesNewestFirst, c7 as axmSyncAssistPeerDisplayName, j as axmSyntheticEmbedMessage, c8 as axmUpsertMiniChatHistoryItem, c9 as axmUserRowToParticipant, ca as axpShowCommentPopupCommandDefinition, cb as channelFeedPageRoutes, cc as commentsPlugin, cd as createConversationServiceSessionAdapter, ce as persistChatAttachment } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CAPi0yn4.mjs';
2
2
  export { AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD } from '@acorex-platform/module-conversation-client/contracts';
3
3
  //# sourceMappingURL=acorex-platform-module-conversation-client.mjs.map
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-conversation-client",
3
- "version": "0.0.57",
3
+ "version": "0.0.58",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
7
7
  "@angular/core": "^21.0.0 || ^22.0.0"
8
8
  },
9
9
  "dependencies": {
10
- "@acorex-platform/extension-rtc-core-gateway": "0.0.57",
10
+ "@acorex-platform/extension-rtc-core-gateway": "0.0.58",
11
11
  "tslib": "^2.3.0"
12
12
  },
13
13
  "module": "fesm2022/acorex-platform-module-conversation-client.mjs",
@@ -167,6 +167,7 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
167
167
  #private;
168
168
  private readonly conversationService;
169
169
  private readonly popupService;
170
+ private readonly dialogOpener;
170
171
  private readonly chatConversationApi;
171
172
  private readonly assistResponse;
172
173
  private readonly miniChatPanelService;
@@ -1741,6 +1742,7 @@ interface AXMShowCommentPopupCommandInput {
1741
1742
  */
1742
1743
  declare class AXMShowCommentPopupCommand implements AXPCommand<AXMShowCommentPopupCommandInput> {
1743
1744
  private readonly popupService;
1745
+ private readonly dialogOpener;
1744
1746
  private readonly translate;
1745
1747
  execute(input?: AXMShowCommentPopupCommandInput): AXPCommandExecuteResultPromise;
1746
1748
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMShowCommentPopupCommand, never>;
@@ -2036,6 +2038,7 @@ declare function axmRemoveMiniChatHistoryItem(items: AXConversation[], conversat
2036
2038
  */
2037
2039
  declare class AXMMiniChatPanelService {
2038
2040
  private readonly popupService;
2041
+ private readonly dialogOpener;
2039
2042
  private readonly settingsService;
2040
2043
  private readonly document;
2041
2044
  private readonly translation;
@@ -2345,6 +2348,7 @@ declare class AXMMiniChatComponent {
2345
2348
  #private;
2346
2349
  private readonly conversationService;
2347
2350
  private readonly popupService;
2351
+ private readonly dialogOpener;
2348
2352
  private readonly conversationApi;
2349
2353
  private readonly assistResponse;
2350
2354
  private readonly destroyRef;