@acorex/components 20.8.0 → 20.8.12

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.
@@ -1,13 +1,12 @@
1
1
  import * as _acorex_components_conversation2 from '@acorex/components/conversation2';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { OnDestroy, ViewContainerRef, Type, InputSignal, WritableSignal, Signal, Provider, InjectionToken, OnInit, EventEmitter, TemplateRef, ModuleWithProviders } from '@angular/core';
4
- import { AXComponentCloseEvent, AXHtmlEvent, AXDataSource, AXClosableComponent } from '@acorex/cdk/common';
4
+ import { AXComponentCloseEvent, AXHtmlEvent, AXDataSource, AXPlacement, AXClosableComponent } from '@acorex/cdk/common';
5
5
  import { AXFileUploadOptions, AXUploadResult, AXUploadReference, AXUploaderService, AXUploaderFileChangeEvent } from '@acorex/cdk/uploader';
6
6
  import * as _acorex_components_popup from '@acorex/components/popup';
7
7
  import { AXPopupService, AXPopupRef } from '@acorex/components/popup';
8
8
  import * as rxjs from 'rxjs';
9
9
  import { Observable, BehaviorSubject, Subject } from 'rxjs';
10
- import { AXPopoverComponent } from '@acorex/components/popover';
11
10
  import { AXListComponent } from '@acorex/components/list';
12
11
  import { AXDialogService } from '@acorex/components/dialog';
13
12
  import { AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
@@ -367,6 +366,16 @@ interface AXDeleteMessageCommand {
367
366
  */
368
367
  type AXParticipantRole = 'admin' | 'moderator' | 'member';
369
368
  type AXParticipantStatus = 'online' | 'offline' | 'away';
369
+ /** Extended profile fields shown in private-chat info panels. */
370
+ interface AXUserProfile {
371
+ bio?: string;
372
+ phone?: string;
373
+ email?: string;
374
+ username?: string;
375
+ location?: string;
376
+ company?: string;
377
+ title?: string;
378
+ }
370
379
  interface AXParticipant {
371
380
  /** Unique identifier for the participant */
372
381
  id: string;
@@ -374,9 +383,11 @@ interface AXParticipant {
374
383
  name: string;
375
384
  /**
376
385
  * Short line shown under the name in lists (e.g. job title, status line).
377
- * Distinct from long-form bio in optional `metadata` (e.g. profile fields).
386
+ * Distinct from long-form bio in optional `profile.bio`.
378
387
  */
379
388
  description?: string;
389
+ /** Optional extended profile details for private chats. */
390
+ profile?: AXUserProfile;
380
391
  /** Avatar/profile image URL */
381
392
  avatar?: string;
382
393
  /**
@@ -2696,11 +2707,13 @@ interface AXUserProfileUpdate {
2696
2707
  avatar?: string;
2697
2708
  /** Short line under the name in lists (e.g. job title) */
2698
2709
  description?: string;
2699
- /** Bio/status text */
2710
+ /** Extended profile fields */
2711
+ profile?: Partial<AXUserProfile>;
2712
+ /** @deprecated Prefer `profile.bio` */
2700
2713
  bio?: string;
2701
- /** Phone number */
2714
+ /** @deprecated Prefer `profile.phone` */
2702
2715
  phone?: string;
2703
- /** Email */
2716
+ /** @deprecated Prefer `profile.email` */
2704
2717
  email?: string;
2705
2718
  /** Custom fields */
2706
2719
  custom?: Record<string, unknown>;
@@ -3201,6 +3214,10 @@ declare class AXInfoBarService {
3201
3214
  * Reset info-bar overlays when the active conversation changes.
3202
3215
  */
3203
3216
  onConversationChanged(): void;
3217
+ /**
3218
+ * Open the Telegram-style conversation info panel for the active (or given) conversation.
3219
+ */
3220
+ openConversationInfoPanel(conversation?: AXConversation): Promise<void>;
3204
3221
  /**
3205
3222
  * Get actions for the active conversation
3206
3223
  */
@@ -3743,13 +3760,13 @@ declare class AXInfoBarComponent {
3743
3760
  readonly activeComponent: _angular_core.Signal<AXInfoBarActiveComponent>;
3744
3761
  /** Active banner from service */
3745
3762
  readonly activeBanner: _angular_core.Signal<AXInfoBarActiveBanner>;
3746
- /** Members popover reference */
3747
- readonly membersPopoverRef: _angular_core.Signal<AXPopoverComponent>;
3748
- /** Members popover target element */
3763
+ /** Members popover target element — retained for API compatibility */
3749
3764
  readonly membersPopoverTarget: _angular_core.WritableSignal<HTMLElement>;
3750
3765
  /** Loading state for async actions */
3751
3766
  readonly actionLoading: _angular_core.WritableSignal<boolean>;
3752
- /** Avatar clicked event */
3767
+ /** Info area clicked opens conversation profile panel */
3768
+ readonly infoClick: _angular_core.OutputEmitterRef<void>;
3769
+ /** @deprecated Use infoClick — kept for backward compatibility */
3753
3770
  readonly avatarClick: _angular_core.OutputEmitterRef<void>;
3754
3771
  /** Search clicked event */
3755
3772
  readonly searchClick: _angular_core.OutputEmitterRef<void>;
@@ -3765,10 +3782,8 @@ declare class AXInfoBarComponent {
3765
3782
  getStatus(conversation: AXConversation): 'online' | 'offline' | 'away' | undefined;
3766
3783
  /** Get subtitle text - delegate to utils */
3767
3784
  getSubtitle(conversation: AXConversation): string;
3768
- /** Handle avatar click */
3769
- onAvatarClick(): void;
3770
- /** Handle members click - open popover */
3771
- onMembersClick(event: MouseEvent): void;
3785
+ /** Open conversation info panel when the left info area is clicked */
3786
+ onInfoLeftClick(): void;
3772
3787
  /** Handle inline action click */
3773
3788
  onInlineActionClick(actionId: string): Promise<void>;
3774
3789
  /** Get inputs for dynamic component */
@@ -3782,7 +3797,7 @@ declare class AXInfoBarComponent {
3782
3797
  /** Handle menu item click */
3783
3798
  onMenuItemClick(item: DropdownMenuItem): Promise<void>;
3784
3799
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInfoBarComponent, never>;
3785
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInfoBarComponent, "ax-conversation-info-bar", never, {}, { "avatarClick": "avatarClick"; "searchClick": "searchClick"; "searchQuery": "searchQuery"; "menuItemAction": "menuItemAction"; }, never, ["ax-prefix"], true, never>;
3800
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInfoBarComponent, "ax-conversation-info-bar", never, {}, { "infoClick": "infoClick"; "avatarClick": "avatarClick"; "searchClick": "searchClick"; "searchQuery": "searchQuery"; "menuItemAction": "menuItemAction"; }, never, ["ax-prefix"], true, never>;
3786
3801
  }
3787
3802
 
3788
3803
  declare class AXForwardMessageDialogComponent implements OnInit {
@@ -3820,36 +3835,28 @@ declare class AXForwardMessageDialogComponent implements OnInit {
3820
3835
  }
3821
3836
 
3822
3837
  /**
3823
- * Shared UI for message bubble bodies: sending / failed (with retry) and content load errors,
3824
- * driven by {@link AXMessageRendererState}.
3838
+ * Shared UI for message bubble bodies: failed delivery (with retry) and content load errors.
3839
+ * Sending state is shown in the message-list footer only — not here (avoids layout glitch in media bubbles).
3825
3840
  */
3826
3841
  declare class AXConversationMessageRendererStateComponent {
3827
3842
  private readonly conversation;
3828
3843
  readonly translation: AXTranslationService;
3829
3844
  readonly rendererState: _angular_core.InputSignal<AXMessageRendererState>;
3830
3845
  readonly message: _angular_core.InputSignal<AXMessage>;
3831
- /** Overrides default text when {@link AXMessageRendererState.contentState} is `error`. */
3832
3846
  readonly contentErrorLabel: _angular_core.InputSignal<string>;
3833
- /** Overrides default text when delivery failed. */
3834
3847
  readonly deliveryFailedLabel: _angular_core.InputSignal<string>;
3835
- /** Set false when the renderer shows content errors inline (e.g. inline media error state). */
3836
3848
  readonly showContentErrorChrome: _angular_core.InputSignal<boolean>;
3837
- /** `inline` matches legacy media rows (e.g. audio): compact danger text under the player. */
3838
3849
  readonly contentErrorStyle: _angular_core.InputSignal<"inline" | "banner">;
3839
- /** Icon class for content error (e.g. `fa-light fa-music` for audio). */
3840
3850
  readonly contentErrorIconClass: _angular_core.InputSignal<string>;
3841
- /** `below`: render after main bubble body (typical for media). */
3842
3851
  readonly placement: _angular_core.InputSignal<"above" | "below">;
3843
3852
  readonly contentRetryEnabled: _angular_core.InputSignal<boolean>;
3844
3853
  readonly contentRetry: _angular_core.OutputEmitterRef<void>;
3845
3854
  readonly retryBusy: _angular_core.WritableSignal<boolean>;
3846
3855
  private readonly currentUser;
3847
3856
  private readonly isOwn;
3848
- readonly showSending: _angular_core.Signal<boolean>;
3849
3857
  readonly showFailed: _angular_core.Signal<boolean>;
3850
3858
  readonly showContentError: _angular_core.Signal<boolean>;
3851
3859
  readonly hasVisibleChrome: _angular_core.Signal<boolean>;
3852
- readonly showRetryButton: _angular_core.Signal<boolean>;
3853
3860
  readonly contentErrorText: _angular_core.Signal<string>;
3854
3861
  readonly deliveryFailedText: _angular_core.Signal<string>;
3855
3862
  onRetry(): Promise<void>;
@@ -3901,6 +3908,7 @@ declare abstract class AXMessageRendererCopyHostComponent implements AXMessageRe
3901
3908
 
3902
3909
  declare class AXAudioRendererComponent extends AXMessageRendererCopyHostComponent {
3903
3910
  private readonly fileTypes;
3911
+ private readonly translation;
3904
3912
  private readonly destroyRef;
3905
3913
  private readonly infoBarService;
3906
3914
  private readonly attachments;
@@ -3917,6 +3925,7 @@ declare class AXAudioRendererComponent extends AXMessageRendererCopyHostComponen
3917
3925
  readonly payload: _angular_core.Signal<AXAudioPayload>;
3918
3926
  readonly audios: _angular_core.Signal<AXAudioMediaItem[]>;
3919
3927
  readonly caption: _angular_core.Signal<string>;
3928
+ readonly audioLoadErrorLabel: _angular_core.Signal<string>;
3920
3929
  copy(): Promise<string>;
3921
3930
  constructor();
3922
3931
  onPlayingChange(index: number, playing: boolean): void;
@@ -4055,15 +4064,17 @@ declare class AXTextRendererComponent extends AXMessageRendererCopyHostComponent
4055
4064
 
4056
4065
  declare class AXVideoRendererComponent extends AXMessageRendererCopyHostComponent {
4057
4066
  private readonly fileTypes;
4067
+ private readonly translation;
4058
4068
  private readonly platformId;
4059
4069
  private readonly destroyRef;
4060
4070
  private readonly infoBarService;
4061
4071
  private readonly attachments;
4072
+ private readonly _contentState;
4062
4073
  private readonly activeVideoIndex;
4063
4074
  readonly message: _angular_core.InputSignal<AXMessage>;
4064
4075
  readonly rendererState: _angular_core.Signal<{
4065
4076
  deliveryStatus: AXMessageStatus;
4066
- contentState: "ready";
4077
+ contentState: AXMessageRendererContentState;
4067
4078
  }>;
4068
4079
  readonly isPlaying: _angular_core.WritableSignal<boolean>;
4069
4080
  readonly currentTime: _angular_core.WritableSignal<number>;
@@ -4071,12 +4082,14 @@ declare class AXVideoRendererComponent extends AXMessageRendererCopyHostComponen
4071
4082
  readonly payload: _angular_core.Signal<AXVideoPayload>;
4072
4083
  readonly videos: _angular_core.Signal<AXVideoMediaItem[]>;
4073
4084
  readonly caption: _angular_core.Signal<string>;
4085
+ readonly videoLoadErrorLabel: _angular_core.Signal<string>;
4074
4086
  copy(): Promise<string>;
4075
4087
  constructor();
4076
4088
  onPlayingChange(index: number, playing: boolean): void;
4077
4089
  onTimeUpdate(index: number, time: number): void;
4078
4090
  onDurationChange(index: number, duration: number): void;
4079
4091
  onPlaybackEnded(index: number): void;
4092
+ onPlaybackError(): void;
4080
4093
  togglePlay(): void;
4081
4094
  private pauseOtherVideos;
4082
4095
  private pausePlayback;
@@ -4087,6 +4100,7 @@ declare class AXVideoRendererComponent extends AXMessageRendererCopyHostComponen
4087
4100
 
4088
4101
  declare class AXVoiceRendererComponent extends AXMessageRendererCopyHostComponent {
4089
4102
  private readonly fileTypes;
4103
+ private readonly translation;
4090
4104
  private readonly platformId;
4091
4105
  private readonly destroyRef;
4092
4106
  private readonly infoBarService;
@@ -4109,6 +4123,7 @@ declare class AXVoiceRendererComponent extends AXMessageRendererCopyHostComponen
4109
4123
  readonly waveformBars: _angular_core.Signal<number[]>;
4110
4124
  readonly activeBarIndex: _angular_core.Signal<number>;
4111
4125
  readonly timeLabel: _angular_core.Signal<string>;
4126
+ readonly voiceLoadErrorLabel: _angular_core.Signal<string>;
4112
4127
  copy(): Promise<string>;
4113
4128
  constructor();
4114
4129
  togglePlay(): void;
@@ -4141,6 +4156,7 @@ declare class AXMessageListComponent implements OnDestroy {
4141
4156
  private readonly toast;
4142
4157
  private readonly infoBarService;
4143
4158
  private readonly translation;
4159
+ private readonly document;
4144
4160
  protected readonly config: Required<AXConversationConfig>;
4145
4161
  /**
4146
4162
  * Background for the message list scroll area from config, or the built-in soft gradient when unset/empty.
@@ -4155,6 +4171,7 @@ declare class AXMessageListComponent implements OnDestroy {
4155
4171
  private readonly forwardCounts;
4156
4172
  readonly reactionPickerTarget: _angular_core.WritableSignal<string>;
4157
4173
  readonly reactionPickerElement: _angular_core.WritableSignal<HTMLElement>;
4174
+ readonly reactionPickerPlacement: _angular_core.WritableSignal<AXPlacement>;
4158
4175
  readonly reactionPopover: _angular_core.Signal<any>;
4159
4176
  /** Message id whose context menu is open (for active row styling). */
4160
4177
  readonly contextMenuMessageId: _angular_core.WritableSignal<string>;
@@ -4248,7 +4265,7 @@ declare class AXMessageListComponent implements OnDestroy {
4248
4265
  hasReacted: boolean;
4249
4266
  }): string;
4250
4267
  /** Toggle reaction picker */
4251
- toggleReactionPicker(messageId: string, event: MouseEvent): void;
4268
+ toggleReactionPicker(message: AXMessage, event: MouseEvent): void;
4252
4269
  /** Close reaction picker */
4253
4270
  closeReactionPicker(): void;
4254
4271
  /** Check if current user has reacted with specific emoji */
@@ -5412,73 +5429,127 @@ declare function createObjectUrl(platformId: object, blob: Blob): string;
5412
5429
  declare function revokeObjectUrl(platformId: object, url: string): void;
5413
5430
  declare function createLocalPreviewUrl(fileService: AXFileService, platformId: object, source: File | Blob, messageType: AXMessageType): Promise<string | undefined>;
5414
5431
 
5432
+ interface AXConversationInfoProfileField {
5433
+ id: string;
5434
+ labelKey: string;
5435
+ value: string;
5436
+ icon: string;
5437
+ }
5438
+ type AXConversationMediaCategoryId = 'image' | 'video' | 'file' | 'audio' | 'voice' | 'sticker' | 'location' | 'link';
5439
+ interface AXConversationMediaCategory {
5440
+ id: AXConversationMediaCategoryId;
5441
+ labelKey: string;
5442
+ countLabelKey: string;
5443
+ icon: string;
5444
+ count: number;
5445
+ }
5446
+ interface AXConversationMediaGalleryTile {
5447
+ key: string;
5448
+ message: AXMessage;
5449
+ kind: 'image' | 'video' | 'sticker';
5450
+ image?: AXImageMediaItem;
5451
+ video?: AXVideoMediaItem;
5452
+ stickerUrl?: string;
5453
+ stickerAlt?: string;
5454
+ }
5455
+ declare function getMessageVideoItems(message: AXMessage): AXVideoMediaItem[];
5456
+ declare function getMessageAudioItems(message: AXMessage): AXAudioMediaItem[];
5457
+
5458
+ interface AXInfoPanelQuickAction {
5459
+ id: string;
5460
+ labelKey: string;
5461
+ icon: string;
5462
+ danger?: boolean;
5463
+ }
5415
5464
  declare class AXConversationInfoPanelComponent extends AXClosableComponent implements OnInit, OnDestroy {
5416
5465
  private readonly toastService;
5417
5466
  readonly translation: AXTranslationService;
5418
- /** Event emitted when popup should close */
5467
+ private readonly injectedConversationService;
5419
5468
  readonly onClosed: _angular_core.OutputEmitterRef<AXComponentCloseEvent>;
5420
- /** Conversation (typically passed via popup data). */
5421
5469
  conversation: AXConversation;
5422
5470
  conversationService: AXConversationService;
5423
- /**
5424
- * Conversation service used by panel actions.
5425
- * Kept assignable for backward compatibility with popup `data`,
5426
- * but defaults to DI so this panel works without explicit data wiring.
5427
- */
5428
- notificationsEnabled: boolean;
5429
- showPreview: boolean;
5471
+ readonly activeTab: _angular_core.WritableSignal<"profile" | "manage">;
5472
+ readonly showMemberSearch: _angular_core.WritableSignal<boolean>;
5473
+ readonly panelView: _angular_core.WritableSignal<"media" | "main">;
5474
+ readonly selectedMediaCategory: _angular_core.WritableSignal<AXConversationMediaCategory>;
5475
+ readonly conversationMessages: _angular_core.WritableSignal<AXMessage[]>;
5476
+ readonly loadingMessages: _angular_core.WritableSignal<boolean>;
5477
+ readonly memberSearchQuery: _angular_core.WritableSignal<string>;
5430
5478
  archived: boolean;
5431
5479
  private initialNotifications;
5432
- private initialShowPreview;
5433
5480
  private initialArchived;
5434
- memberSearchQuery: string;
5435
- activeTab: string;
5436
5481
  editTitle: string;
5437
5482
  editAvatar: string;
5483
+ private groupTitleSaveTimer;
5484
+ private groupDetailsSaveInFlight;
5438
5485
  readonly backgroundPresets: Array<{
5439
5486
  id: string;
5440
5487
  label: string;
5441
5488
  value: string;
5442
5489
  }>;
5443
- /** Get filtered members based on search */
5444
- get filteredMembers(): AXParticipant[];
5445
- /** Handle tab change */
5446
- onTabChange(event: any): void;
5490
+ readonly heroSubtitle: _angular_core.Signal<string>;
5491
+ readonly liveConversation: _angular_core.Signal<AXConversation>;
5492
+ readonly isConversationMuted: _angular_core.Signal<boolean>;
5493
+ readonly profileFields: _angular_core.Signal<AXConversationInfoProfileField[]>;
5494
+ readonly mediaCategories: _angular_core.Signal<AXConversationMediaCategory[]>;
5495
+ readonly quickActions: _angular_core.Signal<AXInfoPanelQuickAction[]>;
5496
+ readonly filteredMembers: _angular_core.Signal<AXParticipant[]>;
5447
5497
  ngOnInit(): void;
5448
- /** Get conversation subtitle */
5449
- getSubtitle(): string;
5450
- /** Get type label */
5451
- getTypeLabel(): string;
5452
- /** Handle notifications change */
5498
+ private loadConversationMessages;
5499
+ isPrivateConversation(): boolean;
5500
+ isGroupConversation(): boolean;
5501
+ membersSectionTitle(): string;
5502
+ getMemberRoleLabel(participant: AXParticipant): string | null;
5503
+ onMemberSearchChange(value: string | null | undefined): void;
5504
+ setActiveTab(tab: 'profile' | 'manage'): void;
5505
+ toggleMemberSearch(): void;
5506
+ openMediaCategory(category: AXConversationMediaCategory): void;
5507
+ closeMediaView(): void;
5508
+ getMediaRowLabel(category: AXConversationMediaCategory): string;
5509
+ getMemberSubtitle(participant: AXParticipant): string;
5510
+ onQuickAction(actionId: string): void;
5511
+ toggleConversationMute(): Promise<void>;
5453
5512
  onNotificationsChange(value: boolean): Promise<void>;
5454
- /** Handle show preview change */
5455
- onShowPreviewChange(value: boolean): Promise<void>;
5456
- /** Handle archived change */
5457
5513
  onArchivedChange(value: boolean): Promise<void>;
5458
- /** Implement AXClosableComponent.close() */
5459
5514
  close(data?: unknown): void;
5460
- /** Implement AXClosableComponent.closeAll() */
5461
5515
  closeAll(): void;
5462
- /** Handle leave conversation */
5463
5516
  onLeave(): Promise<void>;
5464
- /** Get member count text */
5465
- getMemberCountText(): string;
5466
- /** Get formatted date */
5467
- getFormattedDate(date: Date): string;
5468
- /** Check if can save edit */
5469
- canSaveEdit(): boolean;
5470
- /** Save edit */
5471
- saveEdit(): Promise<void>;
5472
- currentBackground(): string;
5517
+ onGroupTitleChange(value: string): void;
5518
+ onGroupAvatarChange(value: string): void;
5519
+ private persistGroupDetails;
5473
5520
  isBackgroundSelected(value: string): boolean;
5474
5521
  applyMessageListBackground(value: string): Promise<void>;
5475
- ngOnDestroy(): void;
5476
- getMembersTabLabel(): string;
5477
5522
  getBackgroundAriaLabel(label: string): string;
5523
+ ngOnDestroy(): void;
5478
5524
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoPanelComponent, never>;
5479
5525
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationInfoPanelComponent, "ax-conversation-info-panel", never, {}, { "onClosed": "onClosed"; }, never, never, true, never>;
5480
5526
  }
5481
5527
 
5528
+ declare class AXConversationInfoMediaViewComponent {
5529
+ private readonly translation;
5530
+ private readonly parentInjector;
5531
+ readonly category: _angular_core.InputSignal<AXConversationMediaCategory>;
5532
+ readonly messages: _angular_core.InputSignal<AXMessage[]>;
5533
+ readonly conversation: _angular_core.InputSignal<AXConversation>;
5534
+ readonly conversationServiceInput: _angular_core.InputSignal<AXConversationService>;
5535
+ readonly back: _angular_core.OutputEmitterRef<void>;
5536
+ readonly items: _angular_core.Signal<AXMessage[]>;
5537
+ readonly isGrid: _angular_core.Signal<boolean>;
5538
+ readonly isAttachmentList: _angular_core.Signal<boolean>;
5539
+ readonly galleryTiles: _angular_core.Signal<AXConversationMediaGalleryTile[]>;
5540
+ readonly rendererInjector: _angular_core.Signal<_angular_core.DestroyableInjector>;
5541
+ readonly titleLabel: _angular_core.Signal<string>;
5542
+ readonly getMessageVideoItems: typeof getMessageVideoItems;
5543
+ readonly getMessageAudioItems: typeof getMessageAudioItems;
5544
+ getRendererComponent(message: AXMessage): typeof AXFallbackRendererComponent | _angular_core.Type<_acorex_components_conversation2.AXMessageRendererComponent>;
5545
+ getRendererInputs(message: AXMessage): {
5546
+ message: AXMessage;
5547
+ };
5548
+ formatTimestamp(message: AXMessage): string;
5549
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoMediaViewComponent, never>;
5550
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationInfoMediaViewComponent, "ax-conversation-info-media-view", never, { "category": { "alias": "category"; "required": true; "isSignal": true; }; "messages": { "alias": "messages"; "required": true; "isSignal": true; }; "conversation": { "alias": "conversation"; "required": true; "isSignal": true; }; "conversationServiceInput": { "alias": "conversationService"; "required": true; "isSignal": true; }; }, { "back": "back"; }, never, never, true, never>;
5551
+ }
5552
+
5482
5553
  declare class AXInfoBarSearchComponent {
5483
5554
  private readonly platformId;
5484
5555
  private readonly destroyRef;
@@ -5522,10 +5593,6 @@ declare class AXInfoBarSearchComponent {
5522
5593
  * Search in conversation action (inline)
5523
5594
  */
5524
5595
  declare const AX_CONVERSATION_INFO_BAR_SEARCH_ACTION: AXInfoBarAction;
5525
- /**
5526
- * Show conversation info action (menu)
5527
- */
5528
- declare const AX_CONVERSATION_INFO_BAR_INFO_ACTION: AXInfoBarAction;
5529
5596
  /**
5530
5597
  * Mute/Unmute notifications action (menu)
5531
5598
  */
@@ -5707,6 +5774,9 @@ declare function shouldUseUserAvatarForConversation(conversation: AXConversation
5707
5774
  declare function resolveUserAvatarDisplay(userId: string, conversation: AXConversation | undefined, message?: AXMessage): AXConversationAvatarDisplay;
5708
5775
  declare function resolveConversationAvatarDisplay(conversation: AXConversation): AXConversationAvatarDisplay;
5709
5776
 
5777
+ /** Resolves typed `profile`, falling back to legacy `metadata.profile`. */
5778
+ declare function resolveParticipantProfile(participant?: AXParticipant): AXUserProfile;
5779
+
5710
5780
  declare class AXConversationDateUtilsService {
5711
5781
  /**
5712
5782
  * Format relative time (e.g., "2m ago", "1h ago")
@@ -6291,5 +6361,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6291
6361
  */
6292
6362
  type AXErrorCode = typeof MESSAGE_ERRORS[keyof typeof MESSAGE_ERRORS]['code'] | typeof FILE_ERRORS[keyof typeof FILE_ERRORS]['code'] | typeof USER_ERRORS[keyof typeof USER_ERRORS]['code'] | typeof CONVERSATION_ERRORS[keyof typeof CONVERSATION_ERRORS]['code'] | typeof CONNECTION_ERRORS[keyof typeof CONNECTION_ERRORS]['code'] | typeof LOCATION_ERRORS[keyof typeof LOCATION_ERRORS]['code'] | typeof URL_ERRORS[keyof typeof URL_ERRORS]['code'];
6293
6363
 
6294
- export { AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXCnvMediaPlaybackInfoBarBannerComponent, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationService, AXConversationSharedStorage, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListNoActiveDefaultComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_FILE_TYPE_PROVIDERS, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_MESSAGE_CURSOR_PREFIX, AX_STICKER_API_KEY, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, CONVERSATION_FILE_TYPES_READY, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, applyConversationFilters, applyLocalPreview, axConversationIndexedDbStorage, conversationSharedStorage, createLocalPreviewUrl, createObjectUrl, encodeConversationCursor, encodeMessageCursor, formatErrorMessage, getConversationLastActivity, getConversationMessagesNewestFirst, getErrorMessage, getSortedConversationsForInbox, mergeUploadResult, mergeWithDefaults, normalizeAllConversationMessageIndexes, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, resolveConversationAvatarDisplay, resolvePrivatePeerUserId, resolveUserAvatarDisplay, revokeObjectUrl, sanitizeInput, shouldUseUserAvatarForConversation, sortConversationMessageIds, toUploaderReference, unregisterChatMessage, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
6295
- export type { AXApiError, AXAudioMediaItem, AXAudioPayload, AXBlockReportReason, AXCallEvent, AXChatCursorKind, AXComposerAction, AXComposerActionComponent, AXComposerActionContext, AXComposerActiveComponent, AXComposerTab, AXConnectionEvent, AXConnectionOptions, AXConnectionStatus, AXConversation, AXConversationAiResponderConfig, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationConfig, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationError, AXConversationFilter, AXConversationFilters, AXConversationIndexedDbMediaRecord, AXConversationItemAction, AXConversationItemActionContext, AXConversationMetadata, AXConversationOptions, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationTab, AXConversationType, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUserAvatarComponent, AXDeleteMessageCommand, AXEditMessageCommand, AXErrorCode, AXErrorHandlerConfig, AXErrorMessage, AXErrorSeverity, AXFileMediaItem, AXFilePayload, AXGroupedReaction, AXImageMediaItem, AXImagePayload, AXInfoBarAction, AXInfoBarActionComponent, AXInfoBarActionContext, AXInfoBarActiveBanner, AXInfoBarActiveComponent, AXLink, AXLinkPreview, AXLoadMessagesResult, AXLocationPayload, AXMediaItemFields, AXMention, AXMessage, AXMessageAction, AXMessageActionContext, AXMessageForwardData, AXMessageInfoBarBannerComponent, AXMessageListEmptyComponent, AXMessagePayload, AXMessageRenderer, AXMessageRendererCapabilities, AXMessageRendererComponent, AXMessageRendererContentState, AXMessageRendererState, AXMessageSearchFilters, AXMessageStatus, AXMessageType, AXNotificationEvent, AXPaginatedResult, AXPagination, AXPaginationState, AXParsedChatCursor, AXParticipant, AXParticipantRole, AXParticipantStatus, AXParticipantUpdate, AXPinnedMessage, AXPlaybackBannerInputs, AXPollOption, AXPollPayload, AXPresenceStatus, AXPresenceUpdate, AXReaction, AXReadReceipt, AXRegistryConfiguration, AXRegistryItem, AXSendMessageCommand, AXSendMessageOptions, AXSendMessageUploadSource, AXStickerPayload, AXSystemPayload, AXTextFormat, AXTextPayload, AXTypingIndicator, AXUploaderReference, AXUploaderResult, AXUserProfileUpdate, AXUserRole, AXUserSearchFilters, AXValidationResult, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, DropdownMenuItem, UploaderFilePreview };
6364
+ 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, 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, createLocalPreviewUrl, createObjectUrl, encodeConversationCursor, encodeMessageCursor, formatErrorMessage, getConversationLastActivity, getConversationMessagesNewestFirst, getErrorMessage, getSortedConversationsForInbox, mergeUploadResult, mergeWithDefaults, normalizeAllConversationMessageIndexes, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, resolveConversationAvatarDisplay, resolveParticipantProfile, resolvePrivatePeerUserId, resolveUserAvatarDisplay, revokeObjectUrl, sanitizeInput, shouldUseUserAvatarForConversation, sortConversationMessageIds, toUploaderReference, unregisterChatMessage, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
6365
+ export type { AXApiError, AXAudioMediaItem, AXAudioPayload, AXBlockReportReason, AXCallEvent, AXChatCursorKind, AXComposerAction, AXComposerActionComponent, AXComposerActionContext, AXComposerActiveComponent, AXComposerTab, AXConnectionEvent, AXConnectionOptions, AXConnectionStatus, AXConversation, AXConversationAiResponderConfig, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationConfig, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationError, AXConversationFilter, AXConversationFilters, AXConversationIndexedDbMediaRecord, AXConversationItemAction, AXConversationItemActionContext, AXConversationMetadata, AXConversationOptions, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationTab, AXConversationType, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUserAvatarComponent, AXDeleteMessageCommand, AXEditMessageCommand, AXErrorCode, AXErrorHandlerConfig, AXErrorMessage, AXErrorSeverity, AXFileMediaItem, AXFilePayload, AXGroupedReaction, AXImageMediaItem, AXImagePayload, AXInfoBarAction, AXInfoBarActionComponent, AXInfoBarActionContext, AXInfoBarActiveBanner, AXInfoBarActiveComponent, AXLink, AXLinkPreview, AXLoadMessagesResult, AXLocationPayload, AXMediaItemFields, AXMention, AXMessage, AXMessageAction, AXMessageActionContext, AXMessageForwardData, AXMessageInfoBarBannerComponent, AXMessageListEmptyComponent, AXMessagePayload, AXMessageRenderer, AXMessageRendererCapabilities, AXMessageRendererComponent, AXMessageRendererContentState, AXMessageRendererState, AXMessageSearchFilters, AXMessageStatus, AXMessageType, AXNotificationEvent, AXPaginatedResult, AXPagination, AXPaginationState, AXParsedChatCursor, AXParticipant, AXParticipantRole, AXParticipantStatus, AXParticipantUpdate, AXPinnedMessage, AXPlaybackBannerInputs, AXPollOption, AXPollPayload, AXPresenceStatus, AXPresenceUpdate, AXReaction, AXReadReceipt, AXRegistryConfiguration, AXRegistryItem, AXSendMessageCommand, AXSendMessageOptions, AXSendMessageUploadSource, AXStickerPayload, AXSystemPayload, AXTextFormat, AXTextPayload, AXTypingIndicator, AXUploaderReference, AXUploaderResult, AXUserProfile, AXUserProfileUpdate, AXUserRole, AXUserSearchFilters, AXValidationResult, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, DropdownMenuItem, UploaderFilePreview };
@@ -764,6 +764,9 @@ class AXCalendarComponent extends classes((MXValueComponent), MXInteractiveCompo
764
764
  this.render();
765
765
  }
766
766
  if (e.name == 'type') {
767
+ if (e.value) {
768
+ this.calendar.set(e.value);
769
+ }
767
770
  this._refresh();
768
771
  }
769
772
  }