@acorex/components 21.0.2-next.21 → 21.0.2-next.22
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.
|
@@ -6043,6 +6043,17 @@ class AXComposerService {
|
|
|
6043
6043
|
this._replyMessage.set(null);
|
|
6044
6044
|
this._editMessage.set(null);
|
|
6045
6045
|
}
|
|
6046
|
+
/**
|
|
6047
|
+
* Persist draft for the previous conversation and reset composer UI state when switching conversations.
|
|
6048
|
+
*/
|
|
6049
|
+
onConversationChanged(previousConversationId, currentConversationId) {
|
|
6050
|
+
if (previousConversationId && previousConversationId !== currentConversationId && !this.editMessage()) {
|
|
6051
|
+
this.saveDraft(previousConversationId, this.draftText());
|
|
6052
|
+
}
|
|
6053
|
+
this.clear();
|
|
6054
|
+
this.attachments.set([]);
|
|
6055
|
+
this.draftText.set(currentConversationId ? this.loadDraft(currentConversationId) : '');
|
|
6056
|
+
}
|
|
6046
6057
|
async sendTypingIndicator(conversationId) {
|
|
6047
6058
|
await this.conversationService.sendTypingIndicator(conversationId);
|
|
6048
6059
|
}
|
|
@@ -9021,8 +9032,8 @@ class AXVideoPickerComponent {
|
|
|
9021
9032
|
mediaId: video.mediaId,
|
|
9022
9033
|
mimeType: video.file.type,
|
|
9023
9034
|
size: video.file.size,
|
|
9024
|
-
thumbnailUrl: video.preview,
|
|
9025
|
-
}, video.duration ?? 0
|
|
9035
|
+
// thumbnailUrl: video.preview,
|
|
9036
|
+
}, video.duration ?? 0));
|
|
9026
9037
|
if (videos.length === 0) {
|
|
9027
9038
|
return;
|
|
9028
9039
|
}
|
|
@@ -9172,7 +9183,9 @@ class AXVideoPickerComponent {
|
|
|
9172
9183
|
class="ax-cnv-picker__remove"
|
|
9173
9184
|
(click)="removeVideo($index)"
|
|
9174
9185
|
[attr.aria-label]="
|
|
9175
|
-
video.uploading
|
|
9186
|
+
video.uploading
|
|
9187
|
+
? getCancelUploadLabel()
|
|
9188
|
+
: translation.translateSync('@acorex:chat.pickers.common.remove')
|
|
9176
9189
|
"
|
|
9177
9190
|
>
|
|
9178
9191
|
<i class="fa-light fa-xmark"></i>
|
|
@@ -9287,7 +9300,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
9287
9300
|
class="ax-cnv-picker__remove"
|
|
9288
9301
|
(click)="removeVideo($index)"
|
|
9289
9302
|
[attr.aria-label]="
|
|
9290
|
-
video.uploading
|
|
9303
|
+
video.uploading
|
|
9304
|
+
? getCancelUploadLabel()
|
|
9305
|
+
: translation.translateSync('@acorex:chat.pickers.common.remove')
|
|
9291
9306
|
"
|
|
9292
9307
|
>
|
|
9293
9308
|
<i class="fa-light fa-xmark"></i>
|
|
@@ -11188,7 +11203,8 @@ class AXConversationMessageRendererStateComponent {
|
|
|
11188
11203
|
this.hasVisibleChrome = computed(() => this.showSending() || this.showFailed() || this.showContentError(), ...(ngDevMode ? [{ debugName: "hasVisibleChrome" }] : []));
|
|
11189
11204
|
this.showRetryButton = computed(() => this.showFailed(), ...(ngDevMode ? [{ debugName: "showRetryButton" }] : []));
|
|
11190
11205
|
this.contentErrorText = computed(() => this.contentErrorLabel() ?? this.translation.translateSync('@acorex:chat.renderer-state.could-not-load-content'), ...(ngDevMode ? [{ debugName: "contentErrorText" }] : []));
|
|
11191
|
-
this.deliveryFailedText = computed(() => this.deliveryFailedLabel() ??
|
|
11206
|
+
this.deliveryFailedText = computed(() => this.deliveryFailedLabel() ??
|
|
11207
|
+
this.translation.translateSync('@acorex:chat.renderer-state.could-not-send-message'), ...(ngDevMode ? [{ debugName: "deliveryFailedText" }] : []));
|
|
11192
11208
|
}
|
|
11193
11209
|
async onRetry() {
|
|
11194
11210
|
const msg = this.message();
|
|
@@ -11586,7 +11602,7 @@ class AXAudioAttachmentComponent {
|
|
|
11586
11602
|
<span class="ax-cnv-audio__time">{{ durationLabel() }}</span>
|
|
11587
11603
|
} -->
|
|
11588
11604
|
</div>
|
|
11589
|
-
`, isInline: true, styles: [":host{display:block}.ax-cnv-audio{display:flex;align-items:center;gap:.5rem;width:100%;min-width:
|
|
11605
|
+
`, isInline: true, styles: [":host{display:block}.ax-cnv-audio{display:flex;align-items:center;gap:.5rem;width:100%;min-width:22rem;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface))}.ax-cnv-audio__icon{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-500));font-size:.875rem}.ax-cnv-audio__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-cnv-audio__title{font-size:.75rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgb(var(--ax-sys-color-on-surface))}.ax-cnv-audio__el{width:100%;height:1.75rem}.ax-cnv-audio__time{flex-shrink:0;font-size:.6875rem;font-variant-numeric:tabular-nums;color:rgba(var(--ax-sys-color-on-surface),.65)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11590
11606
|
}
|
|
11591
11607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXAudioAttachmentComponent, decorators: [{
|
|
11592
11608
|
type: Component,
|
|
@@ -11613,16 +11629,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
11613
11629
|
<span class="ax-cnv-audio__time">{{ durationLabel() }}</span>
|
|
11614
11630
|
} -->
|
|
11615
11631
|
</div>
|
|
11616
|
-
`, styles: [":host{display:block}.ax-cnv-audio{display:flex;align-items:center;gap:.5rem;width:100%;min-width:
|
|
11632
|
+
`, styles: [":host{display:block}.ax-cnv-audio{display:flex;align-items:center;gap:.5rem;width:100%;min-width:22rem;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface))}.ax-cnv-audio__icon{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-500));font-size:.875rem}.ax-cnv-audio__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-cnv-audio__title{font-size:.75rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgb(var(--ax-sys-color-on-surface))}.ax-cnv-audio__el{width:100%;height:1.75rem}.ax-cnv-audio__time{flex-shrink:0;font-size:.6875rem;font-variant-numeric:tabular-nums;color:rgba(var(--ax-sys-color-on-surface),.65)}\n"] }]
|
|
11617
11633
|
}], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }], playingChange: [{ type: i0.Output, args: ["playingChange"] }], timeUpdate: [{ type: i0.Output, args: ["timeUpdate"] }], durationChange: [{ type: i0.Output, args: ["durationChange"] }], playbackEnded: [{ type: i0.Output, args: ["playbackEnded"] }], playbackError: [{ type: i0.Output, args: ["playbackError"] }], audioElementRef: [{ type: i0.ViewChild, args: ['audioElement', { isSignal: true }] }] } });
|
|
11618
11634
|
|
|
11619
|
-
|
|
11620
|
-
function syncPlaybackInfoBarBanner(infoBar, message, inputs, options) {
|
|
11621
|
-
const forceOpen = options?.forceOpen ?? false;
|
|
11622
|
-
const shouldOpen = forceOpen || inputs.isPlaying || infoBar.isMessageBannerActive(message.id);
|
|
11623
|
-
if (!shouldOpen) {
|
|
11624
|
-
return;
|
|
11625
|
-
}
|
|
11635
|
+
function buildPlaybackBannerPayload(inputs) {
|
|
11626
11636
|
const payload = {
|
|
11627
11637
|
title: inputs.title,
|
|
11628
11638
|
currentTime: inputs.currentTime ?? 0,
|
|
@@ -11640,8 +11650,21 @@ function syncPlaybackInfoBarBanner(infoBar, message, inputs, options) {
|
|
|
11640
11650
|
if (inputs.showSpeedControl !== undefined) {
|
|
11641
11651
|
payload['showSpeedControl'] = inputs.showSpeedControl;
|
|
11642
11652
|
}
|
|
11653
|
+
return payload;
|
|
11654
|
+
}
|
|
11655
|
+
/** Push playback state to the info-bar banner for a message. */
|
|
11656
|
+
function syncPlaybackInfoBarBanner(infoBar, message, inputs, options) {
|
|
11657
|
+
const forceOpen = options?.forceOpen ?? false;
|
|
11658
|
+
const shouldOpen = forceOpen || inputs.isPlaying || infoBar.isMessageBannerActive(message.id);
|
|
11659
|
+
if (!shouldOpen) {
|
|
11660
|
+
return;
|
|
11661
|
+
}
|
|
11662
|
+
const payload = buildPlaybackBannerPayload(inputs);
|
|
11663
|
+
if (infoBar.isMessageBannerActive(message.id)) {
|
|
11664
|
+
infoBar.updateMessageBannerInputs(message.id, payload);
|
|
11665
|
+
return;
|
|
11666
|
+
}
|
|
11643
11667
|
infoBar.showMessageBanner(message, payload);
|
|
11644
|
-
infoBar.updateMessageBannerInputs(message.id, payload);
|
|
11645
11668
|
}
|
|
11646
11669
|
|
|
11647
11670
|
/**
|
|
@@ -11657,21 +11680,6 @@ const RENDERER_SHARED_STYLES = `
|
|
|
11657
11680
|
display: flex;
|
|
11658
11681
|
flex-direction: column;
|
|
11659
11682
|
gap: 0.375rem;
|
|
11660
|
-
max-width: min(100%, 18.5rem);
|
|
11661
|
-
}
|
|
11662
|
-
|
|
11663
|
-
.ax-cnv-msg--wide {
|
|
11664
|
-
max-width: min(100%, 22rem);
|
|
11665
|
-
}
|
|
11666
|
-
|
|
11667
|
-
@media (min-width: 480px) {
|
|
11668
|
-
.ax-cnv-msg {
|
|
11669
|
-
max-width: min(100%, 24rem);
|
|
11670
|
-
}
|
|
11671
|
-
|
|
11672
|
-
.ax-cnv-msg--wide {
|
|
11673
|
-
max-width: min(100%, 28rem);
|
|
11674
|
-
}
|
|
11675
11683
|
}
|
|
11676
11684
|
|
|
11677
11685
|
.ax-cnv-msg__stack {
|
|
@@ -11703,11 +11711,13 @@ const RENDERER_SHARED_STYLES = `
|
|
|
11703
11711
|
|
|
11704
11712
|
.ax-cnv-msg__grid--multi {
|
|
11705
11713
|
grid-template-columns: repeat(3, 1fr);
|
|
11714
|
+
grid-auto-rows: 10rem;
|
|
11706
11715
|
}
|
|
11707
11716
|
|
|
11708
11717
|
@media (max-width: 380px) {
|
|
11709
11718
|
.ax-cnv-msg__grid--multi {
|
|
11710
11719
|
grid-template-columns: repeat(2, 1fr);
|
|
11720
|
+
grid-auto-rows: 10rem;
|
|
11711
11721
|
}
|
|
11712
11722
|
}
|
|
11713
11723
|
|
|
@@ -11720,6 +11730,30 @@ const RENDERER_SHARED_STYLES = `
|
|
|
11720
11730
|
opacity: 0.88;
|
|
11721
11731
|
}
|
|
11722
11732
|
|
|
11733
|
+
/* Flush layout: media fills the message bubble edge-to-edge (image / video). */
|
|
11734
|
+
.ax-cnv-msg--flush {
|
|
11735
|
+
width: 100%;
|
|
11736
|
+
max-width: 100%;
|
|
11737
|
+
gap: 0;
|
|
11738
|
+
}
|
|
11739
|
+
|
|
11740
|
+
.ax-cnv-msg--flush .ax-cnv-msg__caption {
|
|
11741
|
+
padding: 0.375rem 0.625rem 0;
|
|
11742
|
+
}
|
|
11743
|
+
|
|
11744
|
+
.ax-cnv-msg--flush .ax-cnv-msg__grid {
|
|
11745
|
+
border-radius: 0;
|
|
11746
|
+
background: transparent;
|
|
11747
|
+
}
|
|
11748
|
+
|
|
11749
|
+
.ax-cnv-msg--flush .ax-cnv-msg__stack {
|
|
11750
|
+
gap: 2px;
|
|
11751
|
+
}
|
|
11752
|
+
|
|
11753
|
+
.ax-cnv-msg--flush ::ng-deep .ax-cnv-video {
|
|
11754
|
+
border-radius: 0;
|
|
11755
|
+
}
|
|
11756
|
+
|
|
11723
11757
|
.ax-cnv-msg__card {
|
|
11724
11758
|
border-radius: var(--ax-sys-border-radius, 0.5rem);
|
|
11725
11759
|
border: 1px solid rgb(var(--ax-sys-color-border-light-surface));
|
|
@@ -11840,7 +11874,7 @@ class AXAudioRendererComponent {
|
|
|
11840
11874
|
<p class="ax-cnv-msg__caption">{{ caption() }}</p>
|
|
11841
11875
|
}
|
|
11842
11876
|
</div>
|
|
11843
|
-
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
11877
|
+
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXAudioAttachmentComponent, selector: "ax-cnv-audio-attachment", inputs: ["item"], outputs: ["playingChange", "timeUpdate", "durationChange", "playbackEnded", "playbackError"] }, { kind: "component", type: AXConversationMessageRendererStateComponent, selector: "ax-conversation-message-renderer-state", inputs: ["rendererState", "message", "contentErrorLabel", "deliveryFailedLabel", "showContentErrorChrome", "contentErrorStyle", "contentErrorIconClass", "placement", "contentRetryEnabled"], outputs: ["contentRetry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11844
11878
|
}
|
|
11845
11879
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXAudioRendererComponent, decorators: [{
|
|
11846
11880
|
type: Component,
|
|
@@ -11863,7 +11897,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
11863
11897
|
<p class="ax-cnv-msg__caption">{{ caption() }}</p>
|
|
11864
11898
|
}
|
|
11865
11899
|
</div>
|
|
11866
|
-
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
11900
|
+
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"] }]
|
|
11867
11901
|
}], ctorParameters: () => [], propDecorators: { attachments: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXAudioAttachmentComponent), { isSignal: true }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }] } });
|
|
11868
11902
|
|
|
11869
11903
|
class AXFallbackRendererComponent {
|
|
@@ -11982,7 +12016,7 @@ class AXFileRendererComponent {
|
|
|
11982
12016
|
<p class="ax-cnv-msg__caption">{{ caption() }}</p>
|
|
11983
12017
|
}
|
|
11984
12018
|
</div>
|
|
11985
|
-
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
12019
|
+
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXFileAttachmentComponent, selector: "ax-cnv-file-attachment", inputs: ["item"] }, { kind: "component", type: AXConversationMessageRendererStateComponent, selector: "ax-conversation-message-renderer-state", inputs: ["rendererState", "message", "contentErrorLabel", "deliveryFailedLabel", "showContentErrorChrome", "contentErrorStyle", "contentErrorIconClass", "placement", "contentRetryEnabled"], outputs: ["contentRetry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11986
12020
|
}
|
|
11987
12021
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXFileRendererComponent, decorators: [{
|
|
11988
12022
|
type: Component,
|
|
@@ -11998,7 +12032,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
11998
12032
|
<p class="ax-cnv-msg__caption">{{ caption() }}</p>
|
|
11999
12033
|
}
|
|
12000
12034
|
</div>
|
|
12001
|
-
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
12035
|
+
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"] }]
|
|
12002
12036
|
}], propDecorators: { message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }] } });
|
|
12003
12037
|
|
|
12004
12038
|
class AXImageAttachmentComponent {
|
|
@@ -12022,7 +12056,7 @@ class AXImageAttachmentComponent {
|
|
|
12022
12056
|
>
|
|
12023
12057
|
<img [src]="thumbnailUrl()" [alt]="alt()" loading="lazy" (load)="ready.set(true)" />
|
|
12024
12058
|
</button>
|
|
12025
|
-
`, isInline: true, styles: [":host{display:block;min-width:0;min-height:0}.ax-cnv-image-attachment{display:block;width:100%;height:100%;min-height:4.5rem;padding:0;border:none;background:rgb(var(--ax-sys-color-light-surface));cursor:pointer;overflow:hidden}.ax-cnv-image-attachment img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s ease}.ax-cnv-image-attachment--ready img{opacity:1}.ax-cnv-image-attachment:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-500));outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12059
|
+
`, isInline: true, styles: [":host{display:block;min-width:0;min-height:0}.ax-cnv-image-attachment{display:block;width:100%;height:100%;min-height:4.5rem;padding:0;border-radius:.5rem;border:none;background:rgb(var(--ax-sys-color-light-surface));cursor:pointer;overflow:hidden}.ax-cnv-image-attachment img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s ease}.ax-cnv-image-attachment--ready img{opacity:1}.ax-cnv-image-attachment:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-500));outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12026
12060
|
}
|
|
12027
12061
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXImageAttachmentComponent, decorators: [{
|
|
12028
12062
|
type: Component,
|
|
@@ -12036,7 +12070,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
12036
12070
|
>
|
|
12037
12071
|
<img [src]="thumbnailUrl()" [alt]="alt()" loading="lazy" (load)="ready.set(true)" />
|
|
12038
12072
|
</button>
|
|
12039
|
-
`, styles: [":host{display:block;min-width:0;min-height:0}.ax-cnv-image-attachment{display:block;width:100%;height:100%;min-height:4.5rem;padding:0;border:none;background:rgb(var(--ax-sys-color-light-surface));cursor:pointer;overflow:hidden}.ax-cnv-image-attachment img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s ease}.ax-cnv-image-attachment--ready img{opacity:1}.ax-cnv-image-attachment:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-500));outline-offset:2px}\n"] }]
|
|
12073
|
+
`, styles: [":host{display:block;min-width:0;min-height:0}.ax-cnv-image-attachment{display:block;width:100%;height:100%;min-height:4.5rem;padding:0;border-radius:.5rem;border:none;background:rgb(var(--ax-sys-color-light-surface));cursor:pointer;overflow:hidden}.ax-cnv-image-attachment img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s ease}.ax-cnv-image-attachment--ready img{opacity:1}.ax-cnv-image-attachment:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-500));outline-offset:2px}\n"] }]
|
|
12040
12074
|
}], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: false }] }], imageClick: [{ type: i0.Output, args: ["imageClick"] }] } });
|
|
12041
12075
|
|
|
12042
12076
|
class AXImageRendererComponent {
|
|
@@ -12069,14 +12103,10 @@ class AXImageRendererComponent {
|
|
|
12069
12103
|
}
|
|
12070
12104
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXImageRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12071
12105
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXImageRendererComponent, isStandalone: true, selector: "ax-conversation-image-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { imageClick: "imageClick" }, ngImport: i0, template: `
|
|
12072
|
-
<div class="ax-cnv-msg">
|
|
12106
|
+
<div class="ax-cnv-msg ax-cnv-msg--flush">
|
|
12073
12107
|
<div class="ax-cnv-msg__grid" [class]="gridModeClass()">
|
|
12074
12108
|
@for (image of images(); track image.mediaId ?? image.url) {
|
|
12075
|
-
<ax-cnv-image-attachment
|
|
12076
|
-
[item]="image"
|
|
12077
|
-
[alt]="caption() || 'Image'"
|
|
12078
|
-
(imageClick)="onImageClick(image)"
|
|
12079
|
-
/>
|
|
12109
|
+
<ax-cnv-image-attachment [item]="image" [alt]="caption() || 'Image'" (imageClick)="onImageClick(image)" />
|
|
12080
12110
|
}
|
|
12081
12111
|
</div>
|
|
12082
12112
|
@if (caption()) {
|
|
@@ -12090,19 +12120,15 @@ class AXImageRendererComponent {
|
|
|
12090
12120
|
placement="below"
|
|
12091
12121
|
/>
|
|
12092
12122
|
</div>
|
|
12093
|
-
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
12123
|
+
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXImageAttachmentComponent, selector: "ax-cnv-image-attachment", inputs: ["item", "alt"], outputs: ["imageClick"] }, { kind: "component", type: AXConversationMessageRendererStateComponent, selector: "ax-conversation-message-renderer-state", inputs: ["rendererState", "message", "contentErrorLabel", "deliveryFailedLabel", "showContentErrorChrome", "contentErrorStyle", "contentErrorIconClass", "placement", "contentRetryEnabled"], outputs: ["contentRetry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12094
12124
|
}
|
|
12095
12125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXImageRendererComponent, decorators: [{
|
|
12096
12126
|
type: Component,
|
|
12097
12127
|
args: [{ selector: 'ax-conversation-image-renderer', imports: [CommonModule, AXImageAttachmentComponent, AXConversationMessageRendererStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
12098
|
-
<div class="ax-cnv-msg">
|
|
12128
|
+
<div class="ax-cnv-msg ax-cnv-msg--flush">
|
|
12099
12129
|
<div class="ax-cnv-msg__grid" [class]="gridModeClass()">
|
|
12100
12130
|
@for (image of images(); track image.mediaId ?? image.url) {
|
|
12101
|
-
<ax-cnv-image-attachment
|
|
12102
|
-
[item]="image"
|
|
12103
|
-
[alt]="caption() || 'Image'"
|
|
12104
|
-
(imageClick)="onImageClick(image)"
|
|
12105
|
-
/>
|
|
12131
|
+
<ax-cnv-image-attachment [item]="image" [alt]="caption() || 'Image'" (imageClick)="onImageClick(image)" />
|
|
12106
12132
|
}
|
|
12107
12133
|
</div>
|
|
12108
12134
|
@if (caption()) {
|
|
@@ -12116,7 +12142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
12116
12142
|
placement="below"
|
|
12117
12143
|
/>
|
|
12118
12144
|
</div>
|
|
12119
|
-
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
12145
|
+
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"] }]
|
|
12120
12146
|
}], propDecorators: { message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }], imageClick: [{ type: i0.Output, args: ["imageClick"] }] } });
|
|
12121
12147
|
|
|
12122
12148
|
class AXLocationRendererComponent {
|
|
@@ -12458,147 +12484,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
12458
12484
|
class AXVideoAttachmentComponent {
|
|
12459
12485
|
constructor() {
|
|
12460
12486
|
this.item = input.required(...(ngDevMode ? [{ debugName: "item" }] : []));
|
|
12461
|
-
this.
|
|
12462
|
-
this.
|
|
12463
|
-
this.
|
|
12464
|
-
this.
|
|
12487
|
+
this.playingChange = output();
|
|
12488
|
+
this.timeUpdate = output();
|
|
12489
|
+
this.durationChange = output();
|
|
12490
|
+
this.playbackEnded = output();
|
|
12465
12491
|
this.videoElementRef = viewChild('videoEl', ...(ngDevMode ? [{ debugName: "videoElementRef" }] : []));
|
|
12466
|
-
this.showPlayer = signal(false, ...(ngDevMode ? [{ debugName: "showPlayer" }] : []));
|
|
12467
12492
|
this.playbackReference = computed(() => toUploaderReference(this.item()), ...(ngDevMode ? [{ debugName: "playbackReference" }] : []));
|
|
12468
|
-
this.thumbReference = computed(() => ({
|
|
12469
|
-
...toUploaderReference(this.item()),
|
|
12470
|
-
url: this.item().thumbnailUrl ?? this.item().url,
|
|
12471
|
-
}), ...(ngDevMode ? [{ debugName: "thumbReference" }] : []));
|
|
12472
12493
|
this.resolvedPlaybackUrl = createResolvedMediaUrlSignal(this.playbackReference);
|
|
12473
|
-
this.resolvedThumbnailUrl = createResolvedMediaUrlSignal(this.thumbReference);
|
|
12474
12494
|
this.playbackUrl = computed(() => this.resolvedPlaybackUrl() ?? this.item().url ?? '', ...(ngDevMode ? [{ debugName: "playbackUrl" }] : []));
|
|
12475
|
-
this.thumbnailUrl = computed(() => this.resolvedThumbnailUrl() ?? this.item().thumbnailUrl, ...(ngDevMode ? [{ debugName: "thumbnailUrl" }] : []));
|
|
12476
12495
|
this.duration = computed(() => this.item().duration ?? 0, ...(ngDevMode ? [{ debugName: "duration" }] : []));
|
|
12477
12496
|
this.durationLabel = computed(() => formatMediaDuration(this.duration()), ...(ngDevMode ? [{ debugName: "durationLabel" }] : []));
|
|
12478
|
-
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
|
|
12497
|
+
}
|
|
12498
|
+
togglePlay() {
|
|
12499
|
+
const el = this.videoElementRef()?.nativeElement;
|
|
12500
|
+
if (!el) {
|
|
12501
|
+
return;
|
|
12502
|
+
}
|
|
12503
|
+
if (el.paused) {
|
|
12504
|
+
void el.play();
|
|
12505
|
+
}
|
|
12506
|
+
else {
|
|
12507
|
+
el.pause();
|
|
12508
|
+
}
|
|
12509
|
+
}
|
|
12510
|
+
pause() {
|
|
12511
|
+
this.videoElementRef()?.nativeElement?.pause();
|
|
12482
12512
|
}
|
|
12483
12513
|
onLoadedMetadata() {
|
|
12484
|
-
this.emitPlaybackState();
|
|
12485
12514
|
const el = this.videoElementRef()?.nativeElement;
|
|
12486
|
-
if (el) {
|
|
12487
|
-
this.
|
|
12515
|
+
if (el && Number.isFinite(el.duration)) {
|
|
12516
|
+
this.durationChange.emit(el.duration);
|
|
12488
12517
|
}
|
|
12489
12518
|
}
|
|
12490
12519
|
onTimeUpdate() {
|
|
12491
|
-
this.
|
|
12520
|
+
const el = this.videoElementRef()?.nativeElement;
|
|
12521
|
+
if (el) {
|
|
12522
|
+
this.timeUpdate.emit(el.currentTime);
|
|
12523
|
+
}
|
|
12492
12524
|
}
|
|
12493
12525
|
onPlay() {
|
|
12494
|
-
this.
|
|
12495
|
-
this.emitPlaybackState();
|
|
12526
|
+
this.playingChange.emit(true);
|
|
12496
12527
|
}
|
|
12497
12528
|
onPause() {
|
|
12498
|
-
this.
|
|
12499
|
-
this.emitPlaybackState();
|
|
12529
|
+
this.playingChange.emit(false);
|
|
12500
12530
|
}
|
|
12501
12531
|
onEnded() {
|
|
12502
|
-
this.
|
|
12503
|
-
this.
|
|
12504
|
-
}
|
|
12505
|
-
emitPlaybackState() {
|
|
12506
|
-
const el = this.videoElementRef()?.nativeElement;
|
|
12507
|
-
if (!el) {
|
|
12508
|
-
return;
|
|
12509
|
-
}
|
|
12510
|
-
this.playbackTimeUpdate.emit({
|
|
12511
|
-
currentTime: el.currentTime,
|
|
12512
|
-
duration: Number.isFinite(el.duration) ? el.duration : this.duration(),
|
|
12513
|
-
});
|
|
12532
|
+
this.playingChange.emit(false);
|
|
12533
|
+
this.playbackEnded.emit();
|
|
12514
12534
|
}
|
|
12515
12535
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXVideoAttachmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12516
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
12536
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: AXVideoAttachmentComponent, isStandalone: true, selector: "ax-cnv-video-attachment", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { playingChange: "playingChange", timeUpdate: "timeUpdate", durationChange: "durationChange", playbackEnded: "playbackEnded" }, viewQueries: [{ propertyName: "videoElementRef", first: true, predicate: ["videoEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
12517
12537
|
<div class="ax-cnv-video">
|
|
12518
|
-
|
|
12519
|
-
|
|
12520
|
-
|
|
12521
|
-
|
|
12522
|
-
|
|
12523
|
-
|
|
12524
|
-
|
|
12525
|
-
|
|
12526
|
-
|
|
12527
|
-
|
|
12528
|
-
|
|
12529
|
-
|
|
12530
|
-
|
|
12531
|
-
<span class="ax-cnv-video__play" aria-hidden="true"><i class="fa-solid fa-play"></i></span>
|
|
12532
|
-
@if (duration() > 0) {
|
|
12533
|
-
<span class="ax-cnv-video__duration">{{ durationLabel() }}</span>
|
|
12534
|
-
}
|
|
12535
|
-
</button>
|
|
12536
|
-
} @else {
|
|
12537
|
-
<video
|
|
12538
|
-
#videoEl
|
|
12539
|
-
class="ax-cnv-video__player"
|
|
12540
|
-
[src]="playbackUrl()"
|
|
12541
|
-
controls
|
|
12542
|
-
playsinline
|
|
12543
|
-
preload="metadata"
|
|
12544
|
-
(loadedmetadata)="onLoadedMetadata()"
|
|
12545
|
-
(timeupdate)="onTimeUpdate()"
|
|
12546
|
-
(play)="onPlay()"
|
|
12547
|
-
(pause)="onPause()"
|
|
12548
|
-
(ended)="onEnded()"
|
|
12549
|
-
></video>
|
|
12550
|
-
}
|
|
12538
|
+
<video
|
|
12539
|
+
#videoEl
|
|
12540
|
+
class="ax-cnv-video__player"
|
|
12541
|
+
[src]="playbackUrl()"
|
|
12542
|
+
controls
|
|
12543
|
+
playsinline
|
|
12544
|
+
preload="metadata"
|
|
12545
|
+
(loadedmetadata)="onLoadedMetadata()"
|
|
12546
|
+
(timeupdate)="onTimeUpdate()"
|
|
12547
|
+
(play)="onPlay()"
|
|
12548
|
+
(pause)="onPause()"
|
|
12549
|
+
(ended)="onEnded()"
|
|
12550
|
+
></video>
|
|
12551
12551
|
</div>
|
|
12552
|
-
`, isInline: true, styles: [":host{display:block}.ax-cnv-video{width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-darker-surface))}.ax-cnv-
|
|
12552
|
+
`, isInline: true, styles: [":host{display:block}.ax-cnv-video{width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-darker-surface))}.ax-cnv-video__player{width:100%;max-height:min(40dvh,14rem);display:block;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12553
12553
|
}
|
|
12554
12554
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXVideoAttachmentComponent, decorators: [{
|
|
12555
12555
|
type: Component,
|
|
12556
12556
|
args: [{ selector: 'ax-cnv-video-attachment', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
12557
12557
|
<div class="ax-cnv-video">
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
|
|
12565
|
-
|
|
12566
|
-
|
|
12567
|
-
|
|
12568
|
-
|
|
12569
|
-
|
|
12570
|
-
|
|
12571
|
-
<span class="ax-cnv-video__play" aria-hidden="true"><i class="fa-solid fa-play"></i></span>
|
|
12572
|
-
@if (duration() > 0) {
|
|
12573
|
-
<span class="ax-cnv-video__duration">{{ durationLabel() }}</span>
|
|
12574
|
-
}
|
|
12575
|
-
</button>
|
|
12576
|
-
} @else {
|
|
12577
|
-
<video
|
|
12578
|
-
#videoEl
|
|
12579
|
-
class="ax-cnv-video__player"
|
|
12580
|
-
[src]="playbackUrl()"
|
|
12581
|
-
controls
|
|
12582
|
-
playsinline
|
|
12583
|
-
preload="metadata"
|
|
12584
|
-
(loadedmetadata)="onLoadedMetadata()"
|
|
12585
|
-
(timeupdate)="onTimeUpdate()"
|
|
12586
|
-
(play)="onPlay()"
|
|
12587
|
-
(pause)="onPause()"
|
|
12588
|
-
(ended)="onEnded()"
|
|
12589
|
-
></video>
|
|
12590
|
-
}
|
|
12558
|
+
<video
|
|
12559
|
+
#videoEl
|
|
12560
|
+
class="ax-cnv-video__player"
|
|
12561
|
+
[src]="playbackUrl()"
|
|
12562
|
+
controls
|
|
12563
|
+
playsinline
|
|
12564
|
+
preload="metadata"
|
|
12565
|
+
(loadedmetadata)="onLoadedMetadata()"
|
|
12566
|
+
(timeupdate)="onTimeUpdate()"
|
|
12567
|
+
(play)="onPlay()"
|
|
12568
|
+
(pause)="onPause()"
|
|
12569
|
+
(ended)="onEnded()"
|
|
12570
|
+
></video>
|
|
12591
12571
|
</div>
|
|
12592
|
-
`, styles: [":host{display:block}.ax-cnv-video{width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-darker-surface))}.ax-cnv-
|
|
12593
|
-
}], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }],
|
|
12572
|
+
`, styles: [":host{display:block}.ax-cnv-video{width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-darker-surface))}.ax-cnv-video__player{width:100%;max-height:min(40dvh,14rem);display:block;vertical-align:middle}\n"] }]
|
|
12573
|
+
}], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }], playingChange: [{ type: i0.Output, args: ["playingChange"] }], timeUpdate: [{ type: i0.Output, args: ["timeUpdate"] }], durationChange: [{ type: i0.Output, args: ["durationChange"] }], playbackEnded: [{ type: i0.Output, args: ["playbackEnded"] }], videoElementRef: [{ type: i0.ViewChild, args: ['videoEl', { isSignal: true }] }] } });
|
|
12594
12574
|
|
|
12595
12575
|
class AXVideoRendererComponent {
|
|
12596
12576
|
constructor() {
|
|
12597
12577
|
this.platformId = inject(PLATFORM_ID);
|
|
12598
12578
|
this.destroyRef = inject(DestroyRef);
|
|
12599
12579
|
this.infoBarService = inject(AXInfoBarService);
|
|
12600
|
-
this.
|
|
12601
|
-
this.activeVideoIndex = signal(
|
|
12580
|
+
this.attachments = viewChildren(AXVideoAttachmentComponent, ...(ngDevMode ? [{ debugName: "attachments" }] : []));
|
|
12581
|
+
this.activeVideoIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeVideoIndex" }] : []));
|
|
12602
12582
|
this.message = input.required(...(ngDevMode ? [{ debugName: "message" }] : []));
|
|
12603
12583
|
this.rendererState = computed(() => ({
|
|
12604
12584
|
deliveryStatus: this.message().status,
|
|
@@ -12617,62 +12597,62 @@ class AXVideoRendererComponent {
|
|
|
12617
12597
|
}
|
|
12618
12598
|
});
|
|
12619
12599
|
}
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12600
|
+
onPlayingChange(index, playing) {
|
|
12601
|
+
if (playing) {
|
|
12602
|
+
this.activeVideoIndex.set(index);
|
|
12603
|
+
this.pauseOtherVideos(index);
|
|
12604
|
+
this.isPlaying.set(true);
|
|
12605
|
+
this.syncInfoBarBanner(true);
|
|
12606
|
+
return;
|
|
12607
|
+
}
|
|
12608
|
+
if (this.activeVideoIndex() === index) {
|
|
12609
|
+
this.isPlaying.set(false);
|
|
12610
|
+
this.syncInfoBarBanner();
|
|
12611
|
+
}
|
|
12625
12612
|
}
|
|
12626
|
-
|
|
12613
|
+
onTimeUpdate(index, time) {
|
|
12627
12614
|
if (this.activeVideoIndex() !== index) {
|
|
12628
12615
|
return;
|
|
12629
12616
|
}
|
|
12630
|
-
this.
|
|
12631
|
-
this.
|
|
12632
|
-
this.isPlaying.set(false);
|
|
12633
|
-
this.currentTime.set(0);
|
|
12634
|
-
this.infoBarService.hideMessageBanner(this.message().id);
|
|
12617
|
+
this.currentTime.set(time);
|
|
12618
|
+
this.syncInfoBarBanner();
|
|
12635
12619
|
}
|
|
12636
|
-
|
|
12637
|
-
this.
|
|
12638
|
-
|
|
12639
|
-
this.duration.set(event.duration);
|
|
12620
|
+
onDurationChange(index, duration) {
|
|
12621
|
+
if (this.activeVideoIndex() !== index) {
|
|
12622
|
+
return;
|
|
12640
12623
|
}
|
|
12624
|
+
this.duration.set(duration);
|
|
12641
12625
|
this.syncInfoBarBanner();
|
|
12642
12626
|
}
|
|
12643
|
-
|
|
12644
|
-
this.
|
|
12645
|
-
|
|
12627
|
+
onPlaybackEnded(index) {
|
|
12628
|
+
if (this.activeVideoIndex() !== index) {
|
|
12629
|
+
return;
|
|
12630
|
+
}
|
|
12631
|
+
this.isPlaying.set(false);
|
|
12632
|
+
this.currentTime.set(0);
|
|
12633
|
+
this.syncInfoBarBanner();
|
|
12646
12634
|
}
|
|
12647
12635
|
togglePlay() {
|
|
12648
|
-
if (!isPlatformBrowser(this.platformId)
|
|
12636
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
12649
12637
|
return;
|
|
12650
12638
|
}
|
|
12651
|
-
|
|
12652
|
-
|
|
12653
|
-
|
|
12654
|
-
|
|
12655
|
-
|
|
12656
|
-
|
|
12657
|
-
|
|
12658
|
-
|
|
12659
|
-
}
|
|
12660
|
-
this.syncInfoBarBanner();
|
|
12639
|
+
this.attachments()[this.activeVideoIndex()]?.togglePlay();
|
|
12640
|
+
}
|
|
12641
|
+
pauseOtherVideos(activeIndex) {
|
|
12642
|
+
this.attachments().forEach((attachment, index) => {
|
|
12643
|
+
if (index !== activeIndex) {
|
|
12644
|
+
attachment.pause();
|
|
12645
|
+
}
|
|
12646
|
+
});
|
|
12661
12647
|
}
|
|
12662
12648
|
pausePlayback() {
|
|
12663
|
-
|
|
12664
|
-
this.activeVideoEl.pause();
|
|
12665
|
-
}
|
|
12649
|
+
this.attachments()[this.activeVideoIndex()]?.pause();
|
|
12666
12650
|
this.isPlaying.set(false);
|
|
12667
12651
|
}
|
|
12668
12652
|
syncInfoBarBanner(forceOpen = false) {
|
|
12669
12653
|
const message = this.message();
|
|
12670
12654
|
const index = this.activeVideoIndex();
|
|
12671
|
-
|
|
12672
|
-
return;
|
|
12673
|
-
}
|
|
12674
|
-
const title = this.payload().caption?.trim() ||
|
|
12675
|
-
(this.videos().length > 1 ? `Video ${index + 1}` : 'Video');
|
|
12655
|
+
const title = this.payload().caption?.trim() || (this.videos().length > 1 ? `Video ${index + 1}` : 'Video');
|
|
12676
12656
|
syncPlaybackInfoBarBanner(this.infoBarService, message, {
|
|
12677
12657
|
title,
|
|
12678
12658
|
currentTime: this.currentTime(),
|
|
@@ -12683,17 +12663,17 @@ class AXVideoRendererComponent {
|
|
|
12683
12663
|
}, { forceOpen });
|
|
12684
12664
|
}
|
|
12685
12665
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXVideoRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12686
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXVideoRendererComponent, isStandalone: true, selector: "ax-conversation-video-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
12666
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXVideoRendererComponent, isStandalone: true, selector: "ax-conversation-video-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "attachments", predicate: AXVideoAttachmentComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
12687
12667
|
<div class="ax-cnv-msg">
|
|
12688
12668
|
<ax-conversation-message-renderer-state [rendererState]="rendererState()" [message]="message()" />
|
|
12689
12669
|
<div class="ax-cnv-msg__stack">
|
|
12690
12670
|
@for (video of videos(); track video.mediaId ?? video.url; let i = $index) {
|
|
12691
12671
|
<ax-cnv-video-attachment
|
|
12692
12672
|
[item]="video"
|
|
12693
|
-
(
|
|
12694
|
-
(
|
|
12695
|
-
(
|
|
12696
|
-
(
|
|
12673
|
+
(playingChange)="onPlayingChange(i, $event)"
|
|
12674
|
+
(timeUpdate)="onTimeUpdate(i, $event)"
|
|
12675
|
+
(durationChange)="onDurationChange(i, $event)"
|
|
12676
|
+
(playbackEnded)="onPlaybackEnded(i)"
|
|
12697
12677
|
/>
|
|
12698
12678
|
}
|
|
12699
12679
|
</div>
|
|
@@ -12701,7 +12681,7 @@ class AXVideoRendererComponent {
|
|
|
12701
12681
|
<p class="ax-cnv-msg__caption">{{ caption() }}</p>
|
|
12702
12682
|
}
|
|
12703
12683
|
</div>
|
|
12704
|
-
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
12684
|
+
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXVideoAttachmentComponent, selector: "ax-cnv-video-attachment", inputs: ["item"], outputs: ["playingChange", "timeUpdate", "durationChange", "playbackEnded"] }, { kind: "component", type: AXConversationMessageRendererStateComponent, selector: "ax-conversation-message-renderer-state", inputs: ["rendererState", "message", "contentErrorLabel", "deliveryFailedLabel", "showContentErrorChrome", "contentErrorStyle", "contentErrorIconClass", "placement", "contentRetryEnabled"], outputs: ["contentRetry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12705
12685
|
}
|
|
12706
12686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXVideoRendererComponent, decorators: [{
|
|
12707
12687
|
type: Component,
|
|
@@ -12712,10 +12692,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
12712
12692
|
@for (video of videos(); track video.mediaId ?? video.url; let i = $index) {
|
|
12713
12693
|
<ax-cnv-video-attachment
|
|
12714
12694
|
[item]="video"
|
|
12715
|
-
(
|
|
12716
|
-
(
|
|
12717
|
-
(
|
|
12718
|
-
(
|
|
12695
|
+
(playingChange)="onPlayingChange(i, $event)"
|
|
12696
|
+
(timeUpdate)="onTimeUpdate(i, $event)"
|
|
12697
|
+
(durationChange)="onDurationChange(i, $event)"
|
|
12698
|
+
(playbackEnded)="onPlaybackEnded(i)"
|
|
12719
12699
|
/>
|
|
12720
12700
|
}
|
|
12721
12701
|
</div>
|
|
@@ -12723,8 +12703,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
12723
12703
|
<p class="ax-cnv-msg__caption">{{ caption() }}</p>
|
|
12724
12704
|
}
|
|
12725
12705
|
</div>
|
|
12726
|
-
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg
|
|
12727
|
-
}], ctorParameters: () => [], propDecorators: { message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }] } });
|
|
12706
|
+
`, styles: [":host{display:block;max-width:100%}.ax-cnv-msg,.ax-cnv-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-cnv-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-cnv-msg__grid--single{grid-template-columns:1fr}.ax-cnv-msg__grid--single ::ng-deep .ax-cnv-image-attachment{max-height:min(50dvh,20rem)}.ax-cnv-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-cnv-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@media(max-width:380px){.ax-cnv-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-cnv-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-cnv-msg--flush{width:100%;max-width:100%;gap:0}.ax-cnv-msg--flush .ax-cnv-msg__caption{padding:.375rem .625rem 0}.ax-cnv-msg--flush .ax-cnv-msg__grid{border-radius:0;background:transparent}.ax-cnv-msg--flush .ax-cnv-msg__stack{gap:2px}.ax-cnv-msg--flush ::ng-deep .ax-cnv-video{border-radius:0}.ax-cnv-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"] }]
|
|
12707
|
+
}], ctorParameters: () => [], propDecorators: { attachments: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXVideoAttachmentComponent), { isSignal: true }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }] } });
|
|
12728
12708
|
|
|
12729
12709
|
/** Decorative bars when payload has no waveform (deterministic, no random). */
|
|
12730
12710
|
const FALLBACK_WAVEFORM = [
|
|
@@ -15212,39 +15192,33 @@ class AXComposerComponent {
|
|
|
15212
15192
|
this.replyingToMessage.set(null);
|
|
15213
15193
|
}
|
|
15214
15194
|
}, ...(ngDevMode ? [{ debugName: "#controllerEffect" }] : []));
|
|
15215
|
-
//
|
|
15195
|
+
// Close composer popovers when conversation changes (draft/reply/edit reset is handled by message-list).
|
|
15216
15196
|
this.#previousConversationId = undefined;
|
|
15217
|
-
this.#
|
|
15218
|
-
const
|
|
15219
|
-
|
|
15220
|
-
|
|
15221
|
-
|
|
15222
|
-
this.
|
|
15223
|
-
}
|
|
15224
|
-
// Only reset if conversation ID actually changed (not on initial load)
|
|
15225
|
-
if (currentId !== this.#previousConversationId && this.#previousConversationId !== undefined) {
|
|
15226
|
-
this.resetComposerState();
|
|
15227
|
-
}
|
|
15228
|
-
// Load draft for new conversation
|
|
15229
|
-
if (currentId && currentId !== this.#previousConversationId) {
|
|
15230
|
-
const draft = this.composerService.loadDraft(currentId);
|
|
15231
|
-
if (draft) {
|
|
15232
|
-
this.draftText.set(draft);
|
|
15233
|
-
}
|
|
15197
|
+
this.#conversationUiResetEffect = effect(() => {
|
|
15198
|
+
const currentId = this.activeConversation()?.id;
|
|
15199
|
+
if (this.#previousConversationId !== undefined && this.#previousConversationId !== currentId) {
|
|
15200
|
+
this.emojiPopoverTarget.set(null);
|
|
15201
|
+
this.editingMessage.set(null);
|
|
15202
|
+
this.replyingToMessage.set(null);
|
|
15234
15203
|
}
|
|
15235
15204
|
this.#previousConversationId = currentId;
|
|
15236
|
-
}, ...(ngDevMode ? [{ debugName: "#
|
|
15205
|
+
}, ...(ngDevMode ? [{ debugName: "#conversationUiResetEffect" }] : []));
|
|
15237
15206
|
// Auto-save draft on text change
|
|
15238
15207
|
this.#draftAutoSaveEffect = effect(() => {
|
|
15239
15208
|
const text = this.draftText();
|
|
15240
15209
|
const conversation = this.activeConversation();
|
|
15241
|
-
|
|
15210
|
+
const isEditing = !!this.composerService.editMessage();
|
|
15211
|
+
if (conversation?.id && !isEditing) {
|
|
15212
|
+
const conversationId = conversation.id;
|
|
15242
15213
|
// Debounce auto-save
|
|
15243
15214
|
if (this.draftSaveTimeout) {
|
|
15244
15215
|
clearTimeout(this.draftSaveTimeout);
|
|
15245
15216
|
}
|
|
15246
15217
|
this.draftSaveTimeout = window.setTimeout(() => {
|
|
15247
|
-
this.composerService.
|
|
15218
|
+
if (this.activeConversation()?.id !== conversationId || this.composerService.editMessage()) {
|
|
15219
|
+
return;
|
|
15220
|
+
}
|
|
15221
|
+
this.composerService.saveDraft(conversationId, text);
|
|
15248
15222
|
}, 500);
|
|
15249
15223
|
}
|
|
15250
15224
|
}, ...(ngDevMode ? [{ debugName: "#draftAutoSaveEffect" }] : []));
|
|
@@ -15274,9 +15248,9 @@ class AXComposerComponent {
|
|
|
15274
15248
|
#focusComposerEffect;
|
|
15275
15249
|
// React to controller signals (reply/edit)
|
|
15276
15250
|
#controllerEffect;
|
|
15277
|
-
//
|
|
15251
|
+
// Close composer popovers when conversation changes (draft/reply/edit reset is handled by message-list).
|
|
15278
15252
|
#previousConversationId;
|
|
15279
|
-
#
|
|
15253
|
+
#conversationUiResetEffect;
|
|
15280
15254
|
// Auto-save draft on text change
|
|
15281
15255
|
#draftAutoSaveEffect;
|
|
15282
15256
|
/** Handle key down */
|
|
@@ -15310,7 +15284,7 @@ class AXComposerComponent {
|
|
|
15310
15284
|
this.typingSubject.complete();
|
|
15311
15285
|
// Save draft before destroying
|
|
15312
15286
|
const conversation = this.activeConversation();
|
|
15313
|
-
if (conversation?.id) {
|
|
15287
|
+
if (conversation?.id && !this.composerService.editMessage()) {
|
|
15314
15288
|
this.composerService.saveDraft(conversation.id, this.draftText());
|
|
15315
15289
|
}
|
|
15316
15290
|
// Clear timeout
|
|
@@ -15483,20 +15457,6 @@ class AXComposerComponent {
|
|
|
15483
15457
|
this.replyingToMessage.set(null);
|
|
15484
15458
|
this.composerService.clear();
|
|
15485
15459
|
}
|
|
15486
|
-
/** Reset all composer states (used when switching conversations) */
|
|
15487
|
-
resetComposerState() {
|
|
15488
|
-
// Clear edit/reply states
|
|
15489
|
-
this.editingMessage.set(null);
|
|
15490
|
-
this.replyingToMessage.set(null);
|
|
15491
|
-
// Clear service states (reply/edit messages, active component)
|
|
15492
|
-
this.composerService.clear();
|
|
15493
|
-
// Close any open popover/popup
|
|
15494
|
-
this.emojiPopoverTarget.set(null);
|
|
15495
|
-
// Clear attachments
|
|
15496
|
-
this.attachments.set([]);
|
|
15497
|
-
// Clear draft text
|
|
15498
|
-
this.draftText.set('');
|
|
15499
|
-
}
|
|
15500
15460
|
/** Start editing a message */
|
|
15501
15461
|
startEdit(message) {
|
|
15502
15462
|
this.editingMessage.set(message);
|
|
@@ -16331,10 +16291,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
16331
16291
|
* Manages info bar state and actions
|
|
16332
16292
|
*/
|
|
16333
16293
|
class AXInfoBarService {
|
|
16334
|
-
// Access registry through conversation service
|
|
16335
|
-
get registry() {
|
|
16336
|
-
return this.conversationService.registry;
|
|
16337
|
-
}
|
|
16338
16294
|
constructor() {
|
|
16339
16295
|
this.conversationService = inject(AXConversationService);
|
|
16340
16296
|
this.injector = inject(Injector);
|
|
@@ -16354,13 +16310,17 @@ class AXInfoBarService {
|
|
|
16354
16310
|
/** Current search result index */
|
|
16355
16311
|
this._currentSearchIndex = signal(0, ...(ngDevMode ? [{ debugName: "_currentSearchIndex" }] : []));
|
|
16356
16312
|
this.currentSearchIndex = this._currentSearchIndex.asReadonly();
|
|
16357
|
-
|
|
16358
|
-
|
|
16359
|
-
|
|
16360
|
-
|
|
16361
|
-
|
|
16362
|
-
|
|
16363
|
-
|
|
16313
|
+
}
|
|
16314
|
+
// Access registry through conversation service
|
|
16315
|
+
get registry() {
|
|
16316
|
+
return this.conversationService.registry;
|
|
16317
|
+
}
|
|
16318
|
+
/**
|
|
16319
|
+
* Reset info-bar overlays when the active conversation changes.
|
|
16320
|
+
*/
|
|
16321
|
+
onConversationChanged() {
|
|
16322
|
+
this.hideMessageBanner();
|
|
16323
|
+
this.hideComponent();
|
|
16364
16324
|
}
|
|
16365
16325
|
/**
|
|
16366
16326
|
* Get actions for the active conversation
|
|
@@ -16445,6 +16405,10 @@ class AXInfoBarService {
|
|
|
16445
16405
|
return;
|
|
16446
16406
|
}
|
|
16447
16407
|
const current = this._activeBanner();
|
|
16408
|
+
if (current?.message.id === message.id) {
|
|
16409
|
+
this.updateMessageBannerInputs(message.id, inputs ?? {});
|
|
16410
|
+
return;
|
|
16411
|
+
}
|
|
16448
16412
|
if (current && current.message.id !== message.id) {
|
|
16449
16413
|
this.hideMessageBanner(current.message.id);
|
|
16450
16414
|
}
|
|
@@ -16565,7 +16529,7 @@ class AXInfoBarService {
|
|
|
16565
16529
|
}
|
|
16566
16530
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXInfoBarService, decorators: [{
|
|
16567
16531
|
type: Injectable
|
|
16568
|
-
}]
|
|
16532
|
+
}] });
|
|
16569
16533
|
|
|
16570
16534
|
/**
|
|
16571
16535
|
* Members Popover Component
|
|
@@ -17756,6 +17720,8 @@ class AXMessageListComponent {
|
|
|
17756
17720
|
constructor() {
|
|
17757
17721
|
this.conversationService = inject(AXConversationService);
|
|
17758
17722
|
this.messageListService = inject(AXMessageListService);
|
|
17723
|
+
this.composerService = inject(AXComposerService);
|
|
17724
|
+
this.infoBarService = inject(AXInfoBarService);
|
|
17759
17725
|
this.translation = inject(AXTranslationService);
|
|
17760
17726
|
this.config = inject(CONVERSATION_CONFIG);
|
|
17761
17727
|
/** Fallback when no conversation is active and no `ax-conversation-message-list-no-active` content is projected. */
|
|
@@ -17834,6 +17800,8 @@ class AXMessageListComponent {
|
|
|
17834
17800
|
untracked(() => {
|
|
17835
17801
|
if (currentConversationId !== previousConversationId) {
|
|
17836
17802
|
this.contextMenuMessageId.set(null);
|
|
17803
|
+
this.composerService.onConversationChanged(previousConversationId, currentConversationId);
|
|
17804
|
+
this.infoBarService.onConversationChanged();
|
|
17837
17805
|
}
|
|
17838
17806
|
// Only scroll if the conversation ID actually changed (not just updated)
|
|
17839
17807
|
if (currentConversationId && currentConversationId !== previousConversationId) {
|