@acorex/components 22.1.3 → 22.1.4

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.
Files changed (15) hide show
  1. package/fesm2022/acorex-components-accordion.mjs +2 -2
  2. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  3. package/fesm2022/{acorex-components-conversation-acorex-components-conversation-BtkyQUlh.mjs → acorex-components-conversation-acorex-components-conversation-CdAHDQD1.mjs} +447 -133
  4. package/fesm2022/acorex-components-conversation-acorex-components-conversation-CdAHDQD1.mjs.map +1 -0
  5. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-BKKO_8x6.mjs → acorex-components-conversation-open-composer-picker-for-files-DBWQaSVC.mjs} +2 -2
  6. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-BKKO_8x6.mjs.map → acorex-components-conversation-open-composer-picker-for-files-DBWQaSVC.mjs.map} +1 -1
  7. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-BNKFb5yO.mjs → acorex-components-conversation-picker-rename-file-dialog.component-swqLQ8g0.mjs} +2 -2
  8. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-BNKFb5yO.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-swqLQ8g0.mjs.map} +1 -1
  9. package/fesm2022/acorex-components-conversation.mjs +1 -1
  10. package/fesm2022/acorex-components-file-viewer.mjs +84 -4
  11. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  12. package/package.json +3 -3
  13. package/types/acorex-components-conversation.d.ts +89 -13
  14. package/types/acorex-components-file-viewer.d.ts +22 -3
  15. package/fesm2022/acorex-components-conversation-acorex-components-conversation-BtkyQUlh.mjs.map +0 -1
@@ -449,6 +449,11 @@ interface AXConversationParticipant {
449
449
  icon?: string;
450
450
  /** Role in the conversation (for groups/channels) */
451
451
  role?: AXConversationParticipantRole;
452
+ /**
453
+ * When this user joined the conversation.
454
+ * Used for admin succession when the creator leaves a group or channel.
455
+ */
456
+ joinedAt?: Date;
452
457
  /** Custom metadata */
453
458
  metadata?: Record<string, unknown>;
454
459
  }
@@ -528,6 +533,12 @@ interface AXConversation {
528
533
  pinned?: boolean;
529
534
  /** Whether conversation is archived */
530
535
  archived?: boolean;
536
+ /**
537
+ * Viewer-scoped history cursor (Telegram-style).
538
+ * Messages at or before this timestamp are omitted for the current user only.
539
+ * Filled by the conversation/message APIs; never leak another user's cutoff.
540
+ */
541
+ historyClearedAt?: Date;
531
542
  /** Custom metadata */
532
543
  metadata?: AXConversationMetadata;
533
544
  }
@@ -1263,6 +1274,9 @@ declare class AXConversationMessageRendererRegistry {
1263
1274
  readonly renderers: Signal<AXConversationMessageRenderer[]>;
1264
1275
  /** Renderers sorted by priority (highest first) */
1265
1276
  readonly sortedRenderers: Signal<AXConversationMessageRenderer[]>;
1277
+ /** O(1) lookup by message type. Rebuilt when the registry changes. */
1278
+ private readonly rendererByType;
1279
+ private readonly missingRendererTypesWarned;
1266
1280
  /**
1267
1281
  * Register a message renderer
1268
1282
  */
@@ -1272,13 +1286,15 @@ declare class AXConversationMessageRendererRegistry {
1272
1286
  */
1273
1287
  unregister(type: string): void;
1274
1288
  /**
1275
- * Get renderer for a specific message
1289
+ * Get renderer for a specific message (exact type match).
1290
+ * Missing types are warned once; callers should fall back to the `fallback` renderer.
1276
1291
  */
1277
1292
  getRenderer(message: AXConversationMessage): AXConversationMessageRenderer | undefined;
1278
1293
  /**
1279
1294
  * Get renderer by type
1280
1295
  */
1281
1296
  getRendererByType(type: string): AXConversationMessageRenderer | undefined;
1297
+ private warnMissingRenderer;
1282
1298
  /**
1283
1299
  * Check if a message type is supported
1284
1300
  */
@@ -2027,6 +2043,17 @@ interface AXConversationUpdateData {
2027
2043
  /** Custom metadata */
2028
2044
  metadata?: Record<string, unknown>;
2029
2045
  }
2046
+ /**
2047
+ * Options for {@link AXConversationApi.deleteConversation}.
2048
+ */
2049
+ interface AXConversationDeleteOptions {
2050
+ /**
2051
+ * Private: destroy the chat for every participant (Telegram "delete for both").
2052
+ * Group/channel: only valid for the creator — destroys the room for everyone.
2053
+ * Defaults to `false` (hide / clear history for the current user only).
2054
+ */
2055
+ forEveryone?: boolean;
2056
+ }
2030
2057
  /**
2031
2058
  * Conversation filter options
2032
2059
  */
@@ -2117,12 +2144,14 @@ declare abstract class AXConversationApi {
2117
2144
  */
2118
2145
  abstract updateConversation(conversationId: string, updates: AXConversationUpdateData): Promise<AXConversation>;
2119
2146
  /**
2120
- * Delete conversation
2147
+ * Delete or hide a conversation for the current user.
2121
2148
  *
2122
2149
  * @param conversationId - Conversation ID
2150
+ * @param options - `forEveryone` destroys the room; omit/false hides it for the current user only
2151
+ * (private chats keep the peer's history). Group/channel leave should use {@link leaveConversation}.
2123
2152
  * @throws {AXConversationApiError} If deletion fails
2124
2153
  */
2125
- abstract deleteConversation(conversationId: string): Promise<boolean>;
2154
+ abstract deleteConversation(conversationId: string, options?: AXConversationDeleteOptions): Promise<boolean>;
2126
2155
  /**
2127
2156
  * Archive conversation
2128
2157
  *
@@ -3270,6 +3299,7 @@ declare class AXConversationService {
3270
3299
  * Handle new message received
3271
3300
  */
3272
3301
  private handleNewMessage;
3302
+ private applyIncomingMessage;
3273
3303
  /**
3274
3304
  * Handle message update
3275
3305
  */
@@ -3298,6 +3328,7 @@ declare class AXConversationService {
3298
3328
  private handleConversationUpdate;
3299
3329
  private handleConversationCreated;
3300
3330
  private handleConversationDeleted;
3331
+ private removeConversationFromInbox;
3301
3332
  private handleReadReceipt;
3302
3333
  private handleMessageStatusChange;
3303
3334
  /**
@@ -3368,9 +3399,8 @@ declare class AXConversationService {
3368
3399
  */
3369
3400
  markConversationAsRead(conversationId: string): Promise<void>;
3370
3401
  /**
3371
- * Delete a conversation
3372
- * Shows confirmation dialog, then deletes from server and store
3373
- * @param conversationId - Conversation ID
3402
+ * Delete, hide, or leave a conversation.
3403
+ * Opens a confirmation popup (checkbox for private/creator destroy), then updates the store.
3374
3404
  */
3375
3405
  deleteConversation(conversationId: string): Promise<boolean>;
3376
3406
  /**
@@ -3806,6 +3836,18 @@ declare function resolveConversationForViewer(conversation: AXConversation, curr
3806
3836
  /** Whether message reactions are enabled for a conversation. Defaults to `true` when omitted. */
3807
3837
  declare function isConversationReactionsEnabled(conversation?: AXConversation | null): boolean;
3808
3838
 
3839
+ /** Group and channel rooms share join/leave and creator-destroy rules. */
3840
+ declare function isGroupLikeConversation(conversationOrType: AXConversation | AXConversationType | undefined): boolean;
3841
+ /** True when `userId` created this room (falls back to owner/admin if `creatorId` is missing). */
3842
+ declare function isConversationRoomCreator(conversation: AXConversation, userId?: string): boolean;
3843
+ /** Earliest joiner; stable tie-break by participant id. */
3844
+ declare function pickEarliestJoinedParticipant(participants: AXConversationParticipant[]): AXConversationParticipant | undefined;
3845
+ /**
3846
+ * Whether a message should appear for a viewer after a one-sided history clear.
3847
+ * Exclusive: the cutoff instant itself is hidden (cleared "up to now").
3848
+ */
3849
+ declare function isMessageVisibleAfterHistoryCutoff(timestamp: Date | string | number, historyClearedAt?: Date | string | number | null): boolean;
3850
+
3809
3851
  /** Resolves typed `profile`, falling back to legacy `metadata.profile`. */
3810
3852
  declare function resolveParticipantProfile(participant?: AXConversationParticipant): AXConversationUserProfile;
3811
3853
 
@@ -4274,6 +4316,7 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4274
4316
  private readonly document;
4275
4317
  private readonly platform;
4276
4318
  private readonly actionSheetService;
4319
+ private readonly ngZone;
4277
4320
  protected readonly config: Required<_acorex_components_conversation.AXConversationConfig>;
4278
4321
  /**
4279
4322
  * Background for the message list scroll area from config, or the built-in soft wash when unset/empty.
@@ -4300,6 +4343,9 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4300
4343
  /** While true, older history is being prepended — do not auto-scroll to the latest message. */
4301
4344
  private restoringScrollAfterPrepend;
4302
4345
  private adaptiveLayoutResizeObserver?;
4346
+ private documentClickListener?;
4347
+ private readonly rendererInputsCache;
4348
+ private readonly rendererViewByType;
4303
4349
  readonly availableReactions: _angular_core.WritableSignal<string[]>;
4304
4350
  private reactionsLoading;
4305
4351
  private get registry();
@@ -4324,6 +4370,8 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4324
4370
  readonly reactionsEnabled: _angular_core.Signal<boolean>;
4325
4371
  /** Messages */
4326
4372
  readonly messages: _angular_core.Signal<AXConversationMessage[]>;
4373
+ /** Messages keyed by id for O(1) lookups during intersection callbacks. */
4374
+ private readonly messagesById;
4327
4375
  /** Message action event */
4328
4376
  readonly messageAction: _angular_core.OutputEmitterRef<{
4329
4377
  message: AXConversationMessage;
@@ -4364,11 +4412,12 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4364
4412
  /** Get forwarded text with sender and conversation info */
4365
4413
  getForwardedText(message: AXConversationMessage): string;
4366
4414
  /** Resolve renderer component for message */
4367
- getRendererComponent(message: AXConversationMessage): Type<_acorex_components_conversation.AXConversationMessageRendererComponent>;
4415
+ getRendererComponent(message: AXConversationMessage): Type<unknown>;
4368
4416
  /** Resolve lazy renderer loader for message */
4369
4417
  private static readonly fallbackRendererLoader;
4370
- getRendererComponentLoader(message: AXConversationMessage): (() => Promise<Type<_acorex_components_conversation.AXConversationMessageRendererComponent>>) | (() => Promise<typeof _acorex_components_conversation.AXConversationFallbackRendererComponent>);
4371
- /** Provide inputs for the dynamic renderer */
4418
+ getRendererComponentLoader(message: AXConversationMessage): () => Promise<Type<unknown>>;
4419
+ private resolveRendererView;
4420
+ /** Provide inputs for the dynamic renderer (stable object so outlets are not rebuilt on CD). */
4372
4421
  getRendererInputs(message: AXConversationMessage): {
4373
4422
  message: AXConversationMessage;
4374
4423
  };
@@ -4414,8 +4463,6 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4414
4463
  onReactionClick(message: AXConversationMessage, emoji: string): void;
4415
4464
  /** Handle message action */
4416
4465
  onMessageAction(message: AXConversationMessage, action: any): Promise<void>;
4417
- /** Handle scroll events */
4418
- onScroll(event: Event): void;
4419
4466
  /** Handle infinite scroll threshold */
4420
4467
  onScrollThreshold(edge: 'top' | 'bottom'): Promise<void>;
4421
4468
  /** Load older messages - delegate to service and preserve scroll anchor */
@@ -4665,9 +4712,38 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
4665
4712
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationNewDialogComponent, "ax-conversation-new-dialog", never, { "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4666
4713
  }
4667
4714
 
4715
+ type AXConversationDeleteDialogMode = 'private' | 'leave' | 'destroy-room';
4716
+ interface AXConversationDeleteDialogResult {
4717
+ confirmed: boolean;
4718
+ forEveryone: boolean;
4719
+ }
4720
+ declare class AXConversationDeleteDialogComponent {
4721
+ private readonly translation;
4722
+ /**
4723
+ * Assigned by {@link AXPopupComponent} from `open(..., { data })`.
4724
+ */
4725
+ conversation: AXConversation;
4726
+ mode: AXConversationDeleteDialogMode;
4727
+ peerName?: string;
4728
+ readonly __popup__: _angular_core.InputSignal<AXPopupRef<any>>;
4729
+ forEveryone: boolean;
4730
+ readonly onClosed: EventEmitter<AXComponentCloseEvent>;
4731
+ readonly showCheckbox: _angular_core.Signal<boolean>;
4732
+ readonly messageText: _angular_core.Signal<string>;
4733
+ readonly checkboxLabel: _angular_core.Signal<string>;
4734
+ readonly confirmLabel: _angular_core.Signal<string>;
4735
+ confirm(): void;
4736
+ cancel(): void;
4737
+ private close;
4738
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationDeleteDialogComponent, never>;
4739
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationDeleteDialogComponent, "ax-conversation-delete-dialog", never, { "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4740
+ }
4741
+
4668
4742
  declare class AXConversationInfiniteScrollDirective {
4669
4743
  private readonly elementRef;
4670
4744
  private readonly platformId;
4745
+ private readonly ngZone;
4746
+ private readonly destroyRef;
4671
4747
  /** Threshold in pixels from the edge to trigger the event */
4672
4748
  readonly threshold: _angular_core.InputSignal<number>;
4673
4749
  /** Which edge to watch: 'top', 'bottom', or 'both' */
@@ -6491,5 +6567,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6491
6567
  */
6492
6568
  type AXConversationErrorCode = typeof AX_CONVERSATION_MESSAGE_ERRORS[keyof typeof AX_CONVERSATION_MESSAGE_ERRORS]['code'] | typeof AX_CONVERSATION_FILE_ERRORS[keyof typeof AX_CONVERSATION_FILE_ERRORS]['code'] | typeof AX_CONVERSATION_USER_ERRORS[keyof typeof AX_CONVERSATION_USER_ERRORS]['code'] | typeof AX_CONVERSATION_ERRORS[keyof typeof AX_CONVERSATION_ERRORS]['code'] | typeof AX_CONVERSATION_CONNECTION_ERRORS[keyof typeof AX_CONVERSATION_CONNECTION_ERRORS]['code'] | typeof AX_CONVERSATION_LOCATION_ERRORS[keyof typeof AX_CONVERSATION_LOCATION_ERRORS]['code'] | typeof AX_CONVERSATION_URL_ERRORS[keyof typeof AX_CONVERSATION_URL_ERRORS]['code'];
6493
6569
 
6494
- export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, 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_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_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, 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_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, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isGenericPrivateConversationTitle, isGridMediaCategory, isMessageDeliveryPending, isMessageListThemeBackground, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6495
- export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteMessageCommand, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
6570
+ export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, 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_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_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, 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_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, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6571
+ export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
@@ -1,8 +1,9 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnDestroy, TemplateRef, Type, Provider } from '@angular/core';
3
+ import { AXMenuItem } from '@acorex/components/menu';
3
4
  import { AXComponentContent, AXComponentInputs } from '@acorex/core/components';
4
5
  import { Subject } from 'rxjs';
5
- import { AXStyleColorType, AXComponentClosedPromise } from '@acorex/cdk/common';
6
+ import { AXStyleColorType, AXClickEvent, AXComponentClosedPromise } from '@acorex/cdk/common';
6
7
  import * as _acorex_core_file from '@acorex/core/file';
7
8
  import { AXFileTypeExtensionHint, AXFileType, AXFileTypeViewComponent } from '@acorex/core/file';
8
9
  import { SafeResourceUrl } from '@angular/platform-browser';
@@ -43,6 +44,16 @@ declare function resolveFileViewerFileType(item: AXFileViewerItem): string;
43
44
  /** Builds an extension hint from item metadata. */
44
45
  declare function buildFileViewerExtensionHint(item: AXFileViewerItem): AXFileTypeExtensionHint | undefined;
45
46
 
47
+ interface AXFileViewerHeaderActionClickEvent {
48
+ sender: AXFileViewerContainerComponent;
49
+ nativeEvent: Event;
50
+ canceled: boolean;
51
+ item: {
52
+ name?: string;
53
+ text: string;
54
+ data?: unknown;
55
+ };
56
+ }
46
57
  declare class AXFileViewerContainerComponent implements OnDestroy {
47
58
  #private;
48
59
  readonly items: _angular_core.InputSignal<AXFileViewerItem[]>;
@@ -51,6 +62,8 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
51
62
  readonly pagination: _angular_core.InputSignal<boolean>;
52
63
  readonly download: _angular_core.InputSignal<boolean>;
53
64
  readonly fullscreen: _angular_core.InputSignal<boolean>;
65
+ /** Header action buttons rendered in the top-right actions area. */
66
+ readonly headerActions: _angular_core.InputSignal<AXMenuItem[]>;
54
67
  /** When true, opens in a gallery overlay and closes when fullscreen exits. */
55
68
  readonly galleryMode: _angular_core.InputSignal<boolean>;
56
69
  readonly headerContent: _angular_core.InputSignal<AXComponentContent>;
@@ -59,6 +72,7 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
59
72
  readonly fallbackContentInputs: _angular_core.InputSignal<AXComponentInputs>;
60
73
  /** External loading flag — show overlay while parent data is being fetched. */
61
74
  readonly loading: _angular_core.InputSignal<boolean>;
75
+ readonly headerActionClick: _angular_core.OutputEmitterRef<AXFileViewerHeaderActionClickEvent>;
62
76
  readonly fullscreenClosed: _angular_core.OutputEmitterRef<void>;
63
77
  readonly service: AXFileViewerService;
64
78
  private readonly host;
@@ -80,6 +94,7 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
80
94
  readonly headerTemplateContent: _angular_core.Signal<TemplateRef<any>>;
81
95
  readonly headerComponentContent: _angular_core.Signal<Type<unknown>>;
82
96
  readonly hasHeaderCenterContent: _angular_core.Signal<boolean>;
97
+ readonly resolvedHeaderActions: _angular_core.Signal<AXMenuItem[]>;
83
98
  readonly headerContentContext: _angular_core.Signal<{
84
99
  item: AXFileViewerItem;
85
100
  items: AXFileViewerItem[];
@@ -91,6 +106,9 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
91
106
  formatSize(size?: number): string;
92
107
  private readonly mainCarouselOptions;
93
108
  private readonly thumbnailCarouselOptions;
109
+ resolveHeaderAction(action: AXMenuItem): AXMenuItem;
110
+ onHeaderActionClick(action: AXMenuItem, event: AXClickEvent): void;
111
+ private isFullscreenAction;
94
112
  toggleFullscreen(): void;
95
113
  enterFullscreen(): void;
96
114
  /** @param emitGalleryClose When false, skips gallery close notification (used during service teardown). */
@@ -104,7 +122,7 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
104
122
  downloadCurrent(): Promise<void>;
105
123
  ngOnDestroy(): void;
106
124
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerContainerComponent, never>;
107
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerContainerComponent, "ax-file-viewer-container", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "thumbnail": { "alias": "thumbnail"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "download": { "alias": "download"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "galleryMode": { "alias": "galleryMode"; "required": false; "isSignal": true; }; "headerContent": { "alias": "headerContent"; "required": false; "isSignal": true; }; "headerContentInputs": { "alias": "headerContentInputs"; "required": false; "isSignal": true; }; "fallbackContent": { "alias": "fallbackContent"; "required": false; "isSignal": true; }; "fallbackContentInputs": { "alias": "fallbackContentInputs"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "fullscreenClosed": "fullscreenClosed"; }, never, never, true, never>;
125
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerContainerComponent, "ax-file-viewer-container", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "thumbnail": { "alias": "thumbnail"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "download": { "alias": "download"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "galleryMode": { "alias": "galleryMode"; "required": false; "isSignal": true; }; "headerContent": { "alias": "headerContent"; "required": false; "isSignal": true; }; "headerContentInputs": { "alias": "headerContentInputs"; "required": false; "isSignal": true; }; "fallbackContent": { "alias": "fallbackContent"; "required": false; "isSignal": true; }; "fallbackContentInputs": { "alias": "fallbackContentInputs"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "headerActionClick": "headerActionClick"; "fullscreenClosed": "fullscreenClosed"; }, never, never, true, never>;
108
126
  }
109
127
 
110
128
  interface AXFileViewerGalleryConfig {
@@ -112,6 +130,7 @@ interface AXFileViewerGalleryConfig {
112
130
  startIndex?: number;
113
131
  thumbnail?: boolean;
114
132
  download?: boolean;
133
+ headerActions?: AXMenuItem[];
115
134
  loading?: boolean;
116
135
  panelClass?: string[];
117
136
  headerContent?: AXComponentContent | null;
@@ -269,4 +288,4 @@ declare class AXFileViewerFileFallbackComponent implements AXFileTypeViewCompone
269
288
  }
270
289
 
271
290
  export { AXFileViewerAudioComponent, AXFileViewerContainerComponent, AXFileViewerFileFallbackComponent, AXFileViewerGalleryService, AXFileViewerHeaderPlaceholderComponent, AXFileViewerImageComponent, AXFileViewerPdfComponent, AXFileViewerService, AXFileViewerSlideComponent, AXFileViewerThumbPreviewComponent, AXFileViewerThumbnailsComponent, AXFileViewerVideoComponent, buildFileViewerExtensionHint, createFileViewerFileTypes, provideFileViewer, resolveFileViewerFileType };
272
- export type { AXFileViewerGalleryConfig, AXFileViewerGalleryRef, AXFileViewerItem, AXFileViewerViewPayload };
291
+ export type { AXFileViewerGalleryConfig, AXFileViewerGalleryRef, AXFileViewerHeaderActionClickEvent, AXFileViewerItem, AXFileViewerViewPayload };