@acorex/components 22.0.0-next.37 → 22.0.0-next.39

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.
@@ -161,6 +161,7 @@ const AX_CONVERSATION_ERROR_HANDLER_CONFIG = new InjectionToken('AX_CONVERSATION
161
161
  /**
162
162
  * Pluggable avatar components for the conversation UI.
163
163
  * Register via `provideConversation({ avatarComponents: { user, conversation } })`.
164
+ * When only `user` is registered, a built-in conversation avatar host is wired automatically.
164
165
  */
165
166
  const AX_CONVERSATION_USER_AVATAR_COMPONENT = new InjectionToken('AX_CONVERSATION_USER_AVATAR_COMPONENT');
166
167
  const AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT = new InjectionToken('AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT');
@@ -509,7 +510,30 @@ class AXConversationMessageUtilsService {
509
510
  if (AXConversationMessageUtilsService.getConversationAvatar(conversation)) {
510
511
  return undefined;
511
512
  }
512
- return AXConversationMessageUtilsService.normalizeOptionalMediaValue(conversation.icon);
513
+ const explicit = AXConversationMessageUtilsService.normalizeOptionalMediaValue(conversation.icon);
514
+ if (explicit) {
515
+ return explicit;
516
+ }
517
+ if (conversation.type === 'group') {
518
+ return AX_CONVERSATION_DEFAULT_GROUP_ICON;
519
+ }
520
+ if (conversation.type === 'private' || conversation.type === 'bot') {
521
+ return AX_CONVERSATION_DEFAULT_USER_ICON;
522
+ }
523
+ return undefined;
524
+ }
525
+ /**
526
+ * Font Awesome icon for a participant when there is no avatar image.
527
+ */
528
+ static getParticipantAvatarIcon(participant) {
529
+ if (AXConversationMessageUtilsService.normalizeOptionalMediaValue(participant?.avatar)) {
530
+ return undefined;
531
+ }
532
+ const explicit = AXConversationMessageUtilsService.normalizeOptionalMediaValue(participant?.icon);
533
+ if (explicit) {
534
+ return explicit;
535
+ }
536
+ return AX_CONVERSATION_DEFAULT_USER_ICON;
513
537
  }
514
538
  /**
515
539
  * Get sender name from message
@@ -534,7 +558,7 @@ class AXConversationMessageUtilsService {
534
558
  if (AXConversationMessageUtilsService.normalizeOptionalMediaValue(participant?.avatar)) {
535
559
  return undefined;
536
560
  }
537
- return (AXConversationMessageUtilsService.normalizeOptionalMediaValue(participant?.icon) ??
561
+ return (AXConversationMessageUtilsService.getParticipantAvatarIcon(participant) ??
538
562
  AXConversationMessageUtilsService.getConversationAvatarIcon(conversation));
539
563
  }
540
564
  /**
@@ -791,17 +815,51 @@ class AXConversationMessageUtilsService {
791
815
  }
792
816
  }
793
817
 
818
+ /** Conversation types that resolve a single peer participant for viewer-scoped avatar/title. */
819
+ const AX_CONVERSATION_PEER_AVATAR_TYPES = new Set([
820
+ 'private',
821
+ 'bot',
822
+ ]);
823
+ function normalizeOptionalMediaValue(value) {
824
+ if (typeof value !== 'string') {
825
+ return undefined;
826
+ }
827
+ const normalized = value.trim();
828
+ return normalized.length > 0 ? normalized : undefined;
829
+ }
830
+ /**
831
+ * Other participant in a peer-scoped conversation (excludes the current viewer).
832
+ * Applies to private 1:1 and bot assist chats with exactly one non-viewer participant.
833
+ */
834
+ function resolveConversationPeerUserId(conversation, currentUserId) {
835
+ if (!AX_CONVERSATION_PEER_AVATAR_TYPES.has(conversation.type)) {
836
+ return undefined;
837
+ }
838
+ const currentId = currentUserId ?? 'current-user';
839
+ const peers = conversation.participants.filter((participant) => participant.id !== currentId);
840
+ if (peers.length !== 1) {
841
+ return undefined;
842
+ }
843
+ return peers[0].id;
844
+ }
794
845
  /** Other participant in a private chat (excludes the current user). */
795
846
  function resolvePrivatePeerUserId(conversation, currentUserId) {
796
847
  if (conversation.type !== 'private') {
797
848
  return undefined;
798
849
  }
799
- const currentId = currentUserId ?? 'current-user';
800
- return conversation.participants.find((participant) => participant.id !== currentId)?.id;
850
+ return resolveConversationPeerUserId(conversation, currentUserId);
851
+ }
852
+ /** Peer participant for private and bot conversations. */
853
+ function resolveConversationPeerParticipant(conversation, currentUserId) {
854
+ const peerId = resolveConversationPeerUserId(conversation, currentUserId);
855
+ if (!peerId) {
856
+ return undefined;
857
+ }
858
+ return conversation.participants.find((participant) => participant.id === peerId);
801
859
  }
802
- /** Whether `auto` kind should render a user avatar for this conversation. */
860
+ /** Whether `auto` kind should render a registered user avatar for this conversation. */
803
861
  function shouldUseUserAvatarForConversation(conversation, currentUserId) {
804
- return conversation.type === 'private' && !!resolvePrivatePeerUserId(conversation, currentUserId);
862
+ return !!resolveConversationPeerUserId(conversation, currentUserId);
805
863
  }
806
864
  function resolveUserAvatarDisplay(userId, conversation, message) {
807
865
  if (message && conversation) {
@@ -822,14 +880,23 @@ function resolveConversationAvatarDisplay(conversation, currentUserId) {
822
880
  const title = currentUserId !== undefined
823
881
  ? resolveConversationTitleForViewer(conversation, currentUserId)
824
882
  : conversation.title;
883
+ const peer = resolveConversationPeerParticipant(conversation, currentUserId);
884
+ const conversationAvatar = AXConversationMessageUtilsService.getConversationAvatar(conversation);
885
+ const conversationIcon = AXConversationMessageUtilsService.getConversationAvatarIcon(conversation);
886
+ const peerAvatar = normalizeOptionalMediaValue(peer?.avatar);
887
+ const peerIcon = normalizeOptionalMediaValue(peer?.icon);
825
888
  return {
826
889
  name: title,
827
- avatar: AXConversationMessageUtilsService.getConversationAvatar(conversation),
828
- icon: AXConversationMessageUtilsService.getConversationAvatarIcon(conversation),
890
+ avatar: conversationAvatar ?? peerAvatar,
891
+ icon: conversationIcon ?? (conversationAvatar ? undefined : peerIcon),
829
892
  };
830
893
  }
831
894
 
832
895
  const AX_CONVERSATION_GENERIC_PRIVATE_TITLES = new Set(['', 'new chat', 'new conversation']);
896
+ /** Default Font Awesome icon for group conversations without a custom avatar image. */
897
+ const AX_CONVERSATION_DEFAULT_GROUP_ICON = 'fa-light fa-users';
898
+ /** Default Font Awesome icon for private/bot conversations without a custom avatar image. */
899
+ const AX_CONVERSATION_DEFAULT_USER_ICON = 'fa-light fa-user';
833
900
  /** True when the stored title is a placeholder, not a user-defined name. */
834
901
  function isGenericPrivateConversationTitle(title) {
835
902
  return AX_CONVERSATION_GENERIC_PRIVATE_TITLES.has((title ?? '').trim().toLowerCase());
@@ -852,38 +919,34 @@ function resolvePrivatePeerParticipant(conversation, currentUserId) {
852
919
  if (conversation.type !== 'private') {
853
920
  return undefined;
854
921
  }
855
- const peerId = resolvePrivatePeerUserId(conversation, currentUserId);
856
- if (!peerId) {
857
- return undefined;
858
- }
859
- return conversation.participants.find((participant) => participant.id === peerId);
922
+ return resolveConversationPeerParticipant(conversation, currentUserId);
860
923
  }
861
924
  /**
862
925
  * Resolves the display title for the current viewer.
863
- * Private 1v1 chats show the other participant's name when no custom title is set.
926
+ * Private and bot peer-scoped chats show the other participant's name when no custom title is set.
864
927
  */
865
928
  function resolveConversationTitleForViewer(conversation, currentUserId) {
866
- if (conversation.type !== 'private') {
929
+ if (!AX_CONVERSATION_PEER_AVATAR_TYPES.has(conversation.type)) {
867
930
  return conversation.title;
868
931
  }
869
- const peer = resolvePrivatePeerParticipant(conversation, currentUserId);
932
+ const peer = resolveConversationPeerParticipant(conversation, currentUserId);
870
933
  if (peer?.name) {
871
934
  return peer.name;
872
935
  }
873
- if (isGenericPrivateConversationTitle(conversation.title)) {
936
+ if (conversation.type === 'private' && isGenericPrivateConversationTitle(conversation.title)) {
874
937
  return conversation.title || 'New Chat';
875
938
  }
876
939
  return conversation.title;
877
940
  }
878
941
  /**
879
- * Returns a viewer-scoped copy of a conversation with dynamic private title/avatar/icon.
942
+ * Returns a viewer-scoped copy of a conversation with dynamic peer title/avatar/icon.
880
943
  * Does not mutate the source object.
881
944
  */
882
945
  function resolveConversationForViewer(conversation, currentUserId) {
883
- if (conversation.type !== 'private' || !currentUserId) {
946
+ if (!AX_CONVERSATION_PEER_AVATAR_TYPES.has(conversation.type) || !currentUserId) {
884
947
  return conversation;
885
948
  }
886
- const peer = resolvePrivatePeerParticipant(conversation, currentUserId);
949
+ const peer = resolveConversationPeerParticipant(conversation, currentUserId);
887
950
  if (!peer) {
888
951
  return conversation;
889
952
  }
@@ -4059,7 +4122,10 @@ class AXConversationService {
4059
4122
  title: isPrivate ? undefined : metadata?.['title'],
4060
4123
  description: metadata?.['description'],
4061
4124
  avatar: isPrivate ? undefined : AXConversationService.normalizeOptionalString(metadata?.['avatar']),
4062
- icon: isPrivate ? undefined : AXConversationService.normalizeOptionalString(metadata?.['icon']),
4125
+ icon: isPrivate
4126
+ ? undefined
4127
+ : (AXConversationService.normalizeOptionalString(metadata?.['icon']) ??
4128
+ (type === 'group' ? AX_CONVERSATION_DEFAULT_GROUP_ICON : undefined)),
4063
4129
  metadata: isPrivate ? undefined : metadata,
4064
4130
  forceCreate,
4065
4131
  };
@@ -6133,7 +6199,7 @@ class AXConversationAvatarComponent {
6133
6199
  if (!conversation || this.resolvedKind() !== 'user') {
6134
6200
  return undefined;
6135
6201
  }
6136
- return resolvePrivatePeerUserId(conversation, this.currentUserId());
6202
+ return resolveConversationPeerUserId(conversation, this.currentUserId());
6137
6203
  }, /* @ts-ignore */
6138
6204
  ...(ngDevMode ? [{ debugName: "resolvedUserId" }] : /* istanbul ignore next */ []));
6139
6205
  this.customComponent = computed(() => {
@@ -6146,9 +6212,17 @@ class AXConversationAvatarComponent {
6146
6212
  ...(ngDevMode ? [{ debugName: "customComponent" }] : /* istanbul ignore next */ []));
6147
6213
  this.customInputs = computed(() => {
6148
6214
  if (this.resolvedKind() === 'user') {
6215
+ const userId = this.resolvedUserId() ?? '';
6216
+ const resolved = resolveUserAvatarDisplay(userId, this.conversation(), this.message());
6217
+ const explicitName = this.name();
6218
+ const explicitAvatar = this.avatar();
6219
+ const explicitIcon = this.icon();
6149
6220
  return {
6150
- userId: this.resolvedUserId() ?? '',
6221
+ userId,
6151
6222
  size: this.size(),
6223
+ displayName: explicitName ?? resolved.name,
6224
+ displayAvatar: explicitAvatar ?? resolved.avatar,
6225
+ displayIcon: explicitIcon ?? resolved.icon,
6152
6226
  };
6153
6227
  }
6154
6228
  return {
@@ -8409,6 +8483,7 @@ class AXConversationNewDialogComponent extends AXBasePageComponent {
8409
8483
  const metadata = {
8410
8484
  title: this.groupTitle().trim(),
8411
8485
  avatar: this.groupAvatar() || undefined,
8486
+ icon: AX_CONVERSATION_DEFAULT_GROUP_ICON,
8412
8487
  };
8413
8488
  conversation = await this.conversationService.createConversation(selectedIds, 'group', metadata);
8414
8489
  }
@@ -8802,7 +8877,7 @@ function normalizeAllConversationMessageIndexes() {
8802
8877
  }
8803
8878
 
8804
8879
  /** Bump when demo seed shape changes so IndexedDB is reset on next connect. */
8805
- const AX_CONVERSATION_DEMO_SEED_VERSION = 2;
8880
+ const AX_CONVERSATION_DEMO_SEED_VERSION = 3;
8806
8881
 
8807
8882
  /**
8808
8883
  * Shared In-Memory Storage
@@ -9264,7 +9339,7 @@ async function seedSharedStorageInitialData(storage) {
9264
9339
  type: 'group',
9265
9340
  title: 'ACoreX Platform Team',
9266
9341
  description: 'Sprint planning, releases, and blockers',
9267
- avatar: 'https://i.pravatar.cc/150?img=50',
9342
+ icon: AX_CONVERSATION_DEFAULT_GROUP_ICON,
9268
9343
  participants: [
9269
9344
  { ...me, role: 'admin' },
9270
9345
  { ...alice, role: 'member' },
@@ -9816,6 +9891,7 @@ class AXConversationIndexedDbConversationApi extends AXConversationApi {
9816
9891
  title: data.title ||
9817
9892
  (data.type === 'private' ? 'New Chat' : data.type === 'group' ? 'New Group' : 'New Channel'),
9818
9893
  avatar: data.avatar,
9894
+ icon: data.icon ?? (data.type === 'group' ? AX_CONVERSATION_DEFAULT_GROUP_ICON : undefined),
9819
9895
  description: data.description,
9820
9896
  participants: [...participantIds].map((id) => {
9821
9897
  const participant = axConversationSharedStorage.participants.get(id);
@@ -16919,6 +16995,76 @@ const AX_CONVERSATION_TAB_ARCHIVED = {
16919
16995
  * Conversation Tabs Plugins
16920
16996
  */
16921
16997
 
16998
+ /**
16999
+ * Default conversation avatar host when apps register only a user avatar component.
17000
+ * Routes private 1:1 chats through the user avatar; other types use built-in fallback display.
17001
+ */
17002
+ class AXConversationDefaultConversationAvatarComponent {
17003
+ constructor() {
17004
+ this.conversationService = inject(AXConversationService, { optional: true });
17005
+ this.userAvatarComponent = inject(AX_CONVERSATION_USER_AVATAR_COMPONENT, { optional: true });
17006
+ this.conversationId = input.required(/* @ts-ignore */
17007
+ ...(ngDevMode ? [{ debugName: "conversationId" }] : /* istanbul ignore next */ []));
17008
+ this.size = input(40, /* @ts-ignore */
17009
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
17010
+ this.currentUserId = computed(() => this.conversationService?.currentUser()?.id, /* @ts-ignore */
17011
+ ...(ngDevMode ? [{ debugName: "currentUserId" }] : /* istanbul ignore next */ []));
17012
+ this.conversation = computed(() => {
17013
+ const conversationId = this.conversationId();
17014
+ if (!conversationId) {
17015
+ return undefined;
17016
+ }
17017
+ return this.conversationService?.getConversation(conversationId) ?? undefined;
17018
+ }, /* @ts-ignore */
17019
+ ...(ngDevMode ? [{ debugName: "conversation" }] : /* istanbul ignore next */ []));
17020
+ this.peerUserId = computed(() => {
17021
+ const conversation = this.conversation();
17022
+ if (!conversation || conversation.type !== 'private') {
17023
+ return undefined;
17024
+ }
17025
+ return resolveConversationPeerUserId(conversation, this.currentUserId());
17026
+ }, /* @ts-ignore */
17027
+ ...(ngDevMode ? [{ debugName: "peerUserId" }] : /* istanbul ignore next */ []));
17028
+ this.useUserAvatar = computed(() => {
17029
+ const component = this.userAvatarComponent;
17030
+ const peerId = this.peerUserId();
17031
+ return component && peerId ? component : null;
17032
+ }, /* @ts-ignore */
17033
+ ...(ngDevMode ? [{ debugName: "useUserAvatar" }] : /* istanbul ignore next */ []));
17034
+ this.userAvatarInputs = computed(() => {
17035
+ const userId = this.peerUserId() ?? '';
17036
+ const conversation = this.conversation();
17037
+ const resolved = resolveUserAvatarDisplay(userId, conversation);
17038
+ return {
17039
+ userId,
17040
+ size: this.size(),
17041
+ displayName: resolved.name,
17042
+ displayAvatar: resolved.avatar,
17043
+ displayIcon: resolved.icon,
17044
+ };
17045
+ }, /* @ts-ignore */
17046
+ ...(ngDevMode ? [{ debugName: "userAvatarInputs" }] : /* istanbul ignore next */ []));
17047
+ this.fallbackDisplay = computed(() => {
17048
+ const conversation = this.conversation();
17049
+ if (!conversation) {
17050
+ return { name: '?', avatar: undefined, icon: undefined };
17051
+ }
17052
+ return resolveConversationAvatarDisplay(conversation, this.currentUserId());
17053
+ }, /* @ts-ignore */
17054
+ ...(ngDevMode ? [{ debugName: "fallbackDisplay" }] : /* istanbul ignore next */ []));
17055
+ this.fallbackInitials = computed(() => AXConversationMessageUtilsService.getInitials(this.fallbackDisplay().name), /* @ts-ignore */
17056
+ ...(ngDevMode ? [{ debugName: "fallbackInitials" }] : /* istanbul ignore next */ []));
17057
+ }
17058
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXConversationDefaultConversationAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17059
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXConversationDefaultConversationAvatarComponent, isStandalone: true, selector: "ax-conversation-default-conversation-avatar", inputs: { conversationId: { classPropertyName: "conversationId", publicName: "conversationId", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--ax-conversation-avatar-size.px": "size()" } }, ngImport: i0, template: "@if (useUserAvatar(); as userAvatar) {\n <ng-container *ngComponentOutlet=\"userAvatar; inputs: userAvatarInputs()\" />\n} @else {\n <ax-avatar [size]=\"size()\">\n @if (fallbackDisplay().avatar; as avatarSrc) {\n <ax-image [src]=\"avatarSrc\" [alt]=\"fallbackDisplay().name\"></ax-image>\n } @else if (fallbackDisplay().icon; as iconClass) {\n <ax-icon><i [class]=\"iconClass\" aria-hidden=\"true\"></i></ax-icon>\n } @else {\n <ax-label>{{ fallbackInitials() }}</ax-label>\n }\n </ax-avatar>\n}\n", dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.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"] }], encapsulation: i0.ViewEncapsulation.None }); }
17060
+ }
17061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXConversationDefaultConversationAvatarComponent, decorators: [{
17062
+ type: Component,
17063
+ args: [{ selector: 'ax-conversation-default-conversation-avatar', encapsulation: ViewEncapsulation.None, imports: [NgComponentOutlet, AXAvatarComponent, AXDecoratorModule, AXImageComponent, AXLabelComponent], host: {
17064
+ '[style.--ax-conversation-avatar-size.px]': 'size()',
17065
+ }, template: "@if (useUserAvatar(); as userAvatar) {\n <ng-container *ngComponentOutlet=\"userAvatar; inputs: userAvatarInputs()\" />\n} @else {\n <ax-avatar [size]=\"size()\">\n @if (fallbackDisplay().avatar; as avatarSrc) {\n <ax-image [src]=\"avatarSrc\" [alt]=\"fallbackDisplay().name\"></ax-image>\n } @else if (fallbackDisplay().icon; as iconClass) {\n <ax-icon><i [class]=\"iconClass\" aria-hidden=\"true\"></i></ax-icon>\n } @else {\n <ax-label>{{ fallbackInitials() }}</ax-label>\n }\n </ax-avatar>\n}\n" }]
17066
+ }], propDecorators: { conversationId: [{ type: i0.Input, args: [{ isSignal: true, alias: "conversationId", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
17067
+
16922
17068
  /**
16923
17069
  * AXConversationModule
16924
17070
  * Legacy NgModule wrapper for backward compatibility.
@@ -16932,6 +17078,8 @@ const DECLARATIONS = [
16932
17078
  AXConversationComposerComponent,
16933
17079
  AXConversationInfiniteScrollDirective,
16934
17080
  ];
17081
+ /** Internal default conversation avatar host; not part of the public module API. */
17082
+ const INTERNAL_IMPORTS = [AXConversationDefaultConversationAvatarComponent];
16935
17083
  /**
16936
17084
  * Creates providers array for conversation module
16937
17085
  */
@@ -16973,6 +17121,12 @@ function createProviders(options, includeServices) {
16973
17121
  useValue: avatarComponents.conversation,
16974
17122
  });
16975
17123
  }
17124
+ else if (avatarComponents?.user) {
17125
+ providers.push({
17126
+ provide: AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT,
17127
+ useValue: AXConversationDefaultConversationAvatarComponent,
17128
+ });
17129
+ }
16976
17130
  if (includeServices) {
16977
17131
  providers.push(AXConversationMessageRendererRegistry, AXConversationMessageActionRegistry, AXConversationComposerActionRegistry, AXConversationComposerTabRegistry, AXConversationTabRegistry, AXConversationInfoBarActionRegistry, AXConversationItemActionRegistry, AXConversationRegistryService);
16978
17132
  }
@@ -17005,7 +17159,7 @@ class AXConversationModule {
17005
17159
  AXConversationInfoBarComponent,
17006
17160
  AXConversationMessageListComponent,
17007
17161
  AXConversationComposerComponent,
17008
- AXConversationInfiniteScrollDirective], exports: [AXConversationContainerComponent,
17162
+ AXConversationInfiniteScrollDirective, AXConversationDefaultConversationAvatarComponent], exports: [AXConversationContainerComponent,
17009
17163
  AXConversationSidebarComponent,
17010
17164
  AXConversationInfoBarComponent,
17011
17165
  AXConversationMessageListComponent,
@@ -17015,12 +17169,12 @@ class AXConversationModule {
17015
17169
  AXConversationSidebarComponent,
17016
17170
  AXConversationInfoBarComponent,
17017
17171
  AXConversationMessageListComponent,
17018
- AXConversationComposerComponent] }); }
17172
+ AXConversationComposerComponent, INTERNAL_IMPORTS] }); }
17019
17173
  }
17020
17174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXConversationModule, decorators: [{
17021
17175
  type: NgModule,
17022
17176
  args: [{
17023
- imports: [CommonModule, FormsModule, ...DECLARATIONS],
17177
+ imports: [CommonModule, FormsModule, ...DECLARATIONS, ...INTERNAL_IMPORTS],
17024
17178
  exports: [...DECLARATIONS],
17025
17179
  providers: [],
17026
17180
  }]
@@ -17330,5 +17484,5 @@ function getErrorMessage(code, params) {
17330
17484
  * Generated bundle index. Do not edit.
17331
17485
  */
17332
17486
 
17333
- export { AXConversationAiResponderService, AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationInfoMediaViewComponent, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryService, AXConversationService, AXConversationSharedStorage, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AI_API_KEY, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, 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_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEMO_CONVERSATION_IDS, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, 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_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_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_CURSOR_PREFIX, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, 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_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_MESSAGE_PAGINATION_CONVERSATION_ID, abortPickerUploads, applyAudioLocalPreview, applyConversationFilters, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, axConversationIndexedDbStorage, axConversationSharedStorage, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, encodeConversationCursor, encodeMessageCursor, ensurePaginationDemoData, fetchConversationMediaMessages, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationLastActivity, getConversationMediaCategories, getConversationMessagesNewestFirst, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, getSortedConversationsForInbox, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isGenericPrivateConversationTitle, isGridMediaCategory, isMessageDeliveryPending, isMessageListThemeBackground, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAllConversationMessageIndexes, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeMessagePayload, normalizeMessagePayloadAsync, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, pickDisplayMediaUrl, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, seedPickerInitialFiles, seedSharedStorageInitialData, shouldUseUserAvatarForConversation, sortConversationMessageIds, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, uploadPickerFile, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
17487
+ export { AXConversationAiResponderService, AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationInfoMediaViewComponent, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryService, AXConversationService, AXConversationSharedStorage, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AI_API_KEY, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, 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_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_DEMO_CONVERSATION_IDS, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, 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_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_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_CURSOR_PREFIX, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, 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_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_MESSAGE_PAGINATION_CONVERSATION_ID, abortPickerUploads, applyAudioLocalPreview, applyConversationFilters, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, axConversationIndexedDbStorage, axConversationSharedStorage, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, encodeConversationCursor, encodeMessageCursor, ensurePaginationDemoData, fetchConversationMediaMessages, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationLastActivity, getConversationMediaCategories, getConversationMessagesNewestFirst, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, getSortedConversationsForInbox, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isGenericPrivateConversationTitle, isGridMediaCategory, isMessageDeliveryPending, isMessageListThemeBackground, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAllConversationMessageIndexes, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeMessagePayload, normalizeMessagePayloadAsync, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, pickDisplayMediaUrl, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, seedPickerInitialFiles, seedSharedStorageInitialData, shouldUseUserAvatarForConversation, sortConversationMessageIds, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, uploadPickerFile, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
17334
17488
  //# sourceMappingURL=acorex-components-conversation.mjs.map