@acorex-platform/module-conversation-client 0.0.32 → 0.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CDlDFzbl.mjs} +231 -80
- package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CDlDFzbl.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-CpMGuSU1.mjs → acorex-platform-module-conversation-client-after-message-sent.command-yzW01skh.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-CpMGuSU1.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-yzW01skh.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Dgs6fpN3.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DhRvuCex.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Dgs6fpN3.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DhRvuCex.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-BStKnruT.mjs → acorex-platform-module-conversation-client-chat-call-session-page.component-C47tt1me.mjs} +13 -6
- package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C47tt1me.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-eKYhjy91.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-EZjVSlhm.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-eKYhjy91.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-EZjVSlhm.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-DLYtqFLi.mjs → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-CppNPfqe.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-DLYtqFLi.mjs.map → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-CppNPfqe.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-panel.component-CE40xbl9.mjs → acorex-platform-module-conversation-client-chat-conversation-info-panel.component-BBL8iEqc.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-panel.component-CE40xbl9.mjs.map → acorex-platform-module-conversation-client-chat-conversation-info-panel.component-BBL8iEqc.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-VOuN3y_8.mjs → acorex-platform-module-conversation-client-comments-page.component-Djn8EikR.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-VOuN3y_8.mjs.map → acorex-platform-module-conversation-client-comments-page.component-Djn8EikR.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs +274 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs +295 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs +52 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs +242 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs +263 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog.mjs +2 -0
- package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs +30 -0
- package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-9tbWXMsa.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-BoTNaBxS.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-9tbWXMsa.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-BoTNaBxS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-CdMsYHwG.mjs → acorex-platform-module-conversation-client-open-chat.command-VgeGqj-z.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-CdMsYHwG.mjs.map → acorex-platform-module-conversation-client-open-chat.command-VgeGqj-z.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-DvOeezMD.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-DYIpLKDB.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-DvOeezMD.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-DYIpLKDB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-CmJAjrZb.mjs → acorex-platform-module-conversation-client-sync-read-state.command-D97E8VvL.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-CmJAjrZb.mjs.map → acorex-platform-module-conversation-client-sync-read-state.command-D97E8VvL.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
- package/package.json +18 -2
- package/types/acorex-platform-module-conversation-client-contracts-entities-message.d.ts +5 -0
- package/types/acorex-platform-module-conversation-client-contracts-entities-room.d.ts +5 -0
- package/types/acorex-platform-module-conversation-client-contracts-entity-catalog.d.ts +10 -0
- package/types/acorex-platform-module-conversation-client-local-entities.d.ts +12 -0
- package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-BStKnruT.mjs.map +0 -1
|
@@ -52,6 +52,7 @@ import * as i5 from '@acorex/components/code-editor';
|
|
|
52
52
|
import { AXCodeEditorModule } from '@acorex/components/code-editor';
|
|
53
53
|
import { AXPLayoutThemeService } from '@acorex-platform/framework-client/themes/shared';
|
|
54
54
|
import { AXPLayoutRendererComponent } from '@acorex-platform/framework-client/layout/builder';
|
|
55
|
+
import { AXLocaleService } from '@acorex/core/locale';
|
|
55
56
|
import { AXPInAppInboxConnectorService, AXPCommunicationManagementClient, AXPInAppInboxRealtimeService } from '@acorex-platform/module-communication-management-client';
|
|
56
57
|
import { AXFabComponent, AXFabItemComponent } from '@acorex/components/fab';
|
|
57
58
|
import * as i1$5 from '@acorex/components/wysiwyg';
|
|
@@ -717,37 +718,95 @@ function axmResolveCallDurationTranslation(durationSec) {
|
|
|
717
718
|
},
|
|
718
719
|
};
|
|
719
720
|
}
|
|
720
|
-
|
|
721
|
-
|
|
721
|
+
/** Resolves viewer-relative call-log perspective used by subject/action copy keys. */
|
|
722
|
+
function axmChatCallLogPerspective(info, viewerUserId) {
|
|
722
723
|
const viewer = viewerUserId?.trim() ?? '';
|
|
723
724
|
const actor = info.actorUserId?.trim() ?? '';
|
|
724
725
|
const initiator = info.initiatorUserId?.trim() ?? '';
|
|
725
|
-
if (info.isGroup) {
|
|
726
|
-
return `@conversation:chat.call.log.group-${info.outcome}${mediaSuffix}`;
|
|
727
|
-
}
|
|
728
726
|
const isViewerActor = Boolean(viewer && actor && viewer === actor);
|
|
729
727
|
const isViewerInitiator = Boolean(viewer && initiator && viewer === initiator);
|
|
728
|
+
if (info.isGroup) {
|
|
729
|
+
switch (info.outcome) {
|
|
730
|
+
case 'completed':
|
|
731
|
+
return 'group-completed';
|
|
732
|
+
case 'declined':
|
|
733
|
+
return 'group-declined';
|
|
734
|
+
case 'cancelled':
|
|
735
|
+
return 'group-cancelled';
|
|
736
|
+
case 'missed':
|
|
737
|
+
default:
|
|
738
|
+
return 'group-missed';
|
|
739
|
+
}
|
|
740
|
+
}
|
|
730
741
|
switch (info.outcome) {
|
|
731
742
|
case 'completed':
|
|
732
|
-
return isViewerInitiator
|
|
733
|
-
? `@conversation:chat.call.log.outgoing-completed${mediaSuffix}`
|
|
734
|
-
: `@conversation:chat.call.log.incoming-completed${mediaSuffix}`;
|
|
743
|
+
return isViewerInitiator ? 'outgoing-completed' : 'incoming-completed';
|
|
735
744
|
case 'declined':
|
|
736
|
-
return isViewerActor
|
|
737
|
-
? `@conversation:chat.call.log.incoming-declined${mediaSuffix}`
|
|
738
|
-
: `@conversation:chat.call.log.outgoing-declined${mediaSuffix}`;
|
|
745
|
+
return isViewerActor ? 'incoming-declined' : 'outgoing-declined';
|
|
739
746
|
case 'cancelled':
|
|
740
|
-
return isViewerActor
|
|
741
|
-
? `@conversation:chat.call.log.outgoing-cancelled${mediaSuffix}`
|
|
742
|
-
: `@conversation:chat.call.log.incoming-cancelled${mediaSuffix}`;
|
|
747
|
+
return isViewerActor ? 'outgoing-cancelled' : 'incoming-cancelled';
|
|
743
748
|
case 'missed':
|
|
744
|
-
return isViewerInitiator
|
|
745
|
-
? `@conversation:chat.call.log.outgoing-missed${mediaSuffix}`
|
|
746
|
-
: `@conversation:chat.call.log.incoming-missed${mediaSuffix}`;
|
|
749
|
+
return isViewerInitiator ? 'outgoing-missed' : 'incoming-missed';
|
|
747
750
|
default:
|
|
748
|
-
return
|
|
751
|
+
return 'incoming-missed';
|
|
749
752
|
}
|
|
750
753
|
}
|
|
754
|
+
/** Telegram-style bold headline (Missed Call / Incoming Call / …). */
|
|
755
|
+
function axmChatCallLogHeadlineKey(info, viewerUserId) {
|
|
756
|
+
const mediaSuffix = info.media === 'video' ? '-video' : '';
|
|
757
|
+
const perspective = axmChatCallLogPerspective(info, viewerUserId);
|
|
758
|
+
if (perspective.startsWith('group-')) {
|
|
759
|
+
return `@conversation:chat.call.log.headline.${perspective}${mediaSuffix}`;
|
|
760
|
+
}
|
|
761
|
+
if (perspective.endsWith('-missed')) {
|
|
762
|
+
return `@conversation:chat.call.log.headline.missed${mediaSuffix}`;
|
|
763
|
+
}
|
|
764
|
+
if (perspective.endsWith('-declined')) {
|
|
765
|
+
return `@conversation:chat.call.log.headline.declined${mediaSuffix}`;
|
|
766
|
+
}
|
|
767
|
+
if (perspective.endsWith('-cancelled')) {
|
|
768
|
+
return `@conversation:chat.call.log.headline.cancelled${mediaSuffix}`;
|
|
769
|
+
}
|
|
770
|
+
if (perspective === 'outgoing-completed') {
|
|
771
|
+
return `@conversation:chat.call.log.headline.outgoing${mediaSuffix}`;
|
|
772
|
+
}
|
|
773
|
+
return `@conversation:chat.call.log.headline.incoming${mediaSuffix}`;
|
|
774
|
+
}
|
|
775
|
+
/** Top line: peer / self / group subject. */
|
|
776
|
+
function axmChatCallLogSubjectKey(info, viewerUserId) {
|
|
777
|
+
const perspective = axmChatCallLogPerspective(info, viewerUserId);
|
|
778
|
+
switch (perspective) {
|
|
779
|
+
case 'outgoing-completed':
|
|
780
|
+
case 'outgoing-missed':
|
|
781
|
+
return '@conversation:chat.call.log.subject.with-name';
|
|
782
|
+
case 'incoming-declined':
|
|
783
|
+
case 'outgoing-cancelled':
|
|
784
|
+
return '@conversation:chat.call.log.subject.you';
|
|
785
|
+
case 'group-completed':
|
|
786
|
+
case 'group-declined':
|
|
787
|
+
case 'group-missed':
|
|
788
|
+
case 'group-cancelled':
|
|
789
|
+
return '@conversation:chat.call.log.subject.group';
|
|
790
|
+
case 'incoming-completed':
|
|
791
|
+
case 'outgoing-declined':
|
|
792
|
+
case 'incoming-cancelled':
|
|
793
|
+
case 'incoming-missed':
|
|
794
|
+
default:
|
|
795
|
+
return '@conversation:chat.call.log.subject.name';
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
/** Second line: call operation / outcome copy. */
|
|
799
|
+
function axmChatCallLogActionKey(info, viewerUserId) {
|
|
800
|
+
const mediaSuffix = info.media === 'video' ? '-video' : '';
|
|
801
|
+
const perspective = axmChatCallLogPerspective(info, viewerUserId);
|
|
802
|
+
return `@conversation:chat.call.log.action.${perspective}${mediaSuffix}`;
|
|
803
|
+
}
|
|
804
|
+
/** @deprecated Prefer subject + action keys for Telegram-style two-line copy. */
|
|
805
|
+
function axmChatCallLogTitleKey(info, viewerUserId) {
|
|
806
|
+
const mediaSuffix = info.media === 'video' ? '-video' : '';
|
|
807
|
+
const perspective = axmChatCallLogPerspective(info, viewerUserId);
|
|
808
|
+
return `@conversation:chat.call.log.${perspective}${mediaSuffix}`;
|
|
809
|
+
}
|
|
751
810
|
function axmChatCallLogTranslateParams(info) {
|
|
752
811
|
const params = {};
|
|
753
812
|
if (info.peerUserName?.trim()) {
|
|
@@ -3315,7 +3374,7 @@ async function axmOpenChatCallStartDialog(options) {
|
|
|
3315
3374
|
}
|
|
3316
3375
|
// Capture DI before any await (dynamic import below).
|
|
3317
3376
|
const popupService = options.popupService ?? inject(AXPopupService);
|
|
3318
|
-
const comp = (await import('./acorex-platform-module-conversation-client-chat-call-start-popup.component-
|
|
3377
|
+
const comp = (await import('./acorex-platform-module-conversation-client-chat-call-start-popup.component-EZjVSlhm.mjs')).AXMChatCallStartPopupComponent;
|
|
3319
3378
|
const data = { conversation };
|
|
3320
3379
|
await popupService.open(comp, {
|
|
3321
3380
|
header: false,
|
|
@@ -4898,7 +4957,7 @@ async function axmOpenAssistDelegatedAgentDetailDialog(options) {
|
|
|
4898
4957
|
options.translationService.translateAsync('@conversation:chat.assist-renderer.delegated-agent.dialog-title-suffix'),
|
|
4899
4958
|
options.translationService.translateAsync('@conversation:chat.assist-renderer.delegated-agent.transcript-missing'),
|
|
4900
4959
|
]);
|
|
4901
|
-
const comp = (await import('./acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-
|
|
4960
|
+
const comp = (await import('./acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DhRvuCex.mjs'))
|
|
4902
4961
|
.AXMAssistDelegatedAgentDetailPopupComponent;
|
|
4903
4962
|
const data = {
|
|
4904
4963
|
delegationCallId: callId,
|
|
@@ -6389,6 +6448,40 @@ const AXM_CONVERSATION_BOT_RENDERER = {
|
|
|
6389
6448
|
icon: 'fa-light fa-sparkles',
|
|
6390
6449
|
};
|
|
6391
6450
|
|
|
6451
|
+
//#region ----- Imports -----
|
|
6452
|
+
//#endregion
|
|
6453
|
+
//#region ----- Dialog -----
|
|
6454
|
+
/**
|
|
6455
|
+
* Opens the LiveKit-backed call session as an in-app popup.
|
|
6456
|
+
* Must be called from an injection context when `popupService` is omitted.
|
|
6457
|
+
*/
|
|
6458
|
+
async function axmOpenChatCallSessionDialog(options) {
|
|
6459
|
+
const conversation = options.conversation;
|
|
6460
|
+
if (!conversation?.id?.trim()) {
|
|
6461
|
+
return;
|
|
6462
|
+
}
|
|
6463
|
+
const popupService = options.popupService ?? inject(AXPopupService);
|
|
6464
|
+
const comp = (await import('./acorex-platform-module-conversation-client-chat-call-session-page.component-C47tt1me.mjs')).AXMChatCallSessionPageComponent;
|
|
6465
|
+
const data = {
|
|
6466
|
+
sessionConversation: conversation,
|
|
6467
|
+
sessionMedia: options.media === 'video' ? 'video' : 'voice',
|
|
6468
|
+
sessionPhase: options.phase ?? 'outgoing-waiting',
|
|
6469
|
+
sessionCallId: options.callId?.trim() || undefined,
|
|
6470
|
+
sessionInitiatorUserId: options.initiatorUserId?.trim() || undefined,
|
|
6471
|
+
};
|
|
6472
|
+
await popupService.open(comp, {
|
|
6473
|
+
header: false,
|
|
6474
|
+
closeButton: false,
|
|
6475
|
+
footer: false,
|
|
6476
|
+
size: 'full',
|
|
6477
|
+
closeOnBackdropClick: false,
|
|
6478
|
+
panelClass: ['animate-fadeIn', 'animate-fast'],
|
|
6479
|
+
contextElement: axmChatCallDarkThemeContextElement(),
|
|
6480
|
+
data,
|
|
6481
|
+
});
|
|
6482
|
+
}
|
|
6483
|
+
//#endregion
|
|
6484
|
+
|
|
6392
6485
|
//#endregion
|
|
6393
6486
|
//#region ----- Component -----
|
|
6394
6487
|
class AXMChatCallLogMessageRendererComponent {
|
|
@@ -6400,7 +6493,12 @@ class AXMChatCallLogMessageRendererComponent {
|
|
|
6400
6493
|
//#region ----- Services & Dependencies -----
|
|
6401
6494
|
this.session = inject(AXPSessionService);
|
|
6402
6495
|
this.translation = inject(AXTranslationService);
|
|
6496
|
+
this.localeService = inject(AXLocaleService);
|
|
6403
6497
|
this.settings = inject(AXPSettingsService);
|
|
6498
|
+
this.conversationService = inject(AXConversationService);
|
|
6499
|
+
this.popupService = inject(AXPopupService);
|
|
6500
|
+
this.toastService = inject(AXToastService);
|
|
6501
|
+
this.rtcApi = inject(AXPRtcApiAbstract, { optional: true });
|
|
6404
6502
|
this.destroyRef = inject(DestroyRef);
|
|
6405
6503
|
//#endregion
|
|
6406
6504
|
//#region ----- State Signals -----
|
|
@@ -6408,6 +6506,8 @@ class AXMChatCallLogMessageRendererComponent {
|
|
|
6408
6506
|
...(ngDevMode ? [{ debugName: "contentState" }] : /* istanbul ignore next */ []));
|
|
6409
6507
|
this.translateParams = signal({}, /* @ts-ignore */
|
|
6410
6508
|
...(ngDevMode ? [{ debugName: "translateParams" }] : /* istanbul ignore next */ []));
|
|
6509
|
+
this.callbackBusy = signal(false, /* @ts-ignore */
|
|
6510
|
+
...(ngDevMode ? [{ debugName: "callbackBusy" }] : /* istanbul ignore next */ []));
|
|
6411
6511
|
//#endregion
|
|
6412
6512
|
//#region ----- Computed Properties -----
|
|
6413
6513
|
this.rendererState = computed(() => ({
|
|
@@ -6419,14 +6519,23 @@ class AXMChatCallLogMessageRendererComponent {
|
|
|
6419
6519
|
...(ngDevMode ? [{ debugName: "log" }] : /* istanbul ignore next */ []));
|
|
6420
6520
|
this.isVideo = computed(() => this.log()?.media === 'video', /* @ts-ignore */
|
|
6421
6521
|
...(ngDevMode ? [{ debugName: "isVideo" }] : /* istanbul ignore next */ []));
|
|
6422
|
-
|
|
6522
|
+
/** Own bubble (primary/blue) — icons must use on-primary, not status red/green. */
|
|
6523
|
+
this.isOwnBubble = computed(() => {
|
|
6524
|
+
const viewerId = this.session.user?.id?.trim() ?? '';
|
|
6525
|
+
const senderId = this.message().senderId?.trim() ?? '';
|
|
6526
|
+
return Boolean(viewerId && senderId && viewerId === senderId);
|
|
6527
|
+
}, /* @ts-ignore */
|
|
6528
|
+
...(ngDevMode ? [{ debugName: "isOwnBubble" }] : /* istanbul ignore next */ []));
|
|
6529
|
+
this.isRtlLayout = computed(() => this.localeService.activeProfile()?.i18nMeta?.rtl === true, /* @ts-ignore */
|
|
6530
|
+
...(ngDevMode ? [{ debugName: "isRtlLayout" }] : /* istanbul ignore next */ []));
|
|
6531
|
+
this.headlineKey = computed(() => {
|
|
6423
6532
|
const info = this.log();
|
|
6424
6533
|
if (!info) {
|
|
6425
|
-
return '@conversation:chat.call.log.missed';
|
|
6534
|
+
return '@conversation:chat.call.log.headline.missed';
|
|
6426
6535
|
}
|
|
6427
|
-
return
|
|
6536
|
+
return axmChatCallLogHeadlineKey(info, this.session.user?.id ?? null);
|
|
6428
6537
|
}, /* @ts-ignore */
|
|
6429
|
-
...(ngDevMode ? [{ debugName: "
|
|
6538
|
+
...(ngDevMode ? [{ debugName: "headlineKey" }] : /* istanbul ignore next */ []));
|
|
6430
6539
|
this.showGroupAttendance = computed(() => {
|
|
6431
6540
|
const info = this.log();
|
|
6432
6541
|
return Boolean(info?.isGroup &&
|
|
@@ -6434,16 +6543,44 @@ class AXMChatCallLogMessageRendererComponent {
|
|
|
6434
6543
|
(info.joinedUserNames?.length || info.absentUserNames?.length));
|
|
6435
6544
|
}, /* @ts-ignore */
|
|
6436
6545
|
...(ngDevMode ? [{ debugName: "showGroupAttendance" }] : /* istanbul ignore next */ []));
|
|
6437
|
-
|
|
6546
|
+
/**
|
|
6547
|
+
* Call direction relative to the viewer (drives arrow ↙ / ↗).
|
|
6548
|
+
* Based on who initiated the call — not who last acted (decline/cancel).
|
|
6549
|
+
*/
|
|
6550
|
+
this.callDirection = computed(() => {
|
|
6438
6551
|
const info = this.log();
|
|
6439
6552
|
if (!info) {
|
|
6440
|
-
return '
|
|
6553
|
+
return 'incoming';
|
|
6441
6554
|
}
|
|
6442
|
-
return this.
|
|
6555
|
+
return this.isViewerInitiator(info) ? 'outgoing' : 'incoming';
|
|
6556
|
+
}, /* @ts-ignore */
|
|
6557
|
+
...(ngDevMode ? [{ debugName: "callDirection" }] : /* istanbul ignore next */ []));
|
|
6558
|
+
/**
|
|
6559
|
+
* Status color (Telegram-style):
|
|
6560
|
+
* - completed (answered) → green
|
|
6561
|
+
* - missed / declined / cancelled → red
|
|
6562
|
+
*/
|
|
6563
|
+
this.iconTone = computed(() => {
|
|
6564
|
+
const outcome = this.log()?.outcome;
|
|
6565
|
+
return outcome === 'completed' ? 'success' : 'danger';
|
|
6566
|
+
}, /* @ts-ignore */
|
|
6567
|
+
...(ngDevMode ? [{ debugName: "iconTone" }] : /* istanbul ignore next */ []));
|
|
6568
|
+
/** Status glyph: cancelled → ban; otherwise diagonal arrow by direction. */
|
|
6569
|
+
this.statusIconClass = computed(() => {
|
|
6570
|
+
if (this.log()?.outcome === 'cancelled') {
|
|
6571
|
+
return 'fa-ban';
|
|
6572
|
+
}
|
|
6573
|
+
return this.callDirection() === 'outgoing'
|
|
6574
|
+
? 'fa-arrow-up axm-chat-call-log__arrow axm-chat-call-log__arrow--out'
|
|
6575
|
+
: 'fa-arrow-down axm-chat-call-log__arrow axm-chat-call-log__arrow--in';
|
|
6443
6576
|
}, /* @ts-ignore */
|
|
6444
|
-
...(ngDevMode ? [{ debugName: "
|
|
6577
|
+
...(ngDevMode ? [{ debugName: "statusIconClass" }] : /* istanbul ignore next */ []));
|
|
6578
|
+
/** Large trailing call-back glyph (phone / video). */
|
|
6579
|
+
this.callbackIconClass = computed(() => (this.isVideo() ? 'fa-video' : 'fa-phone'), /* @ts-ignore */
|
|
6580
|
+
...(ngDevMode ? [{ debugName: "callbackIconClass" }] : /* istanbul ignore next */ []));
|
|
6445
6581
|
effect(() => {
|
|
6446
6582
|
const info = this.log();
|
|
6583
|
+
void this.message();
|
|
6447
6584
|
void this.refreshTranslateParams(info);
|
|
6448
6585
|
});
|
|
6449
6586
|
this.settings.onChanged
|
|
@@ -6459,14 +6596,62 @@ class AXMChatCallLogMessageRendererComponent {
|
|
|
6459
6596
|
event.preventDefault();
|
|
6460
6597
|
event.stopPropagation();
|
|
6461
6598
|
}
|
|
6599
|
+
/** Quick re-call with the same media type as this log entry. */
|
|
6600
|
+
async onCallbackClick(event) {
|
|
6601
|
+
event.preventDefault();
|
|
6602
|
+
event.stopPropagation();
|
|
6603
|
+
if (this.callbackBusy()) {
|
|
6604
|
+
return;
|
|
6605
|
+
}
|
|
6606
|
+
const conversationId = this.message().conversationId?.trim() ?? '';
|
|
6607
|
+
if (!conversationId) {
|
|
6608
|
+
return;
|
|
6609
|
+
}
|
|
6610
|
+
const active = this.conversationService.activeConversation();
|
|
6611
|
+
const conversation = active?.id === conversationId
|
|
6612
|
+
? active
|
|
6613
|
+
: this.conversationService.conversations().find((item) => item.id === conversationId);
|
|
6614
|
+
if (!conversation?.id?.trim()) {
|
|
6615
|
+
return;
|
|
6616
|
+
}
|
|
6617
|
+
this.callbackBusy.set(true);
|
|
6618
|
+
try {
|
|
6619
|
+
if (!(await axmEnsureChatCallRtcReady({
|
|
6620
|
+
rtc: this.rtcApi,
|
|
6621
|
+
translation: this.translation,
|
|
6622
|
+
toast: this.toastService,
|
|
6623
|
+
}))) {
|
|
6624
|
+
return;
|
|
6625
|
+
}
|
|
6626
|
+
await axmOpenChatCallSessionDialog({
|
|
6627
|
+
conversation,
|
|
6628
|
+
media: this.log()?.media === 'video' ? 'video' : 'voice',
|
|
6629
|
+
popupService: this.popupService,
|
|
6630
|
+
});
|
|
6631
|
+
}
|
|
6632
|
+
finally {
|
|
6633
|
+
this.callbackBusy.set(false);
|
|
6634
|
+
}
|
|
6635
|
+
}
|
|
6462
6636
|
//#endregion
|
|
6463
|
-
//#region -----
|
|
6637
|
+
//#region ----- Icon helpers -----
|
|
6638
|
+
/** True when the current user started the call (outgoing direction). */
|
|
6639
|
+
isViewerInitiator(info) {
|
|
6640
|
+
const viewer = this.session.user?.id?.trim() ?? '';
|
|
6641
|
+
const initiator = info.initiatorUserId?.trim() ?? '';
|
|
6642
|
+
return Boolean(viewer && initiator && viewer === initiator);
|
|
6643
|
+
}
|
|
6644
|
+
//#endregion
|
|
6645
|
+
//#region ----- Display formatting -----
|
|
6464
6646
|
async refreshTranslateParams(info) {
|
|
6465
6647
|
if (!info) {
|
|
6466
6648
|
this.translateParams.set({});
|
|
6467
6649
|
return;
|
|
6468
6650
|
}
|
|
6469
6651
|
const params = axmChatCallLogTranslateParams(info);
|
|
6652
|
+
if (!params['name']?.trim()) {
|
|
6653
|
+
params['name'] = await this.translation.translateAsync('@conversation:chat.call.log.subject.unknown');
|
|
6654
|
+
}
|
|
6470
6655
|
if (info.durationSec != null) {
|
|
6471
6656
|
const durationTranslation = axmResolveCallDurationTranslation(info.durationSec);
|
|
6472
6657
|
params['duration'] = await this.translation.translateAsync(durationTranslation.key, {
|
|
@@ -6476,13 +6661,13 @@ class AXMChatCallLogMessageRendererComponent {
|
|
|
6476
6661
|
this.translateParams.set(params);
|
|
6477
6662
|
}
|
|
6478
6663
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMChatCallLogMessageRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6479
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMChatCallLogMessageRendererComponent, isStandalone: true, selector: "axm-chat-call-log-message-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "contextmenu": "onContextMenu($event)" } }, ngImport: i0, template: "@if (log(); as info) {\n <div
|
|
6664
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMChatCallLogMessageRendererComponent, isStandalone: true, selector: "axm-chat-call-log-message-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "contextmenu": "onContextMenu($event)" } }, ngImport: i0, template: "@if (log(); as info) {\n <div\n class=\"axm-chat-call-log\"\n [attr.dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\"\n [class.axm-chat-call-log--video]=\"isVideo()\"\n [class.axm-chat-call-log--success]=\"iconTone() === 'success'\"\n [class.axm-chat-call-log--danger]=\"iconTone() === 'danger'\"\n [class.axm-chat-call-log--own]=\"isOwnBubble()\"\n [class.axm-chat-call-log--outgoing]=\"callDirection() === 'outgoing'\"\n [class.axm-chat-call-log--incoming]=\"callDirection() === 'incoming'\"\n >\n <!-- ----- Call-back action (Telegram phone button) ----- -->\n <button\n type=\"button\"\n class=\"axm-chat-call-log__callback\"\n [disabled]=\"callbackBusy()\"\n [attr.aria-label]=\"'@conversation:chat.call.log.callback' | translate | async\"\n (click)=\"onCallbackClick($event)\"\n >\n <i [class]=\"'fa-solid ' + callbackIconClass()\" aria-hidden=\"true\"></i>\n </button>\n\n <div class=\"axm-chat-call-log__body\">\n <!-- ----- Telegram-style status headline ----- -->\n <span class=\"axm-chat-call-log__title\">{{\n headlineKey() | translate: { params: translateParams() } | async\n }}</span>\n\n <div class=\"axm-chat-call-log__meta\">\n <!-- ----- Status marker + call/ring duration (bubble already shows message time) ----- -->\n <span class=\"axm-chat-call-log__status\" aria-hidden=\"true\">\n <i [class]=\"'fa-solid ' + statusIconClass()\"></i>\n </span>\n @if (translateParams()['duration']; as duration) {\n <span class=\"axm-chat-call-log__meta-text\">{{ duration }}</span>\n }\n </div>\n\n @if (showGroupAttendance()) {\n <!-- ----- Group attendance summary when the call completed ----- -->\n <span class=\"axm-chat-call-log__detail\">{{\n '@conversation:chat.call.log.group-attendance'\n | translate: { params: translateParams() }\n | async\n }}</span>\n }\n </div>\n </div>\n}\n", styles: [":host{display:block;width:100%;min-width:12.5rem;max-width:100%;color:inherit}.axm-chat-call-log{--axm-call-log-status: rgb(var(--ax-sys-color-success-500));--axm-call-log-callback-ring: rgb(var(--ax-sys-color-primary-500));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-on-primary-surface));box-sizing:border-box;width:100%;min-width:12.5rem;color:inherit;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.875rem}.axm-chat-call-log[dir=ltr]{flex-direction:row-reverse;justify-content:space-between}.axm-chat-call-log__body{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:0;text-align:start}.axm-chat-call-log[dir=ltr] .axm-chat-call-log__body{flex:1 1 auto;align-items:flex-start}.axm-chat-call-log[dir=ltr] .axm-chat-call-log__meta{align-self:stretch;justify-content:flex-start}.axm-chat-call-log[dir=rtl] .axm-chat-call-log__body{align-items:flex-start}.axm-chat-call-log[dir=rtl] .axm-chat-call-log__meta{align-self:stretch;justify-content:flex-start}.axm-chat-call-log--danger{--axm-call-log-status: rgb(var(--ax-sys-color-danger-500))}.axm-chat-call-log--success{--axm-call-log-status: rgb(var(--ax-sys-color-success-500))}.axm-chat-call-log--own{--axm-call-log-status: rgb(var(--ax-sys-color-on-primary-surface));--axm-call-log-callback-ring: rgb(var(--ax-sys-color-on-primary-surface));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-primary-surface))}.axm-chat-call-log:not(.axm-chat-call-log--own){--axm-call-log-callback-ring: rgb(var(--ax-sys-color-on-lightest-surface));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-lightest-surface))}.axm-chat-call-log__title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.axm-chat-call-log__meta{display:inline-flex;align-items:center;gap:.35rem;min-width:0;color:inherit;opacity:.7;font-size:.75rem;line-height:1.35}.axm-chat-call-log__status{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--axm-call-log-status);font-size:.7rem;line-height:1}.axm-chat-call-log__arrow{display:inline-block;transform-origin:center}.axm-chat-call-log__arrow--in{transform:rotate(-45deg)}.axm-chat-call-log__arrow--out{transform:rotate(45deg)}.axm-chat-call-log__meta-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.axm-chat-call-log__detail{font-size:.75rem;color:inherit;opacity:.85;line-height:1.35}.axm-chat-call-log__callback{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:9999px;background:var(--axm-call-log-callback-ring);color:var(--axm-call-log-callback-surface);font-size:1.1rem;line-height:1;cursor:pointer}.axm-chat-call-log__callback:hover:not(:disabled){filter:brightness(.94)}.axm-chat-call-log__callback:active:not(:disabled){filter:brightness(.88)}.axm-chat-call-log__callback:disabled{opacity:.55;cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6480
6665
|
}
|
|
6481
6666
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMChatCallLogMessageRendererComponent, decorators: [{
|
|
6482
6667
|
type: Component,
|
|
6483
6668
|
args: [{ selector: 'axm-chat-call-log-message-renderer', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXTranslationModule, AsyncPipe], host: {
|
|
6484
6669
|
'(contextmenu)': 'onContextMenu($event)',
|
|
6485
|
-
}, template: "@if (log(); as info) {\n <div
|
|
6670
|
+
}, template: "@if (log(); as info) {\n <div\n class=\"axm-chat-call-log\"\n [attr.dir]=\"isRtlLayout() ? 'rtl' : 'ltr'\"\n [class.axm-chat-call-log--video]=\"isVideo()\"\n [class.axm-chat-call-log--success]=\"iconTone() === 'success'\"\n [class.axm-chat-call-log--danger]=\"iconTone() === 'danger'\"\n [class.axm-chat-call-log--own]=\"isOwnBubble()\"\n [class.axm-chat-call-log--outgoing]=\"callDirection() === 'outgoing'\"\n [class.axm-chat-call-log--incoming]=\"callDirection() === 'incoming'\"\n >\n <!-- ----- Call-back action (Telegram phone button) ----- -->\n <button\n type=\"button\"\n class=\"axm-chat-call-log__callback\"\n [disabled]=\"callbackBusy()\"\n [attr.aria-label]=\"'@conversation:chat.call.log.callback' | translate | async\"\n (click)=\"onCallbackClick($event)\"\n >\n <i [class]=\"'fa-solid ' + callbackIconClass()\" aria-hidden=\"true\"></i>\n </button>\n\n <div class=\"axm-chat-call-log__body\">\n <!-- ----- Telegram-style status headline ----- -->\n <span class=\"axm-chat-call-log__title\">{{\n headlineKey() | translate: { params: translateParams() } | async\n }}</span>\n\n <div class=\"axm-chat-call-log__meta\">\n <!-- ----- Status marker + call/ring duration (bubble already shows message time) ----- -->\n <span class=\"axm-chat-call-log__status\" aria-hidden=\"true\">\n <i [class]=\"'fa-solid ' + statusIconClass()\"></i>\n </span>\n @if (translateParams()['duration']; as duration) {\n <span class=\"axm-chat-call-log__meta-text\">{{ duration }}</span>\n }\n </div>\n\n @if (showGroupAttendance()) {\n <!-- ----- Group attendance summary when the call completed ----- -->\n <span class=\"axm-chat-call-log__detail\">{{\n '@conversation:chat.call.log.group-attendance'\n | translate: { params: translateParams() }\n | async\n }}</span>\n }\n </div>\n </div>\n}\n", styles: [":host{display:block;width:100%;min-width:12.5rem;max-width:100%;color:inherit}.axm-chat-call-log{--axm-call-log-status: rgb(var(--ax-sys-color-success-500));--axm-call-log-callback-ring: rgb(var(--ax-sys-color-primary-500));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-on-primary-surface));box-sizing:border-box;width:100%;min-width:12.5rem;color:inherit;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.875rem}.axm-chat-call-log[dir=ltr]{flex-direction:row-reverse;justify-content:space-between}.axm-chat-call-log__body{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:0;text-align:start}.axm-chat-call-log[dir=ltr] .axm-chat-call-log__body{flex:1 1 auto;align-items:flex-start}.axm-chat-call-log[dir=ltr] .axm-chat-call-log__meta{align-self:stretch;justify-content:flex-start}.axm-chat-call-log[dir=rtl] .axm-chat-call-log__body{align-items:flex-start}.axm-chat-call-log[dir=rtl] .axm-chat-call-log__meta{align-self:stretch;justify-content:flex-start}.axm-chat-call-log--danger{--axm-call-log-status: rgb(var(--ax-sys-color-danger-500))}.axm-chat-call-log--success{--axm-call-log-status: rgb(var(--ax-sys-color-success-500))}.axm-chat-call-log--own{--axm-call-log-status: rgb(var(--ax-sys-color-on-primary-surface));--axm-call-log-callback-ring: rgb(var(--ax-sys-color-on-primary-surface));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-primary-surface))}.axm-chat-call-log:not(.axm-chat-call-log--own){--axm-call-log-callback-ring: rgb(var(--ax-sys-color-on-lightest-surface));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-lightest-surface))}.axm-chat-call-log__title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.axm-chat-call-log__meta{display:inline-flex;align-items:center;gap:.35rem;min-width:0;color:inherit;opacity:.7;font-size:.75rem;line-height:1.35}.axm-chat-call-log__status{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--axm-call-log-status);font-size:.7rem;line-height:1}.axm-chat-call-log__arrow{display:inline-block;transform-origin:center}.axm-chat-call-log__arrow--in{transform:rotate(-45deg)}.axm-chat-call-log__arrow--out{transform:rotate(45deg)}.axm-chat-call-log__meta-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.axm-chat-call-log__detail{font-size:.75rem;color:inherit;opacity:.85;line-height:1.35}.axm-chat-call-log__callback{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:9999px;background:var(--axm-call-log-callback-ring);color:var(--axm-call-log-callback-surface);font-size:1.1rem;line-height:1;cursor:pointer}.axm-chat-call-log__callback:hover:not(:disabled){filter:brightness(.94)}.axm-chat-call-log__callback:active:not(:disabled){filter:brightness(.88)}.axm-chat-call-log__callback:disabled{opacity:.55;cursor:default}\n"] }]
|
|
6486
6671
|
}], ctorParameters: () => [], propDecorators: { message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }] } });
|
|
6487
6672
|
|
|
6488
6673
|
const AXM_CONVERSATION_CALL_LOG_RENDERER = {
|
|
@@ -9874,7 +10059,7 @@ async function axmOpenChatConversationInfoPanelDialog(options) {
|
|
|
9874
10059
|
}
|
|
9875
10060
|
const popupService = options.popupService ?? inject(AXPopupService);
|
|
9876
10061
|
const conversationService = options.conversationService ?? inject(AXConversationService);
|
|
9877
|
-
const comp = (await import('./acorex-platform-module-conversation-client-chat-conversation-info-panel.component-
|
|
10062
|
+
const comp = (await import('./acorex-platform-module-conversation-client-chat-conversation-info-panel.component-BBL8iEqc.mjs')).AXMChatConversationInfoPanelComponent;
|
|
9878
10063
|
await popupService.open(comp, {
|
|
9879
10064
|
title: conversation.title,
|
|
9880
10065
|
closeButton: true,
|
|
@@ -10212,7 +10397,7 @@ class AXMChatComponent extends AXPPageLayoutBaseComponent {
|
|
|
10212
10397
|
return axmIsConversationChatUrl(this.routerUrl());
|
|
10213
10398
|
}
|
|
10214
10399
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMChatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
10215
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMChatComponent, isStandalone: true, selector: "axm-chat", host: { listeners: { "keydown.escape": "onContainerEscape()" }, properties: { "tabindex": "\"-1\"" } }, usesInheritance: true, ngImport: i0, template: "<axp-page-layout #container axConversationContainer>\n <!-- ----- Desktop sidebar only; mobile uses full-screen list + back navigation ----- -->\n @if (!deviceService.isMobileDevice()) {\n <axp-layout-start-side class=\"border-e h-full\">\n <axp-layout-content class=\"flex flex-col min-h-0 max-w-80\">\n <div class=\"h-full flex flex-col shrink-0\">\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n </div>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <!-- ----- Chat content: list on mobile when idle; conversation + back when selected ----- -->\n\n <axp-page-content class=\"h-full overflow-hidden p-0! flex min-h-0 flex-col\">\n @if (showChatList()) {\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n } @else {\n <div class=\"flex h-full min-h-0 flex-1 flex-col\">\n <ax-conversation-info-bar class=\"shadow-md\">\n <ax-prefix>\n <!-- ----- Back to conversation list on mobile ----- -->\n @if (deviceService.isMobileDevice()) {\n <ax-button look=\"blank\" class=\"axm-chat__back\" [attr.aria-label]=\"('@conversation:chat.actions.back-to-chats' | translate | async) ?? ''\" (onClick)=\"openChatList()\">\n <ax-prefix>\n <ax-icon class=\"axm-chat__back-icon\" icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-prefix>\n <!--->\n <!-- ----- Unread count from other chats ----- -->\n @if (backBadgeCount() > 0) {\n <ax-badge size=\"sm\" look=\"solid\" color=\"primary\" [text]=\"'' + backBadgeCount()\"></ax-badge>\n }\n </ax-button>\n }\n <!-- ----- Close chat on desktop ----- -->\n @else {\n <ax-button class=\"rounded-full\" look=\"blank\" (onClick)=\"onContainerEscape()\" aria-label=\"Close Chat\">\n <ax-icon icon=\"fa-light fa-xmark text-xl\"></ax-icon>\n </ax-button>\n }\n </ax-prefix>\n </ax-conversation-info-bar>\n <ax-conversation-message-list class=\"min-h-0 flex-1 overflow-hidden\"
|
|
10400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMChatComponent, isStandalone: true, selector: "axm-chat", host: { listeners: { "keydown.escape": "onContainerEscape()" }, properties: { "tabindex": "\"-1\"" } }, usesInheritance: true, ngImport: i0, template: "<axp-page-layout #container axConversationContainer>\n <!-- ----- Desktop sidebar only; mobile uses full-screen list + back navigation ----- -->\n @if (!deviceService.isMobileDevice()) {\n <axp-layout-start-side class=\"border-e h-full\">\n <axp-layout-content class=\"flex flex-col min-h-0 max-w-80\">\n <div class=\"h-full flex flex-col shrink-0\">\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n </div>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <!-- ----- Chat content: list on mobile when idle; conversation + back when selected ----- -->\n\n <axp-page-content class=\"h-full overflow-hidden p-0! flex min-h-0 flex-col\">\n @if (showChatList()) {\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n } @else {\n <div class=\"flex h-full min-h-0 flex-1 flex-col\">\n <ax-conversation-info-bar class=\"shadow-md\">\n <ax-prefix>\n <!-- ----- Back to conversation list on mobile ----- -->\n @if (deviceService.isMobileDevice()) {\n <ax-button look=\"blank\" class=\"axm-chat__back\" [attr.aria-label]=\"('@conversation:chat.actions.back-to-chats' | translate | async) ?? ''\" (onClick)=\"openChatList()\">\n <ax-prefix>\n <ax-icon class=\"axm-chat__back-icon\" icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-prefix>\n <!--->\n <!-- ----- Unread count from other chats ----- -->\n @if (backBadgeCount() > 0) {\n <ax-badge size=\"sm\" look=\"solid\" color=\"primary\" [text]=\"'' + backBadgeCount()\"></ax-badge>\n }\n </ax-button>\n }\n <!-- ----- Close chat on desktop ----- -->\n @else {\n <ax-button class=\"rounded-full\" look=\"blank\" (onClick)=\"onContainerEscape()\" aria-label=\"Close Chat\">\n <ax-icon icon=\"fa-light fa-xmark text-xl\"></ax-icon>\n </ax-button>\n }\n </ax-prefix>\n </ax-conversation-info-bar>\n <ax-conversation-message-list class=\"min-h-0 flex-1 overflow-hidden\">\n <div ax-conversation-message-list-no-active class=\"block\" style=\"width: min(95%, 50rem)\">\n <axm-chat-empty-state-host (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n <axm-chat-assist-composer-starter-prompts ax-conversation-message-list-empty />\n </ax-conversation-message-list>\n </div>\n }\n </axp-page-content>\n\n <axp-page-footer class=\"block\">\n <ax-conversation-composer />\n </axp-page-footer>\n</axp-page-layout>\n", styles: ["ax-conversation-avatar .ax-conversation-avatar-status{display:none}axm-chat #axp-page-header{display:none}axm-chat #axp-page-footer-container{padding:0}axm-chat .date-separator{z-index:50!important}axm-chat .message-bubble{padding:.75rem .75rem .25rem!important}axm-chat .message-bubble:has(.axm-chat-call-log){text-align:start}axm-chat .message-bubble .axm-chat-call-log,axm-chat .message-bubble axm-chat-call-log-message-renderer{width:100%;min-width:12.5rem}axm-chat .message-bubble-received .axm-chat-call-log:not(.axm-chat-call-log--own){--axm-call-log-callback-ring: rgb(var(--ax-sys-color-on-lightest-surface));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-lightest-surface))}axm-chat .axm-chat__back{display:inline-flex;align-items:center;gap:var(--spacing, .25rem)}axm-chat .axm-chat__back-icon:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXConversationContainerDirective, selector: "[axConversationContainer]" }, { kind: "component", type: AXConversationSidebarComponent, selector: "ax-conversation-sidebar", outputs: ["conversationSelected"] }, { kind: "component", type: AXConversationInfoBarComponent, selector: "ax-conversation-info-bar", outputs: ["infoClick", "searchClick", "searchQuery", "menuItemAction"] }, { kind: "component", type: AXConversationMessageListComponent, selector: "ax-conversation-message-list", outputs: ["messageAction"] }, { kind: "component", type: AXConversationComposerComponent, selector: "ax-conversation-composer", outputs: ["messageSent", "generationCancelled", "emojiClick", "attachClick", "voiceClick"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$4.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type: AXMChatSidebarNewActionsComponent, selector: "axm-chat-sidebar-new-actions", outputs: ["conversationCreated"] }, { kind: "component", type: AXMChatEmptyStateHostComponent, selector: "axm-chat-empty-state-host", inputs: ["compact", "initialAssistId", "entityId", "entityType", "sendStarterPromptsInPlace"], outputs: ["conversationCreated"] }, { kind: "component", type: AXMChatAssistComposerStarterPromptsComponent, selector: "axm-chat-assist-composer-starter-prompts", inputs: ["sendStarterPromptsInPlace", "compact"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
10216
10401
|
}
|
|
10217
10402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMChatComponent, decorators: [{
|
|
10218
10403
|
type: Component,
|
|
@@ -10236,7 +10421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
10236
10421
|
], host: {
|
|
10237
10422
|
'(keydown.escape)': 'onContainerEscape()',
|
|
10238
10423
|
'[tabindex]': '"-1"',
|
|
10239
|
-
}, template: "<axp-page-layout #container axConversationContainer>\n <!-- ----- Desktop sidebar only; mobile uses full-screen list + back navigation ----- -->\n @if (!deviceService.isMobileDevice()) {\n <axp-layout-start-side class=\"border-e h-full\">\n <axp-layout-content class=\"flex flex-col min-h-0 max-w-80\">\n <div class=\"h-full flex flex-col shrink-0\">\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n </div>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <!-- ----- Chat content: list on mobile when idle; conversation + back when selected ----- -->\n\n <axp-page-content class=\"h-full overflow-hidden p-0! flex min-h-0 flex-col\">\n @if (showChatList()) {\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n } @else {\n <div class=\"flex h-full min-h-0 flex-1 flex-col\">\n <ax-conversation-info-bar class=\"shadow-md\">\n <ax-prefix>\n <!-- ----- Back to conversation list on mobile ----- -->\n @if (deviceService.isMobileDevice()) {\n <ax-button look=\"blank\" class=\"axm-chat__back\" [attr.aria-label]=\"('@conversation:chat.actions.back-to-chats' | translate | async) ?? ''\" (onClick)=\"openChatList()\">\n <ax-prefix>\n <ax-icon class=\"axm-chat__back-icon\" icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-prefix>\n <!--->\n <!-- ----- Unread count from other chats ----- -->\n @if (backBadgeCount() > 0) {\n <ax-badge size=\"sm\" look=\"solid\" color=\"primary\" [text]=\"'' + backBadgeCount()\"></ax-badge>\n }\n </ax-button>\n }\n <!-- ----- Close chat on desktop ----- -->\n @else {\n <ax-button class=\"rounded-full\" look=\"blank\" (onClick)=\"onContainerEscape()\" aria-label=\"Close Chat\">\n <ax-icon icon=\"fa-light fa-xmark text-xl\"></ax-icon>\n </ax-button>\n }\n </ax-prefix>\n </ax-conversation-info-bar>\n <ax-conversation-message-list class=\"min-h-0 flex-1 overflow-hidden\"
|
|
10424
|
+
}, template: "<axp-page-layout #container axConversationContainer>\n <!-- ----- Desktop sidebar only; mobile uses full-screen list + back navigation ----- -->\n @if (!deviceService.isMobileDevice()) {\n <axp-layout-start-side class=\"border-e h-full\">\n <axp-layout-content class=\"flex flex-col min-h-0 max-w-80\">\n <div class=\"h-full flex flex-col shrink-0\">\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n </div>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <!-- ----- Chat content: list on mobile when idle; conversation + back when selected ----- -->\n\n <axp-page-content class=\"h-full overflow-hidden p-0! flex min-h-0 flex-col\">\n @if (showChatList()) {\n <ax-conversation-sidebar (conversationSelected)=\"onConversationSelected($event.id)\" class=\"group\">\n <ax-suffix>\n <div class=\"flex h-14 shrink-0 items-center justify-end overflow-hidden\">\n <axm-chat-sidebar-new-actions (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n </ax-suffix>\n </ax-conversation-sidebar>\n } @else {\n <div class=\"flex h-full min-h-0 flex-1 flex-col\">\n <ax-conversation-info-bar class=\"shadow-md\">\n <ax-prefix>\n <!-- ----- Back to conversation list on mobile ----- -->\n @if (deviceService.isMobileDevice()) {\n <ax-button look=\"blank\" class=\"axm-chat__back\" [attr.aria-label]=\"('@conversation:chat.actions.back-to-chats' | translate | async) ?? ''\" (onClick)=\"openChatList()\">\n <ax-prefix>\n <ax-icon class=\"axm-chat__back-icon\" icon=\"fa-light fa-chevron-left\"></ax-icon>\n </ax-prefix>\n <!--->\n <!-- ----- Unread count from other chats ----- -->\n @if (backBadgeCount() > 0) {\n <ax-badge size=\"sm\" look=\"solid\" color=\"primary\" [text]=\"'' + backBadgeCount()\"></ax-badge>\n }\n </ax-button>\n }\n <!-- ----- Close chat on desktop ----- -->\n @else {\n <ax-button class=\"rounded-full\" look=\"blank\" (onClick)=\"onContainerEscape()\" aria-label=\"Close Chat\">\n <ax-icon icon=\"fa-light fa-xmark text-xl\"></ax-icon>\n </ax-button>\n }\n </ax-prefix>\n </ax-conversation-info-bar>\n <ax-conversation-message-list class=\"min-h-0 flex-1 overflow-hidden\">\n <div ax-conversation-message-list-no-active class=\"block\" style=\"width: min(95%, 50rem)\">\n <axm-chat-empty-state-host (conversationCreated)=\"onConversationSelected($event)\" />\n </div>\n <axm-chat-assist-composer-starter-prompts ax-conversation-message-list-empty />\n </ax-conversation-message-list>\n </div>\n }\n </axp-page-content>\n\n <axp-page-footer class=\"block\">\n <ax-conversation-composer />\n </axp-page-footer>\n</axp-page-layout>\n", styles: ["ax-conversation-avatar .ax-conversation-avatar-status{display:none}axm-chat #axp-page-header{display:none}axm-chat #axp-page-footer-container{padding:0}axm-chat .date-separator{z-index:50!important}axm-chat .message-bubble{padding:.75rem .75rem .25rem!important}axm-chat .message-bubble:has(.axm-chat-call-log){text-align:start}axm-chat .message-bubble .axm-chat-call-log,axm-chat .message-bubble axm-chat-call-log-message-renderer{width:100%;min-width:12.5rem}axm-chat .message-bubble-received .axm-chat-call-log:not(.axm-chat-call-log--own){--axm-call-log-callback-ring: rgb(var(--ax-sys-color-on-lightest-surface));--axm-call-log-callback-surface: rgb(var(--ax-sys-color-lightest-surface))}axm-chat .axm-chat__back{display:inline-flex;align-items:center;gap:var(--spacing, .25rem)}axm-chat .axm-chat__back-icon:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
10240
10425
|
}] });
|
|
10241
10426
|
|
|
10242
10427
|
var chat_component = /*#__PURE__*/Object.freeze({
|
|
@@ -12928,40 +13113,6 @@ function axmParseChatCallRtcRingPayload(raw) {
|
|
|
12928
13113
|
}
|
|
12929
13114
|
//#endregion
|
|
12930
13115
|
|
|
12931
|
-
//#region ----- Imports -----
|
|
12932
|
-
//#endregion
|
|
12933
|
-
//#region ----- Dialog -----
|
|
12934
|
-
/**
|
|
12935
|
-
* Opens the LiveKit-backed call session as an in-app popup.
|
|
12936
|
-
* Must be called from an injection context when `popupService` is omitted.
|
|
12937
|
-
*/
|
|
12938
|
-
async function axmOpenChatCallSessionDialog(options) {
|
|
12939
|
-
const conversation = options.conversation;
|
|
12940
|
-
if (!conversation?.id?.trim()) {
|
|
12941
|
-
return;
|
|
12942
|
-
}
|
|
12943
|
-
const popupService = options.popupService ?? inject(AXPopupService);
|
|
12944
|
-
const comp = (await import('./acorex-platform-module-conversation-client-chat-call-session-page.component-BStKnruT.mjs')).AXMChatCallSessionPageComponent;
|
|
12945
|
-
const data = {
|
|
12946
|
-
sessionConversation: conversation,
|
|
12947
|
-
sessionMedia: options.media === 'video' ? 'video' : 'voice',
|
|
12948
|
-
sessionPhase: options.phase ?? 'outgoing-waiting',
|
|
12949
|
-
sessionCallId: options.callId?.trim() || undefined,
|
|
12950
|
-
sessionInitiatorUserId: options.initiatorUserId?.trim() || undefined,
|
|
12951
|
-
};
|
|
12952
|
-
await popupService.open(comp, {
|
|
12953
|
-
header: false,
|
|
12954
|
-
closeButton: false,
|
|
12955
|
-
footer: false,
|
|
12956
|
-
size: 'full',
|
|
12957
|
-
closeOnBackdropClick: false,
|
|
12958
|
-
panelClass: ['animate-fadeIn', 'animate-fast'],
|
|
12959
|
-
contextElement: axmChatCallDarkThemeContextElement(),
|
|
12960
|
-
data,
|
|
12961
|
-
});
|
|
12962
|
-
}
|
|
12963
|
-
//#endregion
|
|
12964
|
-
|
|
12965
13116
|
//#region ----- Imports -----
|
|
12966
13117
|
//#endregion
|
|
12967
13118
|
//#region ----- Constants -----
|
|
@@ -13388,7 +13539,7 @@ class AXMCommentsPageComponentProvider {
|
|
|
13388
13539
|
return [
|
|
13389
13540
|
{
|
|
13390
13541
|
key: COMMENTS_PAGE_COMPONENT_KEY,
|
|
13391
|
-
loader: () => import('./acorex-platform-module-conversation-client-comments-page.component-
|
|
13542
|
+
loader: () => import('./acorex-platform-module-conversation-client-comments-page.component-Djn8EikR.mjs').then((m) => m.AXMCommentsPageComponent),
|
|
13392
13543
|
},
|
|
13393
13544
|
];
|
|
13394
13545
|
}
|
|
@@ -13680,19 +13831,19 @@ class AXMConversationModule {
|
|
|
13680
13831
|
provideCommandSetups([
|
|
13681
13832
|
{
|
|
13682
13833
|
key: CONVERSATION_AFTER_MESSAGE_SENT_COMMAND,
|
|
13683
|
-
command: () => import('./acorex-platform-module-conversation-client-after-message-sent.command-
|
|
13834
|
+
command: () => import('./acorex-platform-module-conversation-client-after-message-sent.command-yzW01skh.mjs').then((m) => m.AXMConversationAfterMessageSentCommand),
|
|
13684
13835
|
},
|
|
13685
13836
|
{
|
|
13686
13837
|
key: CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND,
|
|
13687
|
-
command: () => import('./acorex-platform-module-conversation-client-retry-assist-response.command-
|
|
13838
|
+
command: () => import('./acorex-platform-module-conversation-client-retry-assist-response.command-DYIpLKDB.mjs').then((m) => m.AXMConversationRetryAssistResponseCommand),
|
|
13688
13839
|
},
|
|
13689
13840
|
{
|
|
13690
13841
|
key: CONVERSATION_SYNC_READ_STATE_COMMAND,
|
|
13691
|
-
command: () => import('./acorex-platform-module-conversation-client-sync-read-state.command-
|
|
13842
|
+
command: () => import('./acorex-platform-module-conversation-client-sync-read-state.command-D97E8VvL.mjs').then((m) => m.AXMConversationSyncReadStateCommand),
|
|
13692
13843
|
},
|
|
13693
13844
|
{
|
|
13694
13845
|
key: CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND,
|
|
13695
|
-
command: () => import('./acorex-platform-module-conversation-client-mark-conversation-unread.command-
|
|
13846
|
+
command: () => import('./acorex-platform-module-conversation-client-mark-conversation-unread.command-BoTNaBxS.mjs').then((m) => m.AXMConversationMarkConversationUnreadCommand),
|
|
13696
13847
|
},
|
|
13697
13848
|
{
|
|
13698
13849
|
key: CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND,
|
|
@@ -13704,7 +13855,7 @@ class AXMConversationModule {
|
|
|
13704
13855
|
},
|
|
13705
13856
|
{
|
|
13706
13857
|
key: CONVERSATION_OPEN_CHAT_COMMAND,
|
|
13707
|
-
command: () => import('./acorex-platform-module-conversation-client-open-chat.command-
|
|
13858
|
+
command: () => import('./acorex-platform-module-conversation-client-open-chat.command-VgeGqj-z.mjs').then((m) => m.AXMConversationOpenChatCommand),
|
|
13708
13859
|
},
|
|
13709
13860
|
{
|
|
13710
13861
|
key: 'show-comment-popup',
|
|
@@ -13799,19 +13950,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
13799
13950
|
provideCommandSetups([
|
|
13800
13951
|
{
|
|
13801
13952
|
key: CONVERSATION_AFTER_MESSAGE_SENT_COMMAND,
|
|
13802
|
-
command: () => import('./acorex-platform-module-conversation-client-after-message-sent.command-
|
|
13953
|
+
command: () => import('./acorex-platform-module-conversation-client-after-message-sent.command-yzW01skh.mjs').then((m) => m.AXMConversationAfterMessageSentCommand),
|
|
13803
13954
|
},
|
|
13804
13955
|
{
|
|
13805
13956
|
key: CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND,
|
|
13806
|
-
command: () => import('./acorex-platform-module-conversation-client-retry-assist-response.command-
|
|
13957
|
+
command: () => import('./acorex-platform-module-conversation-client-retry-assist-response.command-DYIpLKDB.mjs').then((m) => m.AXMConversationRetryAssistResponseCommand),
|
|
13807
13958
|
},
|
|
13808
13959
|
{
|
|
13809
13960
|
key: CONVERSATION_SYNC_READ_STATE_COMMAND,
|
|
13810
|
-
command: () => import('./acorex-platform-module-conversation-client-sync-read-state.command-
|
|
13961
|
+
command: () => import('./acorex-platform-module-conversation-client-sync-read-state.command-D97E8VvL.mjs').then((m) => m.AXMConversationSyncReadStateCommand),
|
|
13811
13962
|
},
|
|
13812
13963
|
{
|
|
13813
13964
|
key: CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND,
|
|
13814
|
-
command: () => import('./acorex-platform-module-conversation-client-mark-conversation-unread.command-
|
|
13965
|
+
command: () => import('./acorex-platform-module-conversation-client-mark-conversation-unread.command-BoTNaBxS.mjs').then((m) => m.AXMConversationMarkConversationUnreadCommand),
|
|
13815
13966
|
},
|
|
13816
13967
|
{
|
|
13817
13968
|
key: CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND,
|
|
@@ -13823,7 +13974,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
13823
13974
|
},
|
|
13824
13975
|
{
|
|
13825
13976
|
key: CONVERSATION_OPEN_CHAT_COMMAND,
|
|
13826
|
-
command: () => import('./acorex-platform-module-conversation-client-open-chat.command-
|
|
13977
|
+
command: () => import('./acorex-platform-module-conversation-client-open-chat.command-VgeGqj-z.mjs').then((m) => m.AXMConversationOpenChatCommand),
|
|
13827
13978
|
},
|
|
13828
13979
|
{
|
|
13829
13980
|
key: 'show-comment-popup',
|
|
@@ -13849,4 +14000,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
13849
14000
|
*/
|
|
13850
14001
|
|
|
13851
14002
|
export { AXMMiniChatHeaderSlotComponent as $, AXMConversationEntityStoreService as A, axmAssistWidgetNodeFromUnknown as B, axmPartitionAssistAnswerText as C, axmSyntheticEmbedMessage as D, AXMNodeMessageRendererComponent as E, AXMAssistBotFileLineComponent as F, AXMAssistSuggestionChipsComponent as G, AXMAddReactionCommand as H, AXMChatComponent as I, AXMChatEntityConversationFocusHandler as J, AXMChatEntityConversationRoomQueryService as K, AXMChatEntityMessageApi as L, AXMChatEntityRealtimeApi as M, AXMChatEntityUserApi as N, AXMChatMessageApi as O, AXMChatRealtimeApi as P, AXMCommentManagementService as Q, AXMCommentPopupComponent as R, AXMCommentRealtimeService as S, AXMCommentRealtimeServiceImpl as T, AXMCommentService as U, AXMCommentServiceImpl as V, AXMCommentWidgetViewComponent as W, AXMConversationAssistBackgroundOperationHandler as X, AXMConversationModule as Y, AXMEntityChatService as Z, AXMMiniChatComponent as _, AXM_CONVERSATION_ASSIST_RESPONSE_PORT as a, axmExtractDirectAgentIdFromMetadata as a$, AXMMiniChatHistoryComponent as a0, AXMMiniChatInboxHistoryComponent as a1, AXMMiniChatInboxPanelHostComponent as a2, AXMMiniChatLauncherComponent as a3, AXMMiniChatPanelComponent as a4, AXMMiniChatPanelService as a5, AXMShowCommentPopupCommand as a6, AXM_AI_MANAGEMENT_AGENT_ENTITY_NAME as a7, AXM_AI_MANAGEMENT_ASSIST_ENTITY_NAME as a8, AXM_AI_MANAGEMENT_MODULE_NAME as a9, axmAssistLastTranscriptLine as aA, axmAssistNormalizeFollowUpItemForConversation as aB, axmAssistNormalizeFollowUpItemsForConversation as aC, axmAssistPersistedMessageLooksComplete as aD, axmAssistResolveFollowUpCommandName as aE, axmAssistStarterPromptChipItems as aF, axmAssistUserFacingPayloadLine as aG, axmAssistUserVisibleItemsForLine as aH, axmAssistWidgetNodeDedupeKey as aI, axmBuildAiChatConversationMetadata as aJ, axmBuildAssistPeerParticipantFromCreateData as aK, axmBuildAssistPeerParticipantFromId as aL, axmBuildAssistTranscriptLinePayload as aM, axmBuildAutoTitleFromUserText as aN, axmBuildEntityChatConversationMetadata as aO, axmChatAiPeerParticipantId as aP, axmChatAiTargetAvatarUrl as aQ, axmChatAiTargetDisplayDescription as aR, axmChatAiTargetDisplayName as aS, axmChatAiTargetShortcutDescriptionKey as aT, axmCoerceDate as aU, axmCoerceTimestampMs as aV, axmComputeConversationUnreadCount as aW, axmConversationIsEntityChat as aX, axmConversationMatchesEntity as aY, axmExtractAssistIdFromMetadata as aZ, axmExtractAssistSnapshotFromMetadata as a_, AXM_ASSIST_DEFAULT_RESOLVER_PORT as aa, AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE as ab, AXM_CHAT_ASSIST_CATALOG_PORT as ac, AXM_CHAT_EMPTY_STATE_COMPONENT as ad, AXM_CHAT_SIDEBAR_ACTION_PROVIDER as ae, AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS as af, AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY as ag, AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY as ah, AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE as ai, AXM_CONVERSATION_TAB_BOT as aj, AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER as ak, AXM_MINI_CHAT_INBOX_SESSION_KEY as al, AXPCommentWidget as am, COMMENTS_PAGE_COMPONENT_KEY as an, CONVERSATION_AFTER_MESSAGE_SENT_COMMAND as ao, CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND as ap, CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND as aq, CONVERSATION_OPEN_CHAT_COMMAND as ar, CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND as as, CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND as at, CONVERSATION_START_ASSIST_CHAT_COMMAND as au, CONVERSATION_START_DIRECT_CHAT_COMMAND as av, CONVERSATION_SYNC_READ_STATE_COMMAND as aw, axmApplyAnswerTextToAssistPayloadLine as ax, axmAssistFollowUpItemsFromUnknown as ay, axmAssistHasFinalizeMetadata as az, AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT as b, axmExtractEntityRefFromMetadata as b0, axmExtractModelEntityIdFromMetadata as b1, axmExtractTextFromPayload as b2, axmFilterChatAiTargets as b3, axmHydrateRealtimeConversationMessage as b4, axmIsAssistBotConversation as b5, axmIsAssistPeerParticipant as b6, axmIsAssistRetryableStatus as b7, axmIsAssistStreamingMessage as b8, axmIsAssistStreamingStatus as b9, axmIsAssistTerminalStatus as ba, axmIsUnsupportedLegacyAgentAssistConversation as bb, axmLoadChatAiTargets as bc, axmMessageCountsTowardUnread as bd, axmMessageEntityToMessage as be, axmNormalizeAssistTranscriptForChatUi as bf, axmNormalizeAssistTranscriptLineResponses as bg, axmParseAssistTranscriptLinePayload as bh, axmReadAssistResponseError as bi, axmReadAssistResponseStatus as bj, axmReadPlainTextMessagePayload as bk, axmReadReplyToUserMessageId as bl, axmResolveAssistFinalAnswerText as bm, axmResolveChatAiTargetText as bn, axmRoomEntityToConversation as bo, axmRoomWithAssistPeerDisplayName as bp, axmSanitizeAssistUserAnswerText as bq, axmShouldPreferPersistedAssistOverLiveCache as br, axmShowCommentPopupCommandDefinition as bs, axmSortMessagesNewestFirst as bt, axmSyncAssistPeerDisplayName as bu, axmUserRowToParticipant as bv, commentsPlugin as bw, createConversationServiceSessionAdapter as bx, persistChatAttachment as by, axmConversationHasAiChat$1 as c, AXMConversationFocusService as d, AXMConversationInAppNotificationSyncService as e, buildConversationChatInAppCorrelationPrefix as f, AXMCommentComponent as g, axmResolveConversationListAvatar as h, axmEnsureChatCallRtcReady as i, axmOpenChatCallSessionDialog as j, AXMChatUserApi as k, AXMChatEntityConversationApi as l, AXMChatConversationApi as m, AXMChatCallRtcService as n, AXMChatCallRtcSignalInboxService as o, AXMChatCallActiveSessionService as p, AXMChatCallEventsService as q, AXMConversationRealtimeBus as r, axmReadChatCallLog as s, axmBuildChatCallLogMessage as t, axmReadChatCallMediaContextIssue as u, AXM_CHAT_CALL_RTC_PROVIDERS as v, axmReadAssistAiTranscript as w, axmReadAssistAiTranscriptRaw as x, axmAssistSegmentDirection as y, axmParseAssistTranscriptTextEnvelope as z };
|
|
13852
|
-
//# sourceMappingURL=acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-
|
|
14003
|
+
//# sourceMappingURL=acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CDlDFzbl.mjs.map
|