@acorex-platform/module-conversation-client 0.0.63 → 0.0.65

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 (29) hide show
  1. package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CmRULmpl.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-Be9CB1WQ.mjs} +251 -67
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-Be9CB1WQ.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-JjZrYD2R.mjs → acorex-platform-module-conversation-client-after-message-sent.command-D21Bwrrp.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-JjZrYD2R.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-D21Bwrrp.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BhED754u.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BG2obGE8.mjs} +3 -3
  6. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BhED754u.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BG2obGE8.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-conversation-client-assist-message-renderer.component-CR4OxDV6.mjs → acorex-platform-module-conversation-client-assist-message-renderer.component-CyTzYVsZ.mjs} +3 -3
  8. package/fesm2022/{acorex-platform-module-conversation-client-assist-message-renderer.component-CR4OxDV6.mjs.map → acorex-platform-module-conversation-client-assist-message-renderer.component-CyTzYVsZ.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-DJreBgNo.mjs → acorex-platform-module-conversation-client-chat-call-session-page.component-BbtiucQD.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-DJreBgNo.mjs.map → acorex-platform-module-conversation-client-chat-call-session-page.component-BbtiucQD.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-BEa8wEJt.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-C-YXNbrC.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-BEa8wEJt.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-C-YXNbrC.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-BsE6bCZT.mjs → acorex-platform-module-conversation-client-comments-page.component-Cgw3yLDs.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-BsE6bCZT.mjs.map → acorex-platform-module-conversation-client-comments-page.component-Cgw3yLDs.mjs.map} +1 -1
  15. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +6 -1
  16. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-B1mvtbaA.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-Cp6nnN8B.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-B1mvtbaA.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-Cp6nnN8B.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-CbJ0gXZq.mjs → acorex-platform-module-conversation-client-open-chat.command-Cyes1BAz.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-CbJ0gXZq.mjs.map → acorex-platform-module-conversation-client-open-chat.command-Cyes1BAz.mjs.map} +1 -1
  21. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-BvzWaKX4.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-CaxrqIvP.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-BvzWaKX4.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-CaxrqIvP.mjs.map} +1 -1
  23. package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-DQXezGRu.mjs → acorex-platform-module-conversation-client-sync-read-state.command-BFuJeJb5.mjs} +2 -2
  24. package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-DQXezGRu.mjs.map → acorex-platform-module-conversation-client-sync-read-state.command-BFuJeJb5.mjs.map} +1 -1
  25. package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
  26. package/package.json +2 -2
  27. package/types/acorex-platform-module-conversation-client-contracts.d.ts +16 -2
  28. package/types/acorex-platform-module-conversation-client.d.ts +23 -1
  29. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CmRULmpl.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-open-chat.command-CbJ0gXZq.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-Cyes1BAz.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-CmRULmpl.mjs';
3
+ import { a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-Be9CB1WQ.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-BvzWaKX4.mjs.map
34
+ //# sourceMappingURL=acorex-platform-module-conversation-client-retry-assist-response.command-CaxrqIvP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-retry-assist-response.command-BvzWaKX4.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-CaxrqIvP.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-CmRULmpl.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-Be9CB1WQ.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-DQXezGRu.mjs.map
68
+ //# sourceMappingURL=acorex-platform-module-conversation-client-sync-read-state.command-BFuJeJb5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-sync-read-state.command-DQXezGRu.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-BFuJeJb5.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-CmRULmpl.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-Be9CB1WQ.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.63",
3
+ "version": "0.0.65",
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.63",
10
+ "@acorex-platform/extension-rtc-core-gateway": "0.0.65",
11
11
  "tslib": "^2.3.0"
12
12
  },
13
13
  "module": "fesm2022/acorex-platform-module-conversation-client.mjs",
@@ -727,6 +727,20 @@ declare function axmChannelPostIdFromMessage(message: {
727
727
  metadata?: Record<string, unknown> | null;
728
728
  } | null | undefined): string | null;
729
729
 
730
+ /** Socket topic for entity comment threads. Chat inbox does not consume this topic. */
731
+ declare const AXM_REALTIME_TOPIC_CONVERSATION_COMMENT = "conversation.comment";
732
+ /**
733
+ * Fan-out for a comment message on one thread (room).
734
+ * Delivered to clients that joined that conversation room while the thread is open.
735
+ */
736
+ interface AXMRealtimeConversationCommentPayload {
737
+ conversationId: string;
738
+ messageId: string;
739
+ op: 'created' | 'updated' | 'deleted';
740
+ /** Plain snapshot so clients can apply the change without a follow-up GET. */
741
+ message?: Record<string, unknown>;
742
+ }
743
+
730
744
  /**
731
745
  * Resolves tenant/application scope for a new {@link Conversation.Message} row.
732
746
  * Prefer the parent room's stamped scope so call logs match sibling messages on read.
@@ -952,5 +966,5 @@ declare function axmBuildContextualAssistStarterUserPrompt(context: AXMContextua
952
966
  declare function axmFormatContextualAssistLaunchInjection(context: AXMContextualAssistContext): string;
953
967
  declare function axmParseContextualAssistStarterItems(rawText: string): string[];
954
968
 
955
- export { AXMChannelErrorCodes, AXMMiniChatSettings, AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_FOLLOW_UP_SYSTEM_PROMPT, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_ASSIST_LAUNCH_CONTEXT_METADATA_KEY, AXM_CHANNEL_AUDIENCE_TARGET_ENTITY, AXM_COMMENT_LIKE_EMOJI, AXM_CONTEXTUAL_ASSIST_ACTION_ENTITY_RECORD, AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD, AXM_CONTEXTUAL_ASSIST_LAYOUT_JSON_KEY, AXM_CONTEXTUAL_ASSIST_MAX_LAYOUT_JSON_CHARS, AXM_CONTEXTUAL_ASSIST_STARTER_SYSTEM_PROMPT, AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_KEY, AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_NAME, AXM_CONVERSATION_ANNOUNCEMENT_FEED_ITEM_META_KEY, AXM_CONVERSATION_ANNOUNCEMENT_MESSAGE_TYPE, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXM_CONVERSATION_CHANNEL_POST_ID_META_KEY, AXPCollaborationPermissionKeys, AXPConversationCommandKeys, AXPConversationMenuKeys, AXPConversationQueryKeys, CHANNEL_AUDIENCE_ENTITY_NAME, CHANNEL_DISTRIBUTOR, CHANNEL_NOTIFICATION_PORT, CHANNEL_POST_ENTITY_NAME, CHANNEL_POST_PUBLISHED_EVENT_NAME, CHANNEL_RECEIPT_ENTITY_NAME, ConversationManifest, RootConfig, axmAiChatConversationUiMetadata, axmAnnouncementChannelMetadata, axmBuildAssistConversationFollowUpUserPrompt, axmBuildContextualAssistStarterUserPrompt, axmBuildHeuristicConversationTitleFallback, axmChannelAudienceIsVisible, axmChannelAudienceRuleMatches, axmChannelAudienceTargetEntity, axmChannelPostIdFromMessage, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractAssistLaunchContextFromMetadata, axmExtractDirectAgentIdFromMetadata, axmFormatContextualAssistLaunchInjection, axmInferFollowUpChipLocale, axmIsAnnouncementChannel, axmIsChannelRoom, axmIsCommentRoom, axmIsFormTemplateDesignerAssistLaunch, axmIsUnsupportedLegacyAgentAssistConversation, axmMessagesAfterId, axmNormalizeConversationTitle, axmParseContextualAssistStarterItems, axmReadAssistFollowUpStatus, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmResolveChannelAudienceUserIds, axmResolveConversationMessageScopeInfo, axmResolveFollowUpNavChipLabels, axmRoomAudienceRule, axmSanitizeAiGeneratedConversationTitle, axmSanitizeContextualAssistContext, axmSanitizeContextualAssistValue, axmScopeInfoNeedsTenantStamp, axmShouldSkipContextualAssistKey, channelPostMessageName, channelPostTitleText, extractMessageTextFromPayload, toChannelFeedItem };
956
- export type { AXAudioMediaItem, AXAudioPayload, AXConversationComposerAttachmentPresentation, AXConversationMessageListBackground, AXConversationMessageListThemeBackground, AXConversationMetadata, AXConversationSettings, AXConversationStatus, AXConversationType, AXFileMediaItem, AXFilePayload, AXImageMediaItem, AXImagePayload, AXLink, AXLinkPreview, AXLocationPayload, AXMChannelAudienceEntityModel, AXMChannelAudienceMembership, AXMChannelAudienceMode, AXMChannelAudienceTargetType, AXMChannelDistributionOutcome, AXMChannelDistributionResult, AXMChannelDistributionSelection, AXMChannelDistributor, AXMChannelFeedItem, AXMChannelFeedQueryInput, AXMChannelLifecycleAction, AXMChannelMarkReadCommandInput, AXMChannelNotificationPolicy, AXMChannelNotificationPort, AXMChannelPostEntityModel, AXMChannelPostKind, AXMChannelPostStatus, AXMChannelPublishedEvent, AXMChannelReceiptEntityModel, AXMChannelUnreadCount, AXMChronologicalMessage, AXMCommentEntityData, AXMContextualAssistColumnValue, AXMContextualAssistContext, AXMConversationAssistMessageHandler, AXMConversationMessage, AXMConversationReaction, AXMConversationRoom, AXMConversationRoomKind, AXMEntityRecordAssistPayload, AXMFormTemplateDesignerAssistDataSourceRef, AXMFormTemplateDesignerAssistPayload, AXMFormTemplateDesignerAssistWidgetRef, AXMMiniChatPositionSetting, AXMMiniChatSizeSetting, AXMReactionType, AXMediaItemFields, AXMention, AXMessagePayload, AXMessageStatus, AXMessageType, AXNodePayload, AXParticipant, AXParticipantRole, AXParticipantStatus, AXPollOption, AXPollPayload, AXReaction, AXStickerPayload, AXSystemEventType, AXSystemPayload, AXTextFormat, AXTextPayload, AXUserProfile, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, AxmAssistFollowUpStatus, AxmFollowUpNavChipLabels, ConversationAssistFrontendToolCall, ConversationAssistWireEvent };
969
+ export { AXMChannelErrorCodes, AXMMiniChatSettings, AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_FOLLOW_UP_SYSTEM_PROMPT, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_ASSIST_LAUNCH_CONTEXT_METADATA_KEY, AXM_CHANNEL_AUDIENCE_TARGET_ENTITY, AXM_COMMENT_LIKE_EMOJI, AXM_CONTEXTUAL_ASSIST_ACTION_ENTITY_RECORD, AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD, AXM_CONTEXTUAL_ASSIST_LAYOUT_JSON_KEY, AXM_CONTEXTUAL_ASSIST_MAX_LAYOUT_JSON_CHARS, AXM_CONTEXTUAL_ASSIST_STARTER_SYSTEM_PROMPT, AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_KEY, AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_NAME, AXM_CONVERSATION_ANNOUNCEMENT_FEED_ITEM_META_KEY, AXM_CONVERSATION_ANNOUNCEMENT_MESSAGE_TYPE, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXM_CONVERSATION_CHANNEL_POST_ID_META_KEY, AXM_REALTIME_TOPIC_CONVERSATION_COMMENT, AXPCollaborationPermissionKeys, AXPConversationCommandKeys, AXPConversationMenuKeys, AXPConversationQueryKeys, CHANNEL_AUDIENCE_ENTITY_NAME, CHANNEL_DISTRIBUTOR, CHANNEL_NOTIFICATION_PORT, CHANNEL_POST_ENTITY_NAME, CHANNEL_POST_PUBLISHED_EVENT_NAME, CHANNEL_RECEIPT_ENTITY_NAME, ConversationManifest, RootConfig, axmAiChatConversationUiMetadata, axmAnnouncementChannelMetadata, axmBuildAssistConversationFollowUpUserPrompt, axmBuildContextualAssistStarterUserPrompt, axmBuildHeuristicConversationTitleFallback, axmChannelAudienceIsVisible, axmChannelAudienceRuleMatches, axmChannelAudienceTargetEntity, axmChannelPostIdFromMessage, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractAssistLaunchContextFromMetadata, axmExtractDirectAgentIdFromMetadata, axmFormatContextualAssistLaunchInjection, axmInferFollowUpChipLocale, axmIsAnnouncementChannel, axmIsChannelRoom, axmIsCommentRoom, axmIsFormTemplateDesignerAssistLaunch, axmIsUnsupportedLegacyAgentAssistConversation, axmMessagesAfterId, axmNormalizeConversationTitle, axmParseContextualAssistStarterItems, axmReadAssistFollowUpStatus, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmResolveChannelAudienceUserIds, axmResolveConversationMessageScopeInfo, axmResolveFollowUpNavChipLabels, axmRoomAudienceRule, axmSanitizeAiGeneratedConversationTitle, axmSanitizeContextualAssistContext, axmSanitizeContextualAssistValue, axmScopeInfoNeedsTenantStamp, axmShouldSkipContextualAssistKey, channelPostMessageName, channelPostTitleText, extractMessageTextFromPayload, toChannelFeedItem };
970
+ export type { AXAudioMediaItem, AXAudioPayload, AXConversationComposerAttachmentPresentation, AXConversationMessageListBackground, AXConversationMessageListThemeBackground, AXConversationMetadata, AXConversationSettings, AXConversationStatus, AXConversationType, AXFileMediaItem, AXFilePayload, AXImageMediaItem, AXImagePayload, AXLink, AXLinkPreview, AXLocationPayload, AXMChannelAudienceEntityModel, AXMChannelAudienceMembership, AXMChannelAudienceMode, AXMChannelAudienceTargetType, AXMChannelDistributionOutcome, AXMChannelDistributionResult, AXMChannelDistributionSelection, AXMChannelDistributor, AXMChannelFeedItem, AXMChannelFeedQueryInput, AXMChannelLifecycleAction, AXMChannelMarkReadCommandInput, AXMChannelNotificationPolicy, AXMChannelNotificationPort, AXMChannelPostEntityModel, AXMChannelPostKind, AXMChannelPostStatus, AXMChannelPublishedEvent, AXMChannelReceiptEntityModel, AXMChannelUnreadCount, AXMChronologicalMessage, AXMCommentEntityData, AXMContextualAssistColumnValue, AXMContextualAssistContext, AXMConversationAssistMessageHandler, AXMConversationMessage, AXMConversationReaction, AXMConversationRoom, AXMConversationRoomKind, AXMEntityRecordAssistPayload, AXMFormTemplateDesignerAssistDataSourceRef, AXMFormTemplateDesignerAssistPayload, AXMFormTemplateDesignerAssistWidgetRef, AXMMiniChatPositionSetting, AXMMiniChatSizeSetting, AXMReactionType, AXMRealtimeConversationCommentPayload, AXMediaItemFields, AXMention, AXMessagePayload, AXMessageStatus, AXMessageType, AXNodePayload, AXParticipant, AXParticipantRole, AXParticipantStatus, AXPollOption, AXPollPayload, AXReaction, AXStickerPayload, AXSystemEventType, AXSystemPayload, AXTextFormat, AXTextPayload, AXUserProfile, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, AxmAssistFollowUpStatus, AxmFollowUpNavChipLabels, ConversationAssistFrontendToolCall, ConversationAssistWireEvent };
@@ -1502,6 +1502,8 @@ interface AXMCommentEvent {
1502
1502
  * - For 'remove', payload is the comment ID (string).
1503
1503
  */
1504
1504
  payload: AXMComment | string;
1505
+ /** Room id. Open threads ignore events for a different entity. */
1506
+ threadId?: string;
1505
1507
  }
1506
1508
  interface AXMThreadEvent {
1507
1509
  type: AXMThreadEventType;
@@ -1525,6 +1527,8 @@ declare class AXMCommentManagementService {
1525
1527
  private formatThread;
1526
1528
  createThread(entityRef: AXMCommentEntityData$1, topic: string, title?: string): Promise<AXMCommentThread>;
1527
1529
  getThread(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMCommentThread | null>;
1530
+ /** Room row only, so the view can join realtime before messages are loaded. */
1531
+ findThreadRoom(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMConversationRoom | null>;
1528
1532
  countCommentsForEntity(entityRef: AXMCommentEntityData$1): Promise<number>;
1529
1533
  listThreads(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMCommentThread[]>;
1530
1534
  updateThread(entityRef: AXMCommentEntityData$1, topic: string, data: Partial<{
@@ -1543,6 +1547,7 @@ declare class AXMCommentManagementService {
1543
1547
  unlikeComment(commentId: string): Promise<AXMComment>;
1544
1548
  pinComment(commentId: string): Promise<AXMComment>;
1545
1549
  unpinComment(commentId: string): Promise<AXMComment>;
1550
+ private emitComment;
1546
1551
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMCommentManagementService, never>;
1547
1552
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMCommentManagementService>;
1548
1553
  }
@@ -1552,14 +1557,26 @@ declare abstract class AXMCommentRealtimeService {
1552
1557
  abstract readonly thread$: Observable<AXMThreadEvent>;
1553
1558
  abstract notifyComment(event: AXMCommentEvent): void;
1554
1559
  abstract notifyThread(event: AXMThreadEvent): void;
1560
+ /** Join the thread socket room while at least one comment view is open. */
1561
+ abstract watchThread(threadId: string): void;
1562
+ abstract unwatchThread(threadId: string): void;
1555
1563
  }
1556
1564
  declare class AXMCommentRealtimeServiceImpl extends AXMCommentRealtimeService {
1565
+ private readonly dispatcher;
1566
+ private readonly connection;
1557
1567
  private readonly _comment$;
1558
1568
  readonly comment$: Observable<AXMCommentEvent>;
1559
1569
  private readonly _thread$;
1560
1570
  readonly thread$: Observable<AXMThreadEvent>;
1571
+ private readonly watchedThreads;
1572
+ private remoteHandlerRegistered;
1573
+ constructor();
1561
1574
  notifyComment(event: AXMCommentEvent): void;
1562
1575
  notifyThread(event: AXMThreadEvent): void;
1576
+ watchThread(threadId: string): void;
1577
+ unwatchThread(threadId: string): void;
1578
+ private registerRemoteHandler;
1579
+ private applyRemotePayload;
1563
1580
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMCommentRealtimeServiceImpl, never>;
1564
1581
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMCommentRealtimeServiceImpl>;
1565
1582
  }
@@ -1582,15 +1599,18 @@ declare class AXMCommentComponent implements OnInit {
1582
1599
  protected thread: _angular_core.WritableSignal<AXMCommentThread | undefined>;
1583
1600
  private readonly commentActions;
1584
1601
  private refreshGeneration;
1602
+ private liveRevision;
1603
+ private watchedThreadId;
1604
+ private realtimeReady;
1585
1605
  protected readonly commentsView: _angular_core.Signal<AXCommentViewComponent | undefined>;
1586
1606
  protected readonly commentContainer: _angular_core.Signal<AXCommentContainerComponent | undefined>;
1587
1607
  protected readonly editor: _angular_core.Signal<AXTextEditorComponent | undefined>;
1588
1608
  private readonly commentService;
1589
1609
  private readonly realtimeService;
1610
+ private readonly realtimeConnection;
1590
1611
  private readonly sessionService;
1591
1612
  private readonly toastService;
1592
1613
  private readonly dialogService;
1593
- private readonly inAppNotificationService;
1594
1614
  private readonly activatedRoute;
1595
1615
  private readonly translationService;
1596
1616
  private readonly destroyRef;
@@ -1624,6 +1644,8 @@ declare class AXMCommentComponent implements OnInit {
1624
1644
  private handleUpdateComment;
1625
1645
  private getCurrentUser;
1626
1646
  private removeMessageById;
1647
+ private bindRealtimeThread;
1648
+ private applyServerComments;
1627
1649
  private readEditorHtml;
1628
1650
  private loadActionItems;
1629
1651
  private refreshItems;