@acorex/components 21.0.3-next.15 → 21.0.3-next.17

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.
@@ -10,7 +10,7 @@ import * as i3 from '@acorex/core/translation';
10
10
  import { translateSync, AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
11
11
  import { Subject, BehaviorSubject, Observable, filter, firstValueFrom, takeUntil, catchError, EMPTY } from 'rxjs';
12
12
  import { AXUploaderBrowseDirective, AXUploaderZoneDirective, AXUploaderService } from '@acorex/cdk/uploader';
13
- import { createFileTypeMetadata, AXFileTypeInfoProvider, formatFileSizeBytes, AXFileService, AXFileTypeRegistryService, provideFileValidationRules, provideFileTypeInfoProvider, resolveFileCopyText, runFileTypeOpen } from '@acorex/core/file';
13
+ import { createFileTypeMetadata, AXFileTypeInfoProvider, resolveFileTypeExtension, runFileTypeUtility, formatFileSizeBytes, AXFileService, AXFileTypeRegistryService, runFileTypeUtilityForFile, provideFileValidationRules, provideFileTypeInfoProvider, getFileExtension, runFileTypeCopy, resolveFileCopyText, runFileTypeOpen } from '@acorex/core/file';
14
14
  import * as i1$2 from '@acorex/components/progress-bar';
15
15
  import { AXProgressBarModule } from '@acorex/components/progress-bar';
16
16
  import { AXToastService } from '@acorex/components/toast';
@@ -2811,11 +2811,15 @@ async function createLocalPreviewUrl(fileService, platformId, source, messageTyp
2811
2811
  return undefined;
2812
2812
  }
2813
2813
  const fileType = await fileService.getFileType(catalog);
2814
- const createLocalPreviewUrl = fileType?.utilities?.['createLocalPreviewUrl'];
2815
- if (!createLocalPreviewUrl) {
2814
+ if (!fileType) {
2816
2815
  return undefined;
2817
2816
  }
2818
- const result = await createLocalPreviewUrl({ readAsDataUrl: (f) => fileService.blobToBase64(f), platformId }, source);
2817
+ const ctx = { readAsDataUrl: (f) => fileService.blobToBase64(f), platformId };
2818
+ const extension = resolveFileTypeExtension(fileType, {
2819
+ file: source instanceof File ? source : undefined,
2820
+ mimeType: source.type,
2821
+ });
2822
+ const result = await runFileTypeUtility(fileType, ctx, extension, 'createLocalPreviewUrl', source);
2819
2823
  return typeof result === 'string' ? result : undefined;
2820
2824
  }
2821
2825
 
@@ -3874,12 +3878,11 @@ class AXAudioPickerComponent {
3874
3878
  this.catalogFileTypeDef ??= await this.fileService.getFileType(this.catalogFileType);
3875
3879
  return this.catalogFileTypeDef;
3876
3880
  }
3877
- async runUtility(name, ...args) {
3881
+ async runUtility(name, file, ...args) {
3878
3882
  const fileType = await this.getCatalogFileTypeDef();
3879
- const fn = fileType?.utilities?.[name];
3880
- if (!fn)
3883
+ if (!fileType)
3881
3884
  return undefined;
3882
- return fn(this.createUtilityContext(), ...args);
3885
+ return runFileTypeUtilityForFile(fileType, this.createUtilityContext(), file, name, ...args);
3883
3886
  }
3884
3887
  async handleFiles(files) {
3885
3888
  const max = this.maxFiles();
@@ -4016,14 +4019,16 @@ class AXAudioPickerComponent {
4016
4019
  }
4017
4020
  formatFileSize(bytes) {
4018
4021
  const fileType = this.catalogFileTypeDef;
4019
- const fn = fileType?.utilities?.['formatSize'];
4020
- const result = fn ? fn(this.createUtilityContext(), bytes) : undefined;
4022
+ const result = fileType
4023
+ ? runFileTypeUtility(fileType, this.createUtilityContext(), undefined, 'formatSize', bytes)
4024
+ : undefined;
4021
4025
  return typeof result === 'string' ? result : `${bytes} B`;
4022
4026
  }
4023
4027
  formatDuration(seconds) {
4024
4028
  const fileType = this.catalogFileTypeDef;
4025
- const fn = fileType?.utilities?.['formatDuration'];
4026
- const result = fn ? fn(this.createUtilityContext(), seconds) : undefined;
4029
+ const result = fileType
4030
+ ? runFileTypeUtility(fileType, this.createUtilityContext(), undefined, 'formatDuration', seconds)
4031
+ : undefined;
4027
4032
  return typeof result === 'string' ? result : '0:00';
4028
4033
  }
4029
4034
  getEmptyTitle() {
@@ -4311,10 +4316,12 @@ class AXFilePickerComponent {
4311
4316
  const ctx = this.createUtilityContext();
4312
4317
  for (const file of accepted) {
4313
4318
  try {
4314
- const previewFn = fileType?.utilities?.['preview'];
4315
- const pickerCatalogFn = fileType?.utilities?.['pickerCatalog'];
4316
- const previewResult = previewFn ? await previewFn(ctx, file) : undefined;
4317
- const rowCatalogResult = pickerCatalogFn ? await pickerCatalogFn(ctx, file) : undefined;
4319
+ const previewResult = fileType
4320
+ ? await runFileTypeUtilityForFile(fileType, ctx, file, 'preview')
4321
+ : undefined;
4322
+ const rowCatalogResult = fileType
4323
+ ? await runFileTypeUtilityForFile(fileType, ctx, file, 'pickerCatalog')
4324
+ : undefined;
4318
4325
  const preview = typeof previewResult === 'string' ? previewResult : undefined;
4319
4326
  const rowCatalog = typeof rowCatalogResult === 'string' ? rowCatalogResult : this.catalogFileType;
4320
4327
  const rowType = await this.fileService.getFileType(rowCatalog);
@@ -4441,8 +4448,10 @@ class AXFilePickerComponent {
4441
4448
  return getPickerCancelUploadLabel(this.translation);
4442
4449
  }
4443
4450
  formatFileSize(bytes) {
4444
- const fn = this.catalogFileTypeDef?.utilities?.['formatSize'];
4445
- const result = fn ? fn(this.createUtilityContext(), bytes) : undefined;
4451
+ const fileType = this.catalogFileTypeDef;
4452
+ const result = fileType
4453
+ ? runFileTypeUtility(fileType, this.createUtilityContext(), undefined, 'formatSize', bytes)
4454
+ : undefined;
4446
4455
  return typeof result === 'string' ? result : `${bytes} B`;
4447
4456
  }
4448
4457
  canSend() {
@@ -4764,8 +4773,9 @@ class AXImagePickerComponent {
4764
4773
  const ctx = this.createUtilityContext();
4765
4774
  for (const file of accepted) {
4766
4775
  try {
4767
- const previewHandler = fileType?.utilities?.['preview'];
4768
- const previewValue = previewHandler ? await previewHandler(ctx, file) : undefined;
4776
+ const previewValue = fileType
4777
+ ? await runFileTypeUtilityForFile(fileType, ctx, file, 'preview')
4778
+ : undefined;
4769
4779
  const preview = typeof previewValue === 'string' ? previewValue : '';
4770
4780
  let index = -1;
4771
4781
  this.images.update((images) => {
@@ -5258,12 +5268,11 @@ class AXVideoPickerComponent {
5258
5268
  this.catalogFileTypeDef ??= await this.fileService.getFileType(this.catalogFileType);
5259
5269
  return this.catalogFileTypeDef;
5260
5270
  }
5261
- async runUtility(name, ...args) {
5271
+ async runUtility(name, file, ...args) {
5262
5272
  const fileType = await this.getCatalogFileTypeDef();
5263
- const fn = fileType?.utilities?.[name];
5264
- if (!fn)
5273
+ if (!fileType)
5265
5274
  return undefined;
5266
- return fn(this.createUtilityContext(), ...args);
5275
+ return runFileTypeUtilityForFile(fileType, this.createUtilityContext(), file, name, ...args);
5267
5276
  }
5268
5277
  async handleFiles(files) {
5269
5278
  const max = this.maxFiles();
@@ -5399,13 +5408,17 @@ class AXVideoPickerComponent {
5399
5408
  this.caption = '';
5400
5409
  }
5401
5410
  formatFileSize(bytes) {
5402
- const fn = this.catalogFileTypeDef?.utilities?.['formatSize'];
5403
- const result = fn ? fn(this.createUtilityContext(), bytes) : undefined;
5411
+ const fileType = this.catalogFileTypeDef;
5412
+ const result = fileType
5413
+ ? runFileTypeUtility(fileType, this.createUtilityContext(), undefined, 'formatSize', bytes)
5414
+ : undefined;
5404
5415
  return typeof result === 'string' ? result : `${bytes} B`;
5405
5416
  }
5406
5417
  formatDuration(seconds) {
5407
- const fn = this.catalogFileTypeDef?.utilities?.['formatDuration'];
5408
- const result = fn ? fn(this.createUtilityContext(), seconds) : undefined;
5418
+ const fileType = this.catalogFileTypeDef;
5419
+ const result = fileType
5420
+ ? runFileTypeUtility(fileType, this.createUtilityContext(), undefined, 'formatDuration', seconds)
5421
+ : undefined;
5409
5422
  return typeof result === 'string' ? result : '0:00';
5410
5423
  }
5411
5424
  getEmptyTitle() {
@@ -10802,6 +10815,66 @@ function createResolvedMediaUrlSignal(reference) {
10802
10815
  return resolvedUrl.asReadonly();
10803
10816
  }
10804
10817
 
10818
+ /** Infer extension/MIME hints from a persisted message payload. */
10819
+ function inferFileExtensionHintFromMessage(message) {
10820
+ switch (message.payload.type) {
10821
+ case 'file': {
10822
+ const item = normalizeFilePayload(message.payload).files[0];
10823
+ if (!item) {
10824
+ return {};
10825
+ }
10826
+ return {
10827
+ extensionName: item.extension ?? getFileExtension(item.name),
10828
+ mimeType: item.mimeType,
10829
+ };
10830
+ }
10831
+ case 'image': {
10832
+ const item = normalizeImagePayload(message.payload).images[0];
10833
+ return { mimeType: item?.mimeType };
10834
+ }
10835
+ case 'video': {
10836
+ const item = normalizeVideoPayload(message.payload).videos[0];
10837
+ return { mimeType: item?.mimeType };
10838
+ }
10839
+ case 'audio': {
10840
+ const item = normalizeAudioPayload(message.payload).audios[0];
10841
+ return { mimeType: item?.mimeType };
10842
+ }
10843
+ case 'voice':
10844
+ return { mimeType: message.payload.mimeType };
10845
+ case 'sticker':
10846
+ return { mimeType: message.payload.mimeType };
10847
+ default:
10848
+ return {};
10849
+ }
10850
+ }
10851
+ /** Use file-type `copy` on the message when `message.fileType` is set; otherwise fallback. */
10852
+ async function copyWithFileTypeFallback(message, registry, fallback) {
10853
+ if (!message.fileType) {
10854
+ return fallback();
10855
+ }
10856
+ const fileType = await registry.get(message.fileType);
10857
+ if (!fileType) {
10858
+ return fallback();
10859
+ }
10860
+ const extension = resolveFileTypeExtension(fileType, inferFileExtensionHintFromMessage(message));
10861
+ const result = await runFileTypeCopy(fileType, message.payload, extension);
10862
+ return resolveFileCopyText(result)?.trim() || fallback();
10863
+ }
10864
+ /** Use file-type `open` on the message when `message.fileType` is set. */
10865
+ async function openWithFileType(message, registry, ctx) {
10866
+ if (!message.fileType) {
10867
+ return false;
10868
+ }
10869
+ const fileType = await registry.get(message.fileType);
10870
+ if (!fileType) {
10871
+ return false;
10872
+ }
10873
+ const extension = resolveFileTypeExtension(fileType, inferFileExtensionHintFromMessage(message));
10874
+ const result = await runFileTypeOpen(fileType, ctx, message.payload, extension);
10875
+ return result !== false;
10876
+ }
10877
+
10805
10878
  function isMessageDeliveryPending(status) {
10806
10879
  return status === 'sending';
10807
10880
  }
@@ -13081,30 +13154,6 @@ function mediaCopyText(caption, singleLabel, pluralLabel, count, lines) {
13081
13154
  const extras = lines.map((line) => line?.trim()).filter((line) => !!line);
13082
13155
  return extras.length ? `${header}\n${extras.join('\n')}` : header;
13083
13156
  }
13084
- /** Use file-type `copy` on the message when `message.fileType` is set; otherwise fallback. */
13085
- async function copyWithFileTypeFallback(message, registry, fallback) {
13086
- if (!message.fileType) {
13087
- return fallback();
13088
- }
13089
- const fileType = await registry.get(message.fileType);
13090
- if (!fileType?.copy) {
13091
- return fallback();
13092
- }
13093
- const result = await fileType.copy(message.payload);
13094
- return resolveFileCopyText(result)?.trim() || fallback();
13095
- }
13096
- /** Use file-type `open` on the message when `message.fileType` is set. */
13097
- async function openWithFileType(message, registry, ctx) {
13098
- if (!message.fileType) {
13099
- return false;
13100
- }
13101
- const fileType = await registry.get(message.fileType);
13102
- if (!fileType?.open) {
13103
- return false;
13104
- }
13105
- const result = await runFileTypeOpen(fileType, ctx, message.payload);
13106
- return result !== false;
13107
- }
13108
13157
  /**
13109
13158
  * Registers the live renderer on {@link AXMessageListService} for message actions.
13110
13159
  */
@@ -22278,5 +22327,5 @@ function getErrorMessage(code, params) {
22278
22327
  * Generated bundle index. Do not edit.
22279
22328
  */
22280
22329
 
22281
- export { AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXCnvMediaPlaybackInfoBarBannerComponent, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoMediaViewComponent, 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, AXMessageRendererCopyHostComponent, 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_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, copyWithFileTypeFallback, createLocalPreviewUrl, createObjectUrl, createResolvedMediaUrlSignal, encodeConversationCursor, encodeMessageCursor, formatErrorMessage, getConversationLastActivity, getConversationMessagesNewestFirst, getErrorMessage, getSortedConversationsForInbox, isGenericPrivateConversationTitle, mediaCopyText, mergeUploadResult, mergeWithDefaults, normalizeAllConversationMessageIndexes, normalizeImagePayload, openWithFileType, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, pickDisplayMediaUrl, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, resolveConversationAvatarDisplay, resolveConversationForViewer, resolveConversationTitleForViewer, resolveImageDisplayUrl, resolveParticipantProfile, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, revokeObjectUrl, sanitizeInput, shouldUseUserAvatarForConversation, sortConversationMessageIds, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
22330
+ export { AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXCnvMediaPlaybackInfoBarBannerComponent, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoMediaViewComponent, 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, AXMessageRendererCopyHostComponent, 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_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, copyWithFileTypeFallback, createLocalPreviewUrl, createObjectUrl, createResolvedMediaUrlSignal, encodeConversationCursor, encodeMessageCursor, formatErrorMessage, getConversationLastActivity, getConversationMessagesNewestFirst, getErrorMessage, getSortedConversationsForInbox, inferFileExtensionHintFromMessage, isGenericPrivateConversationTitle, mediaCopyText, mergeUploadResult, mergeWithDefaults, normalizeAllConversationMessageIndexes, normalizeImagePayload, openWithFileType, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, pickDisplayMediaUrl, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, resolveConversationAvatarDisplay, resolveConversationForViewer, resolveConversationTitleForViewer, resolveImageDisplayUrl, resolveParticipantProfile, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, revokeObjectUrl, sanitizeInput, shouldUseUserAvatarForConversation, sortConversationMessageIds, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
22282
22331
  //# sourceMappingURL=acorex-components-conversation2.mjs.map