@acorex/components 22.2.11 → 22.2.13
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/emoji/README.md +3 -0
- package/emojipicker/README.md +3 -0
- package/fesm2022/acorex-components-bubble.mjs +71 -0
- package/fesm2022/acorex-components-bubble.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-acorex-components-conversation-BTrREOwX.mjs → acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs} +650 -220
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DhSMH-wA.mjs → acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs} +2 -2
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DhSMH-wA.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-data-table.mjs +149 -42
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-emoji.mjs +74 -0
- package/fesm2022/acorex-components-emoji.mjs.map +1 -0
- package/fesm2022/acorex-components-emojipicker.mjs +425 -0
- package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
- package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
- package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-message-status.mjs +71 -0
- package/fesm2022/acorex-components-message-status.mjs.map +1 -0
- package/fesm2022/acorex-components-message-time.mjs +36 -0
- package/fesm2022/acorex-components-message-time.mjs.map +1 -0
- package/fesm2022/acorex-components-message.mjs +120 -0
- package/fesm2022/acorex-components-message.mjs.map +1 -0
- package/fesm2022/acorex-components-reaction.mjs +144 -0
- package/fesm2022/acorex-components-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/inline-reaction/README.md +3 -0
- package/message/README.md +3 -0
- package/message-status/README.md +3 -0
- package/message-time/README.md +3 -0
- package/package.json +35 -3
- package/reaction/README.md +3 -0
- package/types/acorex-components-bubble.d.ts +31 -0
- package/types/acorex-components-conversation.d.ts +86 -14
- package/types/acorex-components-data-table.d.ts +44 -2
- package/types/acorex-components-emoji.d.ts +42 -0
- package/types/acorex-components-emojipicker.d.ts +146 -0
- package/types/acorex-components-inline-reaction.d.ts +52 -0
- package/types/acorex-components-message-status.d.ts +23 -0
- package/types/acorex-components-message-time.d.ts +19 -0
- package/types/acorex-components-message.d.ts +59 -0
- package/types/acorex-components-reaction.d.ts +85 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-BTrREOwX.mjs.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
|
|
5
|
+
declare class AXMessageTimeComponent implements OnInit {
|
|
6
|
+
constructor();
|
|
7
|
+
time: i0.InputSignal<string>;
|
|
8
|
+
ngOnInit(): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMessageTimeComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMessageTimeComponent, "ax-message-time", never, { "time": { "alias": "time"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare class AXMessageTimeModule {
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMessageTimeModule, never>;
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMessageTimeModule, never, [typeof i1.CommonModule], never>;
|
|
16
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXMessageTimeModule>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { AXMessageTimeComponent, AXMessageTimeModule };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import { AXMenuItem, AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
|
|
4
|
+
import { AXEmoji } from '@acorex/core/constants';
|
|
5
|
+
import { MessageStatus } from '@acorex/components/message-status';
|
|
6
|
+
|
|
7
|
+
type AXMessageLayout = 'ping-pong' | 'stack';
|
|
8
|
+
type AXBubbleTail = 'none' | 'start' | 'end';
|
|
9
|
+
/** @deprecated Use AXMessageLayout. Kept for backward compatibility in data models. */
|
|
10
|
+
type AXMessageAlign = 'start' | 'end';
|
|
11
|
+
interface AXMessageTemplateContext<T> {
|
|
12
|
+
$implicit: T;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class AXMessageComponent<T = unknown> {
|
|
16
|
+
templateData: _angular_core.InputSignal<T>;
|
|
17
|
+
itemTemplate: _angular_core.InputSignal<TemplateRef<AXMessageTemplateContext<T>>>;
|
|
18
|
+
layout: _angular_core.InputSignal<AXMessageLayout>;
|
|
19
|
+
/** Own message: aligned end in ping-pong and styled via inner ax-bubble. */
|
|
20
|
+
isown: _angular_core.InputSignal<boolean>;
|
|
21
|
+
text: _angular_core.InputSignal<string>;
|
|
22
|
+
avatarSrc: _angular_core.InputSignal<string>;
|
|
23
|
+
avatarSize: _angular_core.InputSignal<number>;
|
|
24
|
+
showAvatar: _angular_core.InputSignal<boolean>;
|
|
25
|
+
status: _angular_core.InputSignal<MessageStatus>;
|
|
26
|
+
time: _angular_core.InputSignal<string>;
|
|
27
|
+
/** Quick reactions shown in the context menu header. */
|
|
28
|
+
quickReactions: _angular_core.InputSignal<readonly AXEmoji[]>;
|
|
29
|
+
/** Context menu action items. Parent can also append via `contextMenuOpening`. */
|
|
30
|
+
contextMenuItems: _angular_core.InputSignal<readonly AXMenuItem[]>;
|
|
31
|
+
/** Whether right-click context menu is enabled on the bubble. */
|
|
32
|
+
contextMenuEnabled: _angular_core.InputSignal<boolean>;
|
|
33
|
+
/** Emoji size in pixels inside the context menu reaction bar. */
|
|
34
|
+
reactionSize: _angular_core.InputSignal<number>;
|
|
35
|
+
/** Emits when a quick reaction or picker emoji is selected from the context menu. */
|
|
36
|
+
reactionSelected: _angular_core.OutputEmitterRef<AXEmoji>;
|
|
37
|
+
/** Emits while the context menu opens so the parent can customize `event.items`. */
|
|
38
|
+
contextMenuOpening: _angular_core.OutputEmitterRef<AXContextMenuOpeningEvent>;
|
|
39
|
+
/** Emits when a context menu action item is clicked. */
|
|
40
|
+
menuItemClick: _angular_core.OutputEmitterRef<AXContextMenuItemsClickEvent>;
|
|
41
|
+
private readonly contextMenu;
|
|
42
|
+
protected readonly hasTemplate: _angular_core.Signal<boolean>;
|
|
43
|
+
protected readonly showReactionBar: _angular_core.Signal<boolean>;
|
|
44
|
+
protected readonly hostClass: _angular_core.Signal<string>;
|
|
45
|
+
protected onContextMenuOpening(event: AXContextMenuOpeningEvent): void;
|
|
46
|
+
protected onReactionSelected(emoji: AXEmoji): void;
|
|
47
|
+
protected onMenuItemClick(event: AXContextMenuItemsClickEvent): void;
|
|
48
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMessageComponent<any>, never>;
|
|
49
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMessageComponent<any>, "ax-message", never, { "templateData": { "alias": "templateData"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "isown": { "alias": "isown"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarSize": { "alias": "avatarSize"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "time": { "alias": "time"; "required": false; "isSignal": true; }; "quickReactions": { "alias": "quickReactions"; "required": false; "isSignal": true; }; "contextMenuItems": { "alias": "contextMenuItems"; "required": false; "isSignal": true; }; "contextMenuEnabled": { "alias": "contextMenuEnabled"; "required": false; "isSignal": true; }; "reactionSize": { "alias": "reactionSize"; "required": false; "isSignal": true; }; }, { "reactionSelected": "reactionSelected"; "contextMenuOpening": "contextMenuOpening"; "menuItemClick": "menuItemClick"; }, never, ["*"], true, never>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
declare class AXMessageModule {
|
|
53
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMessageModule, never>;
|
|
54
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMessageModule, never, [typeof AXMessageComponent], [typeof AXMessageComponent]>;
|
|
55
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMessageModule>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { AXMessageComponent, AXMessageModule };
|
|
59
|
+
export type { AXBubbleTail, AXMessageAlign, AXMessageLayout, AXMessageTemplateContext };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AXEmoji } from '@acorex/core/constants';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A single aggregated reaction shown by {@link AXReactionComponent}.
|
|
6
|
+
*/
|
|
7
|
+
interface AXReactionItem {
|
|
8
|
+
/** Emoji metadata rendered with {@link AXEmojiComponent}. */
|
|
9
|
+
emoji: AXEmoji;
|
|
10
|
+
/** Number of users who reacted with this emoji. */
|
|
11
|
+
count: number;
|
|
12
|
+
/** Whether the current user has selected this reaction. */
|
|
13
|
+
selected?: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Telegram-style reaction chips for chat messages.
|
|
18
|
+
* Renders emojis with {@link AXEmojiComponent} and opens {@link AXEmojiPickerComponent}
|
|
19
|
+
* inside {@link AXPopoverComponent} when editable.
|
|
20
|
+
*
|
|
21
|
+
* @category Components
|
|
22
|
+
*/
|
|
23
|
+
declare class AXReactionComponent {
|
|
24
|
+
/**
|
|
25
|
+
* Aggregated reactions to display.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue []
|
|
28
|
+
*/
|
|
29
|
+
readonly items: _angular_core.InputSignal<readonly AXReactionItem[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Rendered emoji size in pixels.
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue 18
|
|
34
|
+
*/
|
|
35
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
36
|
+
/**
|
|
37
|
+
* When true, reactions are interactive and an add button opens the emoji picker popover.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue false
|
|
40
|
+
*/
|
|
41
|
+
readonly editable: _angular_core.InputSignal<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* When true, the emoji picker popover is opened.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue false
|
|
46
|
+
*/
|
|
47
|
+
readonly showPicker: _angular_core.InputSignal<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Emits when the user selects a new reaction or an unselected existing one.
|
|
50
|
+
*/
|
|
51
|
+
readonly add: _angular_core.OutputEmitterRef<AXEmoji>;
|
|
52
|
+
/**
|
|
53
|
+
* Emits when the user removes their own reaction.
|
|
54
|
+
*/
|
|
55
|
+
readonly remove: _angular_core.OutputEmitterRef<AXEmoji>;
|
|
56
|
+
private readonly pickerPopover;
|
|
57
|
+
/** Whether the emoji picker popover is currently open. */
|
|
58
|
+
protected readonly pickerOpen: _angular_core.WritableSignal<boolean>;
|
|
59
|
+
/** Whether the add button should appear pressed while the picker is open. */
|
|
60
|
+
protected readonly isPickerVisible: _angular_core.Signal<boolean>;
|
|
61
|
+
constructor();
|
|
62
|
+
/** Toggles a reaction without mutating counts; parent owns state. */
|
|
63
|
+
protected onItemClick(item: AXReactionItem): void;
|
|
64
|
+
/** Opens or closes the emoji picker popover. */
|
|
65
|
+
protected togglePicker(event?: Event): void;
|
|
66
|
+
/** Forwards a picker selection as `add` and closes the popover. */
|
|
67
|
+
protected onPickerSelected(emoji: AXEmoji): void;
|
|
68
|
+
/** Syncs the add-button pressed state when the popover opens. */
|
|
69
|
+
protected onPickerOpened(): void;
|
|
70
|
+
/** Syncs the add-button pressed state when the popover closes. */
|
|
71
|
+
protected onPickerClosed(): void;
|
|
72
|
+
/** Accessible name for an existing reaction chip. */
|
|
73
|
+
protected itemAriaLabel(item: AXReactionItem): string;
|
|
74
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXReactionComponent, never>;
|
|
75
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXReactionComponent, "ax-reaction", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showPicker": { "alias": "showPicker"; "required": false; "isSignal": true; }; }, { "add": "add"; "remove": "remove"; }, never, never, true, never>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
declare class AXReactionModule {
|
|
79
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXReactionModule, never>;
|
|
80
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXReactionModule, never, [typeof AXReactionComponent], [typeof AXReactionComponent]>;
|
|
81
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXReactionModule>;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { AXReactionComponent, AXReactionModule };
|
|
85
|
+
export type { AXReactionItem };
|