@acorex/components 22.0.0-next.3 → 22.0.0-next.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/combo-box/README.md +26 -0
- package/fesm2022/acorex-components-calendar.mjs +10 -12
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +237 -0
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +50 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs} +2 -2
- package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs.map → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1104 -6411
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +42 -36
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +42 -12
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +358 -319
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +11 -1
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +2 -2
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +3 -2
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-file-viewer.mjs +346 -125
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +139 -34
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +2 -2
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +211 -74
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +30 -29
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/package.json +7 -3
- package/types/acorex-components-combo-box.d.ts +114 -0
- package/types/acorex-components-conversation.d.ts +136 -56
- package/types/acorex-components-datetime-box.d.ts +16 -4
- package/types/acorex-components-datetime-input.d.ts +74 -71
- package/types/acorex-components-file-viewer.d.ts +109 -17
- package/types/acorex-components-grid-layout-builder.d.ts +25 -2
- package/types/acorex-components-menu.d.ts +26 -4
- package/types/acorex-components-number-box.d.ts +3 -1
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs +0 -106
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs.map +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { NXComponent, AXStyleLookType, AXValueChangedEvent, AXEvent } from '@acorex/cdk/common';
|
|
3
|
+
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
4
|
+
import { Combobox } from '@angular/aria/combobox';
|
|
5
|
+
import { Listbox } from '@angular/aria/listbox';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* An item in the combo box list.
|
|
9
|
+
*
|
|
10
|
+
* - `id` — unique key used for filtering/search and list identity
|
|
11
|
+
* - `text` — label shown in the list and in the trigger/input
|
|
12
|
+
* - `value` — value written to the component model when the item is selected
|
|
13
|
+
*/
|
|
14
|
+
interface AXComboBoxItem {
|
|
15
|
+
id: string;
|
|
16
|
+
text: string;
|
|
17
|
+
value: string | number;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A minimal combo box for selecting a single value from a list of items.
|
|
22
|
+
*
|
|
23
|
+
* Built on top of the `@angular/aria/combobox` directives, it supports two behaviors:
|
|
24
|
+
* - `editable="true"` (default): an editable input with typeahead filtering (matches `id`).
|
|
25
|
+
* - `editable="false"`: a non-editable, select-like trigger (same input, read-only).
|
|
26
|
+
*
|
|
27
|
+
* Items use `text` for display, `id` for search/identity, and `value` as the submitted model value.
|
|
28
|
+
*
|
|
29
|
+
* @category Components
|
|
30
|
+
*/
|
|
31
|
+
declare class AXComboBoxComponent extends NXComponent {
|
|
32
|
+
#private;
|
|
33
|
+
/**
|
|
34
|
+
* The list of items the user can select from.
|
|
35
|
+
* Each item has `id` (search/identity), `text` (display), and `value` (submitted).
|
|
36
|
+
*/
|
|
37
|
+
items: _angular_core.InputSignal<AXComboBoxItem[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the combo box renders an editable input with typeahead filtering (`true`)
|
|
40
|
+
* or a non-editable, select-like trigger (`false`).
|
|
41
|
+
*/
|
|
42
|
+
editable: _angular_core.InputSignal<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* The placeholder text shown when no value is selected.
|
|
45
|
+
*/
|
|
46
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the combo box is disabled.
|
|
49
|
+
*/
|
|
50
|
+
disabled: _angular_core.ModelSignal<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the combo box is readonly.
|
|
53
|
+
*/
|
|
54
|
+
readonly: _angular_core.ModelSignal<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Predefined look scheme of the editor container. Same looks as other editor components like ax-text-box.
|
|
57
|
+
*/
|
|
58
|
+
look: _angular_core.ModelSignal<AXStyleLookType>;
|
|
59
|
+
/**
|
|
60
|
+
* The selected item's `value`. Supports two-way binding.
|
|
61
|
+
*/
|
|
62
|
+
value: _angular_core.ModelSignal<string | number>;
|
|
63
|
+
/**
|
|
64
|
+
* Emitted when the selected value changes.
|
|
65
|
+
*/
|
|
66
|
+
onValueChanged: _angular_core.OutputEmitterRef<AXValueChangedEvent<string | number>>;
|
|
67
|
+
/**
|
|
68
|
+
* Emitted when the popup list opens.
|
|
69
|
+
*/
|
|
70
|
+
onOpened: _angular_core.OutputEmitterRef<AXEvent>;
|
|
71
|
+
/**
|
|
72
|
+
* Emitted when the popup list closes.
|
|
73
|
+
*/
|
|
74
|
+
onClosed: _angular_core.OutputEmitterRef<AXEvent>;
|
|
75
|
+
/** Whether the popup is expanded. */
|
|
76
|
+
protected expanded: _angular_core.WritableSignal<boolean>;
|
|
77
|
+
/** The item whose `value` matches the current model value. */
|
|
78
|
+
protected selectedItem: _angular_core.Signal<AXComboBoxItem>;
|
|
79
|
+
/** Display text shown in the trigger / used as the editable input baseline. */
|
|
80
|
+
protected displayText: _angular_core.Signal<string>;
|
|
81
|
+
/** The text typed in the editable input. Resets to the selected item's text. */
|
|
82
|
+
protected searchText: _angular_core.WritableSignal<string>;
|
|
83
|
+
/** The listbox selection (item ids), kept in sync with the selected value. */
|
|
84
|
+
protected selection: _angular_core.WritableSignal<string[]>;
|
|
85
|
+
/** Items filtered by typed query against `id` when the combo box is editable. */
|
|
86
|
+
protected filteredItems: _angular_core.Signal<AXComboBoxItem[]>;
|
|
87
|
+
protected comboboxRef: _angular_core.Signal<Combobox>;
|
|
88
|
+
protected listboxRef: _angular_core.Signal<Listbox<any>>;
|
|
89
|
+
protected popoverRef: _angular_core.Signal<AXPopoverComponent>;
|
|
90
|
+
constructor();
|
|
91
|
+
/**
|
|
92
|
+
* Opens (editable) or toggles (non-editable) the popup on trigger click.
|
|
93
|
+
*/
|
|
94
|
+
protected onTriggerClick(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Keeps the combobox expanded state in sync when the popover closes (e.g. click outside).
|
|
97
|
+
*/
|
|
98
|
+
protected onPopoverClosed(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Commits the current listbox selection as the component value and closes the popup.
|
|
101
|
+
*/
|
|
102
|
+
protected commit(): void;
|
|
103
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXComboBoxComponent, never>;
|
|
104
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXComboBoxComponent, "ax-combo-box", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "readonly": "readonlyChange"; "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-suffix"], true, never>;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
declare class AXComboBoxModule {
|
|
108
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXComboBoxModule, never>;
|
|
109
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXComboBoxModule, never, [typeof AXComboBoxComponent], [typeof AXComboBoxComponent]>;
|
|
110
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXComboBoxModule>;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { AXComboBoxComponent, AXComboBoxModule };
|
|
114
|
+
export type { AXComboBoxItem };
|
|
@@ -284,6 +284,16 @@ interface AXConversationMessage {
|
|
|
284
284
|
};
|
|
285
285
|
/** Message reactions */
|
|
286
286
|
reactions: AXConversationReaction[];
|
|
287
|
+
/**
|
|
288
|
+
* Total reply count when provided by the message API (`getMessages` or realtime).
|
|
289
|
+
* When omitted, the UI derives a minimum from loaded messages in the active conversation.
|
|
290
|
+
*/
|
|
291
|
+
replyCount?: number;
|
|
292
|
+
/**
|
|
293
|
+
* Total forward count when provided by the message API (`getMessages` or realtime).
|
|
294
|
+
* When omitted, the UI derives a minimum from loaded messages in the active conversation.
|
|
295
|
+
*/
|
|
296
|
+
forwardCount?: number;
|
|
287
297
|
/** Whether message is pinned */
|
|
288
298
|
pinned?: boolean;
|
|
289
299
|
/** Edit timestamp (if edited) */
|
|
@@ -1703,6 +1713,7 @@ declare class AXConversationContainerComponent {
|
|
|
1703
1713
|
private readonly hostRef;
|
|
1704
1714
|
private readonly platformId;
|
|
1705
1715
|
protected readonly config: Required<_acorex_components_conversation.AXConversationConfig>;
|
|
1716
|
+
constructor();
|
|
1706
1717
|
private get registry();
|
|
1707
1718
|
/** Custom CSS class */
|
|
1708
1719
|
readonly customClass: _angular_core.InputSignal<string>;
|
|
@@ -1733,6 +1744,7 @@ declare class AXConversationContainerDirective {
|
|
|
1733
1744
|
private readonly translation;
|
|
1734
1745
|
private readonly toast;
|
|
1735
1746
|
private readonly config;
|
|
1747
|
+
constructor();
|
|
1736
1748
|
private get registry();
|
|
1737
1749
|
/** Active conversation */
|
|
1738
1750
|
readonly activeConversation: _angular_core.Signal<_acorex_components_conversation.AXConversation>;
|
|
@@ -1879,6 +1891,24 @@ type AXConversationPresenceStatus = 'online' | 'offline' | 'away' | 'busy' | 'in
|
|
|
1879
1891
|
*/
|
|
1880
1892
|
type AXConversationUserRole = 'owner' | 'admin' | 'member' | 'guest';
|
|
1881
1893
|
|
|
1894
|
+
type AXConversationApiName = 'userApi' | 'conversationApi' | 'messageApi' | 'realtimeApi';
|
|
1895
|
+
interface AXConversationApiLogEntry {
|
|
1896
|
+
/** Public method on AXConversationService that triggered the API call. */
|
|
1897
|
+
serviceMethod: string;
|
|
1898
|
+
/** Injected API instance name. */
|
|
1899
|
+
api: AXConversationApiName;
|
|
1900
|
+
/** Method invoked on the API instance. */
|
|
1901
|
+
apiMethod: string;
|
|
1902
|
+
/** Positional arguments passed to the API method. */
|
|
1903
|
+
context: unknown[];
|
|
1904
|
+
}
|
|
1905
|
+
declare class AXConversationApiLoggerService {
|
|
1906
|
+
private readonly config;
|
|
1907
|
+
log(entry: AXConversationApiLogEntry): void;
|
|
1908
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationApiLoggerService, never>;
|
|
1909
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationApiLoggerService>;
|
|
1910
|
+
}
|
|
1911
|
+
|
|
1882
1912
|
/**
|
|
1883
1913
|
* Abstract Conversation Management API
|
|
1884
1914
|
* Handle conversation CRUD operations, participants, and settings
|
|
@@ -2983,11 +3013,12 @@ declare abstract class AXConversationUserApi {
|
|
|
2983
3013
|
/**
|
|
2984
3014
|
* Get available users for conversation creation
|
|
2985
3015
|
*
|
|
3016
|
+
* @param pagination - Pagination parameters
|
|
2986
3017
|
* @param filters - Search filters
|
|
2987
|
-
* @returns
|
|
3018
|
+
* @returns Paginated list of users
|
|
2988
3019
|
* @throws {AXConversationApiError} If request fails
|
|
2989
3020
|
*/
|
|
2990
|
-
abstract getUsers(filters?: AXConversationUserSearchFilters): Promise<AXConversationParticipant
|
|
3021
|
+
abstract getUsers(pagination?: AXConversationPagination, filters?: AXConversationUserSearchFilters): Promise<AXConversationPaginatedResult<AXConversationParticipant>>;
|
|
2991
3022
|
/**
|
|
2992
3023
|
* Search users by query
|
|
2993
3024
|
*
|
|
@@ -3143,6 +3174,7 @@ declare class AXConversationService {
|
|
|
3143
3174
|
private readonly fileService;
|
|
3144
3175
|
private readonly platformId;
|
|
3145
3176
|
private readonly errorHandler;
|
|
3177
|
+
private readonly apiLogger;
|
|
3146
3178
|
readonly dialogService: AXDialogService;
|
|
3147
3179
|
readonly popupService: AXPopupService;
|
|
3148
3180
|
private readonly translation;
|
|
@@ -3190,14 +3222,28 @@ declare class AXConversationService {
|
|
|
3190
3222
|
readonly onMessageDeleted: rxjs.Observable<string>;
|
|
3191
3223
|
readonly onTypingIndicator: rxjs.Observable<AXConversationTypingIndicator>;
|
|
3192
3224
|
readonly onPresenceChange: rxjs.Observable<AXConversationPresenceUpdate>;
|
|
3193
|
-
private readonly _messageCountRefresh$;
|
|
3194
|
-
readonly onMessageCountRefresh: rxjs.Observable<{
|
|
3195
|
-
messageId: string;
|
|
3196
|
-
type: "reply" | "forward";
|
|
3197
|
-
}>;
|
|
3198
3225
|
private _currentUser;
|
|
3199
3226
|
readonly currentUser: _angular_core.Signal<_acorex_components_conversation.AXConversationParticipant>;
|
|
3227
|
+
/** One-time async initialization (connect, user, conversations, realtime). */
|
|
3228
|
+
private initPromise;
|
|
3229
|
+
/** Generation counter — stale page-0 loads are ignored after conversation switches. */
|
|
3230
|
+
private messageLoadGeneration;
|
|
3231
|
+
/** Batched read-receipt queue keyed by conversation ID. */
|
|
3232
|
+
private readonly readQueue;
|
|
3233
|
+
private readFlushHandle;
|
|
3234
|
+
/** Session cache for available reaction emojis. */
|
|
3235
|
+
private availableReactionsCache;
|
|
3236
|
+
private availableReactionsPromise;
|
|
3200
3237
|
constructor();
|
|
3238
|
+
/** Log and invoke an async API method from AXConversationService. */
|
|
3239
|
+
private callApi;
|
|
3240
|
+
/** Log a sync API invocation (e.g. realtime observable subscriptions). */
|
|
3241
|
+
private logApi;
|
|
3242
|
+
/**
|
|
3243
|
+
* Ensures the service is initialized exactly once.
|
|
3244
|
+
* Safe to call from container components or before any public API usage.
|
|
3245
|
+
*/
|
|
3246
|
+
ensureInitialized(): Promise<void>;
|
|
3201
3247
|
/**
|
|
3202
3248
|
* Initialize the service
|
|
3203
3249
|
* Connects to API and loads initial data
|
|
@@ -3219,9 +3265,7 @@ declare class AXConversationService {
|
|
|
3219
3265
|
*/
|
|
3220
3266
|
loadMoreConversations(page: number): Promise<boolean>;
|
|
3221
3267
|
/**
|
|
3222
|
-
* Select a conversation
|
|
3223
|
-
* Loads messages and subscribes to real-time updates
|
|
3224
|
-
* Note: Messages are now marked as read individually via intersection observer when viewed
|
|
3268
|
+
* Select a conversation and load page 0 of its message history.
|
|
3225
3269
|
*/
|
|
3226
3270
|
selectConversation(conversationId: string): Promise<void>;
|
|
3227
3271
|
closeActiveConversation(): void;
|
|
@@ -3273,10 +3317,20 @@ declare class AXConversationService {
|
|
|
3273
3317
|
*/
|
|
3274
3318
|
getAvailableReactions(): Promise<string[]>;
|
|
3275
3319
|
/**
|
|
3276
|
-
*
|
|
3277
|
-
|
|
3320
|
+
* Queue a message to be marked as read (batched/debounced API sync).
|
|
3321
|
+
*/
|
|
3322
|
+
queueMessageAsRead(messageId: string): void;
|
|
3323
|
+
/**
|
|
3324
|
+
* Mark a single message as read (queues for batched sync).
|
|
3278
3325
|
*/
|
|
3279
3326
|
markMessageAsRead(messageId: string): Promise<void>;
|
|
3327
|
+
private scheduleReadFlush;
|
|
3328
|
+
/**
|
|
3329
|
+
* Drop queued per-message read receipts without syncing to the API.
|
|
3330
|
+
* Used before conversation-level mark-as-read to avoid duplicate API calls.
|
|
3331
|
+
*/
|
|
3332
|
+
private discardReadQueue;
|
|
3333
|
+
private flushReadQueue;
|
|
3280
3334
|
/**
|
|
3281
3335
|
* Mark conversation as read
|
|
3282
3336
|
* Marks messages locally and syncs with server
|
|
@@ -3301,10 +3355,10 @@ declare class AXConversationService {
|
|
|
3301
3355
|
*/
|
|
3302
3356
|
private handleMessageUpdate;
|
|
3303
3357
|
/**
|
|
3304
|
-
*
|
|
3305
|
-
* Emits events when a message is a reply or forward so components can refresh counts
|
|
3358
|
+
* Bump reply/forward counts locally when realtime events arrive outside the active message list.
|
|
3306
3359
|
*/
|
|
3307
|
-
private
|
|
3360
|
+
private syncMessageCountFromRealtime;
|
|
3361
|
+
private bumpMessageCount;
|
|
3308
3362
|
/**
|
|
3309
3363
|
* Handle message deletion
|
|
3310
3364
|
*/
|
|
@@ -3366,10 +3420,11 @@ declare class AXConversationService {
|
|
|
3366
3420
|
createConversation(participantIds: string[], type: AXConversationType, metadata?: AXConversationMetadata): Promise<AXConversation>;
|
|
3367
3421
|
/**
|
|
3368
3422
|
* Get available users for conversation creation
|
|
3369
|
-
* @param
|
|
3370
|
-
* @
|
|
3423
|
+
* @param filters - Optional search filters (e.g. `query`)
|
|
3424
|
+
* @param pagination - Pagination parameters
|
|
3425
|
+
* @returns Paginated list of users
|
|
3371
3426
|
*/
|
|
3372
|
-
getUsers(
|
|
3427
|
+
getUsers(filters?: AXConversationUserSearchFilters, pagination?: AXConversationPagination): Promise<AXConversationPaginatedResult<AXConversationParticipant>>;
|
|
3373
3428
|
/**
|
|
3374
3429
|
* Mark entire conversation as read
|
|
3375
3430
|
* @param conversationId - Conversation ID
|
|
@@ -3721,8 +3776,6 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3721
3776
|
/** Fallback when no conversation is active and no `ax-conversation-message-list-no-active` content is projected. */
|
|
3722
3777
|
protected readonly noActiveFallbackComponent: typeof AXConversationMessageListNoActiveDefaultComponent;
|
|
3723
3778
|
private readonly timeouts;
|
|
3724
|
-
private readonly replyCounts;
|
|
3725
|
-
private readonly forwardCounts;
|
|
3726
3779
|
readonly reactionPickerTarget: _angular_core.WritableSignal<string>;
|
|
3727
3780
|
readonly reactionPickerElement: _angular_core.WritableSignal<HTMLElement>;
|
|
3728
3781
|
readonly reactionPickerPlacement: _angular_core.WritableSignal<AXPlacement>;
|
|
@@ -3734,6 +3787,7 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3734
3787
|
/** While true, older history is being prepended — do not auto-scroll to the latest message. */
|
|
3735
3788
|
private restoringScrollAfterPrepend;
|
|
3736
3789
|
readonly availableReactions: _angular_core.WritableSignal<string[]>;
|
|
3790
|
+
private reactionsLoading;
|
|
3737
3791
|
private get registry();
|
|
3738
3792
|
/** Message list element reference */
|
|
3739
3793
|
private readonly messageListRef;
|
|
@@ -3766,6 +3820,7 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3766
3820
|
}[]>;
|
|
3767
3821
|
constructor();
|
|
3768
3822
|
private intersectionObserver?;
|
|
3823
|
+
private readonly observedReadMessageIds;
|
|
3769
3824
|
/**
|
|
3770
3825
|
* Setup intersection observer to mark messages as read when visible
|
|
3771
3826
|
*/
|
|
@@ -3832,8 +3887,8 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3832
3887
|
onReactionClickById(messageId: string, emoji: string): void;
|
|
3833
3888
|
/** Get message by ID */
|
|
3834
3889
|
getMessageById(messageId: string): AXConversationMessage | undefined;
|
|
3835
|
-
/** Load available reactions
|
|
3836
|
-
private
|
|
3890
|
+
/** Load available reactions when the picker is opened (session-cached in service). */
|
|
3891
|
+
private ensureAvailableReactions;
|
|
3837
3892
|
/** Get message actions from registry */
|
|
3838
3893
|
getMessageActions(message: AXConversationMessage): _acorex_components_conversation.AXConversationMessageAction[];
|
|
3839
3894
|
/** Handle reaction click */
|
|
@@ -3872,15 +3927,8 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3872
3927
|
/** Get ARIA label for message */
|
|
3873
3928
|
getMessageAriaLabel(message: AXConversationMessage): string;
|
|
3874
3929
|
getDateSeparatorAriaLabel(dateLabel: string): string;
|
|
3875
|
-
/** Get reply count for a message (fetches from API across all conversations) */
|
|
3876
3930
|
getReplyCount(message: AXConversationMessage): number;
|
|
3877
|
-
/** Get forward count for a message (fetches from API across all conversations) */
|
|
3878
3931
|
getForwardCount(message: AXConversationMessage): number;
|
|
3879
|
-
/**
|
|
3880
|
-
* Refresh count for a specific message from API
|
|
3881
|
-
* This is called when a new reply or forward is detected globally
|
|
3882
|
-
*/
|
|
3883
|
-
private refreshCount;
|
|
3884
3932
|
onMessageListDragEnter(): void;
|
|
3885
3933
|
onMessageListDragLeave(): void;
|
|
3886
3934
|
/** Open the matching composer picker popup when files are dropped on the message list. */
|
|
@@ -3909,7 +3957,6 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3909
3957
|
|
|
3910
3958
|
declare class AXConversationMessageListService {
|
|
3911
3959
|
private readonly conversationService;
|
|
3912
|
-
private readonly config;
|
|
3913
3960
|
private get registry();
|
|
3914
3961
|
readonly activeConversation: _angular_core.Signal<_acorex_components_conversation.AXConversation>;
|
|
3915
3962
|
readonly activeMessages: _angular_core.Signal<AXConversationMessage[]>;
|
|
@@ -3926,9 +3973,19 @@ declare class AXConversationMessageListService {
|
|
|
3926
3973
|
readonly scrollRequests: _angular_core.WritableSignal<number>;
|
|
3927
3974
|
/** Live renderer instances keyed by message id (for message actions). */
|
|
3928
3975
|
private readonly _rendererInstances;
|
|
3976
|
+
/**
|
|
3977
|
+
* Reply counts merged from API fields and loaded messages.
|
|
3978
|
+
*/
|
|
3979
|
+
readonly replyCounts: _angular_core.Signal<Map<string, number>>;
|
|
3980
|
+
/**
|
|
3981
|
+
* Forward counts merged from API fields and loaded messages.
|
|
3982
|
+
*/
|
|
3983
|
+
readonly forwardCounts: _angular_core.Signal<Map<string, number>>;
|
|
3929
3984
|
registerRendererInstance(messageId: string, instance: AXConversationMessageRendererComponent): void;
|
|
3930
3985
|
unregisterRendererInstance(messageId: string): void;
|
|
3931
3986
|
getRendererInstance(messageId: string): AXConversationMessageRendererComponent | undefined;
|
|
3987
|
+
getReplyCount(messageId: string): number;
|
|
3988
|
+
getForwardCount(messageId: string): number;
|
|
3932
3989
|
/** Message grouped by date */
|
|
3933
3990
|
readonly messageGroups: _angular_core.Signal<{
|
|
3934
3991
|
date: string;
|
|
@@ -3948,6 +4005,7 @@ declare class AXConversationMessageListService {
|
|
|
3948
4005
|
reactToMessage(messageId: string, emoji: string): Promise<void>;
|
|
3949
4006
|
/** Request message list to scroll to bottom */
|
|
3950
4007
|
requestScrollToBottom(): void;
|
|
4008
|
+
private buildCountMap;
|
|
3951
4009
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageListService, never>;
|
|
3952
4010
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationMessageListService>;
|
|
3953
4011
|
}
|
|
@@ -3955,6 +4013,7 @@ declare class AXConversationMessageListService {
|
|
|
3955
4013
|
declare class AXConversationSidebarService {
|
|
3956
4014
|
private readonly conversationService;
|
|
3957
4015
|
private readonly config;
|
|
4016
|
+
constructor();
|
|
3958
4017
|
private get registry();
|
|
3959
4018
|
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
3960
4019
|
readonly activeTabId: _angular_core.WritableSignal<string>;
|
|
@@ -4038,6 +4097,10 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
|
|
|
4038
4097
|
conversationService: AXConversationService;
|
|
4039
4098
|
private readonly toastService;
|
|
4040
4099
|
private readonly translation;
|
|
4100
|
+
private readonly config;
|
|
4101
|
+
private readonly destroyRef;
|
|
4102
|
+
private searchDebounceTimer?;
|
|
4103
|
+
constructor();
|
|
4041
4104
|
/**
|
|
4042
4105
|
* Injected by {@link AXPopupComponent} when this dialog is opened via {@link AXPopupService}.
|
|
4043
4106
|
* Required for `setTitle` / dynamic header — {@link AXBasePageComponent#setTitle} is otherwise unset.
|
|
@@ -4070,7 +4133,7 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
|
|
|
4070
4133
|
onSearchChange(value: string): void;
|
|
4071
4134
|
isUserSelected(id: string): boolean;
|
|
4072
4135
|
userFromItem(item: unknown): AXConversationParticipant | null;
|
|
4073
|
-
private
|
|
4136
|
+
private mergeUsersCache;
|
|
4074
4137
|
onCreateConversation(): Promise<void>;
|
|
4075
4138
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationNewDialogComponent, never>;
|
|
4076
4139
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationNewDialogComponent, "ax-conversation-new-dialog", never, { "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -4166,6 +4229,13 @@ interface AXConversationConfig {
|
|
|
4166
4229
|
maxFilesPerMessage?: number;
|
|
4167
4230
|
/** Threshold for marking messages as read (0.0 to 1.0, default: 0.3) */
|
|
4168
4231
|
messageReadThreshold?: number;
|
|
4232
|
+
/** Debounce window (ms) before flushing batched read-receipt API calls (default: 400) */
|
|
4233
|
+
messageReadDebounce?: number;
|
|
4234
|
+
/**
|
|
4235
|
+
* When true, marks the whole conversation as read once when it is selected (single API call).
|
|
4236
|
+
* Per-message intersection observer still handles new messages received while the chat is open.
|
|
4237
|
+
*/
|
|
4238
|
+
markConversationReadOnSelect?: boolean;
|
|
4169
4239
|
/**
|
|
4170
4240
|
* CSS `background` for the message list (`ax-conversation-message-list` area, all states: loading, empty, messages).
|
|
4171
4241
|
* Use full shorthand, or a bare `https://...` / `/path/to.png` (wrapped as `url(...)` with `center/cover`).
|
|
@@ -4174,6 +4244,8 @@ interface AXConversationConfig {
|
|
|
4174
4244
|
messageListBackground?: string;
|
|
4175
4245
|
/** Optional feature flags to reduce bundle size per app. */
|
|
4176
4246
|
features?: AXConversationFeatures;
|
|
4247
|
+
/** Log API calls made by AXConversationService to the console (default: false). */
|
|
4248
|
+
debugApiLogging?: boolean;
|
|
4177
4249
|
}
|
|
4178
4250
|
|
|
4179
4251
|
/**
|
|
@@ -4465,8 +4537,10 @@ declare function paginateChatOldestFirst<T extends {
|
|
|
4465
4537
|
}>(sortedOldestFirst: T[], pagination: AXConversationPagination): AXConversationPaginatedResult<T>;
|
|
4466
4538
|
|
|
4467
4539
|
/**
|
|
4468
|
-
* Extra seed data so sidebar
|
|
4540
|
+
* Extra seed data so sidebar, message-list, and user-picker pagination can be exercised in the demo.
|
|
4469
4541
|
*/
|
|
4542
|
+
/** Dedicated chat for message-list infinite-scroll / page loading tests. */
|
|
4543
|
+
declare const AX_MESSAGE_PAGINATION_CONVERSATION_ID = "conv-pag-msgs";
|
|
4470
4544
|
/**
|
|
4471
4545
|
* Append demo chats/messages when the DB is too small for default page sizes (30 / 50).
|
|
4472
4546
|
*/
|
|
@@ -4495,7 +4569,7 @@ declare class AXConversationIndexedDbUserApi extends AXConversationUserApi {
|
|
|
4495
4569
|
getCurrentUser(): Promise<AXConversationParticipant>;
|
|
4496
4570
|
updateProfile(updates: AXConversationUserProfileUpdate): Promise<AXConversationParticipant>;
|
|
4497
4571
|
uploadAvatar(file: File): Promise<string>;
|
|
4498
|
-
getUsers(filters?: AXConversationUserSearchFilters): Promise<AXConversationParticipant
|
|
4572
|
+
getUsers(pagination?: AXConversationPagination, filters?: AXConversationUserSearchFilters): Promise<AXConversationPaginatedResult<AXConversationParticipant>>;
|
|
4499
4573
|
searchUsers(query: string): Promise<AXConversationParticipant[]>;
|
|
4500
4574
|
getUserById(userId: string): Promise<AXConversationParticipant>;
|
|
4501
4575
|
getUsersByIds(userIds: string[]): Promise<AXConversationParticipant[]>;
|
|
@@ -5135,17 +5209,6 @@ declare class AXConversationPickerEmptyComponent {
|
|
|
5135
5209
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerEmptyComponent, "ax-conversation-picker-empty", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "hint": { "alias": "hint"; "required": true; "isSignal": true; }; "iconClass": { "alias": "iconClass"; "required": true; "isSignal": true; }; "dragOver": { "alias": "dragOver"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5136
5210
|
}
|
|
5137
5211
|
|
|
5138
|
-
/**
|
|
5139
|
-
* Shell flex + max-height (on {@link AXConversationPickerShellComponent}).
|
|
5140
|
-
* Styles here target projected content inside the shell.
|
|
5141
|
-
*/
|
|
5142
|
-
declare const AX_CONVERSATION_PICKER_SHELL_STYLES = "\n :host {\n display: block;\n width: 100%;\n max-width: 100%;\n min-height: 0;\n container-type: inline-size;\n container-name: picker;\n }\n\n .ax-conversation-picker {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 100%;\n max-height: min(32rem, 85dvh);\n background: rgb(var(--ax-sys-color-lightest-surface));\n border-radius: var(--ax-sys-border-radius, 0.5rem);\n overflow: hidden;\n }\n\n .ax-conversation-picker__content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n @container picker (max-width: 480px) {\n .ax-conversation-picker {\n max-height: min(28rem, 90dvh);\n border-radius: 0;\n }\n }\n";
|
|
5143
|
-
/**
|
|
5144
|
-
* Shared layout and surface styles for composer media pickers.
|
|
5145
|
-
* Uses ACoreX system color tokens only.
|
|
5146
|
-
*/
|
|
5147
|
-
declare const AX_CONVERSATION_PICKER_SHARED_STYLES = "\n :host {\n display: block;\n width: 100%;\n max-width: 100%;\n min-height: 0;\n }\n\n .ax-conversation-picker__scroll {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n }\n\n .ax-conversation-picker__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n min-height: 8.5rem;\n margin: 0.75rem;\n padding: 1rem 0.75rem;\n border: 1px dashed rgb(var(--ax-sys-color-border-surface));\n border-radius: var(--ax-sys-border-radius, 0.5rem);\n cursor: pointer;\n transition: border-color 0.15s ease, background-color 0.15s ease;\n text-align: center;\n touch-action: manipulation;\n }\n\n .ax-conversation-picker__empty:hover,\n .ax-conversation-picker__empty--drag {\n border-color: rgb(var(--ax-sys-color-primary-500));\n background: rgba(var(--ax-sys-color-primary-500), 0.06);\n }\n\n .ax-conversation-picker__empty-icon {\n font-size: 1.75rem;\n line-height: 1;\n color: rgba(var(--ax-sys-color-on-surface), 0.55);\n }\n\n .ax-conversation-picker__empty-title {\n margin: 0;\n font-size: 0.8125rem;\n font-weight: 600;\n color: rgb(var(--ax-sys-color-on-surface));\n }\n\n .ax-conversation-picker__empty-hint {\n margin: 0;\n font-size: 0.75rem;\n color: rgba(var(--ax-sys-color-on-surface), 0.6);\n }\n\n .ax-conversation-picker__body {\n padding: 0 0.75rem 0.75rem;\n }\n\n .ax-conversation-picker__list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding-top: 0.5rem;\n }\n\n .ax-conversation-picker__row {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: 0.5rem 0.625rem;\n border: 1px solid rgb(var(--ax-sys-color-border-light-surface));\n border-radius: var(--ax-sys-border-radius, 0.375rem);\n background: rgb(var(--ax-sys-color-surface));\n transition: background-color 0.15s ease;\n }\n\n @media (hover: hover) {\n .ax-conversation-picker__row:hover {\n background: rgb(var(--ax-sys-color-light-surface));\n }\n }\n\n .ax-conversation-picker__thumb {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n flex-shrink: 0;\n border-radius: var(--ax-sys-border-radius, 0.375rem);\n background: rgba(var(--ax-sys-color-primary-500), 0.08);\n color: rgb(var(--ax-sys-color-primary-500));\n font-size: 1.125rem;\n overflow: hidden;\n }\n\n .ax-conversation-picker__thumb img,\n .ax-conversation-picker__thumb video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n pointer-events: none;\n }\n\n .ax-conversation-picker__thumb-badge {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 0.32);\n color: rgb(var(--ax-sys-color-light));\n font-size: 0.625rem;\n pointer-events: none;\n }\n\n .ax-conversation-picker__details {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n }\n\n .ax-conversation-picker__name {\n font-size: 0.8125rem;\n font-weight: 500;\n color: rgb(var(--ax-sys-color-on-surface));\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .ax-conversation-picker__status {\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem;\n font-size: 0.6875rem;\n color: rgba(var(--ax-sys-color-on-surface), 0.65);\n }\n\n .ax-conversation-picker__status--ok {\n color: rgb(var(--ax-sys-color-success-600));\n font-weight: 500;\n }\n\n .ax-conversation-picker__status--err {\n color: rgb(var(--ax-sys-color-danger-600));\n font-weight: 500;\n }\n\n .ax-conversation-picker__progress {\n width: 100%;\n margin-top: 0.125rem;\n }\n\n .ax-conversation-picker__remove {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.75rem;\n height: 2.75rem;\n flex-shrink: 0;\n border: none;\n border-radius: var(--ax-sys-border-radius, 0.25rem);\n background: transparent;\n color: rgba(var(--ax-sys-color-on-surface), 0.55);\n font-size: 1rem;\n cursor: pointer;\n touch-action: manipulation;\n transition: background-color 0.15s ease, color 0.15s ease;\n }\n\n .ax-conversation-picker__remove:hover,\n .ax-conversation-picker__remove:focus-visible {\n background: rgba(var(--ax-sys-color-danger-500), 0.1);\n color: rgb(var(--ax-sys-color-danger-500));\n outline: none;\n }\n\n .ax-conversation-picker__grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(5.25rem, 1fr));\n gap: 0.5rem;\n }\n\n .ax-conversation-picker__tile {\n position: relative;\n aspect-ratio: 1;\n border-radius: var(--ax-sys-border-radius, 0.375rem);\n overflow: hidden;\n border: 1px solid rgb(var(--ax-sys-color-border-light-surface));\n background: rgb(var(--ax-sys-color-light-surface));\n }\n\n .ax-conversation-picker__tile img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .ax-conversation-picker__tile-remove {\n position: absolute;\n top: 0.25rem;\n inset-inline-end: 0.25rem;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.75rem;\n height: 1.75rem;\n border: none;\n border-radius: 50%;\n background: rgb(var(--ax-sys-color-danger-500));\n color: rgb(var(--ax-sys-color-light));\n font-size: 0.6875rem;\n cursor: pointer;\n touch-action: manipulation;\n box-shadow: 0 1px 3px rgb(0 0 0 / 0.2);\n }\n\n .ax-conversation-picker__tile-overlay {\n position: absolute;\n inset-inline: 0;\n bottom: 0;\n padding: 0.25rem;\n background: linear-gradient(transparent, rgb(0 0 0 / 0.55));\n }\n\n .ax-conversation-picker__tile-status {\n font-size: 0.625rem;\n color: rgb(var(--ax-sys-color-light));\n line-height: 1.2;\n }\n\n .ax-conversation-picker__caption-slot {\n flex-shrink: 0;\n padding: 0.5rem 0.75rem;\n border-top: 1px solid rgb(var(--ax-sys-color-border-light-surface));\n background: rgb(var(--ax-sys-color-lightest-surface));\n }\n\n .ax-conversation-picker__input-hidden {\n display: none;\n }\n\n @container picker (max-width: 480px) {\n .ax-conversation-picker__grid {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 0.375rem;\n }\n\n .ax-conversation-picker__row {\n padding: 0.4375rem 0.5rem;\n gap: 0.5rem;\n }\n\n .ax-conversation-picker__thumb {\n width: 2.25rem;\n height: 2.25rem;\n }\n\n .ax-conversation-picker__empty {\n min-height: 7.5rem;\n margin: 0.5rem;\n }\n\n .ax-conversation-picker__body {\n padding-inline: 0.5rem;\n padding-bottom: 0.5rem;\n }\n }\n";
|
|
5148
|
-
|
|
5149
5212
|
/**
|
|
5150
5213
|
* Wraps composer pickers with {@link AXUploaderZoneDirective} for browse, drop, and validation.
|
|
5151
5214
|
*/
|
|
@@ -5405,7 +5468,18 @@ declare function resolveVideoThumbnailUrl(video: AXConversationVideoMediaItem):
|
|
|
5405
5468
|
declare function resolveGalleryImageUrl(image: AXConversationImageMediaItem): string | undefined;
|
|
5406
5469
|
declare function getMessageVideoItems(message: AXConversationMessage): AXConversationVideoMediaItem[];
|
|
5407
5470
|
declare function getMessageAudioItems(message: AXConversationMessage): AXConversationAudioMediaItem[];
|
|
5408
|
-
|
|
5471
|
+
interface AXConversationMediaPageResult {
|
|
5472
|
+
items: AXConversationMessage[];
|
|
5473
|
+
hasMore: boolean;
|
|
5474
|
+
nextCursor?: string;
|
|
5475
|
+
page: number;
|
|
5476
|
+
}
|
|
5477
|
+
declare function fetchConversationMediaPage(conversationApi: AXConversationApi, conversationId: string, page: number, pageSize?: number, cursor?: string): Promise<AXConversationMediaPageResult>;
|
|
5478
|
+
/** @deprecated Use {@link fetchConversationMediaPage} — loads only the first page. */
|
|
5479
|
+
declare function fetchConversationMediaMessages(conversationApi: AXConversationApi, conversationId: string, pageSize: number): Promise<AXConversationMessage[]>;
|
|
5480
|
+
/** Merge media API results with in-memory messages needed for link/sticker/voice/location tabs. */
|
|
5481
|
+
declare function mergeInfoPanelMessages(mediaMessages: AXConversationMessage[], supplemental: AXConversationMessage[]): AXConversationMessage[];
|
|
5482
|
+
declare function filterSupplementalInfoPanelMessages(messages: AXConversationMessage[]): AXConversationMessage[];
|
|
5409
5483
|
|
|
5410
5484
|
interface AXInfoPanelQuickAction {
|
|
5411
5485
|
id: string;
|
|
@@ -5427,6 +5501,10 @@ declare class AXConversationInfoPanelComponent extends AXClosableComponent imple
|
|
|
5427
5501
|
readonly mediaViewLoader: () => Promise<typeof _acorex_components_conversation.AXConversationInfoMediaViewComponent>;
|
|
5428
5502
|
readonly conversationMessages: _angular_core.WritableSignal<AXConversationMessage[]>;
|
|
5429
5503
|
readonly loadingMessages: _angular_core.WritableSignal<boolean>;
|
|
5504
|
+
readonly loadingMoreMedia: _angular_core.WritableSignal<boolean>;
|
|
5505
|
+
readonly mediaHasMore: _angular_core.WritableSignal<boolean>;
|
|
5506
|
+
private mediaNextPage;
|
|
5507
|
+
private mediaNextCursor;
|
|
5430
5508
|
readonly memberSearchQuery: _angular_core.WritableSignal<string>;
|
|
5431
5509
|
archived: boolean;
|
|
5432
5510
|
private initialNotifications;
|
|
@@ -5449,6 +5527,7 @@ declare class AXConversationInfoPanelComponent extends AXClosableComponent imple
|
|
|
5449
5527
|
readonly filteredMembers: _angular_core.Signal<AXConversationParticipant[]>;
|
|
5450
5528
|
ngOnInit(): void;
|
|
5451
5529
|
private loadConversationMessages;
|
|
5530
|
+
loadMoreMedia(): Promise<void>;
|
|
5452
5531
|
isPrivateConversation(): boolean;
|
|
5453
5532
|
isGroupConversation(): boolean;
|
|
5454
5533
|
membersSectionTitle(): string;
|
|
@@ -5486,6 +5565,9 @@ declare class AXConversationInfoMediaViewComponent {
|
|
|
5486
5565
|
readonly messages: _angular_core.InputSignal<AXConversationMessage[]>;
|
|
5487
5566
|
readonly conversation: _angular_core.InputSignal<AXConversation>;
|
|
5488
5567
|
readonly conversationServiceInput: _angular_core.InputSignal<AXConversationService>;
|
|
5568
|
+
readonly hasMoreMedia: _angular_core.InputSignal<boolean>;
|
|
5569
|
+
readonly loadingMoreMedia: _angular_core.InputSignal<boolean>;
|
|
5570
|
+
readonly onLoadMoreMedia: _angular_core.InputSignal<() => void | Promise<void>>;
|
|
5489
5571
|
/** Callback for lazy outlet wiring (alternative to the `back` output). */
|
|
5490
5572
|
readonly onBack: _angular_core.InputSignal<() => void>;
|
|
5491
5573
|
readonly back: _angular_core.OutputEmitterRef<void>;
|
|
@@ -5504,8 +5586,9 @@ declare class AXConversationInfoMediaViewComponent {
|
|
|
5504
5586
|
};
|
|
5505
5587
|
formatTimestamp(message: AXConversationMessage): string;
|
|
5506
5588
|
handleBack(): void;
|
|
5589
|
+
onScrollThreshold(edge: 'top' | 'bottom'): void;
|
|
5507
5590
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoMediaViewComponent, never>;
|
|
5508
|
-
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; }; "onBack": { "alias": "onBack"; "required": false; "isSignal": true; }; }, { "back": "back"; }, never, never, true, never>;
|
|
5591
|
+
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; }; "hasMoreMedia": { "alias": "hasMoreMedia"; "required": false; "isSignal": true; }; "loadingMoreMedia": { "alias": "loadingMoreMedia"; "required": false; "isSignal": true; }; "onLoadMoreMedia": { "alias": "onLoadMoreMedia"; "required": false; "isSignal": true; }; "onBack": { "alias": "onBack"; "required": false; "isSignal": true; }; }, { "back": "back"; }, never, never, true, never>;
|
|
5509
5592
|
}
|
|
5510
5593
|
|
|
5511
5594
|
declare class AXConversationInfoBarSearchComponent {
|
|
@@ -5513,6 +5596,7 @@ declare class AXConversationInfoBarSearchComponent {
|
|
|
5513
5596
|
private readonly destroyRef;
|
|
5514
5597
|
private readonly infoBarService;
|
|
5515
5598
|
private readonly conversationService;
|
|
5599
|
+
private readonly config;
|
|
5516
5600
|
/** Conversation input */
|
|
5517
5601
|
readonly conversation: _angular_core.InputSignal<AXConversation>;
|
|
5518
5602
|
/** Service input */
|
|
@@ -5523,13 +5607,14 @@ declare class AXConversationInfoBarSearchComponent {
|
|
|
5523
5607
|
readonly resultsCount: _angular_core.Signal<number>;
|
|
5524
5608
|
/** Current index from service */
|
|
5525
5609
|
readonly currentIndex: _angular_core.Signal<number>;
|
|
5526
|
-
|
|
5527
|
-
|
|
5610
|
+
private readonly searchResults;
|
|
5611
|
+
private searchDebounceTimer?;
|
|
5528
5612
|
private scrollTimer?;
|
|
5613
|
+
private searchRequestId;
|
|
5529
5614
|
constructor();
|
|
5530
5615
|
/** Handle search input change */
|
|
5531
5616
|
onSearchChange(value: string): void;
|
|
5532
|
-
/** Perform search in messages */
|
|
5617
|
+
/** Perform server-side search in messages */
|
|
5533
5618
|
private performSearch;
|
|
5534
5619
|
/** Navigate to next result */
|
|
5535
5620
|
onNext(): void;
|
|
@@ -5734,11 +5819,6 @@ declare function syncPlaybackInfoBarBanner(infoBar: AXConversationInfoBarService
|
|
|
5734
5819
|
forceOpen?: boolean;
|
|
5735
5820
|
}): void;
|
|
5736
5821
|
|
|
5737
|
-
/**
|
|
5738
|
-
* Shared layout tokens for conversation message renderers.
|
|
5739
|
-
*/
|
|
5740
|
-
declare const AX_CONVERSATION_RENDERER_SHARED_STYLES = "\n :host {\n display: block;\n max-width: 100%;\n }\n\n .ax-conversation-msg {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n }\n\n .ax-conversation-msg__stack {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n }\n\n .ax-conversation-msg__grid {\n display: grid;\n gap: 2px;\n width: 100%;\n border-radius: var(--ax-sys-border-radius, 0.5rem);\n overflow: hidden;\n background: rgb(var(--ax-sys-color-border-light-surface));\n }\n\n .ax-conversation-msg__grid--single {\n grid-template-columns: 1fr;\n }\n\n .ax-conversation-msg__grid--single ::ng-deep .ax-conversation-image-attachment {\n max-height: min(50dvh, 20rem);\n }\n\n .ax-conversation-msg__grid--dual {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .ax-conversation-msg__grid--multi {\n grid-template-columns: repeat(3, 1fr);\n grid-auto-rows: 10rem;\n }\n\n @container (max-width: 380px) {\n .ax-conversation-msg__grid--multi {\n grid-template-columns: repeat(2, 1fr);\n grid-auto-rows: 10rem;\n }\n }\n\n .ax-conversation-msg__caption {\n margin: 0;\n padding: 0 0.125rem;\n font-size: 0.8125rem;\n line-height: 1.4;\n word-break: break-word;\n opacity: 0.88;\n }\n\n /* Flush layout: media fills the message bubble edge-to-edge (image / video). */\n .ax-conversation-msg--flush {\n width: 100%;\n max-width: 100%;\n gap: 0;\n }\n\n .ax-conversation-msg--flush .ax-conversation-msg__caption {\n padding: 0.375rem 0.625rem 0;\n }\n\n .ax-conversation-msg--flush .ax-conversation-msg__grid {\n border-radius: 0;\n background: transparent;\n }\n\n .ax-conversation-msg--flush .ax-conversation-msg__stack {\n gap: 2px;\n }\n\n .ax-conversation-msg--flush ::ng-deep .ax-conversation-video {\n border-radius: 0;\n }\n\n .ax-conversation-msg__card {\n border-radius: var(--ax-sys-border-radius, 0.5rem);\n border: 1px solid rgb(var(--ax-sys-color-border-light-surface));\n background: rgb(var(--ax-sys-color-surface));\n overflow: hidden;\n }\n";
|
|
5741
|
-
|
|
5742
5822
|
declare class AXConversationVideoAttachmentComponent {
|
|
5743
5823
|
readonly item: _angular_core.InputSignal<AXConversationVideoMediaItem>;
|
|
5744
5824
|
readonly playingChange: _angular_core.OutputEmitterRef<boolean>;
|
|
@@ -6785,5 +6865,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
|
|
|
6785
6865
|
*/
|
|
6786
6866
|
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'];
|
|
6787
6867
|
|
|
6788
|
-
export { AXConversationAiResponderService, AXConversationApi, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationInfoMediaViewComponent, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryService, AXConversationService, AXConversationSharedStorage, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_ALL_CONVERSATION_COMPOSER_TABS, AX_ALL_CONVERSATION_MEDIA_PICKERS, AX_CONVERSATION_AI_API_KEY, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, 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_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_CURSOR_PREFIX, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE,
|
|
6789
|
-
export type { AXConversation, AXConversationAiResponderConfig, AXConversationApiError, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCallEvent, AXConversationChatCursorKind, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerActiveComponent, AXConversationComposerPickerUploadItem, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionEvent, AXConversationConnectionOptions, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDeleteMessageCommand, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationIndexedDbMediaRecord, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPickerFeature, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListEmptyComponent, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationNotificationEvent, AXConversationOptions, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParsedChatCursor, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantStatus, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUserAvatarComponent, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserRole, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
|
|
6868
|
+
export { AXConversationAiResponderService, AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationInfoMediaViewComponent, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryService, AXConversationService, AXConversationSharedStorage, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_ALL_CONVERSATION_COMPOSER_TABS, AX_ALL_CONVERSATION_MEDIA_PICKERS, AX_CONVERSATION_AI_API_KEY, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, 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_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_CURSOR_PREFIX, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_CURSOR_PREFIX, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_MESSAGE_PAGINATION_CONVERSATION_ID, abortPickerUploads, applyAudioLocalPreview, applyConversationFilters, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, axConversationIndexedDbStorage, axConversationSharedStorage, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, encodeConversationCursor, encodeMessageCursor, ensurePaginationDemoData, fetchConversationMediaMessages, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationLastActivity, getConversationMediaCategories, getConversationMessagesNewestFirst, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, getSortedConversationsForInbox, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isGenericPrivateConversationTitle, isGridMediaCategory, isMediaPickerEnabled, isMessageDeliveryPending, isNonPersistableMediaUrl, isPickerItemReadyToSend, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAllConversationMessageIndexes, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessagePayload, normalizeMessagePayloadAsync, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, paginateChatNewestFirst, paginateChatOldestFirst, parseChatCursor, pickDisplayMediaUrl, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerChatMessage, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMediaPickers, resolveConversationMessageFileType, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, seedPickerInitialFiles, seedSharedStorageInitialData, shouldUseUserAvatarForConversation, sortConversationMessageIds, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, unregisterChatMessage, uploadPickerFile, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
|
|
6869
|
+
export type { AXConversation, AXConversationAiResponderConfig, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCallEvent, AXConversationChatCursorKind, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerActiveComponent, AXConversationComposerPickerUploadItem, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionEvent, AXConversationConnectionOptions, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDeleteMessageCommand, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationIndexedDbMediaRecord, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMediaPickerFeature, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListEmptyComponent, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationNotificationEvent, AXConversationOptions, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParsedChatCursor, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantStatus, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUserAvatarComponent, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserRole, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
|