@acorex/components 22.0.0-next.9 → 22.0.1-next.0
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 +35 -0
- package/emoji/README.md +3 -0
- package/emojipicker/README.md +3 -0
- package/fesm2022/acorex-components-accordion.mjs +4 -4
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +1 -0
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +291 -267
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-bubble.mjs +71 -0
- package/fesm2022/acorex-components-bubble.mjs.map +1 -0
- package/fesm2022/acorex-components-button-group.mjs +12 -5
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +6 -6
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +328 -127
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +2 -2
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +973 -0
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs +19058 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs +50 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs +87 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs +65 -0
- package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation.mjs +1 -22920
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +4 -4
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +310 -90
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +14 -16
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +61 -32
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +57 -11
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +7 -4
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +2 -2
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +4 -4
- package/fesm2022/acorex-components-dropdown.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-fab.mjs +5 -5
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-file-viewer.mjs +359 -109
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +22 -6
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +238 -36
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-highlight.mjs +80 -0
- package/fesm2022/acorex-components-highlight.mjs.map +1 -0
- package/fesm2022/acorex-components-image-editor.mjs +686 -416
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
- package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-kanban.mjs +1 -1
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.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-loading-dialog.mjs +59 -42
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +3505 -0
- package/fesm2022/acorex-components-lookup.mjs.map +1 -0
- package/fesm2022/acorex-components-map.mjs +9 -2
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +322 -79
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- 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-notification.mjs +13 -6
- package/fesm2022/acorex-components-notification.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-paint.mjs +1 -1
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +3 -3
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +40 -6
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +4 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +2 -2
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +2 -2
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-reaction.mjs +144 -0
- package/fesm2022/acorex-components-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-rest-api-generator.mjs +5 -5
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +1 -1
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +5 -5
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +12 -22
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +55 -18
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +3 -4
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +2 -2
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +510 -74
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +2 -2
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +9 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +2 -2
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +86 -6
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +76 -6
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/highlight/README.md +13 -0
- package/inline-reaction/README.md +3 -0
- package/lookup/README.md +74 -0
- package/message/README.md +3 -0
- package/message-status/README.md +3 -0
- package/message-time/README.md +3 -0
- package/package.json +51 -16
- package/reaction/README.md +3 -0
- package/select-box/README.md +5 -0
- package/types/acorex-components-action-sheet.d.ts +9 -1
- package/types/acorex-components-audio-wave.d.ts +132 -73
- package/types/acorex-components-bubble.d.ts +31 -0
- package/types/acorex-components-button-group.d.ts +4 -0
- package/types/acorex-components-button.d.ts +1 -1
- package/types/acorex-components-calendar.d.ts +41 -9
- package/types/acorex-components-combo-box.d.ts +310 -0
- package/types/acorex-components-conversation.d.ts +1806 -1790
- package/types/acorex-components-data-table.d.ts +74 -12
- package/types/acorex-components-datetime-box.d.ts +2 -0
- package/types/acorex-components-datetime-input.d.ts +24 -5
- package/types/acorex-components-decorators.d.ts +14 -1
- package/types/acorex-components-dialog.d.ts +9 -0
- package/types/acorex-components-emoji.d.ts +42 -0
- package/types/acorex-components-emojipicker.d.ts +146 -0
- package/types/acorex-components-file-viewer.d.ts +48 -4
- package/types/acorex-components-grid-layout-builder.d.ts +34 -2
- package/types/acorex-components-highlight.d.ts +31 -0
- package/types/acorex-components-image-editor.d.ts +68 -48
- package/types/acorex-components-inline-reaction.d.ts +52 -0
- package/types/acorex-components-loading-dialog.d.ts +12 -4
- package/types/acorex-components-lookup.d.ts +962 -0
- package/types/acorex-components-map.d.ts +5 -0
- package/types/acorex-components-menu.d.ts +43 -7
- 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-notification.d.ts +11 -1
- package/types/acorex-components-number-box.d.ts +3 -1
- package/types/acorex-components-popover.d.ts +12 -1
- package/types/acorex-components-popup.d.ts +9 -1
- package/types/acorex-components-reaction.d.ts +85 -0
- package/types/acorex-components-scheduler.d.ts +2 -4
- package/types/acorex-components-select-box.d.ts +21 -4
- package/types/acorex-components-selection-list.d.ts +1 -1
- package/types/acorex-components-tabs.d.ts +148 -19
- package/types/acorex-components-toast.d.ts +10 -1
- package/types/acorex-components-tree-view.d.ts +39 -2
- package/types/acorex-components-wysiwyg.d.ts +13 -0
- 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
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs +0 -223
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs.map +0 -1
- package/fesm2022/acorex-components-flow-chart.mjs +0 -735
- package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
- package/fesm2022/acorex-components-query-builder.mjs +0 -267
- package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +0 -168
- package/fesm2022/acorex-components-selection-list-2.mjs.map +0 -1
- package/flow-chart/README.md +0 -3
- package/query-builder/README.md +0 -3
- package/selection-list-2/README.md +0 -3
- package/types/acorex-components-flow-chart.d.ts +0 -187
- package/types/acorex-components-query-builder.d.ts +0 -52
- package/types/acorex-components-selection-list-2.d.ts +0 -52
|
@@ -155,6 +155,7 @@ declare abstract class AXBaseDataTable extends MXBaseComponent {
|
|
|
155
155
|
set highlightText(value: string | undefined);
|
|
156
156
|
selectedRowsChange: EventEmitter<unknown[]>;
|
|
157
157
|
protected readonly highlightedRows: WritableSignal<Map<string | number, AXDataTableRowHighlight>>;
|
|
158
|
+
protected readonly highlightedColumns: WritableSignal<Map<string, AXDataTableRowColorType>>;
|
|
158
159
|
private readonly rowCssClassCache;
|
|
159
160
|
private readonly cellCssClassCache;
|
|
160
161
|
private readonly highlightService;
|
|
@@ -180,9 +181,44 @@ declare abstract class AXBaseDataTable extends MXBaseComponent {
|
|
|
180
181
|
*/
|
|
181
182
|
highlightRows(rows: unknown[], options?: AXDataTableRowHighlightOptions): void;
|
|
182
183
|
/**
|
|
183
|
-
*
|
|
184
|
+
* Applies a color highlight to rows by their key (id) values.
|
|
185
|
+
* Unlike `highlightRow`, no badge, pulse, or pinning is applied.
|
|
186
|
+
*
|
|
187
|
+
* @param keys - Key (id) values of the rows to highlight.
|
|
188
|
+
* @param color - Semantic highlight color. @defaultValue `'primary'`
|
|
189
|
+
*/
|
|
190
|
+
highlightRowsByKey(keys: (string | number)[], color?: AXDataTableRowColorType): void;
|
|
191
|
+
/**
|
|
192
|
+
* Clears temporary row highlights.
|
|
193
|
+
*
|
|
194
|
+
* @param keys - When provided, only highlights of rows with these key (id) values are cleared.
|
|
195
|
+
*/
|
|
196
|
+
clearRowHighlights(keys?: (string | number)[]): void;
|
|
197
|
+
/**
|
|
198
|
+
* Applies a color highlight to one or more columns.
|
|
199
|
+
*
|
|
200
|
+
* @param columnNames - Column identifiers; either the column `name` (e.g. `cl-firstName`) or its `dataField`.
|
|
201
|
+
* @param color - Semantic highlight color. @defaultValue `'primary'`
|
|
202
|
+
*/
|
|
203
|
+
highlightColumns(columnNames: string | string[], color?: AXDataTableRowColorType): void;
|
|
204
|
+
/**
|
|
205
|
+
* Clears column highlights.
|
|
206
|
+
*
|
|
207
|
+
* @param columnNames - When provided, only highlights of these columns are cleared.
|
|
208
|
+
*/
|
|
209
|
+
clearColumnHighlights(columnNames?: string | string[]): void;
|
|
210
|
+
/**
|
|
211
|
+
* Returns the highlight color of a column, if any.
|
|
212
|
+
*/
|
|
213
|
+
getColumnHighlightColor(column: AXDataTableColumnComponent): AXDataTableRowColorType | null;
|
|
214
|
+
/**
|
|
215
|
+
* Returns the CSS class of a highlighted column, applied to its header and body cells.
|
|
184
216
|
*/
|
|
185
|
-
|
|
217
|
+
getColumnCssClass(column: AXDataTableColumnComponent): string;
|
|
218
|
+
/**
|
|
219
|
+
* Header `<th>` classes: column highlight + column `cssClass` (e.g. `ax-select-column`).
|
|
220
|
+
*/
|
|
221
|
+
getHeadColumnCssClass(column: AXDataTableColumnComponent): string;
|
|
186
222
|
/**
|
|
187
223
|
* Returns the temporary highlight state for a row, if any.
|
|
188
224
|
*/
|
|
@@ -200,7 +236,7 @@ declare abstract class AXBaseDataTable extends MXBaseComponent {
|
|
|
200
236
|
*/
|
|
201
237
|
getRowCssClass(row: unknown, rowIndex: number): string;
|
|
202
238
|
/**
|
|
203
|
-
* Returns CSS classes for a body cell, merging column `cssClass
|
|
239
|
+
* Returns CSS classes for a body cell, merging column `cssClass`, column highlight, and `cellCssClass`.
|
|
204
240
|
*/
|
|
205
241
|
getCellCssClass(row: unknown, column: AXDataTableColumnComponent, rowIndex: number): string;
|
|
206
242
|
/**
|
|
@@ -350,6 +386,10 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
|
|
|
350
386
|
* @defaultValue false
|
|
351
387
|
*/
|
|
352
388
|
wrapText: boolean;
|
|
389
|
+
/**
|
|
390
|
+
* When `true`, cell values are resolved as i18n expressions (e.g. `@acorex:common.actions.cancel`).
|
|
391
|
+
*/
|
|
392
|
+
translate: boolean;
|
|
353
393
|
/**
|
|
354
394
|
* Provides a custom template for rendering cells within the column.
|
|
355
395
|
*/
|
|
@@ -396,7 +436,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
|
|
|
396
436
|
/**
|
|
397
437
|
* @ignore
|
|
398
438
|
*/
|
|
399
|
-
protected handleExpandRow(row: any): Promise<void>;
|
|
439
|
+
protected handleExpandRow(row: any, event?: Event): Promise<void>;
|
|
400
440
|
/**
|
|
401
441
|
* Generates a unique name based on the `dataField` value.
|
|
402
442
|
*/
|
|
@@ -409,6 +449,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
|
|
|
409
449
|
* @ignore
|
|
410
450
|
*/
|
|
411
451
|
private formatService;
|
|
452
|
+
private translationService;
|
|
412
453
|
protected getDisplayText(rowData: unknown, dataField: string): string;
|
|
413
454
|
/**
|
|
414
455
|
* Defines the format string for displaying values in the component.
|
|
@@ -419,7 +460,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
|
|
|
419
460
|
*/
|
|
420
461
|
formatOptions: AXFormatOptions;
|
|
421
462
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableTextColumnComponent, never>;
|
|
422
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "hasTitle": { "alias": "hasTitle"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, true, never>;
|
|
463
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "hasTitle": { "alias": "hasTitle"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "translate": { "alias": "translate"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, true, never>;
|
|
423
464
|
}
|
|
424
465
|
|
|
425
466
|
type AXRowCommandItem = AXButtonItemListItem & {
|
|
@@ -609,7 +650,7 @@ declare class AXRowExpandColumnComponent extends AXDataTableColumnComponent {
|
|
|
609
650
|
/**
|
|
610
651
|
* @ignore
|
|
611
652
|
*/
|
|
612
|
-
protected handleExpandRow(row: any): Promise<void>;
|
|
653
|
+
protected handleExpandRow(row: any, event?: Event): Promise<void>;
|
|
613
654
|
/**
|
|
614
655
|
* Indicates whether loading is enabled for the column.
|
|
615
656
|
*/
|
|
@@ -821,15 +862,21 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
|
|
|
821
862
|
* @ignore
|
|
822
863
|
*/
|
|
823
864
|
protected normalColumnsList: Signal<any[]>;
|
|
865
|
+
/**
|
|
866
|
+
* True when a text column owns the tree expander. That column stays `width: auto`
|
|
867
|
+
* so leftover table space is used for nested indent instead of the empty spacer.
|
|
868
|
+
*/
|
|
869
|
+
protected hasTreeFillColumn: Signal<boolean>;
|
|
824
870
|
/**
|
|
825
871
|
* @ignore
|
|
826
872
|
*/
|
|
827
873
|
protected resizeColumnProp: {
|
|
828
874
|
startX: number;
|
|
829
875
|
startWidth: number;
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
876
|
+
column: AXDataTableColumnComponent | null;
|
|
877
|
+
thElement: HTMLElement | null;
|
|
878
|
+
/** True when the resize handle sits on the column's trailing edge in screen coordinates. */
|
|
879
|
+
resizeFromTrailingEdge: boolean;
|
|
833
880
|
};
|
|
834
881
|
/**
|
|
835
882
|
* Columns that used `width="auto"` and received header-only sizing before rows were available.
|
|
@@ -1019,11 +1066,16 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
|
|
|
1019
1066
|
* @ignore
|
|
1020
1067
|
*/
|
|
1021
1068
|
ngOnInit(): void;
|
|
1069
|
+
private applyLoadedRows;
|
|
1022
1070
|
/**
|
|
1023
1071
|
* @ignore
|
|
1024
1072
|
*/
|
|
1025
1073
|
ngAfterViewInit(): void;
|
|
1026
1074
|
private captureAutoFitIntentColumns;
|
|
1075
|
+
/**
|
|
1076
|
+
* Tree expand columns must keep `width: auto` so nested indent can use leftover table space.
|
|
1077
|
+
*/
|
|
1078
|
+
private isTreeFillColumn;
|
|
1027
1079
|
/**
|
|
1028
1080
|
* Returns the display text for a cell. Used for the cell tooltip when the column has `hasTitle`.
|
|
1029
1081
|
*/
|
|
@@ -1040,10 +1092,20 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
|
|
|
1040
1092
|
protected toggleExpanded(rows: any[], expandedItem: any, children: any[]): any[];
|
|
1041
1093
|
protected refreshExpandedItem(id: string | number): Promise<void>;
|
|
1042
1094
|
private updateChildren;
|
|
1095
|
+
/**
|
|
1096
|
+
* CDK sort-predicate indices follow physical left-to-right order; map them to `columnsList` order.
|
|
1097
|
+
* @ignore
|
|
1098
|
+
*/
|
|
1099
|
+
private cdkSortIndexToColumnIndex;
|
|
1100
|
+
/**
|
|
1101
|
+
* Restricts column reordering to non-fixed columns only.
|
|
1102
|
+
* @ignore
|
|
1103
|
+
*/
|
|
1104
|
+
protected columnReorderSortPredicate: (index: number) => boolean;
|
|
1043
1105
|
/**
|
|
1044
1106
|
* @ignore
|
|
1045
1107
|
*/
|
|
1046
|
-
protected drop(event: CdkDragDrop<
|
|
1108
|
+
protected drop(event: CdkDragDrop<AXDataTableColumnComponent>): void;
|
|
1047
1109
|
/**
|
|
1048
1110
|
* @ignore
|
|
1049
1111
|
*/
|
|
@@ -1107,11 +1169,11 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
|
|
|
1107
1169
|
* @param columnIndex - The index of the column to auto-fit
|
|
1108
1170
|
* @ignore
|
|
1109
1171
|
*/
|
|
1110
|
-
protected onResizeHandlerDoubleClick(event: MouseEvent,
|
|
1172
|
+
protected onResizeHandlerDoubleClick(event: MouseEvent, column: AXDataTableColumnComponent): void;
|
|
1111
1173
|
/**
|
|
1112
1174
|
* @ignore
|
|
1113
1175
|
*/
|
|
1114
|
-
protected onResizeColumnStart(event: MouseEvent,
|
|
1176
|
+
protected onResizeColumnStart(event: MouseEvent, column: AXDataTableColumnComponent): void;
|
|
1115
1177
|
/**
|
|
1116
1178
|
* @ignore
|
|
1117
1179
|
*/
|
|
@@ -37,6 +37,7 @@ declare const AXDateTimeBoxComponent_base: polytype.Polytype.ClusteredConstructo
|
|
|
37
37
|
* @category Components
|
|
38
38
|
*/
|
|
39
39
|
declare class AXDateTimeBoxComponent extends AXDateTimeBoxComponent_base {
|
|
40
|
+
private readonly defaultConfig;
|
|
40
41
|
/**
|
|
41
42
|
* @ignore
|
|
42
43
|
*/
|
|
@@ -59,6 +60,7 @@ declare class AXDateTimeBoxComponent extends AXDateTimeBoxComponent_base {
|
|
|
59
60
|
* Indicates whether typing is allowed in the input.
|
|
60
61
|
* When false, clicking the input (or the calendar icon) opens the picker.
|
|
61
62
|
* When true, the input is for typing and the picker opens from the calendar button.
|
|
63
|
+
* Defaults to `AX_DATETIME_INPUT_CONFIG.allowTyping` when not set on the instance.
|
|
62
64
|
*
|
|
63
65
|
* @defaultValue false
|
|
64
66
|
*/
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
2
3
|
import { MXInputBaseValueComponent, AXClickEvent } from '@acorex/cdk/common';
|
|
3
4
|
import { AXDateTimePickerType } from '@acorex/components/calendar';
|
|
5
|
+
import { AXLocaleProfile } from '@acorex/core/locale';
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* A component for date and time input with segment-based typing, keyboard navigation,
|
|
@@ -10,9 +12,9 @@ import { AXDateTimePickerType } from '@acorex/components/calendar';
|
|
|
10
12
|
*/
|
|
11
13
|
declare class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {
|
|
12
14
|
#private;
|
|
13
|
-
private platformService;
|
|
14
15
|
private localeService;
|
|
15
16
|
private calendarService;
|
|
17
|
+
private readonly defaultConfig;
|
|
16
18
|
/** @ignore */
|
|
17
19
|
private readonly _editingParts;
|
|
18
20
|
/** @ignore */
|
|
@@ -24,6 +26,7 @@ declare class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {
|
|
|
24
26
|
/**
|
|
25
27
|
* When true, the user can type digits and navigate segments with the keyboard.
|
|
26
28
|
* When false, keyboard input is blocked (used by datetime-box picker mode).
|
|
29
|
+
* Defaults to `AX_DATETIME_INPUT_CONFIG.allowTyping` when not set on the instance.
|
|
27
30
|
* @defaultValue false
|
|
28
31
|
*/
|
|
29
32
|
allowTyping: _angular_core.InputSignal<boolean>;
|
|
@@ -46,6 +49,8 @@ declare class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {
|
|
|
46
49
|
protected readonly _calendarSystem: _angular_core.Signal<string>;
|
|
47
50
|
protected readonly _resolvedFormat: _angular_core.Signal<string>;
|
|
48
51
|
/** @ignore */
|
|
52
|
+
protected readonly _isHijriRtl: _angular_core.Signal<boolean>;
|
|
53
|
+
/** @ignore */
|
|
49
54
|
private _editingDate;
|
|
50
55
|
/** @ignore */
|
|
51
56
|
private inputRef;
|
|
@@ -54,9 +59,7 @@ declare class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {
|
|
|
54
59
|
/**
|
|
55
60
|
* @description check if page is in rtl or ltr
|
|
56
61
|
*/
|
|
57
|
-
protected isRtl: _angular_core.
|
|
58
|
-
/** @ignore */
|
|
59
|
-
protected ngOnInit(): void;
|
|
62
|
+
protected readonly isRtl: _angular_core.Signal<boolean>;
|
|
60
63
|
/**
|
|
61
64
|
* Formats a part using the calendar already attached to the AXDateTime.
|
|
62
65
|
* @ignore
|
|
@@ -67,6 +70,8 @@ declare class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {
|
|
|
67
70
|
/** @ignore */
|
|
68
71
|
private _getOrderedParts;
|
|
69
72
|
/** @ignore */
|
|
73
|
+
private _getNavigationParts;
|
|
74
|
+
/** @ignore */
|
|
70
75
|
private _clearInputBuffer;
|
|
71
76
|
/** @ignore */
|
|
72
77
|
private _updateText;
|
|
@@ -108,10 +113,24 @@ declare class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {
|
|
|
108
113
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXDateTimeInputComponent, "ax-datetime-input", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "allowTyping": { "alias": "allowTyping"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "picker": { "alias": "picker"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; "onClick": "onClick"; }, never, ["ax-validation-rule"], true, never>;
|
|
109
114
|
}
|
|
110
115
|
|
|
116
|
+
interface AXDateTimeInputConfig {
|
|
117
|
+
allowTyping: boolean;
|
|
118
|
+
}
|
|
119
|
+
declare const AXDateTimeInputDefaultConfig: AXDateTimeInputConfig;
|
|
120
|
+
declare const AX_DATETIME_INPUT_CONFIG: InjectionToken<AXDateTimeInputConfig>;
|
|
121
|
+
declare function resolveDateTimeInputFormat(options: {
|
|
122
|
+
customFormat: string | null | undefined;
|
|
123
|
+
calendarSystem: string;
|
|
124
|
+
picker: AXDateTimePickerType;
|
|
125
|
+
isRtl: boolean;
|
|
126
|
+
localeFormats: AXLocaleProfile['formats'];
|
|
127
|
+
}): string;
|
|
128
|
+
|
|
111
129
|
declare class AXDateTimeInputModule {
|
|
112
130
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXDateTimeInputModule, never>;
|
|
113
131
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXDateTimeInputModule, never, [typeof AXDateTimeInputComponent], [typeof AXDateTimeInputComponent]>;
|
|
114
132
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXDateTimeInputModule>;
|
|
115
133
|
}
|
|
116
134
|
|
|
117
|
-
export { AXDateTimeInputComponent, AXDateTimeInputModule };
|
|
135
|
+
export { AXDateTimeInputComponent, AXDateTimeInputDefaultConfig, AXDateTimeInputModule, AX_DATETIME_INPUT_CONFIG, resolveDateTimeInputFormat };
|
|
136
|
+
export type { AXDateTimeInputConfig };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MXBaseComponent, AXSurfaceType } from '@acorex/cdk/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
+
import { AXFullScreenMode } from '@acorex/core/full-screen';
|
|
3
4
|
import * as i1 from '@angular/common';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -8,6 +9,7 @@ import * as i1 from '@angular/common';
|
|
|
8
9
|
* @category Components
|
|
9
10
|
*/
|
|
10
11
|
declare class AXDecoratorClearButtonComponent extends MXBaseComponent {
|
|
12
|
+
#private;
|
|
11
13
|
private _parent;
|
|
12
14
|
/**
|
|
13
15
|
* @ignore
|
|
@@ -75,10 +77,21 @@ declare class AXDecoratorFullScreenButtonComponent extends MXBaseComponent {
|
|
|
75
77
|
#private;
|
|
76
78
|
private readonly fullScreenService;
|
|
77
79
|
private readonly elementRef;
|
|
80
|
+
/**
|
|
81
|
+
* Target element to fullscreen. Falls back to the closest decorated parent when omitted.
|
|
82
|
+
*/
|
|
78
83
|
element: i0.ModelSignal<HTMLElement>;
|
|
84
|
+
/**
|
|
85
|
+
* Whether fullscreen mode is active.
|
|
86
|
+
*/
|
|
79
87
|
isActive: i0.ModelSignal<boolean>;
|
|
88
|
+
/**
|
|
89
|
+
* Fullscreen implementation mode.
|
|
90
|
+
* @defaultValue 'overlay'
|
|
91
|
+
*/
|
|
92
|
+
mode: i0.InputSignal<AXFullScreenMode>;
|
|
80
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXDecoratorFullScreenButtonComponent, never>;
|
|
81
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXDecoratorFullScreenButtonComponent, "ax-fullscreen-button", never, { "element": { "alias": "element"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; }, { "element": "elementChange"; "isActive": "isActiveChange"; }, never, never, true, never>;
|
|
94
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXDecoratorFullScreenButtonComponent, "ax-fullscreen-button", never, { "element": { "alias": "element"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "element": "elementChange"; "isActive": "isActiveChange"; }, never, never, true, never>;
|
|
82
95
|
}
|
|
83
96
|
|
|
84
97
|
/**
|
|
@@ -2,6 +2,7 @@ import * as i2 from '@acorex/cdk/common';
|
|
|
2
2
|
import { AXStyleColorType, AXStyleLookType, AXHotKeyAction, MXBaseComponent } from '@acorex/cdk/common';
|
|
3
3
|
import { AXOverlayRef } from '@acorex/cdk/overlay';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
+
import { ElementRef } from '@angular/core';
|
|
5
6
|
import * as i1 from '@angular/common';
|
|
6
7
|
import * as i3 from '@angular/cdk/drag-drop';
|
|
7
8
|
import * as i4 from '@angular/cdk/a11y';
|
|
@@ -34,6 +35,14 @@ interface AXDialogConfig {
|
|
|
34
35
|
icon?: string | 'none';
|
|
35
36
|
draggable?: boolean;
|
|
36
37
|
direction?: 'rtl' | 'ltr';
|
|
38
|
+
/**
|
|
39
|
+
* Element used to resolve inherited visual context for overlays rendered
|
|
40
|
+
* outside the originating DOM subtree.
|
|
41
|
+
*
|
|
42
|
+
* This affects Appearance, Light/Dark theme, Contrast, Size, and supported
|
|
43
|
+
* Density context. It does not affect overlay positioning.
|
|
44
|
+
*/
|
|
45
|
+
contextElement?: HTMLElement | ElementRef<HTMLElement>;
|
|
37
46
|
}
|
|
38
47
|
interface AXDialogRef {
|
|
39
48
|
close(): void;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AXEmoji } from '@acorex/core/constants';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Renders a single emoji using its Unicode character from metadata.
|
|
6
|
+
*
|
|
7
|
+
* @category Components
|
|
8
|
+
*/
|
|
9
|
+
declare class AXEmojiComponent {
|
|
10
|
+
/**
|
|
11
|
+
* Emoji metadata to render.
|
|
12
|
+
*/
|
|
13
|
+
readonly emoji: _angular_core.InputSignal<AXEmoji>;
|
|
14
|
+
/**
|
|
15
|
+
* Emoji rendering style.
|
|
16
|
+
* - `google`: Noto Color Emoji (Android/Google look) on all platforms, including Windows.
|
|
17
|
+
* - `native`: OS default fonts (Segoe UI Emoji on Windows).
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue 'google'
|
|
20
|
+
*/
|
|
21
|
+
readonly appearance: _angular_core.InputSignal<"google" | "native">;
|
|
22
|
+
/**
|
|
23
|
+
* Rendered size in pixels.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue 20
|
|
26
|
+
*/
|
|
27
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
28
|
+
/** Unicode glyph to display. */
|
|
29
|
+
protected readonly glyph: _angular_core.Signal<string>;
|
|
30
|
+
/** Accessible label sourced from emoji metadata. */
|
|
31
|
+
protected readonly ariaLabel: _angular_core.Signal<string>;
|
|
32
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiComponent, never>;
|
|
33
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXEmojiComponent, "ax-emoji", never, { "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare class AXEmojiModule {
|
|
37
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiModule, never>;
|
|
38
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXEmojiModule, never, [typeof AXEmojiComponent], [typeof AXEmojiComponent]>;
|
|
39
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXEmojiModule>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { AXEmojiComponent, AXEmojiModule };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AXValueChangedEvent } from '@acorex/cdk/common';
|
|
3
|
+
import { AXGestureEvent } from '@acorex/cdk/gesture';
|
|
4
|
+
import { AXTabStripChangedEvent } from '@acorex/components/tabs';
|
|
5
|
+
import { AXEmoji, AXEmojiCategory, AXEmojiPickerCategoryId, AXEmojiCategoryMeta } from '@acorex/core/constants';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Telegram-style emoji picker with category tabs, search, and recent emojis.
|
|
9
|
+
*
|
|
10
|
+
* @category Components
|
|
11
|
+
*/
|
|
12
|
+
declare class AXEmojiPickerComponent {
|
|
13
|
+
private readonly hostRef;
|
|
14
|
+
private readonly destroyRef;
|
|
15
|
+
/** Emoji entries available in the picker. */
|
|
16
|
+
readonly items: _angular_core.InputSignal<readonly AXEmoji[]>;
|
|
17
|
+
/** Rendered emoji size in the grid. */
|
|
18
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
19
|
+
/**
|
|
20
|
+
* Emoji rendering style passed to {@link AXEmojiComponent}.
|
|
21
|
+
* `google` uses Noto Color Emoji (Android/Google look) on Windows too.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue 'google'
|
|
24
|
+
*/
|
|
25
|
+
readonly appearance: _angular_core.InputSignal<"google" | "native">;
|
|
26
|
+
/** Whether the search box is shown. */
|
|
27
|
+
readonly showSearch: _angular_core.InputSignal<boolean>;
|
|
28
|
+
/** Whether the recent category tab is shown. */
|
|
29
|
+
readonly showRecent: _angular_core.InputSignal<boolean>;
|
|
30
|
+
/** Number of emoji columns in the virtualized grid. */
|
|
31
|
+
readonly columns: _angular_core.InputSignal<number>;
|
|
32
|
+
/** Search box placeholder text. */
|
|
33
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
34
|
+
/** Unicode emoji group categories to hide from tabs and results. */
|
|
35
|
+
readonly excludeCategories: _angular_core.InputSignal<readonly AXEmojiCategory[]>;
|
|
36
|
+
/** `AXEmoji.code` values to hide (e.g. `1f595`). */
|
|
37
|
+
readonly excludeCodes: _angular_core.InputSignal<readonly string[]>;
|
|
38
|
+
/** `AXEmoji.unicode` glyph values to hide (e.g. `🖕`). */
|
|
39
|
+
readonly excludeUnicode: _angular_core.InputSignal<readonly string[]>;
|
|
40
|
+
/** Emits when the user selects an emoji. */
|
|
41
|
+
readonly selected: _angular_core.OutputEmitterRef<AXEmoji>;
|
|
42
|
+
/**
|
|
43
|
+
* Recently used emojis supplied by the parent (e.g. API, LocalStorage).
|
|
44
|
+
* Rendered in the Recent tab when {@link showRecent} is enabled.
|
|
45
|
+
*/
|
|
46
|
+
readonly recentItems: _angular_core.InputSignal<readonly AXEmoji[]>;
|
|
47
|
+
/** Emits the updated recent list after the user selects an allowed emoji. */
|
|
48
|
+
readonly recentChanged: _angular_core.OutputEmitterRef<readonly AXEmoji[]>;
|
|
49
|
+
/** Current search query. */
|
|
50
|
+
protected readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
51
|
+
/** Active category tab. */
|
|
52
|
+
protected readonly activeCategoryId: _angular_core.WritableSignal<AXEmojiPickerCategoryId>;
|
|
53
|
+
private readonly containerWidth;
|
|
54
|
+
protected readonly effectiveColumns: _angular_core.Signal<number>;
|
|
55
|
+
protected readonly availableWidthCss: _angular_core.Signal<string>;
|
|
56
|
+
constructor();
|
|
57
|
+
/** Items after picker exclusions are applied. */
|
|
58
|
+
protected readonly filteredItems: _angular_core.Signal<readonly AXEmoji[]>;
|
|
59
|
+
private readonly categoryIndex;
|
|
60
|
+
/** Recent items after active exclusions are applied for display. */
|
|
61
|
+
protected readonly visibleRecentItems: _angular_core.Signal<AXEmoji[]>;
|
|
62
|
+
protected onCategorySwipe(event: AXGestureEvent): void;
|
|
63
|
+
/** Visible category tabs. */
|
|
64
|
+
protected readonly categories: _angular_core.Signal<readonly AXEmojiCategoryMeta[]>;
|
|
65
|
+
/** Emojis shown in the current view (category or search results). */
|
|
66
|
+
protected readonly visibleEmojis: _angular_core.Signal<readonly AXEmoji[]>;
|
|
67
|
+
/** Rows used by the virtual scroll viewport. */
|
|
68
|
+
protected readonly emojiRows: _angular_core.Signal<readonly (readonly AXEmoji[])[]>;
|
|
69
|
+
/** Virtual scroll row height in pixels. */
|
|
70
|
+
protected readonly rowHeight: _angular_core.Signal<number>;
|
|
71
|
+
/** Whether the user is searching. */
|
|
72
|
+
protected readonly isSearching: _angular_core.Signal<boolean>;
|
|
73
|
+
/** Whether the current view has no emojis. */
|
|
74
|
+
protected readonly isEmpty: _angular_core.Signal<boolean>;
|
|
75
|
+
/** Keeps the active tab valid when exclusions change. */
|
|
76
|
+
private readonly syncActiveCategory;
|
|
77
|
+
/** Selects a category tab and clears search. */
|
|
78
|
+
protected selectCategory(categoryId: AXEmojiPickerCategoryId): void;
|
|
79
|
+
/** Whether the given category tab is active. */
|
|
80
|
+
protected isCategoryActive(categoryId: AXEmojiPickerCategoryId): boolean;
|
|
81
|
+
/** Whether the category tab is the virtual recent group. */
|
|
82
|
+
protected isRecentCategory(categoryId: AXEmojiPickerCategoryId): boolean;
|
|
83
|
+
/** Syncs the active emoji category when a tab is selected. */
|
|
84
|
+
protected onCategoryTabChanged(event: AXTabStripChangedEvent): void;
|
|
85
|
+
/** Updates the search query from the search box. */
|
|
86
|
+
protected onSearchChanged(event: AXValueChangedEvent<string>): void;
|
|
87
|
+
/** Emits the selected emoji and notifies the parent of the updated recent list. */
|
|
88
|
+
protected selectEmoji(emoji: AXEmoji): void;
|
|
89
|
+
/** @ignore */
|
|
90
|
+
protected trackRow(index: number, row: readonly AXEmoji[]): string;
|
|
91
|
+
private rememberRecent;
|
|
92
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiPickerComponent, never>;
|
|
93
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXEmojiPickerComponent, "ax-emoji-picker", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showRecent": { "alias": "showRecent"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "excludeCategories": { "alias": "excludeCategories"; "required": false; "isSignal": true; }; "excludeCodes": { "alias": "excludeCodes"; "required": false; "isSignal": true; }; "excludeUnicode": { "alias": "excludeUnicode"; "required": false; "isSignal": true; }; "recentItems": { "alias": "recentItems"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "recentChanged": "recentChanged"; }, never, never, true, never>;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** Maximum number of emojis kept in the recent list. */
|
|
97
|
+
declare const RECENT_EMOJI_LIMIT = 20;
|
|
98
|
+
/** Grid cell size in px (`--ax-comp-emoji-picker-cell-size`). */
|
|
99
|
+
declare const EMOJI_PICKER_CELL_SIZE_PX = 36;
|
|
100
|
+
/** Grid cell size in px on narrow viewports. */
|
|
101
|
+
declare const EMOJI_PICKER_CELL_SIZE_PX_COMPACT = 32;
|
|
102
|
+
/** Gap between grid cells in px (`--ax-comp-emoji-picker-cell-gap`). */
|
|
103
|
+
declare const EMOJI_PICKER_CELL_GAP_PX = 2;
|
|
104
|
+
/** Horizontal padding around the emoji grid in px. */
|
|
105
|
+
declare const EMOJI_PICKER_GRID_PADDING_PX = 24;
|
|
106
|
+
/** Minimum column count. */
|
|
107
|
+
declare const EMOJI_PICKER_MIN_COLUMNS = 1;
|
|
108
|
+
/** Nearest ancestor that participates in layout (skips `display: contents`). */
|
|
109
|
+
declare function getEmojiPickerLayoutContainer(element: HTMLElement): HTMLElement;
|
|
110
|
+
/**
|
|
111
|
+
* Available width for the picker grid.
|
|
112
|
+
* Uses the tightest ancestor content box and the visible viewport slot so an
|
|
113
|
+
* overflowing parent cannot keep an 8-column grid that is clipped off-screen.
|
|
114
|
+
*/
|
|
115
|
+
declare function resolveEmojiPickerContainerWidth(element: HTMLElement): number;
|
|
116
|
+
/** Resolves column count from container width while keeping a fixed cell size and gap. */
|
|
117
|
+
declare function resolveEmojiPickerColumns(containerWidth: number, requested: number): number;
|
|
118
|
+
/** Maximum number of emojis returned by search. */
|
|
119
|
+
declare const SEARCH_RESULT_LIMIT = 200;
|
|
120
|
+
/** User-defined exclusions for picker emoji lists. */
|
|
121
|
+
interface AXEmojiPickerFilter {
|
|
122
|
+
/** Unicode emoji group categories to hide from tabs and results. */
|
|
123
|
+
readonly excludeCategories?: readonly AXEmojiCategory[];
|
|
124
|
+
/** `AXEmoji.code` values to hide (hyphen-separated code points, e.g. `1f595`). */
|
|
125
|
+
readonly excludeCodes?: readonly string[];
|
|
126
|
+
/** `AXEmoji.unicode` glyph values to hide (e.g. `👋`). */
|
|
127
|
+
readonly excludeUnicode?: readonly string[];
|
|
128
|
+
}
|
|
129
|
+
/** Applies picker exclusions and default people-body curation. */
|
|
130
|
+
declare function filterPickerItems(items: readonly AXEmoji[], filter?: AXEmojiPickerFilter): readonly AXEmoji[];
|
|
131
|
+
/**
|
|
132
|
+
* Builds a category index for picker rendering.
|
|
133
|
+
* Expects items to be pre-filtered with {@link filterPickerItems}.
|
|
134
|
+
*/
|
|
135
|
+
declare function buildEmojiPickerIndex(items: readonly AXEmoji[]): ReadonlyMap<AXEmojiCategory, readonly AXEmoji[]>;
|
|
136
|
+
/** Searches pre-filtered emoji metadata by name and keywords. */
|
|
137
|
+
declare function searchPickerEmojis(items: readonly AXEmoji[], query: string, limit?: number): readonly AXEmoji[];
|
|
138
|
+
|
|
139
|
+
declare class AXEmojiPickerModule {
|
|
140
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiPickerModule, never>;
|
|
141
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXEmojiPickerModule, never, [typeof AXEmojiPickerComponent], [typeof AXEmojiPickerComponent]>;
|
|
142
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXEmojiPickerModule>;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export { AXEmojiPickerComponent, AXEmojiPickerModule, EMOJI_PICKER_CELL_GAP_PX, EMOJI_PICKER_CELL_SIZE_PX, EMOJI_PICKER_CELL_SIZE_PX_COMPACT, EMOJI_PICKER_GRID_PADDING_PX, EMOJI_PICKER_MIN_COLUMNS, RECENT_EMOJI_LIMIT, SEARCH_RESULT_LIMIT, buildEmojiPickerIndex, filterPickerItems, getEmojiPickerLayoutContainer, resolveEmojiPickerColumns, resolveEmojiPickerContainerWidth, searchPickerEmojis };
|
|
146
|
+
export type { AXEmojiPickerFilter };
|