@eagami/ui 5.12.1 → 5.13.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/fesm2022/eagami-ui.mjs +380 -98
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eagami-ui.d.ts +91 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eagami/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.13.0",
|
|
4
4
|
"description": "Lightweight, accessible, themeable Angular UI component library and icon set built on CSS custom properties",
|
|
5
5
|
"author": "Michal Wiraszka <michal@eagami.com>",
|
|
6
6
|
"license": "MIT",
|
package/types/eagami-ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, Signal, Type, OnDestroy, ElementRef, TemplateRef, OnInit } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, Signal, Type, OnDestroy, ElementRef, TemplateRef, AfterContentChecked, OnInit } from '@angular/core';
|
|
3
3
|
import * as _eagami_ui from '@eagami/ui';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
|
|
@@ -168,6 +168,7 @@ interface EagamiMessages {
|
|
|
168
168
|
range: (start: string, end: string, total: string) => string;
|
|
169
169
|
previousPage: string;
|
|
170
170
|
nextPage: string;
|
|
171
|
+
page: (page: string) => string;
|
|
171
172
|
};
|
|
172
173
|
progressBar: {
|
|
173
174
|
label: string;
|
|
@@ -220,6 +221,7 @@ interface EagamiMessages {
|
|
|
220
221
|
moveSelectedToSource: string;
|
|
221
222
|
moveAllToSource: string;
|
|
222
223
|
empty: string;
|
|
224
|
+
moved: (count: string, listLabel: string) => string;
|
|
223
225
|
};
|
|
224
226
|
validation: {
|
|
225
227
|
required: string;
|
|
@@ -1195,6 +1197,11 @@ declare class CommandPaletteComponent {
|
|
|
1195
1197
|
protected onQueryInput(event: Event): void;
|
|
1196
1198
|
protected clearQuery(): void;
|
|
1197
1199
|
protected onSearchKeydown(event: KeyboardEvent): void;
|
|
1200
|
+
/** Wrapping arrow-key move that skips disabled items. */
|
|
1201
|
+
private moveActive;
|
|
1202
|
+
/** Home/End move to the first enabled item from the given end. */
|
|
1203
|
+
private edgeActive;
|
|
1204
|
+
private setActiveByKeyboard;
|
|
1198
1205
|
protected onItemClick(item: CommandPaletteItem): void;
|
|
1199
1206
|
protected onItemMouseEnter(flatIndex: number): void;
|
|
1200
1207
|
protected onListMouseLeave(): void;
|
|
@@ -1424,6 +1431,10 @@ declare class DataTableComponent<T = Record<string, unknown>> {
|
|
|
1424
1431
|
private static readonly PAGE_JUMP;
|
|
1425
1432
|
readonly columns: _angular_core.InputSignal<DataTableColumn<T>[]>;
|
|
1426
1433
|
readonly data: _angular_core.InputSignal<T[]>;
|
|
1434
|
+
/** Accessible name for the table, announced when it takes focus as a grid. */
|
|
1435
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1436
|
+
/** Visible caption rendered above the table; also names it for assistive technology. */
|
|
1437
|
+
readonly caption: _angular_core.InputSignal<string | undefined>;
|
|
1427
1438
|
readonly trackBy: _angular_core.InputSignal<keyof T | undefined>;
|
|
1428
1439
|
readonly density: _angular_core.InputSignal<DataTableDensity>;
|
|
1429
1440
|
/** Visual size of the table; density paddings and icons scale with it. */
|
|
@@ -1468,7 +1479,7 @@ declare class DataTableComponent<T = Record<string, unknown>> {
|
|
|
1468
1479
|
onGridKeydown(event: KeyboardEvent): void;
|
|
1469
1480
|
private focusCell;
|
|
1470
1481
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTableComponent<any>, never>;
|
|
1471
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataTableComponent<any>, "ea-data-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "noDataText": { "alias": "noDataText"; "required": false; "isSignal": true; }; "navigable": { "alias": "navigable"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; }, { "sort": "sortChange"; "sorted": "sorted"; "rowActivate": "rowActivate"; }, ["noDataTemplate"], ["ea-paginator"], true, never>;
|
|
1482
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataTableComponent<any>, "ea-data-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "noDataText": { "alias": "noDataText"; "required": false; "isSignal": true; }; "navigable": { "alias": "navigable"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; }, { "sort": "sortChange"; "sorted": "sorted"; "rowActivate": "rowActivate"; }, ["noDataTemplate"], ["ea-paginator"], true, never>;
|
|
1472
1483
|
}
|
|
1473
1484
|
|
|
1474
1485
|
/** Visual size of each digit cell. */
|
|
@@ -1663,8 +1674,9 @@ type DialogWidth = EaWidth;
|
|
|
1663
1674
|
* and exposes `header`, default, and `footer` content slots. The `open` state
|
|
1664
1675
|
* is a two-way `model()` binding.
|
|
1665
1676
|
*/
|
|
1666
|
-
declare class DialogComponent {
|
|
1677
|
+
declare class DialogComponent implements AfterContentChecked {
|
|
1667
1678
|
private readonly dialogEl;
|
|
1679
|
+
private readonly headerEl;
|
|
1668
1680
|
private previouslyFocused;
|
|
1669
1681
|
protected readonly i18n: EagamiI18nService;
|
|
1670
1682
|
private readonly isBrowser;
|
|
@@ -1682,6 +1694,9 @@ declare class DialogComponent {
|
|
|
1682
1694
|
readonly panelClasses: _angular_core.Signal<{
|
|
1683
1695
|
[x: string]: boolean;
|
|
1684
1696
|
}>;
|
|
1697
|
+
/** Whether the header slot received content, so labelledby never points at an empty node. */
|
|
1698
|
+
protected readonly hasHeader: _angular_core.WritableSignal<boolean>;
|
|
1699
|
+
ngAfterContentChecked(): void;
|
|
1685
1700
|
constructor();
|
|
1686
1701
|
handleClose(): void;
|
|
1687
1702
|
handleBackdropClick(event: MouseEvent): void;
|
|
@@ -1739,9 +1754,10 @@ type DrawerAnimation = 'none' | 'linear' | 'eased';
|
|
|
1739
1754
|
* slots. The `open` state is a two-way `model()` binding. In `push` mode it
|
|
1740
1755
|
* opens non-modally and reflows the page content aside instead of overlaying it.
|
|
1741
1756
|
*/
|
|
1742
|
-
declare class DrawerComponent {
|
|
1757
|
+
declare class DrawerComponent implements AfterContentChecked {
|
|
1743
1758
|
private readonly drawerEl;
|
|
1744
1759
|
private readonly panelEl;
|
|
1760
|
+
private readonly headerEl;
|
|
1745
1761
|
private previouslyFocused;
|
|
1746
1762
|
private pushedTarget;
|
|
1747
1763
|
private pushCleanupTimer;
|
|
@@ -1785,6 +1801,9 @@ declare class DrawerComponent {
|
|
|
1785
1801
|
readonly panelClasses: _angular_core.Signal<{
|
|
1786
1802
|
[x: string]: boolean;
|
|
1787
1803
|
}>;
|
|
1804
|
+
/** Whether the header slot received content, so labelledby never points at an empty node. */
|
|
1805
|
+
protected readonly hasHeader: _angular_core.WritableSignal<boolean>;
|
|
1806
|
+
ngAfterContentChecked(): void;
|
|
1788
1807
|
constructor();
|
|
1789
1808
|
private showDialog;
|
|
1790
1809
|
private enter;
|
|
@@ -1879,6 +1898,8 @@ declare class DropdownComponent implements ControlValueAccessor {
|
|
|
1879
1898
|
handleKeydown(event: KeyboardEvent): void;
|
|
1880
1899
|
private selectFocusedOrOpen;
|
|
1881
1900
|
private focusEdge;
|
|
1901
|
+
/** Keeps the keyboard-focused option visible inside the scrolling listbox. */
|
|
1902
|
+
private setFocusedIndex;
|
|
1882
1903
|
private handleTypeahead;
|
|
1883
1904
|
private moveFocus;
|
|
1884
1905
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
@@ -2135,6 +2156,8 @@ declare class InputComponent implements ControlValueAccessor {
|
|
|
2135
2156
|
protected readonly i18n: EagamiI18nService;
|
|
2136
2157
|
/** Text label rendered above the field. */
|
|
2137
2158
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
2159
|
+
/** Accessible name for the control when no visible `label` is set. */
|
|
2160
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
2138
2161
|
/** Native input type; `password` adds a built-in show/hide toggle. */
|
|
2139
2162
|
readonly type: _angular_core.InputSignal<InputType>;
|
|
2140
2163
|
/** Placeholder shown while the field is empty. */
|
|
@@ -2227,7 +2250,7 @@ declare class InputComponent implements ControlValueAccessor {
|
|
|
2227
2250
|
/** Moves keyboard focus to the underlying native input element. */
|
|
2228
2251
|
focus(): void;
|
|
2229
2252
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
2230
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
|
|
2253
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ea-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
|
|
2231
2254
|
}
|
|
2232
2255
|
|
|
2233
2256
|
/** Placement of the menu list relative to its trigger. */
|
|
@@ -2323,7 +2346,9 @@ declare class MenuItemComponent {
|
|
|
2323
2346
|
*/
|
|
2324
2347
|
declare class MenuTriggerDirective {
|
|
2325
2348
|
private readonly el;
|
|
2349
|
+
private readonly renderer;
|
|
2326
2350
|
readonly menu: _angular_core.InputSignal<MenuComponent>;
|
|
2351
|
+
constructor();
|
|
2327
2352
|
handleClick(): void;
|
|
2328
2353
|
handleKeydown(event: KeyboardEvent): void;
|
|
2329
2354
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTriggerDirective, never>;
|
|
@@ -2391,6 +2416,12 @@ declare class MultiSelectComponent implements ControlValueAccessor {
|
|
|
2391
2416
|
readonly selectedOptions: _angular_core.Signal<readonly SelectOption[]>;
|
|
2392
2417
|
readonly hasValue: _angular_core.Signal<boolean>;
|
|
2393
2418
|
readonly listboxId: _angular_core.Signal<string>;
|
|
2419
|
+
/** Whether the Select-all row renders as the first option in the listbox. */
|
|
2420
|
+
protected readonly selectAllVisible: _angular_core.Signal<boolean>;
|
|
2421
|
+
/** Row-index offset the Select-all row adds ahead of the filtered options. */
|
|
2422
|
+
protected readonly selectAllOffset: _angular_core.Signal<1 | 0>;
|
|
2423
|
+
private readonly rowCount;
|
|
2424
|
+
protected readonly selectAllAriaChecked: _angular_core.Signal<"true" | "mixed" | "false">;
|
|
2394
2425
|
/** Id of the keyboard-focused option, for `aria-activedescendant`. */
|
|
2395
2426
|
readonly activeOptionId: _angular_core.Signal<string | null>;
|
|
2396
2427
|
/** Chips visible inside the trigger, capped by `maxVisibleChips`. */
|
|
@@ -2424,7 +2455,16 @@ declare class MultiSelectComponent implements ControlValueAccessor {
|
|
|
2424
2455
|
onPopoverCloseRequested(): void;
|
|
2425
2456
|
/** Toggle one option's membership in the selection. */
|
|
2426
2457
|
toggleOption(opt: SelectOption): void;
|
|
2458
|
+
/**
|
|
2459
|
+
* Clicks on the bordered box (trigger, padding, chevron) all toggle; the
|
|
2460
|
+
* clear button and chip remove buttons stop propagation before reaching
|
|
2461
|
+
* here. The combobox element only takes focus natively when clicked
|
|
2462
|
+
* directly, so focus is restored explicitly for the activedescendant model.
|
|
2463
|
+
*/
|
|
2464
|
+
protected onTriggerAreaClick(): void;
|
|
2427
2465
|
protected onOptionClick(opt: SelectOption, index: number): void;
|
|
2466
|
+
protected onSelectAllClick(): void;
|
|
2467
|
+
private restoreTypingFocus;
|
|
2428
2468
|
/**
|
|
2429
2469
|
* Remove a single chip from the trigger. `<ea-tag>` already stops the
|
|
2430
2470
|
* click from bubbling to the trigger's `(click)`, so no event handling
|
|
@@ -2448,6 +2488,9 @@ declare class MultiSelectComponent implements ControlValueAccessor {
|
|
|
2448
2488
|
*/
|
|
2449
2489
|
handlePopoverKeydown(event: KeyboardEvent): void;
|
|
2450
2490
|
private focusSearchWhenReady;
|
|
2491
|
+
private moveFocusedRow;
|
|
2492
|
+
/** Enter/Space on the focused row: row 0 is Select-all when visible. */
|
|
2493
|
+
private activateRow;
|
|
2451
2494
|
/** Reorder a value-set against the input `options` array. */
|
|
2452
2495
|
private orderedValues;
|
|
2453
2496
|
private resetEditState;
|
|
@@ -2515,6 +2558,7 @@ declare class NumberInputComponent implements ControlValueAccessor {
|
|
|
2515
2558
|
private readonly errorState;
|
|
2516
2559
|
readonly errorText: _angular_core.Signal<string | null>;
|
|
2517
2560
|
readonly hasError: _angular_core.Signal<boolean>;
|
|
2561
|
+
readonly showError: _angular_core.Signal<boolean>;
|
|
2518
2562
|
readonly showHint: _angular_core.Signal<boolean>;
|
|
2519
2563
|
readonly canIncrement: _angular_core.Signal<boolean>;
|
|
2520
2564
|
readonly canDecrement: _angular_core.Signal<boolean>;
|
|
@@ -3386,6 +3430,12 @@ declare class TagComponent {
|
|
|
3386
3430
|
readonly removable: _angular_core.InputSignal<boolean>;
|
|
3387
3431
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
3388
3432
|
readonly removeLabel: _angular_core.InputSignal<string | undefined>;
|
|
3433
|
+
/**
|
|
3434
|
+
* Whether the remove button is a tab stop. Set `false` inside a composite
|
|
3435
|
+
* widget (a combobox trigger, a grid cell) whose own keyboard model owns
|
|
3436
|
+
* navigation, since roles like `combobox` forbid focusable descendants.
|
|
3437
|
+
*/
|
|
3438
|
+
readonly removeTabbable: _angular_core.InputSignal<boolean>;
|
|
3389
3439
|
/** Fires when the user activates the remove button on a `removable` tag. */
|
|
3390
3440
|
readonly removed: _angular_core.OutputEmitterRef<void>;
|
|
3391
3441
|
/** Accessible label for the remove button, falling back to the active locale. */
|
|
@@ -3396,7 +3446,7 @@ declare class TagComponent {
|
|
|
3396
3446
|
}>;
|
|
3397
3447
|
onRemove(event: MouseEvent): void;
|
|
3398
3448
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
3399
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ea-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
|
|
3449
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "ea-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "removeTabbable": { "alias": "removeTabbable"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
|
|
3400
3450
|
}
|
|
3401
3451
|
|
|
3402
3452
|
/** Visual size of the textarea. */
|
|
@@ -3411,6 +3461,8 @@ type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
|
3411
3461
|
declare class TextareaComponent implements ControlValueAccessor {
|
|
3412
3462
|
readonly textareaEl: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
3413
3463
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
3464
|
+
/** Accessible name for the control when no visible `label` is set. */
|
|
3465
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
3414
3466
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
3415
3467
|
readonly size: _angular_core.InputSignal<EaSize>;
|
|
3416
3468
|
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
@@ -3462,7 +3514,7 @@ declare class TextareaComponent implements ControlValueAccessor {
|
|
|
3462
3514
|
/** Moves keyboard focus to the underlying native textarea element. */
|
|
3463
3515
|
focus(): void;
|
|
3464
3516
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
3465
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
|
|
3517
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "ea-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
|
|
3466
3518
|
}
|
|
3467
3519
|
|
|
3468
3520
|
/** Visual size of the time picker trigger. */
|
|
@@ -3590,6 +3642,13 @@ declare class TimePickerComponent implements ControlValueAccessor {
|
|
|
3590
3642
|
handleTriggerKeydown(event: KeyboardEvent): void;
|
|
3591
3643
|
/** Stepper button or keyboard arrow nudges one column up or down. */
|
|
3592
3644
|
step(unit: Unit, direction: 1 | -1): void;
|
|
3645
|
+
/**
|
|
3646
|
+
* Keyboard activation of a stepper button dispatches only a click, never the
|
|
3647
|
+
* pointer events that drive the hold repeat. `detail` is 0 for those
|
|
3648
|
+
* synthetic clicks, so pointer presses (already handled by startHold) are
|
|
3649
|
+
* ignored here.
|
|
3650
|
+
*/
|
|
3651
|
+
onStepClick(unit: Unit, direction: 1 | -1, event: MouseEvent): void;
|
|
3593
3652
|
/**
|
|
3594
3653
|
* Begin a long-press repeat on a chevron button. Fires once immediately,
|
|
3595
3654
|
* then after a `HOLD_INITIAL_DELAY` pause repeats at `HOLD_INTERVAL_MS`,
|
|
@@ -3706,9 +3765,20 @@ interface ToastOptions {
|
|
|
3706
3765
|
*/
|
|
3707
3766
|
declare class ToastService {
|
|
3708
3767
|
private nextId;
|
|
3768
|
+
private readonly timers;
|
|
3769
|
+
private paused;
|
|
3709
3770
|
readonly toasts: _angular_core.WritableSignal<Toast[]>;
|
|
3710
3771
|
/** Shows a toast and returns its id; pass `duration: 0` to disable auto-dismiss. */
|
|
3711
3772
|
show(message: string, options?: ToastOptions): number;
|
|
3773
|
+
/**
|
|
3774
|
+
* Suspends every auto-dismiss countdown, keeping the time each toast has
|
|
3775
|
+
* left. The `<ea-toast />` outlet calls this while the pointer or keyboard
|
|
3776
|
+
* focus is on the stack so users get time to read or reach the dismiss
|
|
3777
|
+
* button.
|
|
3778
|
+
*/
|
|
3779
|
+
pause(): void;
|
|
3780
|
+
/** Resumes auto-dismiss countdowns suspended by {@link pause}. */
|
|
3781
|
+
resume(): void;
|
|
3712
3782
|
/** Shows a `success` toast and returns its id. */
|
|
3713
3783
|
success(message: string, duration?: number): number;
|
|
3714
3784
|
/** Shows an `error` toast and returns its id. */
|
|
@@ -3737,6 +3807,9 @@ type ToastSize = EaSize;
|
|
|
3737
3807
|
declare class ToastComponent {
|
|
3738
3808
|
protected readonly toastService: ToastService;
|
|
3739
3809
|
protected readonly i18n: EagamiI18nService;
|
|
3810
|
+
private readonly containerEl;
|
|
3811
|
+
private hovered;
|
|
3812
|
+
private focused;
|
|
3740
3813
|
/** Viewport corner or edge the toast stack is pinned to. */
|
|
3741
3814
|
readonly position: _angular_core.InputSignal<ToastPosition>;
|
|
3742
3815
|
/** Visual size applied to every toast in the stack. */
|
|
@@ -3744,6 +3817,13 @@ declare class ToastComponent {
|
|
|
3744
3817
|
/** Show a dismiss button on each toast. */
|
|
3745
3818
|
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
3746
3819
|
protected readonly containerClass: _angular_core.Signal<string>;
|
|
3820
|
+
/** Errors and warnings interrupt like `ea-alert`; the rest wait politely. */
|
|
3821
|
+
protected toastRole(variant: string): 'alert' | 'status';
|
|
3822
|
+
protected onMouseEnter(): void;
|
|
3823
|
+
protected onMouseLeave(): void;
|
|
3824
|
+
protected onFocusIn(): void;
|
|
3825
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
3826
|
+
private syncPause;
|
|
3747
3827
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
3748
3828
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ea-toast", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3749
3829
|
}
|
|
@@ -3854,6 +3934,7 @@ declare class TransferListComponent {
|
|
|
3854
3934
|
protected readonly canMoveAllLeft: _angular_core.Signal<boolean>;
|
|
3855
3935
|
protected readonly resolvedSourceLabel: _angular_core.Signal<string>;
|
|
3856
3936
|
protected readonly resolvedTargetLabel: _angular_core.Signal<string>;
|
|
3937
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
3857
3938
|
protected readonly hostClasses: _angular_core.Signal<string[]>;
|
|
3858
3939
|
protected isHighlighted(pane: 'source' | 'target', id: string): boolean;
|
|
3859
3940
|
protected itemTabindex(pane: 'source' | 'target', index: number, item: TransferListItem): number;
|
|
@@ -3869,6 +3950,7 @@ declare class TransferListComponent {
|
|
|
3869
3950
|
protected moveAllRight(): void;
|
|
3870
3951
|
protected moveSelectedLeft(): void;
|
|
3871
3952
|
protected moveAllLeft(): void;
|
|
3953
|
+
private announceMove;
|
|
3872
3954
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TransferListComponent, never>;
|
|
3873
3955
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TransferListComponent, "ea-transfer-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "sourceLabel": { "alias": "sourceLabel"; "required": false; "isSignal": true; }; "targetLabel": { "alias": "targetLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selectedIds": "selectedIdsChange"; }, never, never, true, never>;
|
|
3874
3956
|
}
|
|
@@ -3993,6 +4075,8 @@ interface VirtualListItemContext<T = unknown> {
|
|
|
3993
4075
|
* `aria-posinset` using the projected `index` if needed.
|
|
3994
4076
|
*/
|
|
3995
4077
|
declare class VirtualListComponent {
|
|
4078
|
+
private readonly hostRole;
|
|
4079
|
+
protected readonly viewportTabindex: number | null;
|
|
3996
4080
|
readonly items: _angular_core.InputSignal<readonly unknown[]>;
|
|
3997
4081
|
/** Pixel height of each item. Must be > 0. */
|
|
3998
4082
|
readonly itemHeight: _angular_core.InputSignal<number>;
|