@acorex/components 20.7.60 → 20.7.62
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/conversation2/index.d.ts +40 -25
- package/data-table/index.d.ts +220 -60
- package/fesm2022/acorex-components-conversation2.mjs +297 -282
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +436 -41
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/package.json +23 -23
|
@@ -2,7 +2,7 @@ import { AXClosableComponent, AXComponentCloseEvent, AXCommonModule, AXDataSourc
|
|
|
2
2
|
import * as i2$1 from '@acorex/components/tabs';
|
|
3
3
|
import { AXTabsModule, AXTabsComponent, AXTabItemComponent } from '@acorex/components/tabs';
|
|
4
4
|
import * as i1$4 from '@angular/common';
|
|
5
|
-
import { isPlatformBrowser, AsyncPipe, CommonModule,
|
|
5
|
+
import { isPlatformBrowser, AsyncPipe, CommonModule, NgComponentOutlet, DOCUMENT } from '@angular/common';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
7
|
import { InjectionToken, signal, computed, inject, Injectable, input, output, ChangeDetectionStrategy, Component, model, ElementRef, afterNextRender, PLATFORM_ID, DestroyRef, Injector, runInInjectionContext, effect, viewChild, viewChildren, untracked, SecurityContext, ViewContainerRef, EventEmitter, HostListener, Directive, NgModule } from '@angular/core';
|
|
8
8
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
@@ -32,10 +32,10 @@ import { AXSearchBoxModule, AXSearchBoxComponent } from '@acorex/components/sear
|
|
|
32
32
|
import * as i1$6 from '@acorex/components/skeleton';
|
|
33
33
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
34
34
|
import { HttpClient } from '@angular/common/http';
|
|
35
|
-
import { AXAvatarComponent } from '@acorex/components/avatar';
|
|
36
|
-
import { AXImageComponent } from '@acorex/components/image';
|
|
37
35
|
import * as i4 from '@acorex/components/switch';
|
|
38
36
|
import { AXSwitchModule } from '@acorex/components/switch';
|
|
37
|
+
import { AXImageComponent } from '@acorex/components/image';
|
|
38
|
+
import { AXAvatarComponent } from '@acorex/components/avatar';
|
|
39
39
|
import { AXLoadingComponent } from '@acorex/components/loading';
|
|
40
40
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
41
41
|
import { AXListComponent } from '@acorex/components/list';
|
|
@@ -341,6 +341,13 @@ const ERROR_HANDLER_CONFIG = new InjectionToken('ERROR_HANDLER_CONFIG', {
|
|
|
341
341
|
factory: () => ({}),
|
|
342
342
|
});
|
|
343
343
|
|
|
344
|
+
/**
|
|
345
|
+
* Pluggable avatar components for the conversation UI.
|
|
346
|
+
* Register via `provideConversation({ avatarComponents: { user, conversation } })`.
|
|
347
|
+
*/
|
|
348
|
+
const AX_CONVERSATION_USER_AVATAR_COMPONENT = new InjectionToken('AX_CONVERSATION_USER_AVATAR_COMPONENT');
|
|
349
|
+
const AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT = new InjectionToken('AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT');
|
|
350
|
+
|
|
344
351
|
/**
|
|
345
352
|
* Registry Configuration Tokens
|
|
346
353
|
* Injection tokens for configuring default registry values
|
|
@@ -10403,6 +10410,199 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
10403
10410
|
`, styles: [":host{display:block}.avatar-picker{display:flex;flex-flow:row wrap;align-items:center;gap:1.5rem;padding:1rem;border-radius:.75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface))}.avatar-preview{position:relative;width:100px;height:100px;border-radius:50%;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface));border:3px solid rgb(var(--ax-sys-color-border-light-surface));display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;flex-shrink:0;box-shadow:0 2px 8px #00000014}.avatar-preview:hover{border-color:rgb(var(--ax-sys-color-primary-500));// transform: scale(1.05);box-shadow:0 4px 12px #0000001f}.avatar-preview:hover .preview-overlay{opacity:1}.avatar-preview ax-image{width:100%;height:100%}.preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease;color:#fff;font-size:1.75rem}.avatar-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;font-size:2rem;color:rgb(var(--ax-sys-color-on-surface-variant));text-align:center;padding:.5rem}.placeholder-text{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.avatar-actions{display:flex;flex-direction:column;gap:.5rem;flex:1}.avatar-actions ax-button{width:100%}\n"] }]
|
|
10404
10411
|
}] });
|
|
10405
10412
|
|
|
10413
|
+
/** Other participant in a private chat (excludes the current user). */
|
|
10414
|
+
function resolvePrivatePeerUserId(conversation, currentUserId) {
|
|
10415
|
+
if (conversation.type !== 'private') {
|
|
10416
|
+
return undefined;
|
|
10417
|
+
}
|
|
10418
|
+
const currentId = currentUserId ?? 'current-user';
|
|
10419
|
+
return conversation.participants.find((participant) => participant.id !== currentId)?.id;
|
|
10420
|
+
}
|
|
10421
|
+
/** Whether `auto` kind should render a user avatar for this conversation. */
|
|
10422
|
+
function shouldUseUserAvatarForConversation(conversation, currentUserId) {
|
|
10423
|
+
return conversation.type === 'private' && !!resolvePrivatePeerUserId(conversation, currentUserId);
|
|
10424
|
+
}
|
|
10425
|
+
function resolveUserAvatarDisplay(userId, conversation, message) {
|
|
10426
|
+
if (message && conversation) {
|
|
10427
|
+
return {
|
|
10428
|
+
name: AXConversationMessageUtilsService.getSenderName(message, conversation),
|
|
10429
|
+
avatar: AXConversationMessageUtilsService.getSenderAvatar(message, conversation),
|
|
10430
|
+
icon: AXConversationMessageUtilsService.getSenderAvatarIcon(message, conversation),
|
|
10431
|
+
};
|
|
10432
|
+
}
|
|
10433
|
+
const participant = conversation?.participants.find((p) => p.id === userId);
|
|
10434
|
+
return {
|
|
10435
|
+
name: participant?.name ?? userId,
|
|
10436
|
+
avatar: participant?.avatar,
|
|
10437
|
+
icon: participant?.icon,
|
|
10438
|
+
};
|
|
10439
|
+
}
|
|
10440
|
+
function resolveConversationAvatarDisplay(conversation) {
|
|
10441
|
+
return {
|
|
10442
|
+
name: conversation.title,
|
|
10443
|
+
avatar: AXConversationMessageUtilsService.getConversationAvatar(conversation),
|
|
10444
|
+
icon: AXConversationMessageUtilsService.getConversationAvatarIcon(conversation),
|
|
10445
|
+
};
|
|
10446
|
+
}
|
|
10447
|
+
|
|
10448
|
+
/**
|
|
10449
|
+
* Conversation avatar host — renders a registered custom component or built-in fallback.
|
|
10450
|
+
*/
|
|
10451
|
+
class AXConversationAvatarComponent {
|
|
10452
|
+
constructor() {
|
|
10453
|
+
this.conversationService = inject(AXConversationService);
|
|
10454
|
+
this.userAvatarComponent = inject(AX_CONVERSATION_USER_AVATAR_COMPONENT, { optional: true });
|
|
10455
|
+
this.conversationAvatarComponent = inject(AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, {
|
|
10456
|
+
optional: true,
|
|
10457
|
+
});
|
|
10458
|
+
this.kind = input('auto', ...(ngDevMode ? [{ debugName: "kind" }] : []));
|
|
10459
|
+
this.userId = input(...(ngDevMode ? [undefined, { debugName: "userId" }] : []));
|
|
10460
|
+
this.conversation = input(...(ngDevMode ? [undefined, { debugName: "conversation" }] : []));
|
|
10461
|
+
this.message = input(...(ngDevMode ? [undefined, { debugName: "message" }] : []));
|
|
10462
|
+
this.size = input(40, ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
10463
|
+
this.showStatus = input(false, ...(ngDevMode ? [{ debugName: "showStatus" }] : []));
|
|
10464
|
+
this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
|
|
10465
|
+
this.avatar = input(...(ngDevMode ? [undefined, { debugName: "avatar" }] : []));
|
|
10466
|
+
this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
|
|
10467
|
+
this.currentUserId = computed(() => this.conversationService.currentUser()?.id, ...(ngDevMode ? [{ debugName: "currentUserId" }] : []));
|
|
10468
|
+
this.resolvedKind = computed(() => {
|
|
10469
|
+
const explicitKind = this.kind();
|
|
10470
|
+
if (explicitKind === 'user') {
|
|
10471
|
+
return 'user';
|
|
10472
|
+
}
|
|
10473
|
+
if (explicitKind === 'conversation') {
|
|
10474
|
+
return 'conversation';
|
|
10475
|
+
}
|
|
10476
|
+
const conversation = this.conversation();
|
|
10477
|
+
if (conversation && shouldUseUserAvatarForConversation(conversation, this.currentUserId())) {
|
|
10478
|
+
return 'user';
|
|
10479
|
+
}
|
|
10480
|
+
return 'conversation';
|
|
10481
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedKind" }] : []));
|
|
10482
|
+
this.resolvedUserId = computed(() => {
|
|
10483
|
+
const explicitUserId = this.userId();
|
|
10484
|
+
if (explicitUserId) {
|
|
10485
|
+
return explicitUserId;
|
|
10486
|
+
}
|
|
10487
|
+
const conversation = this.conversation();
|
|
10488
|
+
if (!conversation || this.resolvedKind() !== 'user') {
|
|
10489
|
+
return undefined;
|
|
10490
|
+
}
|
|
10491
|
+
return resolvePrivatePeerUserId(conversation, this.currentUserId());
|
|
10492
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedUserId" }] : []));
|
|
10493
|
+
this.customComponent = computed(() => {
|
|
10494
|
+
if (this.resolvedKind() === 'user') {
|
|
10495
|
+
return this.resolvedUserId() && this.userAvatarComponent ? this.userAvatarComponent : null;
|
|
10496
|
+
}
|
|
10497
|
+
const conversation = this.conversation();
|
|
10498
|
+
return conversation && this.conversationAvatarComponent ? this.conversationAvatarComponent : null;
|
|
10499
|
+
}, ...(ngDevMode ? [{ debugName: "customComponent" }] : []));
|
|
10500
|
+
this.customInputs = computed(() => {
|
|
10501
|
+
if (this.resolvedKind() === 'user') {
|
|
10502
|
+
return {
|
|
10503
|
+
userId: this.resolvedUserId() ?? '',
|
|
10504
|
+
size: this.size(),
|
|
10505
|
+
};
|
|
10506
|
+
}
|
|
10507
|
+
return {
|
|
10508
|
+
conversationId: this.conversation()?.id ?? '',
|
|
10509
|
+
size: this.size(),
|
|
10510
|
+
};
|
|
10511
|
+
}, ...(ngDevMode ? [{ debugName: "customInputs" }] : []));
|
|
10512
|
+
this.fallbackDisplay = computed(() => {
|
|
10513
|
+
const explicitName = this.name();
|
|
10514
|
+
const explicitAvatar = this.avatar();
|
|
10515
|
+
const explicitIcon = this.icon();
|
|
10516
|
+
if (this.resolvedKind() === 'user') {
|
|
10517
|
+
const userId = this.resolvedUserId();
|
|
10518
|
+
if (!userId) {
|
|
10519
|
+
return { name: explicitName ?? '?', avatar: explicitAvatar, icon: explicitIcon };
|
|
10520
|
+
}
|
|
10521
|
+
const resolved = resolveUserAvatarDisplay(userId, this.conversation(), this.message());
|
|
10522
|
+
return {
|
|
10523
|
+
name: explicitName ?? resolved.name,
|
|
10524
|
+
avatar: explicitAvatar ?? resolved.avatar,
|
|
10525
|
+
icon: explicitIcon ?? resolved.icon,
|
|
10526
|
+
};
|
|
10527
|
+
}
|
|
10528
|
+
const conversation = this.conversation();
|
|
10529
|
+
if (!conversation) {
|
|
10530
|
+
return { name: explicitName ?? '?', avatar: explicitAvatar, icon: explicitIcon };
|
|
10531
|
+
}
|
|
10532
|
+
const resolved = resolveConversationAvatarDisplay(conversation);
|
|
10533
|
+
return {
|
|
10534
|
+
name: explicitName ?? resolved.name,
|
|
10535
|
+
avatar: explicitAvatar ?? resolved.avatar,
|
|
10536
|
+
icon: explicitIcon ?? resolved.icon,
|
|
10537
|
+
};
|
|
10538
|
+
}, ...(ngDevMode ? [{ debugName: "fallbackDisplay" }] : []));
|
|
10539
|
+
this.fallbackInitials = computed(() => AXConversationMessageUtilsService.getInitials(this.fallbackDisplay().name), ...(ngDevMode ? [{ debugName: "fallbackInitials" }] : []));
|
|
10540
|
+
this.resolvedStatus = computed(() => {
|
|
10541
|
+
const conversation = this.conversation();
|
|
10542
|
+
if (!conversation || !this.showStatus()) {
|
|
10543
|
+
return undefined;
|
|
10544
|
+
}
|
|
10545
|
+
return AXConversationMessageUtilsService.getConversationStatus(conversation);
|
|
10546
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedStatus" }] : []));
|
|
10547
|
+
}
|
|
10548
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10549
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationAvatarComponent, isStandalone: true, selector: "ax-conversation-avatar", inputs: { kind: { classPropertyName: "kind", publicName: "kind", isSignal: true, isRequired: false, transformFunction: null }, userId: { classPropertyName: "userId", publicName: "userId", isSignal: true, isRequired: false, transformFunction: null }, conversation: { classPropertyName: "conversation", publicName: "conversation", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showStatus: { classPropertyName: "showStatus", publicName: "showStatus", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
10550
|
+
<div class="ax-conversation-avatar">
|
|
10551
|
+
@if (customComponent(); as component) {
|
|
10552
|
+
<ng-container *ngComponentOutlet="component; inputs: customInputs()" />
|
|
10553
|
+
} @else {
|
|
10554
|
+
<ax-avatar [size]="size()">
|
|
10555
|
+
@if (fallbackDisplay().avatar; as avatarSrc) {
|
|
10556
|
+
<ax-image [src]="avatarSrc" [alt]="fallbackDisplay().name"></ax-image>
|
|
10557
|
+
} @else if (fallbackDisplay().icon; as iconClass) {
|
|
10558
|
+
<ax-icon><i [class]="'ax-conversation-avatar-icon ' + iconClass" aria-hidden="true"></i></ax-icon>
|
|
10559
|
+
} @else {
|
|
10560
|
+
<ax-label>{{ fallbackInitials() }}</ax-label>
|
|
10561
|
+
}
|
|
10562
|
+
</ax-avatar>
|
|
10563
|
+
}
|
|
10564
|
+
|
|
10565
|
+
@if (showStatus() && resolvedStatus(); as presence) {
|
|
10566
|
+
<span
|
|
10567
|
+
class="ax-conversation-avatar-status"
|
|
10568
|
+
[class.status-online]="presence === 'online'"
|
|
10569
|
+
[class.status-offline]="presence === 'offline'"
|
|
10570
|
+
[class.status-away]="presence === 'away'"
|
|
10571
|
+
></span>
|
|
10572
|
+
}
|
|
10573
|
+
</div>
|
|
10574
|
+
`, isInline: true, styles: [":host{display:inline-flex}.ax-conversation-avatar{position:relative;display:inline-flex}.ax-conversation-avatar-icon{font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.ax-conversation-avatar-status{position:absolute;bottom:2px;inset-inline-end:2px;width:12px;height:12px;border-radius:50%}.ax-conversation-avatar-status.status-online{border:2px solid rgb(var(--ax-sys-color-surface));background-color:rgb(var(--ax-sys-color-success-500))}.ax-conversation-avatar-status.status-away{border:2px solid rgb(var(--ax-sys-color-surface));background-color:rgb(var(--ax-sys-color-warning-500))}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXImageComponent, selector: "ax-image", inputs: ["width", "height", "overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10575
|
+
}
|
|
10576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationAvatarComponent, decorators: [{
|
|
10577
|
+
type: Component,
|
|
10578
|
+
args: [{ selector: 'ax-conversation-avatar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, AXAvatarComponent, AXDecoratorModule, AXImageComponent, AXLabelComponent], template: `
|
|
10579
|
+
<div class="ax-conversation-avatar">
|
|
10580
|
+
@if (customComponent(); as component) {
|
|
10581
|
+
<ng-container *ngComponentOutlet="component; inputs: customInputs()" />
|
|
10582
|
+
} @else {
|
|
10583
|
+
<ax-avatar [size]="size()">
|
|
10584
|
+
@if (fallbackDisplay().avatar; as avatarSrc) {
|
|
10585
|
+
<ax-image [src]="avatarSrc" [alt]="fallbackDisplay().name"></ax-image>
|
|
10586
|
+
} @else if (fallbackDisplay().icon; as iconClass) {
|
|
10587
|
+
<ax-icon><i [class]="'ax-conversation-avatar-icon ' + iconClass" aria-hidden="true"></i></ax-icon>
|
|
10588
|
+
} @else {
|
|
10589
|
+
<ax-label>{{ fallbackInitials() }}</ax-label>
|
|
10590
|
+
}
|
|
10591
|
+
</ax-avatar>
|
|
10592
|
+
}
|
|
10593
|
+
|
|
10594
|
+
@if (showStatus() && resolvedStatus(); as presence) {
|
|
10595
|
+
<span
|
|
10596
|
+
class="ax-conversation-avatar-status"
|
|
10597
|
+
[class.status-online]="presence === 'online'"
|
|
10598
|
+
[class.status-offline]="presence === 'offline'"
|
|
10599
|
+
[class.status-away]="presence === 'away'"
|
|
10600
|
+
></span>
|
|
10601
|
+
}
|
|
10602
|
+
</div>
|
|
10603
|
+
`, styles: [":host{display:inline-flex}.ax-conversation-avatar{position:relative;display:inline-flex}.ax-conversation-avatar-icon{font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.ax-conversation-avatar-status{position:absolute;bottom:2px;inset-inline-end:2px;width:12px;height:12px;border-radius:50%}.ax-conversation-avatar-status.status-online{border:2px solid rgb(var(--ax-sys-color-surface));background-color:rgb(var(--ax-sys-color-success-500))}.ax-conversation-avatar-status.status-away{border:2px solid rgb(var(--ax-sys-color-surface));background-color:rgb(var(--ax-sys-color-warning-500))}\n"] }]
|
|
10604
|
+
}] });
|
|
10605
|
+
|
|
10406
10606
|
class AXConversationDateUtilsService {
|
|
10407
10607
|
/**
|
|
10408
10608
|
* Format relative time (e.g., "2m ago", "1h ago")
|
|
@@ -10566,10 +10766,6 @@ class AXConversationInfoPanelComponent extends AXClosableComponent {
|
|
|
10566
10766
|
this.editAvatar = this.conversation.avatar || '';
|
|
10567
10767
|
}
|
|
10568
10768
|
}
|
|
10569
|
-
/** Get initials from name */
|
|
10570
|
-
getInitials(name) {
|
|
10571
|
-
return AXConversationMessageUtilsService.getInitials(name);
|
|
10572
|
-
}
|
|
10573
10769
|
/** Get conversation subtitle */
|
|
10574
10770
|
getSubtitle() {
|
|
10575
10771
|
return AXConversationMessageUtilsService.getConversationSubtitle(this.conversation);
|
|
@@ -10749,13 +10945,7 @@ class AXConversationInfoPanelComponent extends AXClosableComponent {
|
|
|
10749
10945
|
<div class="conversation-info-panel">
|
|
10750
10946
|
<!-- Header with Avatar and Title -->
|
|
10751
10947
|
<div class="panel-header">
|
|
10752
|
-
<ax-avatar [size]="80"
|
|
10753
|
-
@if (conversation.avatar) {
|
|
10754
|
-
<ax-image [src]="conversation.avatar" [alt]="conversation.title"></ax-image>
|
|
10755
|
-
} @else {
|
|
10756
|
-
<ax-label>{{ getInitials(conversation.title) }}</ax-label>
|
|
10757
|
-
}
|
|
10758
|
-
</ax-avatar>
|
|
10948
|
+
<ax-conversation-avatar kind="auto" [conversation]="conversation" [size]="80" />
|
|
10759
10949
|
<div class="conversation-title-container">
|
|
10760
10950
|
<h2 class="conversation-title">{{ conversation.title }}</h2>
|
|
10761
10951
|
<h3>{{ conversation.description }}</h3>
|
|
@@ -10866,13 +11056,12 @@ class AXConversationInfoPanelComponent extends AXClosableComponent {
|
|
|
10866
11056
|
<div class="members-list">
|
|
10867
11057
|
@for (participant of filteredMembers; track participant.id) {
|
|
10868
11058
|
<div class="member-card">
|
|
10869
|
-
<ax-avatar
|
|
10870
|
-
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
10874
|
-
|
|
10875
|
-
</ax-avatar>
|
|
11059
|
+
<ax-conversation-avatar
|
|
11060
|
+
kind="user"
|
|
11061
|
+
[userId]="participant.id"
|
|
11062
|
+
[conversation]="conversation"
|
|
11063
|
+
[size]="40"
|
|
11064
|
+
/>
|
|
10876
11065
|
<div class="member-details">
|
|
10877
11066
|
<span class="member-name">{{ participant.name }}</span>
|
|
10878
11067
|
@if (participant.description) {
|
|
@@ -11020,7 +11209,7 @@ class AXConversationInfoPanelComponent extends AXClosableComponent {
|
|
|
11020
11209
|
</div>
|
|
11021
11210
|
</div>
|
|
11022
11211
|
}
|
|
11023
|
-
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}.conversation-info-panel{display:flex;flex-direction:column;background:rgb(var(--ax-sys-color-surface));overflow:hidden}.panel-header{display:flex;flex-direction:column;align-items:center;padding:1rem 2rem;background:linear-gradient(180deg,rgb(var(--ax-sys-color-lighter-surface)),rgb(var(--ax-sys-color-surface)));border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));gap:.5rem;position:relative}.conversation-title-container{display:flex;flex-direction:column;align-items:center;gap:.25rem}.conversation-title{margin:0;font-size:1.625rem;font-weight:700;color:rgb(var(--ax-sys-color-on-surface));text-align:center;letter-spacing:-.02em}.edit-group-section{padding:1.5rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;margin-bottom:1.5rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface))}.section-header{margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.section-title{font-size:1rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.edit-field{margin-bottom:1rem}.edit-label{display:block;font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));margin-bottom:.5rem}.edit-actions{display:flex;gap:.75rem;justify-content:flex-start;margin-top:1rem}.tab-content-wrapper{flex:1;overflow-y:auto;max-height:50vh}.tab-content{padding:2rem;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.about-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;transition:all .2s;border:2px solid transparent}.stat-card:hover{background:rgb(var(--ax-sys-color-border-light-surface));// transform: translateY(-2px);box-shadow:0 4px 8px #0000001a}.stat-card.highlight{background:rgba(var(--ax-sys-color-primary-500),.1);border-color:rgb(var(--ax-sys-color-primary-500))}.stat-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-surface));border-radius:.5rem;font-size:1.125rem;color:rgb(var(--ax-sys-color-primary-500))}.stat-card.highlight .stat-icon{background:rgb(var(--ax-sys-color-primary-500));color:rgb(var(--ax-sys-color-on-primary))}.stat-content{display:flex;flex-direction:column;gap:.125rem}.stat-value{font-size:1.25rem;font-weight:700;color:rgb(var(--ax-sys-color-on-surface));line-height:1;word-break:break-all}.stat-label{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.7;text-transform:uppercase;letter-spacing:.05em}.about-timeline{display:flex;flex-direction:column;gap:.75rem}.timeline-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.5rem;transition:background .2s}.timeline-item:hover{background:rgb(var(--ax-sys-color-border-light-surface))}.timeline-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-surface));border-radius:50%;font-size:.875rem;color:rgb(var(--ax-sys-color-primary-500))}.timeline-content{display:flex;justify-content:space-between;align-items:center;gap:1rem}.timeline-label{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.timeline-value{font-size:.875rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.7;cursor:help}.members-search{margin-bottom:1rem}.members-list{display:flex;flex-direction:column;gap:.5rem}.member-card{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;transition:all .2s ease;border:1px solid transparent;cursor:pointer}.member-card:hover{background:rgb(var(--ax-sys-color-surface));border-color:rgba(var(--ax-sys-color-primary-500),.3);// transform: translateX(4px);box-shadow:0 2px 8px #00000014}.member-details{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.member-name{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{font-size:.75rem;color:rgb(var(--ax-sys-color-primary-500));text-transform:capitalize}.member-description{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-indicator.online{background:rgb(var(--ax-sys-color-success-500))}.status-indicator.away{background:rgb(var(--ax-sys-color-warning-500))}.status-indicator.offline{background:rgb(var(--ax-sys-color-neutral-400))}.settings-list{display:flex;flex-direction:column;gap:.75rem}.setting-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;border:1px solid transparent;transition:all .2s ease}.setting-item:hover{background:rgb(var(--ax-sys-color-surface));border-color:rgb(var(--ax-sys-color-border-light-surface));box-shadow:0 2px 6px #0000000f}.setting-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.setting-label{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.setting-description{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.7}.danger-zone{padding:1.5rem;margin-top:1.5rem;background:rgba(var(--ax-sys-color-danger-500),.05);border:1px solid rgba(var(--ax-sys-color-danger-500),.2);border-radius:.75rem}.danger-zone ax-button{width:100%}.background-section{margin-top:1rem;padding:1rem;background:rgb(var(--ax-sys-color-lighter-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:.75rem}.background-description{margin:0 0 .75rem;font-size:.75rem;opacity:.7}.background-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.background-swatch{position:relative;height:3rem;border-radius:.625rem;border:2px solid rgb(var(--ax-sys-color-secondary-400));cursor:pointer;overflow:hidden;transition:border-color .15s ease,filter .15s ease}.background-grid:hover .background-swatch:not(:hover){filter:brightness(.75)}.background-swatch-active{border-color:rgb(var(--ax-sys-color-primary-600))}.background-swatch-label{position:absolute;inset-inline-start:.375rem;bottom:.25rem;font-size:.825rem;mix-blend-mode:difference;font-weight:600}.background-actions{margin-top:.625rem;display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.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: "
|
|
11212
|
+
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}.conversation-info-panel{display:flex;flex-direction:column;background:rgb(var(--ax-sys-color-surface));overflow:hidden}.panel-header{display:flex;flex-direction:column;align-items:center;padding:1rem 2rem;background:linear-gradient(180deg,rgb(var(--ax-sys-color-lighter-surface)),rgb(var(--ax-sys-color-surface)));border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));gap:.5rem;position:relative}.conversation-title-container{display:flex;flex-direction:column;align-items:center;gap:.25rem}.conversation-title{margin:0;font-size:1.625rem;font-weight:700;color:rgb(var(--ax-sys-color-on-surface));text-align:center;letter-spacing:-.02em}.edit-group-section{padding:1.5rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;margin-bottom:1.5rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface))}.section-header{margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.section-title{font-size:1rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.edit-field{margin-bottom:1rem}.edit-label{display:block;font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));margin-bottom:.5rem}.edit-actions{display:flex;gap:.75rem;justify-content:flex-start;margin-top:1rem}.tab-content-wrapper{flex:1;overflow-y:auto;max-height:50vh}.tab-content{padding:2rem;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.about-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;transition:all .2s;border:2px solid transparent}.stat-card:hover{background:rgb(var(--ax-sys-color-border-light-surface));// transform: translateY(-2px);box-shadow:0 4px 8px #0000001a}.stat-card.highlight{background:rgba(var(--ax-sys-color-primary-500),.1);border-color:rgb(var(--ax-sys-color-primary-500))}.stat-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-surface));border-radius:.5rem;font-size:1.125rem;color:rgb(var(--ax-sys-color-primary-500))}.stat-card.highlight .stat-icon{background:rgb(var(--ax-sys-color-primary-500));color:rgb(var(--ax-sys-color-on-primary))}.stat-content{display:flex;flex-direction:column;gap:.125rem}.stat-value{font-size:1.25rem;font-weight:700;color:rgb(var(--ax-sys-color-on-surface));line-height:1;word-break:break-all}.stat-label{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.7;text-transform:uppercase;letter-spacing:.05em}.about-timeline{display:flex;flex-direction:column;gap:.75rem}.timeline-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.5rem;transition:background .2s}.timeline-item:hover{background:rgb(var(--ax-sys-color-border-light-surface))}.timeline-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-surface));border-radius:50%;font-size:.875rem;color:rgb(var(--ax-sys-color-primary-500))}.timeline-content{display:flex;justify-content:space-between;align-items:center;gap:1rem}.timeline-label{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.timeline-value{font-size:.875rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.7;cursor:help}.members-search{margin-bottom:1rem}.members-list{display:flex;flex-direction:column;gap:.5rem}.member-card{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;transition:all .2s ease;border:1px solid transparent;cursor:pointer}.member-card:hover{background:rgb(var(--ax-sys-color-surface));border-color:rgba(var(--ax-sys-color-primary-500),.3);// transform: translateX(4px);box-shadow:0 2px 8px #00000014}.member-details{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.member-name{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{font-size:.75rem;color:rgb(var(--ax-sys-color-primary-500));text-transform:capitalize}.member-description{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-indicator.online{background:rgb(var(--ax-sys-color-success-500))}.status-indicator.away{background:rgb(var(--ax-sys-color-warning-500))}.status-indicator.offline{background:rgb(var(--ax-sys-color-neutral-400))}.settings-list{display:flex;flex-direction:column;gap:.75rem}.setting-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem;background:rgb(var(--ax-sys-color-lighter-surface));border-radius:.75rem;border:1px solid transparent;transition:all .2s ease}.setting-item:hover{background:rgb(var(--ax-sys-color-surface));border-color:rgb(var(--ax-sys-color-border-light-surface));box-shadow:0 2px 6px #0000000f}.setting-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.setting-label{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.setting-description{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.7}.danger-zone{padding:1.5rem;margin-top:1.5rem;background:rgba(var(--ax-sys-color-danger-500),.05);border:1px solid rgba(var(--ax-sys-color-danger-500),.2);border-radius:.75rem}.danger-zone ax-button{width:100%}.background-section{margin-top:1rem;padding:1rem;background:rgb(var(--ax-sys-color-lighter-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:.75rem}.background-description{margin:0 0 .75rem;font-size:.75rem;opacity:.7}.background-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.background-swatch{position:relative;height:3rem;border-radius:.625rem;border:2px solid rgb(var(--ax-sys-color-secondary-400));cursor:pointer;overflow:hidden;transition:border-color .15s ease,filter .15s ease}.background-grid:hover .background-swatch:not(:hover){filter:brightness(.75)}.background-swatch-active{border-color:rgb(var(--ax-sys-color-primary-600))}.background-swatch-label{position:absolute;inset-inline-start:.375rem;bottom:.25rem;font-size:.825rem;mix-blend-mode:difference;font-weight:600}.background-actions{margin-top:.625rem;display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.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: AXDecoratorModule }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "component", type: i4.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "component", type: AXAvatarPickerComponent, selector: "ax-avatar-picker", inputs: ["showClearButton", "avatarUrl"], outputs: ["avatarUrlChange", "onFileSelected"] }, { kind: "component", type: AXConversationAvatarComponent, selector: "ax-conversation-avatar", inputs: ["kind", "userId", "conversation", "message", "size", "showStatus", "name", "avatar", "icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }] }); }
|
|
11024
11213
|
}
|
|
11025
11214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationInfoPanelComponent, decorators: [{
|
|
11026
11215
|
type: Component,
|
|
@@ -11029,27 +11218,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
11029
11218
|
FormsModule,
|
|
11030
11219
|
AXTabsModule,
|
|
11031
11220
|
AXButtonModule,
|
|
11032
|
-
AXAvatarComponent,
|
|
11033
|
-
AXImageComponent,
|
|
11034
11221
|
AXDecoratorModule,
|
|
11035
11222
|
AXLabelComponent,
|
|
11036
11223
|
AXSwitchModule,
|
|
11037
11224
|
AXSearchBoxComponent,
|
|
11038
11225
|
AXTextBoxComponent,
|
|
11039
11226
|
AXAvatarPickerComponent,
|
|
11227
|
+
AXConversationAvatarComponent,
|
|
11040
11228
|
AXTranslationModule,
|
|
11041
11229
|
], template: `
|
|
11042
11230
|
@if (conversation) {
|
|
11043
11231
|
<div class="conversation-info-panel">
|
|
11044
11232
|
<!-- Header with Avatar and Title -->
|
|
11045
11233
|
<div class="panel-header">
|
|
11046
|
-
<ax-avatar [size]="80"
|
|
11047
|
-
@if (conversation.avatar) {
|
|
11048
|
-
<ax-image [src]="conversation.avatar" [alt]="conversation.title"></ax-image>
|
|
11049
|
-
} @else {
|
|
11050
|
-
<ax-label>{{ getInitials(conversation.title) }}</ax-label>
|
|
11051
|
-
}
|
|
11052
|
-
</ax-avatar>
|
|
11234
|
+
<ax-conversation-avatar kind="auto" [conversation]="conversation" [size]="80" />
|
|
11053
11235
|
<div class="conversation-title-container">
|
|
11054
11236
|
<h2 class="conversation-title">{{ conversation.title }}</h2>
|
|
11055
11237
|
<h3>{{ conversation.description }}</h3>
|
|
@@ -11160,13 +11342,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
11160
11342
|
<div class="members-list">
|
|
11161
11343
|
@for (participant of filteredMembers; track participant.id) {
|
|
11162
11344
|
<div class="member-card">
|
|
11163
|
-
<ax-avatar
|
|
11164
|
-
|
|
11165
|
-
|
|
11166
|
-
|
|
11167
|
-
|
|
11168
|
-
|
|
11169
|
-
</ax-avatar>
|
|
11345
|
+
<ax-conversation-avatar
|
|
11346
|
+
kind="user"
|
|
11347
|
+
[userId]="participant.id"
|
|
11348
|
+
[conversation]="conversation"
|
|
11349
|
+
[size]="40"
|
|
11350
|
+
/>
|
|
11170
11351
|
<div class="member-details">
|
|
11171
11352
|
<span class="member-name">{{ participant.name }}</span>
|
|
11172
11353
|
@if (participant.description) {
|
|
@@ -17483,15 +17664,6 @@ class AXMembersPopoverComponent {
|
|
|
17483
17664
|
params: { count: this.conversation().participants.length },
|
|
17484
17665
|
});
|
|
17485
17666
|
}
|
|
17486
|
-
/** Get initials from name */
|
|
17487
|
-
getInitials(name) {
|
|
17488
|
-
return name
|
|
17489
|
-
.split(' ')
|
|
17490
|
-
.map((n) => n[0])
|
|
17491
|
-
.join('')
|
|
17492
|
-
.toUpperCase()
|
|
17493
|
-
.slice(0, 2);
|
|
17494
|
-
}
|
|
17495
17667
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMembersPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17496
17668
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXMembersPopoverComponent, isStandalone: true, selector: "ax-conversation-members-popover", inputs: { conversation: { classPropertyName: "conversation", publicName: "conversation", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
17497
17669
|
<div class="members-popover">
|
|
@@ -17501,15 +17673,12 @@ class AXMembersPopoverComponent {
|
|
|
17501
17673
|
<div class="members-list">
|
|
17502
17674
|
@for (participant of conversation().participants; track participant.id) {
|
|
17503
17675
|
<div class="member-item">
|
|
17504
|
-
<ax-avatar
|
|
17505
|
-
|
|
17506
|
-
|
|
17507
|
-
|
|
17508
|
-
|
|
17509
|
-
|
|
17510
|
-
<ax-label>{{ getInitials(participant.name) }}</ax-label>
|
|
17511
|
-
}
|
|
17512
|
-
</ax-avatar>
|
|
17676
|
+
<ax-conversation-avatar
|
|
17677
|
+
kind="user"
|
|
17678
|
+
[userId]="participant.id"
|
|
17679
|
+
[conversation]="conversation()"
|
|
17680
|
+
[size]="36"
|
|
17681
|
+
/>
|
|
17513
17682
|
<div class="member-info">
|
|
17514
17683
|
<span class="member-name">{{ participant.name }}</span>
|
|
17515
17684
|
@if (participant.description) {
|
|
@@ -17530,11 +17699,11 @@ class AXMembersPopoverComponent {
|
|
|
17530
17699
|
}
|
|
17531
17700
|
</div>
|
|
17532
17701
|
</div>
|
|
17533
|
-
`, isInline: true, styles: [":host{display:block}.members-popover{width:280px;max-height:400px;border-radius:.5rem;display:flex;flex-direction:column;background:rgb(var(--ax-sys-color-lighter-surface))}.members-header{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.members-title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.members-list{overflow-y:auto;padding:.5rem}.member-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.5rem;transition:background .2s;cursor:pointer}.member-item:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.member-
|
|
17702
|
+
`, isInline: true, styles: [":host{display:block}.members-popover{width:280px;max-height:400px;border-radius:.5rem;display:flex;flex-direction:column;background:rgb(var(--ax-sys-color-lighter-surface))}.members-header{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.members-title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.members-list{overflow-y:auto;padding:.5rem}.member-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.5rem;transition:background .2s;cursor:pointer}.member-item:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.member-info{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.member-name{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{font-size:.75rem;color:rgb(var(--ax-sys-color-primary-500));text-transform:capitalize}.member-description{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-status{width:10px;height:10px;border-radius:50%;flex-shrink:0}.member-status.status-online{background:rgb(var(--ax-sys-color-success-500))}.member-status.status-offline{background:rgb(var(--ax-sys-color-neutral-400))}.member-status.status-away{background:rgb(var(--ax-sys-color-warning-500))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXConversationAvatarComponent, selector: "ax-conversation-avatar", inputs: ["kind", "userId", "conversation", "message", "size", "showStatus", "name", "avatar", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17534
17703
|
}
|
|
17535
17704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMembersPopoverComponent, decorators: [{
|
|
17536
17705
|
type: Component,
|
|
17537
|
-
args: [{ selector: 'ax-conversation-members-popover', imports: [CommonModule,
|
|
17706
|
+
args: [{ selector: 'ax-conversation-members-popover', imports: [CommonModule, AXLabelComponent, AXDecoratorModule, AXConversationAvatarComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
17538
17707
|
<div class="members-popover">
|
|
17539
17708
|
<div class="members-header">
|
|
17540
17709
|
<span class="members-title">{{ getMembersTitle() }}</span>
|
|
@@ -17542,15 +17711,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
17542
17711
|
<div class="members-list">
|
|
17543
17712
|
@for (participant of conversation().participants; track participant.id) {
|
|
17544
17713
|
<div class="member-item">
|
|
17545
|
-
<ax-avatar
|
|
17546
|
-
|
|
17547
|
-
|
|
17548
|
-
|
|
17549
|
-
|
|
17550
|
-
|
|
17551
|
-
<ax-label>{{ getInitials(participant.name) }}</ax-label>
|
|
17552
|
-
}
|
|
17553
|
-
</ax-avatar>
|
|
17714
|
+
<ax-conversation-avatar
|
|
17715
|
+
kind="user"
|
|
17716
|
+
[userId]="participant.id"
|
|
17717
|
+
[conversation]="conversation()"
|
|
17718
|
+
[size]="36"
|
|
17719
|
+
/>
|
|
17554
17720
|
<div class="member-info">
|
|
17555
17721
|
<span class="member-name">{{ participant.name }}</span>
|
|
17556
17722
|
@if (participant.description) {
|
|
@@ -17571,7 +17737,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
17571
17737
|
}
|
|
17572
17738
|
</div>
|
|
17573
17739
|
</div>
|
|
17574
|
-
`, styles: [":host{display:block}.members-popover{width:280px;max-height:400px;border-radius:.5rem;display:flex;flex-direction:column;background:rgb(var(--ax-sys-color-lighter-surface))}.members-header{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.members-title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.members-list{overflow-y:auto;padding:.5rem}.member-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.5rem;transition:background .2s;cursor:pointer}.member-item:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.member-
|
|
17740
|
+
`, styles: [":host{display:block}.members-popover{width:280px;max-height:400px;border-radius:.5rem;display:flex;flex-direction:column;background:rgb(var(--ax-sys-color-lighter-surface))}.members-header{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.members-title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.members-list{overflow-y:auto;padding:.5rem}.member-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.5rem;transition:background .2s;cursor:pointer}.member-item:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.member-info{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.member-name{font-size:.875rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{font-size:.75rem;color:rgb(var(--ax-sys-color-primary-500));text-transform:capitalize}.member-description{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-status{width:10px;height:10px;border-radius:50%;flex-shrink:0}.member-status.status-online{background:rgb(var(--ax-sys-color-success-500))}.member-status.status-offline{background:rgb(var(--ax-sys-color-neutral-400))}.member-status.status-away{background:rgb(var(--ax-sys-color-warning-500))}\n"] }]
|
|
17575
17741
|
}] });
|
|
17576
17742
|
|
|
17577
17743
|
/**
|
|
@@ -17640,16 +17806,6 @@ class AXInfoBarComponent {
|
|
|
17640
17806
|
getSubtitle(conversation) {
|
|
17641
17807
|
return AXConversationMessageUtilsService.getConversationSubtitle(conversation);
|
|
17642
17808
|
}
|
|
17643
|
-
/** Get initials from name - delegate to utils */
|
|
17644
|
-
getInitials(name) {
|
|
17645
|
-
return AXConversationMessageUtilsService.getInitials(name);
|
|
17646
|
-
}
|
|
17647
|
-
getConversationAvatar(conversation) {
|
|
17648
|
-
return AXConversationMessageUtilsService.getConversationAvatar(conversation);
|
|
17649
|
-
}
|
|
17650
|
-
getConversationAvatarIcon(conversation) {
|
|
17651
|
-
return AXConversationMessageUtilsService.getConversationAvatarIcon(conversation);
|
|
17652
|
-
}
|
|
17653
17809
|
/** Handle avatar click */
|
|
17654
17810
|
onAvatarClick() {
|
|
17655
17811
|
this.avatarClick.emit();
|
|
@@ -17777,23 +17933,12 @@ class AXInfoBarComponent {
|
|
|
17777
17933
|
tabindex="0"
|
|
17778
17934
|
(keydown.enter)="onAvatarClick()"
|
|
17779
17935
|
>
|
|
17780
|
-
<ax-avatar
|
|
17781
|
-
|
|
17782
|
-
|
|
17783
|
-
|
|
17784
|
-
|
|
17785
|
-
|
|
17786
|
-
<ax-label>{{ getInitials(conversation.title) }}</ax-label>
|
|
17787
|
-
}
|
|
17788
|
-
</ax-avatar>
|
|
17789
|
-
@if (conversation.type === 'private') {
|
|
17790
|
-
<span
|
|
17791
|
-
class="avatar-status"
|
|
17792
|
-
[class.status-online]="getStatus(conversation) === 'online'"
|
|
17793
|
-
[class.status-offline]="getStatus(conversation) === 'offline'"
|
|
17794
|
-
[class.status-away]="getStatus(conversation) === 'away'"
|
|
17795
|
-
></span>
|
|
17796
|
-
}
|
|
17936
|
+
<ax-conversation-avatar
|
|
17937
|
+
kind="auto"
|
|
17938
|
+
[conversation]="conversation"
|
|
17939
|
+
[size]="48"
|
|
17940
|
+
[showStatus]="conversation.type === 'private'"
|
|
17941
|
+
/>
|
|
17797
17942
|
</div>
|
|
17798
17943
|
|
|
17799
17944
|
<div class="info-details">
|
|
@@ -17895,21 +18040,20 @@ class AXInfoBarComponent {
|
|
|
17895
18040
|
</div>
|
|
17896
18041
|
}
|
|
17897
18042
|
}
|
|
17898
|
-
`, isInline: true, styles: [":host{max-width:100%;display:block}.info-bar{position:relative;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:.5rem;line-height:1.1rem;min-height:64px;gap:.75rem}.ax-cnv-info-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-block-start:1px solid rgb(var(--ax-sys-color-border-light-surface));// background: rgb(var(--ax-sys-color-primary-lightest-surface))}.ax-cnv-info-banner__content{flex:1;min-width:0}.ax-cnv-info-banner__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--ax-sys-border-radius, .375rem);background:transparent;color:rgba(var(--ax-sys-color-on-primary-lightest-surface),.65);font-size:1rem;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,color .15s ease}@media (hover: hover){.ax-cnv-info-banner__close:hover{background:rgba(var(--ax-sys-color-primary-500),.12);color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}}.ax-cnv-info-banner__close:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-600));outline-offset:2px}.info-bar-empty{justify-content:center;opacity:.6}.info-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.
|
|
18043
|
+
`, isInline: true, styles: [":host{max-width:100%;display:block}.info-bar{position:relative;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:.5rem;line-height:1.1rem;min-height:64px;gap:.75rem}.ax-cnv-info-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-block-start:1px solid rgb(var(--ax-sys-color-border-light-surface));// background: rgb(var(--ax-sys-color-primary-lightest-surface))}.ax-cnv-info-banner__content{flex:1;min-width:0}.ax-cnv-info-banner__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--ax-sys-border-radius, .375rem);background:transparent;color:rgba(var(--ax-sys-color-on-primary-lightest-surface),.65);font-size:1rem;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,color .15s ease}@media (hover: hover){.ax-cnv-info-banner__close:hover{background:rgba(var(--ax-sys-color-primary-500),.12);color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}}.ax-cnv-info-banner__close:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-600));outline-offset:2px}.info-bar-empty{justify-content:center;opacity:.6}.info-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.info-details{flex:1;min-width:0}.info-title{margin:0;font-size:1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-subtitle-with-status{display:flex;align-items:center;gap:.375rem;margin:.125rem 0 0}.online-badge{color:#22c55e;font-size:.625rem;line-height:1;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.info-subtitle{margin:0;font-size:.85rem;letter-spacing:.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.7}.info-subtitle.clickable{cursor:pointer;transition:opacity .2s}.info-subtitle.clickable:hover{opacity:1;text-decoration:underline}.info-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.info-component-fullwidth{position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem;background:rgb(var(--ax-sys-color-lightest-surface));z-index:10}.slide-in{animation:slideInFromRight var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}@keyframes slideInFromRight{0%{opacity:0;transform:translate(var(--ax-info-bar-slide-distance, 100%))}to{opacity:1;transform:translate(0)}}.slide-out{opacity:0;transform:translate(var(--ax-info-bar-slide-distance, 100%));transition:opacity .25s cubic-bezier(.4,0,1,1),transform .25s cubic-bezier(.4,0,1,1)}:host-context([dir=\"rtl\"]){--ax-info-bar-slide-distance: -100%}.info-component-fullwidth>*:first-child{flex:1;min-width:0}.action-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:.5rem;font-size:1.25rem;cursor:pointer;transition:background .2s}.action-button:hover{background:rgb(var(--ax-sys-color-light-surface))}.search-container{display:flex;align-items:center;gap:.5rem;width:100%;min-width:200px}.search-input{flex:1;min-width:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.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: "component", type: i1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "component", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { 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: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMembersPopoverComponent, selector: "ax-conversation-members-popover", inputs: ["conversation"] }, { kind: "component", type: AXConversationAvatarComponent, selector: "ax-conversation-avatar", inputs: ["kind", "userId", "conversation", "message", "size", "showStatus", "name", "avatar", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17899
18044
|
}
|
|
17900
18045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXInfoBarComponent, decorators: [{
|
|
17901
18046
|
type: Component,
|
|
17902
18047
|
args: [{ selector: 'ax-conversation-info-bar', imports: [
|
|
17903
18048
|
CommonModule,
|
|
17904
18049
|
NgComponentOutlet,
|
|
17905
|
-
AXAvatarComponent,
|
|
17906
18050
|
AXButtonModule,
|
|
17907
18051
|
AXDropdownPanelComponent,
|
|
17908
18052
|
AXDecoratorModule,
|
|
17909
|
-
AXImageComponent,
|
|
17910
18053
|
AXLabelComponent,
|
|
17911
18054
|
AXPopoverComponent,
|
|
17912
18055
|
AXMembersPopoverComponent,
|
|
18056
|
+
AXConversationAvatarComponent,
|
|
17913
18057
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
17914
18058
|
@if (activeConversation(); as conversation) {
|
|
17915
18059
|
<div class="info-bar">
|
|
@@ -17923,23 +18067,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
17923
18067
|
tabindex="0"
|
|
17924
18068
|
(keydown.enter)="onAvatarClick()"
|
|
17925
18069
|
>
|
|
17926
|
-
<ax-avatar
|
|
17927
|
-
|
|
17928
|
-
|
|
17929
|
-
|
|
17930
|
-
|
|
17931
|
-
|
|
17932
|
-
<ax-label>{{ getInitials(conversation.title) }}</ax-label>
|
|
17933
|
-
}
|
|
17934
|
-
</ax-avatar>
|
|
17935
|
-
@if (conversation.type === 'private') {
|
|
17936
|
-
<span
|
|
17937
|
-
class="avatar-status"
|
|
17938
|
-
[class.status-online]="getStatus(conversation) === 'online'"
|
|
17939
|
-
[class.status-offline]="getStatus(conversation) === 'offline'"
|
|
17940
|
-
[class.status-away]="getStatus(conversation) === 'away'"
|
|
17941
|
-
></span>
|
|
17942
|
-
}
|
|
18070
|
+
<ax-conversation-avatar
|
|
18071
|
+
kind="auto"
|
|
18072
|
+
[conversation]="conversation"
|
|
18073
|
+
[size]="48"
|
|
18074
|
+
[showStatus]="conversation.type === 'private'"
|
|
18075
|
+
/>
|
|
17943
18076
|
</div>
|
|
17944
18077
|
|
|
17945
18078
|
<div class="info-details">
|
|
@@ -18041,7 +18174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
18041
18174
|
</div>
|
|
18042
18175
|
}
|
|
18043
18176
|
}
|
|
18044
|
-
`, styles: [":host{max-width:100%;display:block}.info-bar{position:relative;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:.5rem;line-height:1.1rem;min-height:64px;gap:.75rem}.ax-cnv-info-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-block-start:1px solid rgb(var(--ax-sys-color-border-light-surface));// background: rgb(var(--ax-sys-color-primary-lightest-surface))}.ax-cnv-info-banner__content{flex:1;min-width:0}.ax-cnv-info-banner__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--ax-sys-border-radius, .375rem);background:transparent;color:rgba(var(--ax-sys-color-on-primary-lightest-surface),.65);font-size:1rem;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,color .15s ease}@media (hover: hover){.ax-cnv-info-banner__close:hover{background:rgba(var(--ax-sys-color-primary-500),.12);color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}}.ax-cnv-info-banner__close:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-600));outline-offset:2px}.info-bar-empty{justify-content:center;opacity:.6}.info-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.
|
|
18177
|
+
`, styles: [":host{max-width:100%;display:block}.info-bar{position:relative;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:.5rem;line-height:1.1rem;min-height:64px;gap:.75rem}.ax-cnv-info-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-block-start:1px solid rgb(var(--ax-sys-color-border-light-surface));// background: rgb(var(--ax-sys-color-primary-lightest-surface))}.ax-cnv-info-banner__content{flex:1;min-width:0}.ax-cnv-info-banner__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--ax-sys-border-radius, .375rem);background:transparent;color:rgba(var(--ax-sys-color-on-primary-lightest-surface),.65);font-size:1rem;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,color .15s ease}@media (hover: hover){.ax-cnv-info-banner__close:hover{background:rgba(var(--ax-sys-color-primary-500),.12);color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}}.ax-cnv-info-banner__close:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-600));outline-offset:2px}.info-bar-empty{justify-content:center;opacity:.6}.info-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.info-details{flex:1;min-width:0}.info-title{margin:0;font-size:1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-subtitle-with-status{display:flex;align-items:center;gap:.375rem;margin:.125rem 0 0}.online-badge{color:#22c55e;font-size:.625rem;line-height:1;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.info-subtitle{margin:0;font-size:.85rem;letter-spacing:.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.7}.info-subtitle.clickable{cursor:pointer;transition:opacity .2s}.info-subtitle.clickable:hover{opacity:1;text-decoration:underline}.info-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.info-component-fullwidth{position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem;background:rgb(var(--ax-sys-color-lightest-surface));z-index:10}.slide-in{animation:slideInFromRight var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}@keyframes slideInFromRight{0%{opacity:0;transform:translate(var(--ax-info-bar-slide-distance, 100%))}to{opacity:1;transform:translate(0)}}.slide-out{opacity:0;transform:translate(var(--ax-info-bar-slide-distance, 100%));transition:opacity .25s cubic-bezier(.4,0,1,1),transform .25s cubic-bezier(.4,0,1,1)}:host-context([dir=\"rtl\"]){--ax-info-bar-slide-distance: -100%}.info-component-fullwidth>*:first-child{flex:1;min-width:0}.action-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:.5rem;font-size:1.25rem;cursor:pointer;transition:background .2s}.action-button:hover{background:rgb(var(--ax-sys-color-light-surface))}.search-container{display:flex;align-items:center;gap:.5rem;width:100%;min-width:200px}.search-input{flex:1;min-width:0}\n"] }]
|
|
18045
18178
|
}] });
|
|
18046
18179
|
|
|
18047
18180
|
class AXForwardMessageDialogComponent {
|
|
@@ -18665,8 +18798,6 @@ class AXMessageListComponent {
|
|
|
18665
18798
|
this.config = inject(CONVERSATION_CONFIG);
|
|
18666
18799
|
/** Fallback when no conversation is active and no `ax-conversation-message-list-no-active` content is projected. */
|
|
18667
18800
|
this.noActiveFallbackComponent = AXMessageListNoActiveDefaultComponent;
|
|
18668
|
-
/** Custom avatar template for message list items */
|
|
18669
|
-
this.avatarTemplate = input(null, ...(ngDevMode ? [{ debugName: "avatarTemplate" }] : []));
|
|
18670
18801
|
// Timeout cleanup to prevent memory leaks
|
|
18671
18802
|
this.timeouts = new Set();
|
|
18672
18803
|
// Store reply and forward counts from API
|
|
@@ -18926,20 +19057,6 @@ class AXMessageListComponent {
|
|
|
18926
19057
|
return this.translation.translateSync('@acorex:chat.fallbacks.unknown-user');
|
|
18927
19058
|
return AXConversationMessageUtilsService.getSenderName(message, conversation);
|
|
18928
19059
|
}
|
|
18929
|
-
/** Get sender avatar */
|
|
18930
|
-
getSenderAvatar(message) {
|
|
18931
|
-
const conversation = this.activeConversation();
|
|
18932
|
-
if (!conversation)
|
|
18933
|
-
return undefined;
|
|
18934
|
-
return AXConversationMessageUtilsService.getSenderAvatar(message, conversation);
|
|
18935
|
-
}
|
|
18936
|
-
/** Font Awesome icon for sender when no avatar image (participant or conversation icon). */
|
|
18937
|
-
getSenderAvatarIcon(message) {
|
|
18938
|
-
const conversation = this.activeConversation();
|
|
18939
|
-
if (!conversation)
|
|
18940
|
-
return undefined;
|
|
18941
|
-
return AXConversationMessageUtilsService.getSenderAvatarIcon(message, conversation);
|
|
18942
|
-
}
|
|
18943
19060
|
/** Get original sender name for forwarded messages */
|
|
18944
19061
|
getOriginalSenderName(message) {
|
|
18945
19062
|
// Use new forwardedFrom object if available
|
|
@@ -19112,10 +19229,6 @@ class AXMessageListComponent {
|
|
|
19112
19229
|
getMessageActions(message) {
|
|
19113
19230
|
return this.messageListService.getMenuActions(message);
|
|
19114
19231
|
}
|
|
19115
|
-
/** Get initials from name */
|
|
19116
|
-
getInitials(name) {
|
|
19117
|
-
return AXConversationMessageUtilsService.getInitials(name);
|
|
19118
|
-
}
|
|
19119
19232
|
/** Handle reaction click */
|
|
19120
19233
|
onReactionClick(message, emoji) {
|
|
19121
19234
|
this.messageListService.reactToMessage(message.id, emoji);
|
|
@@ -19400,7 +19513,7 @@ class AXMessageListComponent {
|
|
|
19400
19513
|
return message.id;
|
|
19401
19514
|
}
|
|
19402
19515
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMessageListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19403
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXMessageListComponent, isStandalone: true, selector: "ax-conversation-message-list",
|
|
19516
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXMessageListComponent, isStandalone: true, selector: "ax-conversation-message-list", outputs: { messageAction: "messageAction" }, viewQueries: [{ propertyName: "reactionPopover", first: true, predicate: ["reactionPopover"], descendants: true, isSignal: true }, { propertyName: "messageListRef", first: true, predicate: ["messageList"], descendants: true, isSignal: true }, { propertyName: "messagesContainerRef", first: true, predicate: ["messagesContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
19404
19517
|
@if (activeConversation(); as conv) {
|
|
19405
19518
|
@for (cid of [conv.id]; track cid) {
|
|
19406
19519
|
<div
|
|
@@ -19490,35 +19603,13 @@ class AXMessageListComponent {
|
|
|
19490
19603
|
<!-- Avatar (only for group conversations and received messages) -->
|
|
19491
19604
|
@if (shouldShowAvatar(message)) {
|
|
19492
19605
|
<div class="message-avatar">
|
|
19493
|
-
|
|
19494
|
-
|
|
19495
|
-
|
|
19496
|
-
|
|
19497
|
-
|
|
19498
|
-
|
|
19499
|
-
|
|
19500
|
-
senderName: getSenderName(message),
|
|
19501
|
-
senderAvatar: getSenderAvatar(message),
|
|
19502
|
-
senderIcon: getSenderAvatarIcon(message),
|
|
19503
|
-
}
|
|
19504
|
-
"
|
|
19505
|
-
></ng-container>
|
|
19506
|
-
} @else {
|
|
19507
|
-
<ax-avatar [size]="32">
|
|
19508
|
-
@if (getSenderAvatar(message)) {
|
|
19509
|
-
<ax-image [src]="getSenderAvatar(message)!" [alt]="getSenderName(message)"></ax-image>
|
|
19510
|
-
} @else if (getSenderAvatarIcon(message)) {
|
|
19511
|
-
<ax-icon
|
|
19512
|
-
><i
|
|
19513
|
-
[class]="'message-avatar-icon ' + getSenderAvatarIcon(message)!"
|
|
19514
|
-
aria-hidden="true"
|
|
19515
|
-
></i
|
|
19516
|
-
></ax-icon>
|
|
19517
|
-
} @else {
|
|
19518
|
-
<ax-label>{{ getInitials(getSenderName(message)) }}</ax-label>
|
|
19519
|
-
}
|
|
19520
|
-
</ax-avatar>
|
|
19521
|
-
}
|
|
19606
|
+
<ax-conversation-avatar
|
|
19607
|
+
kind="user"
|
|
19608
|
+
[userId]="message.senderId"
|
|
19609
|
+
[conversation]="activeConversation()"
|
|
19610
|
+
[message]="message"
|
|
19611
|
+
[size]="32"
|
|
19612
|
+
/>
|
|
19522
19613
|
</div>
|
|
19523
19614
|
}
|
|
19524
19615
|
|
|
@@ -19735,18 +19826,16 @@ class AXMessageListComponent {
|
|
|
19735
19826
|
</div>
|
|
19736
19827
|
</div>
|
|
19737
19828
|
}
|
|
19738
|
-
`, isInline: true, styles: [":host{display:block;height:100%;position:relative;container-type:inline-size}.message-list{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.message-list.ax-drop-zone>.ax-uploader-overlay-state{display:none!important}.message-list--drag{outline:2px dashed rgb(var(--ax-sys-color-primary-500));outline-offset:-2px}.message-list--conversation-surface{animation:axConversationSurfaceIn .36s cubic-bezier(.22,1,.36,1) both}@keyframes axConversationSurfaceIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.message-list--conversation-surface{animation:axConversationSurfaceInReduced .18s ease both}}@keyframes axConversationSurfaceInReduced{0%{opacity:.92}to{opacity:1}}.list-loading{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;text-align:center}.list-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;text-align:center;padding:3rem 2rem;gap:1.25rem;animation:fadeInUp .5s ease-out}.message-list--no-active{height:100%}.list-no-active{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:12rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-icon{font-size:5.5rem;line-height:1;opacity:.35;margin-bottom:.5rem;filter:grayscale(.2)}.empty-title{font-size:1.625rem;font-weight:600;margin:0;color:rgb(var(--ax-sys-color-on-surface));letter-spacing:-.02em}.empty-description{font-size:1.0625rem;margin:0;color:rgb(var(--ax-sys-color-on-surface));opacity:.65;max-width:420px;line-height:1.7}.spinner{width:32px;height:32px;border:3px solid rgb(var(--ax-sys-color-border-light-surface));border-top-color:rgb(var(--ax-sys-color-primary-500));border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.list-loading-more{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 1rem .5rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface));opacity:.85}.load-more-indicator{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:1.25rem}.load-more-dot{width:.4rem;height:.4rem;border-radius:50%;background:rgb(var(--ax-sys-color-primary-500));animation:axChatLoadMoreDot 1s ease-in-out infinite}.load-more-dot:nth-child(2){animation-delay:.14s}.load-more-dot:nth-child(3){animation-delay:.28s}.load-more-label{font-size:.75rem;opacity:.72;letter-spacing:.01em}.load-more-enter{animation:axChatLoadMoreEnterPrepend .32s cubic-bezier(.22,1,.36,1) both}.load-more-leave{animation:axChatLoadMoreLeavePrepend .22s ease both}@keyframes axChatLoadMoreDot{0%,70%,to{transform:translateY(0) scale(1);opacity:.4}35%{transform:translateY(-.28rem) scale(1.08);opacity:1}}@keyframes axChatLoadMoreEnterPrepend{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes axChatLoadMoreLeavePrepend{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.35rem)}}@media (prefers-reduced-motion: reduce){.load-more-dot{animation:none;opacity:.65}.load-more-enter,.load-more-leave{animation:none}}.messages-container{position:relative;flex:1;width:100%;min-height:0;overflow-y:auto;overflow-x:hidden}.date-separator{position:sticky;z-index:150;top:0;display:flex;align-items:center;justify-content:center;padding:.5rem 0}.date-text{padding:.25rem .75rem;background:rgb(var(--ax-sys-color-lighter-surface));font-size:.75rem;font-weight:500;border-radius:1rem;width:7rem;display:flex;justify-content:center;align-items:center}.unread-separator{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0;padding:0 1rem}.unread-separator-line{flex:1;height:1px;background:rgb(var(--ax-sys-color-primary-500));opacity:.3}.unread-separator-text{font-size:.75rem;font-weight:600;color:rgb(var(--ax-sys-color-primary-500));text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.message-item{position:relative;display:flex;padding:.5rem 1rem;gap:.5rem;line-height:1rem;align-items:end;transition:background-color .3s ease}.message-item-context-active{background-color:rgba(var(--ax-sys-color-primary-500),.09);border-radius:.5rem;box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.22)}.message-own.message-item-context-active{background-color:rgba(var(--ax-sys-color-primary-500),.12)}.message-highlight{background-color:rgba(var(--ax-sys-color-primary-500),.1);border-radius:.5rem}.message-own{flex-direction:row-reverse}.message-avatar{flex-shrink:0}.message-avatar-icon{font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.message-content-row{display:flex;flex-direction:row;align-items:flex-end;max-width:min(95%,50rem);min-width:0;flex:0 1 auto;position:relative;column-gap:.25rem}@container (min-width: 768px){.message-content-row{max-width:min(70%,50rem)}}.message-content-row-own{justify-content:flex-end}.message-item:not(.message-own) .message-content-row{justify-content:flex-start}.message-bubble-container{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;max-width:100%;position:relative}.message-own .message-bubble-container{align-items:flex-end}.message-sender{font-size:.75rem;font-weight:600;margin-bottom:.1rem}.message-bubble{position:relative;max-width:100%;display:flex;flex-direction:column;padding:.5rem .5rem .1rem;border-radius:1rem;background:rgb(var(--ax-sys-color-lightest-surface));word-wrap:break-word;transition:background-color .3s ease}.reply-preview{padding:.375rem .5rem;margin-bottom:.1rem;background:rgba(var(--ax-sys-color-primary-500),.08);border-radius:var(--ax-sys-border-radius);border-inline-start:3px solid rgb(var(--ax-sys-color-primary-500));cursor:pointer;transition:background-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),border-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.reply-preview:hover{background:rgba(var(--ax-sys-color-primary-500),.14);border-inline-start-color:rgb(var(--ax-sys-color-primary-600))}.message-own .reply-preview{background:rgba(var(--ax-sys-color-on-primary-surface),.14);border-inline-start:3px solid rgba(var(--ax-sys-color-on-primary-surface),.55)}.message-own .reply-preview:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.22);border-inline-start-color:rgba(var(--ax-sys-color-on-primary-surface),.75)}.reply-preview-line{width:3px;background:currentColor;opacity:.5;border-radius:1.5px;flex-shrink:0}.reply-preview-content{flex:1;min-width:0}.reply-preview-sender{font-size:.75rem;font-weight:600;margin-bottom:.125rem;color:rgb(var(--ax-sys-color-primary-600))}.reply-preview-text{font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-own .reply-preview-sender{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.95}.message-own .reply-preview-text{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.78}.last-message{display:flex;align-items:center;gap:.25rem}.forwarded-preview{display:flex;align-items:center;gap:.375rem;padding:.375rem .5rem;margin-bottom:.1rem;background:rgba(var(--ax-sys-color-primary-500),.08);border-radius:var(--ax-sys-border-radius);border-inline-start:3px solid rgb(var(--ax-sys-color-primary-500));transition:background-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),border-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.forwarded-preview:hover{background:rgba(var(--ax-sys-color-primary-500),.14);border-inline-start-color:rgb(var(--ax-sys-color-primary-600))}.message-own .forwarded-preview{background:rgba(var(--ax-sys-color-on-primary-surface),.14);border-inline-start:3px solid rgba(var(--ax-sys-color-on-primary-surface),.55)}.message-own .forwarded-preview:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.22);border-inline-start-color:rgba(var(--ax-sys-color-on-primary-surface),.75)}.forwarded-preview i{font-size:.8125rem;flex-shrink:0;color:rgb(var(--ax-sys-color-primary-600))}.forwarded-text{font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.message-own .forwarded-preview i{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.95}.message-own .forwarded-text{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.78}.message-bubble-received{border-end-start-radius:.125rem}.message-bubble-received:before{content:\"\";display:block;background:rgb(var(--ax-sys-color-lightest-surface));width:.8rem;height:.8rem;position:absolute;bottom:0;inset-inline-start:-.7rem;border-start-start-radius:86%;corner-shape:scoop}.message-bubble-sent{border-end-end-radius:.125rem}.message-bubble-sent:after{content:\"\";display:block;background:rgb(var(--ax-sys-color-primary-surface));width:.8rem;height:.8rem;position:absolute;bottom:0;inset-inline-end:-.7rem;border-start-end-radius:86%;corner-shape:scoop}.message-own .message-bubble{background:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-surface))}.message-content{font-size:.9375rem;line-height:1.5;white-space:pre-wrap}.message-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;padding-inline-start:.25rem;margin-top:.1rem;gap:.25rem;font-size:.6875rem;opacity:.7;letter-spacing:.05rem;-webkit-user-select:none;user-select:none}.message-footer-count{display:inline-flex;align-items:center;gap:.2rem;font-variant-numeric:tabular-nums;font-size:.675rem}.message-footer-count i{font-size:.625rem;opacity:.9}.message-footer-count-value{font-weight:600}.message-footer-split{flex-shrink:0;align-self:center;width:1px;height:.65rem;background:rgb(var(--ax-sys-color-border-light-surface));opacity:.9;margin-inline:.2rem}.message-time{font-variant-numeric:tabular-nums;font-size:.675rem}.edited-indicator{display:inline-flex;align-items:center;gap:.25rem;font-size:.675rem;opacity:.75;padding-inline-start:.35rem;border-inline-start:1px solid rgb(var(--ax-sys-color-border-light-surface))}.status-icon{display:inline-flex;align-items:center}.status-icon i{font-size:.75rem}.status-read{color:rgb(var(--ax-sys-color-primary-200))}.status-failed{color:rgb(var(--ax-sys-color-danger-200))}.message-reactions-bubbles{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem}.reaction-bubble{display:inline-flex;align-items:center;justify-content:center;gap:.15rem;min-height:1.375rem;padding:.1rem .35rem;margin:0;background:rgba(var(--ax-sys-color-on-surface),.06);color:rgb(var(--ax-sys-color-on-surface));border:1px solid rgba(var(--ax-sys-color-on-surface),.1);border-radius:.75rem;box-shadow:none;cursor:pointer;transition:background-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),border-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reaction-bubble:hover{background:rgba(var(--ax-sys-color-on-surface),.1);border-color:rgba(var(--ax-sys-color-on-surface),.18)}.reaction-bubble-active{background:rgba(var(--ax-sys-color-primary-500),.12);border-color:rgba(var(--ax-sys-color-primary-500),.45)}.reaction-bubble-active:hover{background:rgba(var(--ax-sys-color-primary-500),.18);border-color:rgba(var(--ax-sys-color-primary-500),.55)}.reaction-emoji{font-size:.8125rem;line-height:1;display:inline-block}.reaction-count{font-size:.6875rem;font-weight:500;font-variant-numeric:tabular-nums;color:rgb(var(--ax-sys-color-on-surface));opacity:.65;line-height:1}.reaction-bubble-active .reaction-count{color:rgb(var(--ax-sys-color-primary-600));opacity:.95;font-weight:600}.message-own .reaction-bubble{background:rgba(var(--ax-sys-color-on-primary-surface),.12);border-color:rgba(var(--ax-sys-color-on-primary-surface),.2);color:rgb(var(--ax-sys-color-on-primary-surface))}.message-own .reaction-bubble:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.2);border-color:rgba(var(--ax-sys-color-on-primary-surface),.35)}.message-own .reaction-bubble-active{background:rgba(var(--ax-sys-color-on-primary-surface),.28);border-color:rgba(var(--ax-sys-color-on-primary-surface),.5)}.message-own .reaction-bubble-active:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.34);border-color:rgba(var(--ax-sys-color-on-primary-surface),.6)}.message-own .reaction-count{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.8}.message-own .reaction-bubble-active .reaction-count{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:1}.message-reactions-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.2rem;margin-top:.25rem;justify-content:flex-start}// .message-own .message-reactions-container{// justify-content: flex-end;//}.add-reaction-button.add-reaction-outside{display:none;position:absolute;top:50%;inset-inline-end:-2.25rem;transform:translateY(-50%);align-items:center;justify-content:center;box-sizing:border-box;width:1.8rem;height:1.8rem;padding:0;margin:0;border-radius:50%;cursor:pointer;background:rgb(var(--ax-sys-color-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));box-shadow:0 1px 2px #0000000f}.add-reaction-button{padding-inline-start:.05rem}.message-content-row-own .add-reaction-button.add-reaction-outside{inset-inline-start:-2.25rem;inset-inline-end:auto}.message-item:hover .add-reaction-button.add-reaction-outside,.add-reaction-button.add-reaction-outside.add-reaction-visible{display:inline-flex}.add-reaction-button.add-reaction-outside:hover,.add-reaction-button.add-reaction-outside.add-reaction-visible{border-color:rgb(var(--ax-sys-color-primary-500))}.add-reaction-button.add-reaction-outside i{font-size:.9rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.8}.reaction-picker-popup{position:fixed;background:rgb(var(--ax-sys-color-lightest-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:.65rem;z-index:100;min-width:auto;width:max-content;max-width:min(260px,92vw);box-shadow:0 4px 16px #0000001a;transform:translateY(-100%);margin-top:-.35rem;overflow:hidden}.reaction-picker-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .5rem .45rem .7rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));min-height:0}.picker-title{font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:rgb(var(--ax-sys-color-on-surface));opacity:.85}.picker-close{display:flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;padding:0;background:transparent;border:none;border-radius:.25rem;cursor:pointer;font-size:.95rem;color:rgba(var(--ax-sys-color-on-surface),.55);transition:all var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.picker-close:hover{background:rgba(var(--ax-sys-color-danger-500),.1);color:rgb(var(--ax-sys-color-danger-500))}.reaction-bubble:focus-visible,.add-reaction-button:focus-visible,.picker-close:focus-visible,.reaction-picker-emoji:focus-visible,.action-trigger:focus-visible,.scroll-to-bottom:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-500));outline-offset:2px}.reaction-picker-emojis{display:grid;grid-template-columns:repeat(6,1fr);gap:.2rem;padding:.45rem .5rem .5rem}.reaction-picker-emoji{width:2rem;height:2rem;padding:0;background:transparent;border:1px solid transparent;border-radius:.45rem;font-size:1.15rem;line-height:1;cursor:pointer;transition:all var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reaction-picker-emoji:hover{// transform: scale(1.15);background:rgb(var(--ax-sys-color-lighter-surface))}.reaction-picker-emoji-active{background:rgb(var(--ax-sys-color-surface))}.reaction-picker-emoji-active:hover{background:rgba(var(--ax-sys-color-primary-500),.25)}.message-actions{padding-bottom:1.5rem;opacity:0;transition:opacity var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);z-index:10}.message-item:hover .message-actions{opacity:1}.action-trigger{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius);font-size:.875rem;cursor:pointer;transition:all var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.action-trigger:hover{background:rgb(var(--ax-sys-color-light-surface));// transform: scale(1.05)}.shortcut{font-size:.6875rem;opacity:.7}.scroll-to-bottom{position:absolute;bottom:1rem;inset-inline-end:1rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-primary-500));color:rgb(var(--ax-sys-color-on-primary-surface));border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:transform var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);z-index:999}.scroll-to-bottom:hover{// transform: scale(1.1)}.slide-in{animation:slideInFromBottom var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.slide-out{opacity:0;transform:translateY(100%);transition:opacity var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),transform var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.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: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "closeOnRouteChange", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXImageComponent, selector: "ax-image", inputs: ["width", "height", "overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: AXInfiniteScrollDirective, selector: "[axInfiniteScroll]", inputs: ["threshold", "edge", "scrollDisabled", "cooldownMs"], outputs: ["scrollThreshold"] }, { kind: "directive", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: ["multiple", "accept", "fileType", "overlayTemplate", "disableBrowse", "disableDragDrop"], outputs: ["fileChange", "onChanged", "dragEnter", "dragLeave", "dragOver", "onFileUploadComplete", "onFilesUploadComplete"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19829
|
+
`, isInline: true, styles: [":host{display:block;height:100%;position:relative;container-type:inline-size}.message-list{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.message-list.ax-drop-zone>.ax-uploader-overlay-state{display:none!important}.message-list--drag{outline:2px dashed rgb(var(--ax-sys-color-primary-500));outline-offset:-2px}.message-list--conversation-surface{animation:axConversationSurfaceIn .36s cubic-bezier(.22,1,.36,1) both}@keyframes axConversationSurfaceIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.message-list--conversation-surface{animation:axConversationSurfaceInReduced .18s ease both}}@keyframes axConversationSurfaceInReduced{0%{opacity:.92}to{opacity:1}}.list-loading{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;text-align:center}.list-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;text-align:center;padding:3rem 2rem;gap:1.25rem;animation:fadeInUp .5s ease-out}.message-list--no-active{height:100%}.list-no-active{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:12rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-icon{font-size:5.5rem;line-height:1;opacity:.35;margin-bottom:.5rem;filter:grayscale(.2)}.empty-title{font-size:1.625rem;font-weight:600;margin:0;color:rgb(var(--ax-sys-color-on-surface));letter-spacing:-.02em}.empty-description{font-size:1.0625rem;margin:0;color:rgb(var(--ax-sys-color-on-surface));opacity:.65;max-width:420px;line-height:1.7}.spinner{width:32px;height:32px;border:3px solid rgb(var(--ax-sys-color-border-light-surface));border-top-color:rgb(var(--ax-sys-color-primary-500));border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.list-loading-more{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 1rem .5rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface));opacity:.85}.load-more-indicator{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:1.25rem}.load-more-dot{width:.4rem;height:.4rem;border-radius:50%;background:rgb(var(--ax-sys-color-primary-500));animation:axChatLoadMoreDot 1s ease-in-out infinite}.load-more-dot:nth-child(2){animation-delay:.14s}.load-more-dot:nth-child(3){animation-delay:.28s}.load-more-label{font-size:.75rem;opacity:.72;letter-spacing:.01em}.load-more-enter{animation:axChatLoadMoreEnterPrepend .32s cubic-bezier(.22,1,.36,1) both}.load-more-leave{animation:axChatLoadMoreLeavePrepend .22s ease both}@keyframes axChatLoadMoreDot{0%,70%,to{transform:translateY(0) scale(1);opacity:.4}35%{transform:translateY(-.28rem) scale(1.08);opacity:1}}@keyframes axChatLoadMoreEnterPrepend{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes axChatLoadMoreLeavePrepend{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.35rem)}}@media (prefers-reduced-motion: reduce){.load-more-dot{animation:none;opacity:.65}.load-more-enter,.load-more-leave{animation:none}}.messages-container{position:relative;flex:1;width:100%;min-height:0;overflow-y:auto;overflow-x:hidden}.date-separator{position:sticky;z-index:150;top:0;display:flex;align-items:center;justify-content:center;padding:.5rem 0}.date-text{padding:.25rem .75rem;background:rgb(var(--ax-sys-color-lighter-surface));font-size:.75rem;font-weight:500;border-radius:1rem;width:7rem;display:flex;justify-content:center;align-items:center}.unread-separator{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0;padding:0 1rem}.unread-separator-line{flex:1;height:1px;background:rgb(var(--ax-sys-color-primary-500));opacity:.3}.unread-separator-text{font-size:.75rem;font-weight:600;color:rgb(var(--ax-sys-color-primary-500));text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.message-item{position:relative;display:flex;padding:.5rem 1rem;gap:.5rem;line-height:1rem;align-items:end;transition:background-color .3s ease}.message-item-context-active{background-color:rgba(var(--ax-sys-color-primary-500),.09);border-radius:.5rem;box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.22)}.message-own.message-item-context-active{background-color:rgba(var(--ax-sys-color-primary-500),.12)}.message-highlight{background-color:rgba(var(--ax-sys-color-primary-500),.1);border-radius:.5rem}.message-own{flex-direction:row-reverse}.message-avatar{flex-shrink:0}.message-avatar-icon{font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.message-content-row{display:flex;flex-direction:row;align-items:flex-end;max-width:min(95%,50rem);min-width:0;flex:0 1 auto;position:relative;column-gap:.25rem}@container (min-width: 768px){.message-content-row{max-width:min(70%,50rem)}}.message-content-row-own{justify-content:flex-end}.message-item:not(.message-own) .message-content-row{justify-content:flex-start}.message-bubble-container{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;max-width:100%;position:relative}.message-own .message-bubble-container{align-items:flex-end}.message-sender{font-size:.75rem;font-weight:600;margin-bottom:.1rem}.message-bubble{position:relative;max-width:100%;display:flex;flex-direction:column;padding:.5rem .5rem .1rem;border-radius:1rem;background:rgb(var(--ax-sys-color-lightest-surface));word-wrap:break-word;transition:background-color .3s ease}.reply-preview{padding:.375rem .5rem;margin-bottom:.1rem;background:rgba(var(--ax-sys-color-primary-500),.08);border-radius:var(--ax-sys-border-radius);border-inline-start:3px solid rgb(var(--ax-sys-color-primary-500));cursor:pointer;transition:background-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),border-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.reply-preview:hover{background:rgba(var(--ax-sys-color-primary-500),.14);border-inline-start-color:rgb(var(--ax-sys-color-primary-600))}.message-own .reply-preview{background:rgba(var(--ax-sys-color-on-primary-surface),.14);border-inline-start:3px solid rgba(var(--ax-sys-color-on-primary-surface),.55)}.message-own .reply-preview:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.22);border-inline-start-color:rgba(var(--ax-sys-color-on-primary-surface),.75)}.reply-preview-line{width:3px;background:currentColor;opacity:.5;border-radius:1.5px;flex-shrink:0}.reply-preview-content{flex:1;min-width:0}.reply-preview-sender{font-size:.75rem;font-weight:600;margin-bottom:.125rem;color:rgb(var(--ax-sys-color-primary-600))}.reply-preview-text{font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-own .reply-preview-sender{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.95}.message-own .reply-preview-text{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.78}.last-message{display:flex;align-items:center;gap:.25rem}.forwarded-preview{display:flex;align-items:center;gap:.375rem;padding:.375rem .5rem;margin-bottom:.1rem;background:rgba(var(--ax-sys-color-primary-500),.08);border-radius:var(--ax-sys-border-radius);border-inline-start:3px solid rgb(var(--ax-sys-color-primary-500));transition:background-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),border-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.forwarded-preview:hover{background:rgba(var(--ax-sys-color-primary-500),.14);border-inline-start-color:rgb(var(--ax-sys-color-primary-600))}.message-own .forwarded-preview{background:rgba(var(--ax-sys-color-on-primary-surface),.14);border-inline-start:3px solid rgba(var(--ax-sys-color-on-primary-surface),.55)}.message-own .forwarded-preview:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.22);border-inline-start-color:rgba(var(--ax-sys-color-on-primary-surface),.75)}.forwarded-preview i{font-size:.8125rem;flex-shrink:0;color:rgb(var(--ax-sys-color-primary-600))}.forwarded-text{font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.message-own .forwarded-preview i{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.95}.message-own .forwarded-text{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.78}.message-bubble-received{border-end-start-radius:.125rem}.message-bubble-received:before{content:\"\";display:block;background:rgb(var(--ax-sys-color-lightest-surface));width:.8rem;height:.8rem;position:absolute;bottom:0;inset-inline-start:-.7rem;border-start-start-radius:86%;corner-shape:scoop}.message-bubble-sent{border-end-end-radius:.125rem}.message-bubble-sent:after{content:\"\";display:block;background:rgb(var(--ax-sys-color-primary-surface));width:.8rem;height:.8rem;position:absolute;bottom:0;inset-inline-end:-.7rem;border-start-end-radius:86%;corner-shape:scoop}.message-own .message-bubble{background:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-surface))}.message-content{font-size:.9375rem;line-height:1.5;white-space:pre-wrap}.message-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;padding-inline-start:.25rem;margin-top:.1rem;gap:.25rem;font-size:.6875rem;opacity:.7;letter-spacing:.05rem;-webkit-user-select:none;user-select:none}.message-footer-count{display:inline-flex;align-items:center;gap:.2rem;font-variant-numeric:tabular-nums;font-size:.675rem}.message-footer-count i{font-size:.625rem;opacity:.9}.message-footer-count-value{font-weight:600}.message-footer-split{flex-shrink:0;align-self:center;width:1px;height:.65rem;background:rgb(var(--ax-sys-color-border-light-surface));opacity:.9;margin-inline:.2rem}.message-time{font-variant-numeric:tabular-nums;font-size:.675rem}.edited-indicator{display:inline-flex;align-items:center;gap:.25rem;font-size:.675rem;opacity:.75;padding-inline-start:.35rem;border-inline-start:1px solid rgb(var(--ax-sys-color-border-light-surface))}.status-icon{display:inline-flex;align-items:center}.status-icon i{font-size:.75rem}.status-read{color:rgb(var(--ax-sys-color-primary-200))}.status-failed{color:rgb(var(--ax-sys-color-danger-200))}.message-reactions-bubbles{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem}.reaction-bubble{display:inline-flex;align-items:center;justify-content:center;gap:.15rem;min-height:1.375rem;padding:.1rem .35rem;margin:0;background:rgba(var(--ax-sys-color-on-surface),.06);color:rgb(var(--ax-sys-color-on-surface));border:1px solid rgba(var(--ax-sys-color-on-surface),.1);border-radius:.75rem;box-shadow:none;cursor:pointer;transition:background-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),border-color var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reaction-bubble:hover{background:rgba(var(--ax-sys-color-on-surface),.1);border-color:rgba(var(--ax-sys-color-on-surface),.18)}.reaction-bubble-active{background:rgba(var(--ax-sys-color-primary-500),.12);border-color:rgba(var(--ax-sys-color-primary-500),.45)}.reaction-bubble-active:hover{background:rgba(var(--ax-sys-color-primary-500),.18);border-color:rgba(var(--ax-sys-color-primary-500),.55)}.reaction-emoji{font-size:.8125rem;line-height:1;display:inline-block}.reaction-count{font-size:.6875rem;font-weight:500;font-variant-numeric:tabular-nums;color:rgb(var(--ax-sys-color-on-surface));opacity:.65;line-height:1}.reaction-bubble-active .reaction-count{color:rgb(var(--ax-sys-color-primary-600));opacity:.95;font-weight:600}.message-own .reaction-bubble{background:rgba(var(--ax-sys-color-on-primary-surface),.12);border-color:rgba(var(--ax-sys-color-on-primary-surface),.2);color:rgb(var(--ax-sys-color-on-primary-surface))}.message-own .reaction-bubble:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.2);border-color:rgba(var(--ax-sys-color-on-primary-surface),.35)}.message-own .reaction-bubble-active{background:rgba(var(--ax-sys-color-on-primary-surface),.28);border-color:rgba(var(--ax-sys-color-on-primary-surface),.5)}.message-own .reaction-bubble-active:hover{background:rgba(var(--ax-sys-color-on-primary-surface),.34);border-color:rgba(var(--ax-sys-color-on-primary-surface),.6)}.message-own .reaction-count{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:.8}.message-own .reaction-bubble-active .reaction-count{color:rgb(var(--ax-sys-color-on-primary-surface));opacity:1}.message-reactions-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.2rem;margin-top:.25rem;justify-content:flex-start}// .message-own .message-reactions-container{// justify-content: flex-end;//}.add-reaction-button.add-reaction-outside{display:none;position:absolute;top:50%;inset-inline-end:-2.25rem;transform:translateY(-50%);align-items:center;justify-content:center;box-sizing:border-box;width:1.8rem;height:1.8rem;padding:0;margin:0;border-radius:50%;cursor:pointer;background:rgb(var(--ax-sys-color-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));box-shadow:0 1px 2px #0000000f}.add-reaction-button{padding-inline-start:.05rem}.message-content-row-own .add-reaction-button.add-reaction-outside{inset-inline-start:-2.25rem;inset-inline-end:auto}.message-item:hover .add-reaction-button.add-reaction-outside,.add-reaction-button.add-reaction-outside.add-reaction-visible{display:inline-flex}.add-reaction-button.add-reaction-outside:hover,.add-reaction-button.add-reaction-outside.add-reaction-visible{border-color:rgb(var(--ax-sys-color-primary-500))}.add-reaction-button.add-reaction-outside i{font-size:.9rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.8}.reaction-picker-popup{position:fixed;background:rgb(var(--ax-sys-color-lightest-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:.65rem;z-index:100;min-width:auto;width:max-content;max-width:min(260px,92vw);box-shadow:0 4px 16px #0000001a;transform:translateY(-100%);margin-top:-.35rem;overflow:hidden}.reaction-picker-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .5rem .45rem .7rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));min-height:0}.picker-title{font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:rgb(var(--ax-sys-color-on-surface));opacity:.85}.picker-close{display:flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;padding:0;background:transparent;border:none;border-radius:.25rem;cursor:pointer;font-size:.95rem;color:rgba(var(--ax-sys-color-on-surface),.55);transition:all var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.picker-close:hover{background:rgba(var(--ax-sys-color-danger-500),.1);color:rgb(var(--ax-sys-color-danger-500))}.reaction-bubble:focus-visible,.add-reaction-button:focus-visible,.picker-close:focus-visible,.reaction-picker-emoji:focus-visible,.action-trigger:focus-visible,.scroll-to-bottom:focus-visible{outline:2px solid rgb(var(--ax-sys-color-primary-500));outline-offset:2px}.reaction-picker-emojis{display:grid;grid-template-columns:repeat(6,1fr);gap:.2rem;padding:.45rem .5rem .5rem}.reaction-picker-emoji{width:2rem;height:2rem;padding:0;background:transparent;border:1px solid transparent;border-radius:.45rem;font-size:1.15rem;line-height:1;cursor:pointer;transition:all var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reaction-picker-emoji:hover{// transform: scale(1.15);background:rgb(var(--ax-sys-color-lighter-surface))}.reaction-picker-emoji-active{background:rgb(var(--ax-sys-color-surface))}.reaction-picker-emoji-active:hover{background:rgba(var(--ax-sys-color-primary-500),.25)}.message-actions{padding-bottom:1.5rem;opacity:0;transition:opacity var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);z-index:10}.message-item:hover .message-actions{opacity:1}.action-trigger{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-surface));border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius);font-size:.875rem;cursor:pointer;transition:all var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}.action-trigger:hover{background:rgb(var(--ax-sys-color-light-surface));// transform: scale(1.05)}.shortcut{font-size:.6875rem;opacity:.7}.scroll-to-bottom{position:absolute;bottom:1rem;inset-inline-end:1rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgb(var(--ax-sys-color-primary-500));color:rgb(var(--ax-sys-color-on-primary-surface));border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:transform var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function);z-index:999}.scroll-to-bottom:hover{// transform: scale(1.1)}.slide-in{animation:slideInFromBottom var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.slide-out{opacity:0;transform:translateY(100%);transition:opacity var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function),transform var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.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: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "closeOnRouteChange", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: AXInfiniteScrollDirective, selector: "[axInfiniteScroll]", inputs: ["threshold", "edge", "scrollDisabled", "cooldownMs"], outputs: ["scrollThreshold"] }, { kind: "directive", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: ["multiple", "accept", "fileType", "overlayTemplate", "disableBrowse", "disableDragDrop"], outputs: ["fileChange", "onChanged", "dragEnter", "dragLeave", "dragOver", "onFileUploadComplete", "onFilesUploadComplete"] }, { kind: "component", type: AXConversationAvatarComponent, selector: "ax-conversation-avatar", inputs: ["kind", "userId", "conversation", "message", "size", "showStatus", "name", "avatar", "icon"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19739
19830
|
}
|
|
19740
19831
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMessageListComponent, decorators: [{
|
|
19741
19832
|
type: Component,
|
|
19742
19833
|
args: [{ selector: 'ax-conversation-message-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
19743
19834
|
CommonModule,
|
|
19744
19835
|
AXBadgeComponent,
|
|
19745
|
-
AXAvatarComponent,
|
|
19746
19836
|
AXButtonModule,
|
|
19747
19837
|
AXContextMenuComponent,
|
|
19748
19838
|
AXDecoratorModule,
|
|
19749
|
-
AXImageComponent,
|
|
19750
19839
|
AXLabelComponent,
|
|
19751
19840
|
AXLoadingComponent,
|
|
19752
19841
|
AXFormatModule,
|
|
@@ -19755,6 +19844,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
19755
19844
|
AXTranslationModule,
|
|
19756
19845
|
AXInfiniteScrollDirective,
|
|
19757
19846
|
AXUploaderZoneDirective,
|
|
19847
|
+
AXConversationAvatarComponent,
|
|
19758
19848
|
], template: `
|
|
19759
19849
|
@if (activeConversation(); as conv) {
|
|
19760
19850
|
@for (cid of [conv.id]; track cid) {
|
|
@@ -19845,35 +19935,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
19845
19935
|
<!-- Avatar (only for group conversations and received messages) -->
|
|
19846
19936
|
@if (shouldShowAvatar(message)) {
|
|
19847
19937
|
<div class="message-avatar">
|
|
19848
|
-
|
|
19849
|
-
|
|
19850
|
-
|
|
19851
|
-
|
|
19852
|
-
|
|
19853
|
-
|
|
19854
|
-
|
|
19855
|
-
senderName: getSenderName(message),
|
|
19856
|
-
senderAvatar: getSenderAvatar(message),
|
|
19857
|
-
senderIcon: getSenderAvatarIcon(message),
|
|
19858
|
-
}
|
|
19859
|
-
"
|
|
19860
|
-
></ng-container>
|
|
19861
|
-
} @else {
|
|
19862
|
-
<ax-avatar [size]="32">
|
|
19863
|
-
@if (getSenderAvatar(message)) {
|
|
19864
|
-
<ax-image [src]="getSenderAvatar(message)!" [alt]="getSenderName(message)"></ax-image>
|
|
19865
|
-
} @else if (getSenderAvatarIcon(message)) {
|
|
19866
|
-
<ax-icon
|
|
19867
|
-
><i
|
|
19868
|
-
[class]="'message-avatar-icon ' + getSenderAvatarIcon(message)!"
|
|
19869
|
-
aria-hidden="true"
|
|
19870
|
-
></i
|
|
19871
|
-
></ax-icon>
|
|
19872
|
-
} @else {
|
|
19873
|
-
<ax-label>{{ getInitials(getSenderName(message)) }}</ax-label>
|
|
19874
|
-
}
|
|
19875
|
-
</ax-avatar>
|
|
19876
|
-
}
|
|
19938
|
+
<ax-conversation-avatar
|
|
19939
|
+
kind="user"
|
|
19940
|
+
[userId]="message.senderId"
|
|
19941
|
+
[conversation]="activeConversation()"
|
|
19942
|
+
[message]="message"
|
|
19943
|
+
[size]="32"
|
|
19944
|
+
/>
|
|
19877
19945
|
</div>
|
|
19878
19946
|
}
|
|
19879
19947
|
|
|
@@ -20101,7 +20169,6 @@ class AXConversationItemComponent {
|
|
|
20101
20169
|
constructor() {
|
|
20102
20170
|
this.conversationService = inject(AXConversationService);
|
|
20103
20171
|
this.infoBarService = inject(AXInfoBarService);
|
|
20104
|
-
this.avatarTemplate = input(null, ...(ngDevMode ? [{ debugName: "avatarTemplate" }] : []));
|
|
20105
20172
|
/** Conversation data */
|
|
20106
20173
|
this.conversation = input.required(...(ngDevMode ? [{ debugName: "conversation" }] : []));
|
|
20107
20174
|
/** Click event */
|
|
@@ -20130,10 +20197,6 @@ class AXConversationItemComponent {
|
|
|
20130
20197
|
}
|
|
20131
20198
|
return classes.join(' ');
|
|
20132
20199
|
}, ...(ngDevMode ? [{ debugName: "itemClasses" }] : []));
|
|
20133
|
-
/** Conversation status for avatar - delegate to utils */
|
|
20134
|
-
this.conversationStatus = computed(() => {
|
|
20135
|
-
return AXConversationMessageUtilsService.getConversationStatus(this.liveConversation());
|
|
20136
|
-
}, ...(ngDevMode ? [{ debugName: "conversationStatus" }] : []));
|
|
20137
20200
|
/** Typing indicator text - delegate to utils */
|
|
20138
20201
|
this.typingText = computed(() => {
|
|
20139
20202
|
return AXConversationMessageUtilsService.getTypingText(this.liveConversation());
|
|
@@ -20150,16 +20213,6 @@ class AXConversationItemComponent {
|
|
|
20150
20213
|
get registry() {
|
|
20151
20214
|
return this.conversationService.registry;
|
|
20152
20215
|
}
|
|
20153
|
-
/** Get initials from name - delegate to utils */
|
|
20154
|
-
getInitials(name) {
|
|
20155
|
-
return AXConversationMessageUtilsService.getInitials(name);
|
|
20156
|
-
}
|
|
20157
|
-
getConversationAvatar(conversation) {
|
|
20158
|
-
return AXConversationMessageUtilsService.getConversationAvatar(conversation);
|
|
20159
|
-
}
|
|
20160
|
-
getConversationAvatarIcon(conversation) {
|
|
20161
|
-
return AXConversationMessageUtilsService.getConversationAvatarIcon(conversation);
|
|
20162
|
-
}
|
|
20163
20216
|
getPreviewTypeKey(type) {
|
|
20164
20217
|
switch (type) {
|
|
20165
20218
|
case 'image':
|
|
@@ -20222,7 +20275,7 @@ class AXConversationItemComponent {
|
|
|
20222
20275
|
}
|
|
20223
20276
|
}
|
|
20224
20277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20225
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationItemComponent, isStandalone: true, selector: "ax-conversation-item", inputs: {
|
|
20278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationItemComponent, isStandalone: true, selector: "ax-conversation-item", inputs: { conversation: { classPropertyName: "conversation", publicName: "conversation", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: `
|
|
20226
20279
|
<div
|
|
20227
20280
|
[class]="itemClasses()"
|
|
20228
20281
|
[id]="'conversation-item-' + conversation().id"
|
|
@@ -20235,36 +20288,12 @@ class AXConversationItemComponent {
|
|
|
20235
20288
|
>
|
|
20236
20289
|
<!-- Avatar -->
|
|
20237
20290
|
<div class="item-avatar">
|
|
20238
|
-
<
|
|
20239
|
-
|
|
20240
|
-
|
|
20241
|
-
|
|
20242
|
-
|
|
20243
|
-
|
|
20244
|
-
"
|
|
20245
|
-
></ng-container>
|
|
20246
|
-
} @else {
|
|
20247
|
-
<ax-avatar [size]="48">
|
|
20248
|
-
@if (getConversationAvatar(liveConversation()); as avatar) {
|
|
20249
|
-
<ax-image [src]="avatar" alt="{{ liveConversation().title }}"></ax-image>
|
|
20250
|
-
} @else if (getConversationAvatarIcon(liveConversation()); as icon) {
|
|
20251
|
-
<ax-icon
|
|
20252
|
-
><i [class]="'conversation-item-avatar-icon ' + icon" aria-hidden="true"></i
|
|
20253
|
-
></ax-icon>
|
|
20254
|
-
} @else {
|
|
20255
|
-
<ax-label>{{ getInitials(liveConversation().title) }}</ax-label>
|
|
20256
|
-
}
|
|
20257
|
-
</ax-avatar>
|
|
20258
|
-
}
|
|
20259
|
-
@if (conversation().type === 'private') {
|
|
20260
|
-
<span
|
|
20261
|
-
class="avatar-status"
|
|
20262
|
-
[class.status-online]="conversationStatus() === 'online'"
|
|
20263
|
-
[class.status-offline]="conversationStatus() === 'offline'"
|
|
20264
|
-
[class.status-away]="conversationStatus() === 'away'"
|
|
20265
|
-
></span>
|
|
20266
|
-
}
|
|
20267
|
-
</div>
|
|
20291
|
+
<ax-conversation-avatar
|
|
20292
|
+
kind="auto"
|
|
20293
|
+
[conversation]="liveConversation()"
|
|
20294
|
+
[size]="48"
|
|
20295
|
+
[showStatus]="conversation().type === 'private'"
|
|
20296
|
+
/>
|
|
20268
20297
|
</div>
|
|
20269
20298
|
|
|
20270
20299
|
<!-- Content -->
|
|
@@ -20327,21 +20356,19 @@ class AXConversationItemComponent {
|
|
|
20327
20356
|
(onItemClick)="handleContextMenuItemClick($event)"
|
|
20328
20357
|
>
|
|
20329
20358
|
</ax-context-menu>
|
|
20330
|
-
`, isInline: true, styles: [":host{display:block}.conversation-item{display:flex;align-items:center;gap:.75rem;padding:.375rem .75rem;margin:.375rem;border-radius:.5rem;cursor:pointer;transition:background .2s}.conversation-item:focus-visible,.conversation-item:hover{background:rgb(var(--ax-sys-color-light-surface));outline:none}.conversation-item-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.conversation-item-active:hover{background:rgb(var(--ax-sys-color-primary-lighter-surface))}.conversation-item-context-active{background:rgb(var(--ax-sys-color-light-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.35)}.conversation-item-active.conversation-item-context-active{background:rgb(var(--ax-sys-color-primary-lighter-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.45)}.item-avatar{flex-shrink:0}.
|
|
20359
|
+
`, isInline: true, styles: [":host{display:block}.conversation-item{display:flex;align-items:center;gap:.75rem;padding:.375rem .75rem;margin:.375rem;border-radius:.5rem;cursor:pointer;transition:background .2s}.conversation-item:focus-visible,.conversation-item:hover{background:rgb(var(--ax-sys-color-light-surface));outline:none}.conversation-item-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.conversation-item-active:hover{background:rgb(var(--ax-sys-color-primary-lighter-surface))}.conversation-item-context-active{background:rgb(var(--ax-sys-color-light-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.35)}.conversation-item-active.conversation-item-context-active{background:rgb(var(--ax-sys-color-primary-lighter-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.45)}.item-avatar{flex-shrink:0}.item-content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0;line-height:1.1rem}.item-header{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.item-title{display:flex;align-items:center;// gap: .25rem;font-weight:600;font-size:.875rem;flex:1;min-width:0}.item-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.item-time{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem;opacity:.7}.item-description{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;opacity:.7;min-width:0}.typing-indicator{color:rgb(var(--ax-sys-color-primary-500));font-style:italic;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.last-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-message{// font-weight: 600}.item-badge{flex-shrink:0}.mute-icon{font-size:.75rem;margin-inline-start:.375rem;opacity:.6;color:rgb(var(--ax-sys-color-warning-500))}.block-icon{font-size:.75rem;margin-inline-start:.375rem;opacity:.6;color:rgb(var(--ax-sys-color-danger-500))}.pin-icon{font-size:.75rem;margin-inline-start:.375rem;opacity:.6;color:rgb(var(--ax-sys-color-primary-500));flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "closeOnRouteChange", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXConversationAvatarComponent, selector: "ax-conversation-avatar", inputs: ["kind", "userId", "conversation", "message", "size", "showStatus", "name", "avatar", "icon"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20331
20360
|
}
|
|
20332
20361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationItemComponent, decorators: [{
|
|
20333
20362
|
type: Component,
|
|
20334
20363
|
args: [{ selector: 'ax-conversation-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
20335
20364
|
CommonModule,
|
|
20336
20365
|
AXDecoratorModule,
|
|
20337
|
-
AXAvatarComponent,
|
|
20338
20366
|
AXBadgeComponent,
|
|
20339
|
-
AXImageComponent,
|
|
20340
|
-
AXLabelComponent,
|
|
20341
20367
|
AXContextMenuComponent,
|
|
20342
20368
|
AXFormatModule,
|
|
20343
20369
|
AXDateTimeModule,
|
|
20344
20370
|
AXTranslationModule,
|
|
20371
|
+
AXConversationAvatarComponent,
|
|
20345
20372
|
], template: `
|
|
20346
20373
|
<div
|
|
20347
20374
|
[class]="itemClasses()"
|
|
@@ -20355,36 +20382,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
20355
20382
|
>
|
|
20356
20383
|
<!-- Avatar -->
|
|
20357
20384
|
<div class="item-avatar">
|
|
20358
|
-
<
|
|
20359
|
-
|
|
20360
|
-
|
|
20361
|
-
|
|
20362
|
-
|
|
20363
|
-
|
|
20364
|
-
"
|
|
20365
|
-
></ng-container>
|
|
20366
|
-
} @else {
|
|
20367
|
-
<ax-avatar [size]="48">
|
|
20368
|
-
@if (getConversationAvatar(liveConversation()); as avatar) {
|
|
20369
|
-
<ax-image [src]="avatar" alt="{{ liveConversation().title }}"></ax-image>
|
|
20370
|
-
} @else if (getConversationAvatarIcon(liveConversation()); as icon) {
|
|
20371
|
-
<ax-icon
|
|
20372
|
-
><i [class]="'conversation-item-avatar-icon ' + icon" aria-hidden="true"></i
|
|
20373
|
-
></ax-icon>
|
|
20374
|
-
} @else {
|
|
20375
|
-
<ax-label>{{ getInitials(liveConversation().title) }}</ax-label>
|
|
20376
|
-
}
|
|
20377
|
-
</ax-avatar>
|
|
20378
|
-
}
|
|
20379
|
-
@if (conversation().type === 'private') {
|
|
20380
|
-
<span
|
|
20381
|
-
class="avatar-status"
|
|
20382
|
-
[class.status-online]="conversationStatus() === 'online'"
|
|
20383
|
-
[class.status-offline]="conversationStatus() === 'offline'"
|
|
20384
|
-
[class.status-away]="conversationStatus() === 'away'"
|
|
20385
|
-
></span>
|
|
20386
|
-
}
|
|
20387
|
-
</div>
|
|
20385
|
+
<ax-conversation-avatar
|
|
20386
|
+
kind="auto"
|
|
20387
|
+
[conversation]="liveConversation()"
|
|
20388
|
+
[size]="48"
|
|
20389
|
+
[showStatus]="conversation().type === 'private'"
|
|
20390
|
+
/>
|
|
20388
20391
|
</div>
|
|
20389
20392
|
|
|
20390
20393
|
<!-- Content -->
|
|
@@ -20447,7 +20450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
20447
20450
|
(onItemClick)="handleContextMenuItemClick($event)"
|
|
20448
20451
|
>
|
|
20449
20452
|
</ax-context-menu>
|
|
20450
|
-
`, styles: [":host{display:block}.conversation-item{display:flex;align-items:center;gap:.75rem;padding:.375rem .75rem;margin:.375rem;border-radius:.5rem;cursor:pointer;transition:background .2s}.conversation-item:focus-visible,.conversation-item:hover{background:rgb(var(--ax-sys-color-light-surface));outline:none}.conversation-item-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.conversation-item-active:hover{background:rgb(var(--ax-sys-color-primary-lighter-surface))}.conversation-item-context-active{background:rgb(var(--ax-sys-color-light-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.35)}.conversation-item-active.conversation-item-context-active{background:rgb(var(--ax-sys-color-primary-lighter-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.45)}.item-avatar{flex-shrink:0}.
|
|
20453
|
+
`, styles: [":host{display:block}.conversation-item{display:flex;align-items:center;gap:.75rem;padding:.375rem .75rem;margin:.375rem;border-radius:.5rem;cursor:pointer;transition:background .2s}.conversation-item:focus-visible,.conversation-item:hover{background:rgb(var(--ax-sys-color-light-surface));outline:none}.conversation-item-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.conversation-item-active:hover{background:rgb(var(--ax-sys-color-primary-lighter-surface))}.conversation-item-context-active{background:rgb(var(--ax-sys-color-light-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.35)}.conversation-item-active.conversation-item-context-active{background:rgb(var(--ax-sys-color-primary-lighter-surface));box-shadow:inset 0 0 0 1px rgba(var(--ax-sys-color-primary-500),.45)}.item-avatar{flex-shrink:0}.item-content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0;line-height:1.1rem}.item-header{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.item-title{display:flex;align-items:center;// gap: .25rem;font-weight:600;font-size:.875rem;flex:1;min-width:0}.item-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.item-time{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem;opacity:.7}.item-description{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;opacity:.7;min-width:0}.typing-indicator{color:rgb(var(--ax-sys-color-primary-500));font-style:italic;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.last-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-message{// font-weight: 600}.item-badge{flex-shrink:0}.mute-icon{font-size:.75rem;margin-inline-start:.375rem;opacity:.6;color:rgb(var(--ax-sys-color-warning-500))}.block-icon{font-size:.75rem;margin-inline-start:.375rem;opacity:.6;color:rgb(var(--ax-sys-color-danger-500))}.pin-icon{font-size:.75rem;margin-inline-start:.375rem;opacity:.6;color:rgb(var(--ax-sys-color-primary-500));flex-shrink:0}\n"] }]
|
|
20451
20454
|
}] });
|
|
20452
20455
|
|
|
20453
20456
|
class AXNewConversationDialogComponent extends AXBasePageComponent {
|
|
@@ -21204,7 +21207,7 @@ class AXSidebarComponent {
|
|
|
21204
21207
|
</ng-content>
|
|
21205
21208
|
</div>
|
|
21206
21209
|
</div>
|
|
21207
|
-
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}.sidebar{display:flex;flex-direction:column;height:100%;//background: rgb(var(--ax-sys-color-lightest-surface));// border-inline-end: 1px solid rgb(var(--ax-sys-color-border-light-surface));position:relative}.sidebar-header{min-height:64px;display:flex;align-items:center;gap:.25rem;padding:.75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.menu-button{flex-shrink:0}.sidebar-search{flex:1}.sidebar-list{flex:1;overflow-y:auto;position:relative;padding-bottom:4rem}.new-conversation-button-container{position:absolute;bottom:0;inset-inline-start:0;inset-inline-end:.25rem;padding:1rem .5rem}.new-conversation-button-container-inner{display:flex;justify-content:center;align-items:center}.list-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface))}.list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface));gap:1rem}.empty-icon{font-size:4rem;line-height:1;opacity:.5;margin-bottom:.5rem}.empty-title{font-size:1.25rem;font-weight:600;margin:0;color:rgb(var(--ax-sys-color-on-surface))}.empty-description{font-size:.875rem;margin:0;color:rgb(var(--ax-sys-color-on-surface));opacity:.7;max-width:300px;line-height:1.5}.empty-action{margin-top:.5rem}.list-loading-more{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 1rem 1rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface));opacity:.85}.load-more-indicator{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:1.25rem}.load-more-dot{width:.4rem;height:.4rem;border-radius:50%;background:rgb(var(--ax-sys-color-primary-500));animation:axChatLoadMoreDot 1s ease-in-out infinite}.load-more-dot:nth-child(2){animation-delay:.14s}.load-more-dot:nth-child(3){animation-delay:.28s}.load-more-label{font-size:.75rem;opacity:.72;letter-spacing:.01em}.load-more-enter{animation:axChatLoadMoreEnterAppend .32s cubic-bezier(.22,1,.36,1) both}.load-more-leave{animation:axChatLoadMoreLeaveAppend .22s ease both}@keyframes axChatLoadMoreDot{0%,70%,to{transform:translateY(0) scale(1);opacity:.4}35%{transform:translateY(-.28rem) scale(1.08);opacity:1}}@keyframes axChatLoadMoreEnterAppend{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes axChatLoadMoreLeaveAppend{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(.35rem)}}@media (prefers-reduced-motion: reduce){.load-more-dot{animation:none;opacity:.65}.load-more-enter,.load-more-leave{animation:none}}// ax-conversation-item:not(:last-child){// border-bottom: 1px solid rgb(var(--ax-sys-color-border-light-surface));//}.tab-icon{font-size:1rem}.conversation-skeleton{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.skeleton-avatar{flex-shrink:0;width:48px;height:48px;border-radius:50%}.skeleton-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}.skeleton-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.skeleton-title{flex:1;height:1rem;border-radius:.25rem}.skeleton-time{font-variant-numeric:tabular-nums;width:3rem;height:.75rem;border-radius:.25rem}.skeleton-message{height:.75rem;width:80%;border-radius:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { 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: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1$6.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXConversationItemComponent, selector: "ax-conversation-item", inputs: ["
|
|
21210
|
+
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}.sidebar{display:flex;flex-direction:column;height:100%;//background: rgb(var(--ax-sys-color-lightest-surface));// border-inline-end: 1px solid rgb(var(--ax-sys-color-border-light-surface));position:relative}.sidebar-header{min-height:64px;display:flex;align-items:center;gap:.25rem;padding:.75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.menu-button{flex-shrink:0}.sidebar-search{flex:1}.sidebar-list{flex:1;overflow-y:auto;position:relative;padding-bottom:4rem}.new-conversation-button-container{position:absolute;bottom:0;inset-inline-start:0;inset-inline-end:.25rem;padding:1rem .5rem}.new-conversation-button-container-inner{display:flex;justify-content:center;align-items:center}.list-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface))}.list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface));gap:1rem}.empty-icon{font-size:4rem;line-height:1;opacity:.5;margin-bottom:.5rem}.empty-title{font-size:1.25rem;font-weight:600;margin:0;color:rgb(var(--ax-sys-color-on-surface))}.empty-description{font-size:.875rem;margin:0;color:rgb(var(--ax-sys-color-on-surface));opacity:.7;max-width:300px;line-height:1.5}.empty-action{margin-top:.5rem}.list-loading-more{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 1rem 1rem;text-align:center;color:rgb(var(--ax-sys-color-on-surface));opacity:.85}.load-more-indicator{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:1.25rem}.load-more-dot{width:.4rem;height:.4rem;border-radius:50%;background:rgb(var(--ax-sys-color-primary-500));animation:axChatLoadMoreDot 1s ease-in-out infinite}.load-more-dot:nth-child(2){animation-delay:.14s}.load-more-dot:nth-child(3){animation-delay:.28s}.load-more-label{font-size:.75rem;opacity:.72;letter-spacing:.01em}.load-more-enter{animation:axChatLoadMoreEnterAppend .32s cubic-bezier(.22,1,.36,1) both}.load-more-leave{animation:axChatLoadMoreLeaveAppend .22s ease both}@keyframes axChatLoadMoreDot{0%,70%,to{transform:translateY(0) scale(1);opacity:.4}35%{transform:translateY(-.28rem) scale(1.08);opacity:1}}@keyframes axChatLoadMoreEnterAppend{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes axChatLoadMoreLeaveAppend{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(.35rem)}}@media (prefers-reduced-motion: reduce){.load-more-dot{animation:none;opacity:.65}.load-more-enter,.load-more-leave{animation:none}}// ax-conversation-item:not(:last-child){// border-bottom: 1px solid rgb(var(--ax-sys-color-border-light-surface));//}.tab-icon{font-size:1rem}.conversation-skeleton{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.skeleton-avatar{flex-shrink:0;width:48px;height:48px;border-radius:50%}.skeleton-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}.skeleton-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.skeleton-title{flex:1;height:1rem;border-radius:.25rem}.skeleton-time{font-variant-numeric:tabular-nums;width:3rem;height:.75rem;border-radius:.25rem}.skeleton-message{height:.75rem;width:80%;border-radius:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { 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: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1$6.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXConversationItemComponent, selector: "ax-conversation-item", inputs: ["conversation"], outputs: ["clicked"] }, { kind: "directive", type: AXInfiniteScrollDirective, selector: "[axInfiniteScroll]", inputs: ["threshold", "edge", "scrollDisabled", "cooldownMs"], outputs: ["scrollThreshold"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21208
21211
|
}
|
|
21209
21212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSidebarComponent, decorators: [{
|
|
21210
21213
|
type: Component,
|
|
@@ -21381,7 +21384,7 @@ const DECLARATIONS = [
|
|
|
21381
21384
|
* Creates providers array for conversation module
|
|
21382
21385
|
*/
|
|
21383
21386
|
function createProviders(options, includeServices) {
|
|
21384
|
-
const { userApi, conversationApi, messageApi, realtimeApi, config, registry } = options;
|
|
21387
|
+
const { userApi, conversationApi, messageApi, realtimeApi, config, registry, avatarComponents } = options;
|
|
21385
21388
|
const providers = [];
|
|
21386
21389
|
if (includeServices) {
|
|
21387
21390
|
if (!userApi || !conversationApi || !messageApi) {
|
|
@@ -21407,6 +21410,18 @@ function createProviders(options, includeServices) {
|
|
|
21407
21410
|
if (registry) {
|
|
21408
21411
|
providers.push({ provide: REGISTRY_CONFIG, useValue: registry });
|
|
21409
21412
|
}
|
|
21413
|
+
if (avatarComponents?.user) {
|
|
21414
|
+
providers.push({
|
|
21415
|
+
provide: AX_CONVERSATION_USER_AVATAR_COMPONENT,
|
|
21416
|
+
useValue: avatarComponents.user,
|
|
21417
|
+
});
|
|
21418
|
+
}
|
|
21419
|
+
if (avatarComponents?.conversation) {
|
|
21420
|
+
providers.push({
|
|
21421
|
+
provide: AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT,
|
|
21422
|
+
useValue: avatarComponents.conversation,
|
|
21423
|
+
});
|
|
21424
|
+
}
|
|
21410
21425
|
if (includeServices) {
|
|
21411
21426
|
providers.push(AXMessageRendererRegistry, AXMessageActionRegistry, AXComposerActionRegistry, AXComposerTabRegistry, AXConversationTabRegistry, AXInfoBarActionRegistry, AXConversationItemActionRegistry, AXRegistryService);
|
|
21412
21427
|
}
|
|
@@ -21791,5 +21806,5 @@ function getErrorMessage(code, params) {
|
|
|
21791
21806
|
* Generated bundle index. Do not edit.
|
|
21792
21807
|
*/
|
|
21793
21808
|
|
|
21794
|
-
export { AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXCnvMediaPlaybackInfoBarBannerComponent, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationService, AXConversationSharedStorage, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListNoActiveDefaultComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_FILE_TYPE_PROVIDERS, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_MESSAGE_CURSOR_PREFIX, AX_STICKER_API_KEY, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, CONVERSATION_FILE_TYPES_READY, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, applyConversationFilters, applyLocalPreview, axConversationIndexedDbStorage, conversationSharedStorage, createLocalPreviewUrl, createObjectUrl, encodeConversationCursor, encodeMessageCursor, formatErrorMessage, getConversationLastActivity, getConversationMessagesNewestFirst, getErrorMessage, getSortedConversationsForInbox, mergeUploadResult, mergeWithDefaults, normalizeAllConversationMessageIndexes, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, revokeObjectUrl, sanitizeInput, sortConversationMessageIds, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
|
|
21809
|
+
export { AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXCnvMediaPlaybackInfoBarBannerComponent, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationService, AXConversationSharedStorage, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListNoActiveDefaultComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_FILE_TYPE_PROVIDERS, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_MESSAGE_CURSOR_PREFIX, AX_STICKER_API_KEY, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, CONVERSATION_FILE_TYPES_READY, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, applyConversationFilters, applyLocalPreview, axConversationIndexedDbStorage, conversationSharedStorage, createLocalPreviewUrl, createObjectUrl, encodeConversationCursor, encodeMessageCursor, formatErrorMessage, getConversationLastActivity, getConversationMessagesNewestFirst, getErrorMessage, getSortedConversationsForInbox, mergeUploadResult, mergeWithDefaults, normalizeAllConversationMessageIndexes, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, resolveConversationAvatarDisplay, resolvePrivatePeerUserId, resolveUserAvatarDisplay, revokeObjectUrl, sanitizeInput, shouldUseUserAvatarForConversation, sortConversationMessageIds, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
|
|
21795
21810
|
//# sourceMappingURL=acorex-components-conversation2.mjs.map
|