@ethlete/components 1.0.0-next.31 → 1.0.0-next.32
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/CHANGELOG.md +101 -0
- package/fesm2022/ethlete-components.mjs +3499 -861
- package/fesm2022/ethlete-components.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ethlete-components.d.ts +2507 -357
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, ElementRef, InjectionToken, Type, InputSignal,
|
|
2
|
+
import { TemplateRef, ElementRef, InjectionToken, Type, InputSignal, Signal, WritableSignal, Provider, ViewContainerRef, Injector, Binding, StaticProvider, OnInit, ComponentRef, ModelSignal, OnDestroy, computed, EnvironmentInjector, ApplicationRef } from '@angular/core';
|
|
3
3
|
import * as _ethlete_components from '@ethlete/components';
|
|
4
4
|
import { RoundStageStructureWithMatchesView, RoundStageStructureView, MatchListViewUnion, RoundType } from '@ethlete/types';
|
|
5
5
|
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
6
6
|
import * as _ethlete_core from '@ethlete/core';
|
|
7
|
-
import { ScrollObserverDirective, ScrollToElementOptions, AnimatableDirective, OverlayRuntimeCloseSource, OverlayRuntimeCloseGuard, OverlayRuntimePositionStrategy, OverlayRuntimeCloseEvent, OverlayRuntimeRef, Breakpoint, AnimatedLifecycleDirective, AnimatedSizeAxis, ColorTheme, ResizeEdge, DragHandleDirective, ResizeMoveEvent, CreateUnsavedChangesTrackerConfig, UnsavedChangesTrackerRef, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, ConsentHandler, DragMoveEvent, ProvideColorDirective } from '@ethlete/core';
|
|
7
|
+
import { ScrollObserverDirective, ScrollToElementOptions, AnimatableDirective, OverlayRuntimeCloseSource, OverlayRuntimeCloseGuard, OverlayRuntimePositionStrategy, OverlayRuntimeCloseEvent, OverlayRuntimeRef, Breakpoint, AnimatedLifecycleDirective, AnimatedSizeAxis, ColorTheme, ResizeEdge, DragHandleDirective, ResizeMoveEvent, CreateUnsavedChangesTrackerConfig, UnsavedChangesTrackerRef, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, ConsentHandler, LabelsSource, DragMoveEvent, ProvideColorDirective } from '@ethlete/core';
|
|
8
8
|
import { Locale } from 'date-fns';
|
|
9
|
-
import
|
|
9
|
+
import * as _angular_forms_signals from '@angular/forms/signals';
|
|
10
|
+
import { FieldTree, ValidationError, FormValueControl, FormCheckboxControl, PathKind, SchemaPath, SchemaPathRules, validate } from '@angular/forms/signals';
|
|
11
|
+
import { QueryFormFields, QueryFormSignals, QueryFormModel, AnyQueryCreator, RequestArgs, QueryArgsOf, ResponseType, QueryErrorResponse, RequestError, QueryArgs, QueryCreator, AnyV2QueryCreator, AnyLegacyQueryCreator, QueryDataOf, QueryRepositoryEvent, QueryDevtoolsEntry, Query, QueryRepository, QueryRepositoryCacheEntry, AnyQueryStack, AnyPagedQueryStack, QuerySequence, AnyBearerAuthProvider, WebSocketDevtoolsHandle, QuerySequenceStatus, AnyQuerySnapshot, AnyV2Query, AnyLegacyQuery, AnyQueryCollection } from '@ethlete/query';
|
|
10
12
|
import * as rxjs from 'rxjs';
|
|
11
13
|
import { Observable } from 'rxjs';
|
|
12
|
-
import * as _angular_forms_signals from '@angular/forms/signals';
|
|
13
|
-
import { ValidationError, FormValueControl, FormCheckboxControl, PathKind, SchemaPath, SchemaPathRules, validate } from '@angular/forms/signals';
|
|
14
14
|
import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
|
|
15
15
|
import * as i1 from '@angular/router';
|
|
16
16
|
|
|
@@ -957,17 +957,17 @@ type BreadcrumbLabels = {
|
|
|
957
957
|
};
|
|
958
958
|
/** The built-in English labels. */
|
|
959
959
|
declare const DEFAULT_BREADCRUMB_LABELS: BreadcrumbLabels;
|
|
960
|
-
/** The label set every breadcrumb in this injector uses. @default DEFAULT_BREADCRUMB_LABELS */
|
|
961
|
-
declare const BREADCRUMB_LABELS: InjectionToken<BreadcrumbLabels>;
|
|
962
960
|
/**
|
|
963
|
-
* Localize the breadcrumb's strings for everything below this injector
|
|
964
|
-
* out keeps its {@link DEFAULT_BREADCRUMB_LABELS}
|
|
961
|
+
* Localize the breadcrumb's strings for everything below this injector, and read the set in effect
|
|
962
|
+
* here as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_BREADCRUMB_LABELS}
|
|
963
|
+
* value. See {@link createLabels} for the shape, which every domain in this library shares.
|
|
965
964
|
*
|
|
966
965
|
* @example
|
|
967
966
|
* provideBreadcrumbLabels({ navigation: 'Brotkrumen', overflow: 'Ausgeblendete Ebenen anzeigen' });
|
|
968
967
|
*/
|
|
969
|
-
declare const provideBreadcrumbLabels: (labels:
|
|
970
|
-
declare const injectBreadcrumbLabels: () => BreadcrumbLabels
|
|
968
|
+
declare const provideBreadcrumbLabels: (labels: _ethlete_core.LabelsSource<BreadcrumbLabels>) => _angular_core.Provider;
|
|
969
|
+
declare const injectBreadcrumbLabels: () => _angular_core.Signal<BreadcrumbLabels>;
|
|
970
|
+
declare const BREADCRUMB_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<BreadcrumbLabels>>;
|
|
971
971
|
|
|
972
972
|
/**
|
|
973
973
|
* What the breadcrumb needs from a crumb — implemented by `etBreadcrumbItemTemplate`. It is a
|
|
@@ -1195,6 +1195,7 @@ declare class BreadcrumbSeparatorDirective {
|
|
|
1195
1195
|
* </nav>
|
|
1196
1196
|
*/
|
|
1197
1197
|
declare class BreadcrumbDirective {
|
|
1198
|
+
private elementRef;
|
|
1198
1199
|
private injectedLabels;
|
|
1199
1200
|
/**
|
|
1200
1201
|
* Move the middle crumbs into an overflow control when the trail doesn't fit. Turn it off to let the
|
|
@@ -1230,11 +1231,32 @@ declare class BreadcrumbDirective {
|
|
|
1230
1231
|
private fullTrailWidth;
|
|
1231
1232
|
/** The space the trail has, from the reactive host dimensions (not a `clientWidth` read at call time). */
|
|
1232
1233
|
private availableWidth;
|
|
1234
|
+
/**
|
|
1235
|
+
* Whether the trail has been measured at least once. Sticky: a later trail change re-measures, but
|
|
1236
|
+
* un-painting an already visible trail to do so would be a worse flash than the one this avoids.
|
|
1237
|
+
*/
|
|
1238
|
+
private hasMeasured;
|
|
1239
|
+
/**
|
|
1240
|
+
* Nothing can be known about whether the trail fits before it has been measured, and rendering the full
|
|
1241
|
+
* trail on that guess is the flash on load: the browser paints the overflowing trail, then swaps it for
|
|
1242
|
+
* the collapsed one. While this is true the trail takes its space but isn't painted — see the
|
|
1243
|
+
* `[data-measuring]` rule in the CSS. Only while collapsing is possible at all; otherwise there is no
|
|
1244
|
+
* decision pending and nothing to wait for.
|
|
1245
|
+
*
|
|
1246
|
+
* @internal
|
|
1247
|
+
*/
|
|
1248
|
+
isMeasuring: _angular_core.Signal<boolean>;
|
|
1233
1249
|
/** Whether the middle crumbs are currently hidden behind the overflow control. */
|
|
1234
1250
|
isCollapsed: _angular_core.Signal<boolean>;
|
|
1235
1251
|
/** The slots to render: every crumb, or first + overflow + last once collapsed. */
|
|
1236
1252
|
renderedItems: _angular_core.Signal<BreadcrumbRenderItem[]>;
|
|
1237
1253
|
constructor();
|
|
1254
|
+
/**
|
|
1255
|
+
* Takes one pair of host measurements as the trail's state: that it has been measured, and — if the full
|
|
1256
|
+
* trail didn't fit — how wide it wants to be. Zero width means the element isn't laid out yet (or sits in
|
|
1257
|
+
* something hidden), which is not a measurement of anything.
|
|
1258
|
+
*/
|
|
1259
|
+
private recordMeasurement;
|
|
1238
1260
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbDirective, never>;
|
|
1239
1261
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BreadcrumbDirective, "[etBreadcrumb]", ["etBreadcrumb"], { "collapse": { "alias": "collapse"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "crumbs": { "alias": "crumbs"; "required": false; "isSignal": true; }; }, {}, ["declaredCrumbs", "separatorTemplate"], never, true, never>;
|
|
1240
1262
|
}
|
|
@@ -1475,6 +1497,30 @@ declare const CALENDAR_ERROR_CODES: {
|
|
|
1475
1497
|
readonly CELL_OUTSIDE_CALENDAR: 2901;
|
|
1476
1498
|
};
|
|
1477
1499
|
|
|
1500
|
+
/**
|
|
1501
|
+
* The strings the calendar renders or announces itself. Month and weekday **names** are not here — those
|
|
1502
|
+
* come from the `DATE_LOCALE` date-fns locale, which is what a localized app provides.
|
|
1503
|
+
*/
|
|
1504
|
+
type CalendarLabels = {
|
|
1505
|
+
/** Accessible label for the control that steps back a month. */
|
|
1506
|
+
previousMonth: string;
|
|
1507
|
+
/** Accessible label for the control that steps forward a month. */
|
|
1508
|
+
nextMonth: string;
|
|
1509
|
+
};
|
|
1510
|
+
/** The built-in English labels. */
|
|
1511
|
+
declare const DEFAULT_CALENDAR_LABELS: CalendarLabels;
|
|
1512
|
+
/**
|
|
1513
|
+
* Localize the calendar's strings for everything below this injector, and read the set in effect here as a
|
|
1514
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_CALENDAR_LABELS} value. See {@link createLabels}
|
|
1515
|
+
* for the shape, which every domain in this library shares.
|
|
1516
|
+
*
|
|
1517
|
+
* @example
|
|
1518
|
+
* provideCalendarLabels({ previousMonth: 'Vorheriger Monat', nextMonth: 'Nächster Monat' });
|
|
1519
|
+
*/
|
|
1520
|
+
declare const provideCalendarLabels: (labels: _ethlete_core.LabelsSource<CalendarLabels>) => _angular_core.Provider;
|
|
1521
|
+
declare const injectCalendarLabels: () => _angular_core.Signal<CalendarLabels>;
|
|
1522
|
+
declare const CALENDAR_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<CalendarLabels>>;
|
|
1523
|
+
|
|
1478
1524
|
type CalendarWeekStartsOn = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
1479
1525
|
|
|
1480
1526
|
type CalendarMode = 'single' | 'range';
|
|
@@ -1599,9 +1645,14 @@ declare class CalendarGridDirective {
|
|
|
1599
1645
|
}
|
|
1600
1646
|
|
|
1601
1647
|
declare class CalendarComponent {
|
|
1648
|
+
private calendarLabels;
|
|
1602
1649
|
protected calendar: CalendarDirective;
|
|
1603
|
-
previousMonthLabel: _angular_core.InputSignal<string>;
|
|
1604
|
-
nextMonthLabel: _angular_core.InputSignal<string>;
|
|
1650
|
+
previousMonthLabel: _angular_core.InputSignal<string | null>;
|
|
1651
|
+
nextMonthLabel: _angular_core.InputSignal<string | null>;
|
|
1652
|
+
/** The string in effect: this instance's `previousMonthLabel`, else the domain's label set. */
|
|
1653
|
+
protected resolvedPreviousMonthLabel: _angular_core.Signal<string>;
|
|
1654
|
+
/** The string in effect: this instance's `nextMonthLabel`, else the domain's label set. */
|
|
1655
|
+
protected resolvedNextMonthLabel: _angular_core.Signal<string>;
|
|
1605
1656
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent, never>;
|
|
1606
1657
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "et-calendar", never, { "previousMonthLabel": { "alias": "previousMonthLabel"; "required": false; "isSignal": true; }; "nextMonthLabel": { "alias": "nextMonthLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof CalendarDirective; inputs: { "mode": "mode"; "min": "min"; "max": "max"; "dateFilter": "dateFilter"; "firstDayOfWeek": "firstDayOfWeek"; "locale": "locale"; "value": "value"; "rangeValue": "rangeValue"; "activeMonth": "activeMonth"; }; outputs: { "valueChange": "valueChange"; "rangeValueChange": "rangeValueChange"; "activeMonthChange": "activeMonthChange"; }; }]>;
|
|
1607
1658
|
}
|
|
@@ -1644,17 +1695,17 @@ type CarouselLabels = {
|
|
|
1644
1695
|
};
|
|
1645
1696
|
/** The built-in English labels. */
|
|
1646
1697
|
declare const DEFAULT_CAROUSEL_LABELS: CarouselLabels;
|
|
1647
|
-
/** The label set every carousel in this injector uses. @default DEFAULT_CAROUSEL_LABELS */
|
|
1648
|
-
declare const CAROUSEL_LABELS: InjectionToken<CarouselLabels>;
|
|
1649
1698
|
/**
|
|
1650
|
-
* Localize the carousel's strings for everything below this injector
|
|
1651
|
-
* keeps its {@link DEFAULT_CAROUSEL_LABELS} value.
|
|
1699
|
+
* Localize the carousel's strings for everything below this injector, and read the set in effect here
|
|
1700
|
+
* as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_CAROUSEL_LABELS} value. See
|
|
1701
|
+
* {@link createLabels} for the shape, which every domain in this library shares.
|
|
1652
1702
|
*
|
|
1653
1703
|
* @example
|
|
1654
1704
|
* provideCarouselLabels({ previous: 'Vorheriges Bild', next: 'Nächstes Bild' });
|
|
1655
1705
|
*/
|
|
1656
|
-
declare const provideCarouselLabels: (labels:
|
|
1657
|
-
declare const injectCarouselLabels: () => CarouselLabels
|
|
1706
|
+
declare const provideCarouselLabels: (labels: _ethlete_core.LabelsSource<CarouselLabels>) => _angular_core.Provider;
|
|
1707
|
+
declare const injectCarouselLabels: () => _angular_core.Signal<CarouselLabels>;
|
|
1708
|
+
declare const CAROUSEL_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<CarouselLabels>>;
|
|
1658
1709
|
|
|
1659
1710
|
declare class ScrollableActiveChildDirective {
|
|
1660
1711
|
private scrollable;
|
|
@@ -1735,7 +1786,7 @@ declare class ScrollableDirective {
|
|
|
1735
1786
|
scrollMode: _angular_core.InputSignalWithTransform<ScrollableScrollMode, _ethlete_core.BreakpointInput<ScrollableScrollMode>>;
|
|
1736
1787
|
scrollOrigin: _angular_core.InputSignal<ScrollableScrollOrigin>;
|
|
1737
1788
|
scrollMargin: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
1738
|
-
renderScrollbars: _angular_core.
|
|
1789
|
+
renderScrollbars: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1739
1790
|
/** @internal */
|
|
1740
1791
|
scrollContainerRef: _angular_core.WritableSignal<ElementRef<HTMLElement> | null>;
|
|
1741
1792
|
private childIntersectionsActivated;
|
|
@@ -1848,7 +1899,7 @@ declare class ScrollableDarkenDirective {
|
|
|
1848
1899
|
|
|
1849
1900
|
declare class ScrollableDragDirective {
|
|
1850
1901
|
private scrollable;
|
|
1851
|
-
enabled: _angular_core.
|
|
1902
|
+
enabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1852
1903
|
cursorDragScrollState: {
|
|
1853
1904
|
isDragging: _angular_core.Signal<boolean>;
|
|
1854
1905
|
currentDragAmount: _angular_core.Signal<{
|
|
@@ -1866,7 +1917,7 @@ declare const SCROLLABLE_ERROR_CODES: {
|
|
|
1866
1917
|
};
|
|
1867
1918
|
|
|
1868
1919
|
declare class ScrollableIgnoreChildDirective {
|
|
1869
|
-
enabled: _angular_core.
|
|
1920
|
+
enabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1870
1921
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollableIgnoreChildDirective, never>;
|
|
1871
1922
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollableIgnoreChildDirective, "[etScrollableIgnoreChild]", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1872
1923
|
}
|
|
@@ -1913,7 +1964,7 @@ declare class ScrollableNavigationDirective {
|
|
|
1913
1964
|
declare class ScrollableSnapDirective {
|
|
1914
1965
|
private scrollable;
|
|
1915
1966
|
private document;
|
|
1916
|
-
enabled: _angular_core.
|
|
1967
|
+
enabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1917
1968
|
snapOrigin: _angular_core.InputSignal<ScrollableScrollOrigin>;
|
|
1918
1969
|
/**
|
|
1919
1970
|
* Whether a pointer is being held on the track right now.
|
|
@@ -2514,6 +2565,25 @@ declare class CarouselComponent {
|
|
|
2514
2565
|
/** The carousel, its slide template, and the headless directives to build your own out of a scrollable. */
|
|
2515
2566
|
declare const CAROUSEL_IMPORTS: readonly [typeof CarouselComponent, typeof CarouselSlideDirective, typeof CarouselItemDirective, typeof CarouselDirective, typeof CarouselAutoplayDirective, typeof CarouselPreviousDirective, typeof CarouselNextDirective, typeof CarouselPlayToggleDirective];
|
|
2516
2567
|
|
|
2568
|
+
/** The strings a chip renders itself. Its content is yours; the remove button is the chip's own. */
|
|
2569
|
+
type ChipLabels = {
|
|
2570
|
+
/** Accessible label for a removable chip's remove button. */
|
|
2571
|
+
remove: string;
|
|
2572
|
+
};
|
|
2573
|
+
/** The built-in English labels. */
|
|
2574
|
+
declare const DEFAULT_CHIP_LABELS: ChipLabels;
|
|
2575
|
+
/**
|
|
2576
|
+
* Localize a chip's strings for everything below this injector, and read the set in effect here as a
|
|
2577
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_CHIP_LABELS} value. See {@link createLabels}
|
|
2578
|
+
* for the shape, which every domain in this library shares.
|
|
2579
|
+
*
|
|
2580
|
+
* @example
|
|
2581
|
+
* provideChipLabels({ remove: 'Entfernen' });
|
|
2582
|
+
*/
|
|
2583
|
+
declare const provideChipLabels: (labels: _ethlete_core.LabelsSource<ChipLabels>) => _angular_core.Provider;
|
|
2584
|
+
declare const injectChipLabels: () => _angular_core.Signal<ChipLabels>;
|
|
2585
|
+
declare const CHIP_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<ChipLabels>>;
|
|
2586
|
+
|
|
2517
2587
|
declare const CHIP_ERROR_CODES: {
|
|
2518
2588
|
readonly REMOVE_OUTSIDE_CHIP: 1100;
|
|
2519
2589
|
};
|
|
@@ -2529,9 +2599,12 @@ declare class ChipDirective {
|
|
|
2529
2599
|
}
|
|
2530
2600
|
|
|
2531
2601
|
declare class ChipRemoveDirective {
|
|
2602
|
+
private chipLabels;
|
|
2532
2603
|
protected chip: ChipDirective | null;
|
|
2533
2604
|
private elementRef;
|
|
2534
|
-
removeLabel: _angular_core.InputSignal<string>;
|
|
2605
|
+
removeLabel: _angular_core.InputSignal<string | null>;
|
|
2606
|
+
/** The string in effect: this instance's `removeLabel`, else the domain's label set. */
|
|
2607
|
+
resolvedRemoveLabel: _angular_core.Signal<string>;
|
|
2535
2608
|
protected readonly IS_BUTTON: boolean;
|
|
2536
2609
|
constructor();
|
|
2537
2610
|
protected handleClick(event: Event): void;
|
|
@@ -2547,6 +2620,452 @@ declare class ChipComponent {
|
|
|
2547
2620
|
|
|
2548
2621
|
declare const CHIP_IMPORTS: readonly [typeof ChipComponent, typeof ChipDirective, typeof ChipRemoveDirective];
|
|
2549
2622
|
|
|
2623
|
+
/**
|
|
2624
|
+
* What the overlay closes with. `didUpdate: false` for a dismissal — the draft is thrown away and the page's
|
|
2625
|
+
* filters are untouched.
|
|
2626
|
+
*/
|
|
2627
|
+
type FilterOverlayResult<TValue = unknown> = {
|
|
2628
|
+
didUpdate: false;
|
|
2629
|
+
} | {
|
|
2630
|
+
didUpdate: true;
|
|
2631
|
+
value: TValue;
|
|
2632
|
+
};
|
|
2633
|
+
/**
|
|
2634
|
+
* A live count of what the draft filters would return, so the submit button can say "Show 42 results" instead of
|
|
2635
|
+
* "Apply" and the reader can tell before committing.
|
|
2636
|
+
*
|
|
2637
|
+
* Built by {@link filterOverlayPreviewFromQuery} for the usual case; hand-write it when the count comes from
|
|
2638
|
+
* somewhere other than a single query (a local collection, an aggregate of several endpoints).
|
|
2639
|
+
*/
|
|
2640
|
+
type FilterOverlayPreview = {
|
|
2641
|
+
/** A count is in flight. */
|
|
2642
|
+
loading: Signal<boolean>;
|
|
2643
|
+
/** The count could not be established. */
|
|
2644
|
+
hasError: Signal<boolean>;
|
|
2645
|
+
/** How many results the draft would produce, or `null` while that is unknown. */
|
|
2646
|
+
totalHits: Signal<number | null>;
|
|
2647
|
+
};
|
|
2648
|
+
/** What the submit button says and whether it can be pressed. */
|
|
2649
|
+
type FilterOverlaySubmitButton = {
|
|
2650
|
+
label: string;
|
|
2651
|
+
disabled: boolean;
|
|
2652
|
+
};
|
|
2653
|
+
/** Everything the default submit-button resolver has to go on. */
|
|
2654
|
+
type FilterOverlaySubmitState = {
|
|
2655
|
+
/** `null` when the overlay has no preview at all — then there is no count to wait for. */
|
|
2656
|
+
totalHits: number | null;
|
|
2657
|
+
loading: boolean;
|
|
2658
|
+
hasError: boolean;
|
|
2659
|
+
hasPreview: boolean;
|
|
2660
|
+
/** Counts above this are reported as "more than N", since an exact number stops being useful. */
|
|
2661
|
+
maxCountedHits: number;
|
|
2662
|
+
};
|
|
2663
|
+
|
|
2664
|
+
/**
|
|
2665
|
+
* Every string the filter overlay's submit button can show. The counted ones are functions, since the number is
|
|
2666
|
+
* the point.
|
|
2667
|
+
*/
|
|
2668
|
+
type FilterOverlayLabels = {
|
|
2669
|
+
/** While a count is in flight. */
|
|
2670
|
+
loading: string;
|
|
2671
|
+
/** When the count could not be established. */
|
|
2672
|
+
error: string;
|
|
2673
|
+
/** When the draft filters would return nothing. */
|
|
2674
|
+
empty: string;
|
|
2675
|
+
/** Exactly one result — worth its own string, because "Show 1 results" reads badly. */
|
|
2676
|
+
one: string;
|
|
2677
|
+
/** A known count. */
|
|
2678
|
+
many: (totalHits: number) => string;
|
|
2679
|
+
/** More results than are worth counting exactly. */
|
|
2680
|
+
more: (maxCountedHits: number) => string;
|
|
2681
|
+
/** When the overlay has no preview, so there is no count to report. */
|
|
2682
|
+
apply: string;
|
|
2683
|
+
/** The reset control. */
|
|
2684
|
+
reset: string;
|
|
2685
|
+
};
|
|
2686
|
+
/** The built-in English labels. */
|
|
2687
|
+
declare const DEFAULT_FILTER_OVERLAY_LABELS: FilterOverlayLabels;
|
|
2688
|
+
/** The built-in German labels, used when the current locale is a German one. */
|
|
2689
|
+
declare const GERMAN_FILTER_OVERLAY_LABELS: FilterOverlayLabels;
|
|
2690
|
+
/** The label set for a locale. Anything other than English and German needs {@link provideFilterOverlayLabels}. */
|
|
2691
|
+
declare const filterOverlayLabelsForLocale: (locale: string) => FilterOverlayLabels;
|
|
2692
|
+
/**
|
|
2693
|
+
* Localize the filter overlay's strings below this injector, and read the set in effect here as a signal.
|
|
2694
|
+
* Partial — what you leave out keeps the value the current locale gives it. See {@link createLabels} for the
|
|
2695
|
+
* shape, which every domain in this library shares.
|
|
2696
|
+
*
|
|
2697
|
+
* @example
|
|
2698
|
+
* provideFilterOverlayLabels({ apply: 'Voir les résultats', reset: 'Réinitialiser' });
|
|
2699
|
+
*/
|
|
2700
|
+
declare const provideFilterOverlayLabels: (labels: _ethlete_core.LabelsSource<FilterOverlayLabels>) => _angular_core.Provider;
|
|
2701
|
+
declare const injectFilterOverlayLabels: () => _angular_core.Signal<FilterOverlayLabels>;
|
|
2702
|
+
declare const FILTER_OVERLAY_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<FilterOverlayLabels>>;
|
|
2703
|
+
/**
|
|
2704
|
+
* The submit button, worked out from the preview.
|
|
2705
|
+
*
|
|
2706
|
+
* The button is deliberately the place the count appears: it is what the reader is about to press, so putting
|
|
2707
|
+
* the consequence on it ("Show 42 results") lets them decide without applying first. It disables itself while a
|
|
2708
|
+
* count is pending, when the count failed, and when the answer is zero — applying a filter that returns nothing
|
|
2709
|
+
* is never what someone meant to do.
|
|
2710
|
+
*
|
|
2711
|
+
* An overlay with no preview has nothing to wait for and simply reads "Show results". cdk's version returned the
|
|
2712
|
+
* *loading* state in that case, which left the button permanently disabled.
|
|
2713
|
+
*/
|
|
2714
|
+
declare const resolveFilterOverlaySubmitButton: (state: FilterOverlaySubmitState, labels: FilterOverlayLabels) => FilterOverlaySubmitButton;
|
|
2715
|
+
|
|
2716
|
+
type FilterOverlayConfig<TFields extends QueryFormFields> = {
|
|
2717
|
+
/**
|
|
2718
|
+
* The page's filter state. The overlay never edits it directly — it edits a detached branch and writes the
|
|
2719
|
+
* branch back on submit, which is what makes dismissing the overlay a discard.
|
|
2720
|
+
*/
|
|
2721
|
+
queryForm: QueryFormSignals<TFields>;
|
|
2722
|
+
/**
|
|
2723
|
+
* A live count of what the draft would return, driving the submit button. Optional; without it the button just
|
|
2724
|
+
* says "Show results". Use {@link filterOverlayPreviewFromQuery} for the single-query case.
|
|
2725
|
+
*/
|
|
2726
|
+
preview?: (draftValue: Signal<QueryFormModel<TFields>>) => FilterOverlayPreview;
|
|
2727
|
+
/**
|
|
2728
|
+
* Counts above this are reported as "more than N" rather than exactly. Past a few hundred the precise number
|
|
2729
|
+
* stops telling the reader anything they can act on. @default 250
|
|
2730
|
+
*/
|
|
2731
|
+
maxCountedHits?: number;
|
|
2732
|
+
/** Full control over the submit button's label and disabled state, replacing the built-in resolver. */
|
|
2733
|
+
submitButton?: (state: FilterOverlaySubmitState, labels: FilterOverlayLabels) => FilterOverlaySubmitButton;
|
|
2734
|
+
};
|
|
2735
|
+
/**
|
|
2736
|
+
* The draft's editing surface — a query form branch, described by its **value** shape rather than by its field
|
|
2737
|
+
* map.
|
|
2738
|
+
*
|
|
2739
|
+
* That is deliberate and worth explaining: `QueryFieldDef<T>` is contravariant in `T` (it can hold a
|
|
2740
|
+
* `valueToQueryParam: (value: T) => unknown`), so a concrete field map does *not* satisfy
|
|
2741
|
+
* `Record<string, QueryFieldDef<unknown>>`. Inference copes, but an explicit type argument —
|
|
2742
|
+
* `injectFilterOverlay<typeof MY_FIELDS>()` — cannot be written at all. Naming the value shape sidesteps it, and
|
|
2743
|
+
* is what a consumer actually cares about. Structurally identical to `QueryFormBranch`.
|
|
2744
|
+
*/
|
|
2745
|
+
type FilterOverlayDraft<TValue> = {
|
|
2746
|
+
/** The bindable signal-forms field tree: `draft.fields.search`. */
|
|
2747
|
+
readonly fields: FieldTree<TValue>;
|
|
2748
|
+
/** The draft's live value. */
|
|
2749
|
+
readonly value: Signal<TValue>;
|
|
2750
|
+
/** How many of the draft's *filters* are set — search, sort and pagination excluded. */
|
|
2751
|
+
readonly activeFilterCount: Signal<number>;
|
|
2752
|
+
setValue(value: TValue): void;
|
|
2753
|
+
patchValue(value: Partial<TValue>): void;
|
|
2754
|
+
resetFieldToDefault(key: keyof TValue): void;
|
|
2755
|
+
resetAllFieldsToDefault(): void;
|
|
2756
|
+
};
|
|
2757
|
+
/** The value shape of a query form, for naming a {@link FilterOverlay} without naming its field map. */
|
|
2758
|
+
type FilterOverlayValueOf<TForm> = TForm extends {
|
|
2759
|
+
value: Signal<infer TValue>;
|
|
2760
|
+
} ? TValue : never;
|
|
2761
|
+
type FilterOverlay<TValue = unknown> = {
|
|
2762
|
+
/**
|
|
2763
|
+
* The draft being edited — bind its `fields` to your controls. A detached clone of the page's query form: its
|
|
2764
|
+
* own value, no URL writes, no reset graph, so nothing the reader does here affects the page until they submit.
|
|
2765
|
+
*/
|
|
2766
|
+
draft: FilterOverlayDraft<TValue>;
|
|
2767
|
+
/** The live count, if the overlay was configured with one. */
|
|
2768
|
+
preview: FilterOverlayPreview | null;
|
|
2769
|
+
/** What the submit button should say, and whether it can be pressed. */
|
|
2770
|
+
submitButton: Signal<FilterOverlaySubmitButton>;
|
|
2771
|
+
/** The strings in effect, after locale and any overrides. */
|
|
2772
|
+
labels: Signal<FilterOverlayLabels>;
|
|
2773
|
+
/** How many filters the draft has set, for a badge on the overlay's own controls. */
|
|
2774
|
+
activeFilterCount: Signal<number>;
|
|
2775
|
+
/** Whether the draft differs from the filters actually applied — what "unsaved changes" means here. */
|
|
2776
|
+
hasChanges: Signal<boolean>;
|
|
2777
|
+
/**
|
|
2778
|
+
* Whether every field in the draft is still at its default, i.e. there is nothing for `reset()` to do.
|
|
2779
|
+
*
|
|
2780
|
+
* Not the same as `activeFilterCount() === 0`: the query form deliberately leaves navigation state (search,
|
|
2781
|
+
* page, sort) out of that count, so a reader who has typed a search has nothing to show in a badge but plenty
|
|
2782
|
+
* to reset.
|
|
2783
|
+
*/
|
|
2784
|
+
isPristine: Signal<boolean>;
|
|
2785
|
+
/** Write the draft back to the page's filters and close. */
|
|
2786
|
+
submit: () => void;
|
|
2787
|
+
/** Put every filter back to its default, without closing. */
|
|
2788
|
+
reset: () => void;
|
|
2789
|
+
/** Close without applying anything. */
|
|
2790
|
+
discard: () => void;
|
|
2791
|
+
};
|
|
2792
|
+
/** The filter overlay provided for the current overlay component. Inject with `{ optional: true }` in a control
|
|
2793
|
+
* that may also be used outside one. */
|
|
2794
|
+
declare const FILTER_OVERLAY_TOKEN: InjectionToken<FilterOverlay<unknown>>;
|
|
2795
|
+
/**
|
|
2796
|
+
* Provides the filter overlay for an overlay component: a draft of the page's filters that the reader edits, a
|
|
2797
|
+
* live count of what those filters would return, and an explicit apply.
|
|
2798
|
+
*
|
|
2799
|
+
* The model is **edit a copy, then commit** — dismissing the overlay discards, which is what lets a filter panel
|
|
2800
|
+
* be closed with Escape without consequence. It is cdk's `FilterOverlayService` rebuilt on the signals query
|
|
2801
|
+
* form: no reactive-forms `FormGroup` to clone, no legacy query types, and `reset()` needs no configured defaults
|
|
2802
|
+
* because the query form already knows them.
|
|
2803
|
+
*
|
|
2804
|
+
* @example
|
|
2805
|
+
* export const FILTERS_OVERLAY = defineOverlay({ component: TeamFiltersComponent, … });
|
|
2806
|
+
*
|
|
2807
|
+
* @Component({
|
|
2808
|
+
* providers: [
|
|
2809
|
+
* provideFilterOverlay({
|
|
2810
|
+
* queryForm: injectTeamFilters(),
|
|
2811
|
+
* preview: filterOverlayPreviewFromQuery({
|
|
2812
|
+
* queryCreator: searchTeams,
|
|
2813
|
+
* args: (value) => ({ queryParams: { ...value, limit: 1 } }),
|
|
2814
|
+
* }),
|
|
2815
|
+
* }),
|
|
2816
|
+
* ],
|
|
2817
|
+
* })
|
|
2818
|
+
* export class TeamFiltersComponent {
|
|
2819
|
+
* protected filters = injectFilterOverlay();
|
|
2820
|
+
* }
|
|
2821
|
+
*/
|
|
2822
|
+
declare const provideFilterOverlay: <TFields extends QueryFormFields>(config: FilterOverlayConfig<TFields>) => Provider[];
|
|
2823
|
+
/**
|
|
2824
|
+
* The filter overlay provided above this component, typed to your filters' **value** shape:
|
|
2825
|
+
*
|
|
2826
|
+
* ```ts
|
|
2827
|
+
* const createTeamFilters = () => createQueryForm({ fields: TEAM_FILTER_FIELDS });
|
|
2828
|
+
* type TeamFilterValue = FilterOverlayValueOf<ReturnType<typeof createTeamFilters>>;
|
|
2829
|
+
*
|
|
2830
|
+
* protected filters = injectFilterOverlay<TeamFilterValue>();
|
|
2831
|
+
* ```
|
|
2832
|
+
*/
|
|
2833
|
+
declare const injectFilterOverlay: <TValue = unknown>() => FilterOverlay<TValue>;
|
|
2834
|
+
|
|
2835
|
+
declare const FILTER_OVERLAY_ERROR_CODES: {
|
|
2836
|
+
readonly MISSING_FILTER_OVERLAY: 4200;
|
|
2837
|
+
};
|
|
2838
|
+
|
|
2839
|
+
/**
|
|
2840
|
+
* The usual live preview: one query, re-executed as the draft filters change, whose response says how many
|
|
2841
|
+
* results they would return.
|
|
2842
|
+
*
|
|
2843
|
+
* A factory of a factory, because the query has to be created in the overlay's injection context — which only
|
|
2844
|
+
* exists once the overlay is open. Pass the result as the config's `preview`; the filter overlay calls it with
|
|
2845
|
+
* its draft value.
|
|
2846
|
+
*
|
|
2847
|
+
* Debouncing is the query form's job, not this one's: the branch's value is already the debounced one where a
|
|
2848
|
+
* field asked for it, so typing in a search box does not fire a request per keystroke.
|
|
2849
|
+
*
|
|
2850
|
+
* @example
|
|
2851
|
+
* providers: [
|
|
2852
|
+
* provideFilterOverlay({
|
|
2853
|
+
* queryForm: filters,
|
|
2854
|
+
* preview: filterOverlayPreviewFromQuery({
|
|
2855
|
+
* queryCreator: searchTeams,
|
|
2856
|
+
* args: (value) => ({ queryParams: { ...value, limit: 1 } }),
|
|
2857
|
+
* toTotalHits: (response) => response.totalHits,
|
|
2858
|
+
* }),
|
|
2859
|
+
* }),
|
|
2860
|
+
* ]
|
|
2861
|
+
*/
|
|
2862
|
+
declare const filterOverlayPreviewFromQuery: <TCreator extends AnyQueryCreator, TValue>(config: {
|
|
2863
|
+
/** The query creator to run. Created once, then re-executed as the draft changes. */
|
|
2864
|
+
queryCreator: TCreator;
|
|
2865
|
+
/**
|
|
2866
|
+
* Builds the request args from the draft value. Return `null` to skip the request — for a draft that is not
|
|
2867
|
+
* yet worth counting. Ask for as few rows as the endpoint allows: only the total is used.
|
|
2868
|
+
*/
|
|
2869
|
+
args: (value: TValue) => RequestArgs<QueryArgsOf<TCreator>> | null;
|
|
2870
|
+
/** Pulls the total out of the response. @default `response.totalHits` */
|
|
2871
|
+
toTotalHits?: (response: ResponseType<QueryArgsOf<TCreator>>) => number;
|
|
2872
|
+
}) => (draftValue: Signal<TValue>) => FilterOverlayPreview;
|
|
2873
|
+
|
|
2874
|
+
/**
|
|
2875
|
+
* The submit button. Takes its label and disabled state from the live preview, so the button reads "Show 42
|
|
2876
|
+
* results" rather than "Apply" and disables itself while the count is pending or zero.
|
|
2877
|
+
*
|
|
2878
|
+
* Put it on a real `<button>` — it is the primary action of a form and should behave like one.
|
|
2879
|
+
*
|
|
2880
|
+
* @example
|
|
2881
|
+
* <button etFilterOverlaySubmit et-button></button>
|
|
2882
|
+
*/
|
|
2883
|
+
declare class FilterOverlaySubmitDirective {
|
|
2884
|
+
protected filterOverlay: _ethlete_components.FilterOverlay<unknown> | null;
|
|
2885
|
+
protected isDisabled: _angular_core.Signal<boolean>;
|
|
2886
|
+
/** The label the button should show. Rendered by `<et-filter-overlay-submit-label>`, or read it yourself. */
|
|
2887
|
+
label: _angular_core.Signal<string>;
|
|
2888
|
+
constructor();
|
|
2889
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterOverlaySubmitDirective, never>;
|
|
2890
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FilterOverlaySubmitDirective, "button[etFilterOverlaySubmit]", ["etFilterOverlaySubmit"], {}, {}, never, never, true, never>;
|
|
2891
|
+
}
|
|
2892
|
+
/**
|
|
2893
|
+
* The reset control: puts every filter in the draft back to its default without closing the overlay, so the
|
|
2894
|
+
* reader can start again without losing the panel.
|
|
2895
|
+
*
|
|
2896
|
+
* @example
|
|
2897
|
+
* <button etFilterOverlayReset et-button variant="transparent">Reset</button>
|
|
2898
|
+
*/
|
|
2899
|
+
declare class FilterOverlayResetDirective {
|
|
2900
|
+
protected filterOverlay: _ethlete_components.FilterOverlay<unknown> | null;
|
|
2901
|
+
/**
|
|
2902
|
+
* Nothing to reset when every field is already at its default. Deliberately not `activeFilterCount() === 0`:
|
|
2903
|
+
* the query form leaves search and pagination out of that count, so a typed search would otherwise leave the
|
|
2904
|
+
* reset button disabled with something still to clear.
|
|
2905
|
+
*/
|
|
2906
|
+
protected isDisabled: _angular_core.Signal<boolean>;
|
|
2907
|
+
constructor();
|
|
2908
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterOverlayResetDirective, never>;
|
|
2909
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FilterOverlayResetDirective, "button[etFilterOverlayReset]", ["etFilterOverlayReset"], {}, {}, never, never, true, never>;
|
|
2910
|
+
}
|
|
2911
|
+
|
|
2912
|
+
declare const FILTER_OVERLAY_IMPORTS: readonly [typeof FilterOverlaySubmitDirective, typeof FilterOverlayResetDirective];
|
|
2913
|
+
|
|
2914
|
+
declare const FLOATING_ACTION_ERROR_CODES: {
|
|
2915
|
+
readonly PART_OUTSIDE_FLOATING_ACTION: 4100;
|
|
2916
|
+
readonly MISSING_ANCHOR: 4101;
|
|
2917
|
+
};
|
|
2918
|
+
|
|
2919
|
+
/**
|
|
2920
|
+
* The trigger's home in the document flow — the element that stays put and keeps its space when the trigger
|
|
2921
|
+
* detaches.
|
|
2922
|
+
*
|
|
2923
|
+
* It has to be a separate element from the trigger, and that is the whole trick: once the trigger is
|
|
2924
|
+
* `position: fixed` it is *always* on screen, so observing it would immediately say "come back", then "go
|
|
2925
|
+
* away", forever. The anchor never moves, so its visibility is a stable question. It is also what stops the
|
|
2926
|
+
* layout jumping when the trigger leaves the flow.
|
|
2927
|
+
*
|
|
2928
|
+
* @example
|
|
2929
|
+
* <div etFloatingActionAnchor>
|
|
2930
|
+
* <button etFloatingActionTrigger (click)="openFilters()">Filter</button>
|
|
2931
|
+
* </div>
|
|
2932
|
+
*/
|
|
2933
|
+
declare class FloatingActionAnchorDirective {
|
|
2934
|
+
/** @internal Where the anchor sits relative to the viewport — the input to the whole state machine. */
|
|
2935
|
+
intersection: _angular_core.Signal<_ethlete_core.IntersectionObserverEntryWithDetails[]>;
|
|
2936
|
+
constructor();
|
|
2937
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingActionAnchorDirective, never>;
|
|
2938
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FloatingActionAnchorDirective, "[etFloatingActionAnchor]", ["etFloatingActionAnchor"], {}, {}, never, never, true, never>;
|
|
2939
|
+
}
|
|
2940
|
+
/**
|
|
2941
|
+
* The button (or link) itself. Carries the class the stylesheet moves, and nothing else — it stays the same
|
|
2942
|
+
* element in the same place in the DOM whether it is inline or floating, so the tab order never changes and a
|
|
2943
|
+
* screen reader never sees it appear or disappear.
|
|
2944
|
+
*
|
|
2945
|
+
* @example
|
|
2946
|
+
* <button etFloatingActionTrigger (click)="openFilters()">Filter</button>
|
|
2947
|
+
*/
|
|
2948
|
+
declare class FloatingActionTriggerDirective {
|
|
2949
|
+
elementRef: ElementRef<HTMLElement>;
|
|
2950
|
+
constructor();
|
|
2951
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingActionTriggerDirective, never>;
|
|
2952
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FloatingActionTriggerDirective, "[etFloatingActionTrigger]", ["etFloatingActionTrigger"], {}, {}, never, never, true, never>;
|
|
2953
|
+
}
|
|
2954
|
+
/**
|
|
2955
|
+
* The region the trigger acts on — the results list a filter button filters, the form a save bar saves.
|
|
2956
|
+
*
|
|
2957
|
+
* Optional, and what it buys is knowing when to *stop* offering the action: once this has scrolled past, the
|
|
2958
|
+
* reader is somewhere else on the page and a pinned "Filter" button is just clutter. Without it the trigger
|
|
2959
|
+
* floats for the rest of the page.
|
|
2960
|
+
*
|
|
2961
|
+
* @example
|
|
2962
|
+
* <ul etFloatingActionScope>…</ul>
|
|
2963
|
+
*/
|
|
2964
|
+
declare class FloatingActionScopeDirective {
|
|
2965
|
+
/** @internal Whether the region is still in play. */
|
|
2966
|
+
intersection: _angular_core.Signal<_ethlete_core.IntersectionObserverEntryWithDetails[]>;
|
|
2967
|
+
constructor();
|
|
2968
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingActionScopeDirective, never>;
|
|
2969
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FloatingActionScopeDirective, "[etFloatingActionScope]", ["etFloatingActionScope"], {}, {}, never, never, true, never>;
|
|
2970
|
+
}
|
|
2971
|
+
/**
|
|
2972
|
+
* Where `scrollToTop()` scrolls to. Optional — without it the floating action's own element is the target,
|
|
2973
|
+
* which is usually what you want.
|
|
2974
|
+
*
|
|
2975
|
+
* Put it somewhere else when the thing to return to isn't the top of the container: a filter panel that should
|
|
2976
|
+
* scroll back to the first result rather than to the page heading above it.
|
|
2977
|
+
*
|
|
2978
|
+
* @example
|
|
2979
|
+
* <h2 etFloatingActionTop>Results</h2>
|
|
2980
|
+
*/
|
|
2981
|
+
declare class FloatingActionTopDirective {
|
|
2982
|
+
elementRef: ElementRef<HTMLElement>;
|
|
2983
|
+
constructor();
|
|
2984
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingActionTopDirective, never>;
|
|
2985
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FloatingActionTopDirective, "[etFloatingActionTop]", ["etFloatingActionTop"], {}, {}, never, never, true, never>;
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
/**
|
|
2989
|
+
* Where the trigger is right now.
|
|
2990
|
+
*
|
|
2991
|
+
* - `inline` — its anchor is on screen, so it sits in the flow where it was written.
|
|
2992
|
+
* - `floating` — the anchor has scrolled away but the region it acts on is still in play, so the trigger
|
|
2993
|
+
* detaches and pins itself to the corner.
|
|
2994
|
+
* - `hidden` — the region has scrolled away too. There is nothing left to act on, so the trigger goes.
|
|
2995
|
+
*/
|
|
2996
|
+
declare const FLOATING_ACTION_STATES: {
|
|
2997
|
+
readonly INLINE: "inline";
|
|
2998
|
+
readonly FLOATING: "floating";
|
|
2999
|
+
readonly HIDDEN: "hidden";
|
|
3000
|
+
};
|
|
3001
|
+
type FloatingActionState = (typeof FLOATING_ACTION_STATES)[keyof typeof FLOATING_ACTION_STATES];
|
|
3002
|
+
|
|
3003
|
+
/**
|
|
3004
|
+
* Keeps an action reachable after the reader has scrolled past it: the trigger sits in the flow where it was
|
|
3005
|
+
* written, and pins itself to a corner of the viewport once its place in the page has scrolled away. A filter
|
|
3006
|
+
* button above a long list, a "save changes" bar, a back-to-top.
|
|
3007
|
+
*
|
|
3008
|
+
* Ported from cdk's `rich-filter`, which was never about filtering — it renders no filter UI and imports nothing
|
|
3009
|
+
* from `@ethlete/query`. This is that scroll-coordination pattern under a name that says what it does.
|
|
3010
|
+
*
|
|
3011
|
+
* **Why not CSS?** `position: sticky` can keep an element at an edge, but it cannot move it to a corner of the
|
|
3012
|
+
* viewport, and it has no way to express "and the region this acts on is still on screen" — which is the part
|
|
3013
|
+
* that stops a pinned button following the reader onto unrelated content. So the state comes from two
|
|
3014
|
+
* intersection observers and CSS reacts to it.
|
|
3015
|
+
*
|
|
3016
|
+
* @example
|
|
3017
|
+
* <div etFloatingAction>
|
|
3018
|
+
* <div etFloatingActionAnchor>
|
|
3019
|
+
* <button etFloatingActionTrigger (click)="openFilters()">Filter</button>
|
|
3020
|
+
* </div>
|
|
3021
|
+
*
|
|
3022
|
+
* <ul etFloatingActionScope>
|
|
3023
|
+
* @for (result of results(); track result.id) { <li>…</li> }
|
|
3024
|
+
* </ul>
|
|
3025
|
+
* </div>
|
|
3026
|
+
*/
|
|
3027
|
+
declare class FloatingActionDirective {
|
|
3028
|
+
private elementRef;
|
|
3029
|
+
private styleManager;
|
|
3030
|
+
/**
|
|
3031
|
+
* Keep the trigger in the flow, whatever the scroll position. The escape hatch for turning the behaviour off
|
|
3032
|
+
* per breakpoint or per route without unwinding the markup — a desktop layout with the filters already in a
|
|
3033
|
+
* sidebar has nothing to float. @default false
|
|
3034
|
+
*/
|
|
3035
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3036
|
+
/** @internal Set by `etFloatingActionAnchor`. Its visibility is what drives the state. */
|
|
3037
|
+
anchor: _angular_core.WritableSignal<FloatingActionAnchorDirective | null>;
|
|
3038
|
+
/** @internal Set by `etFloatingActionTrigger`. */
|
|
3039
|
+
trigger: _angular_core.WritableSignal<FloatingActionTriggerDirective | null>;
|
|
3040
|
+
/** @internal Set by `etFloatingActionScope`; optional, and what bounds the action to a region. */
|
|
3041
|
+
scope: _angular_core.WritableSignal<FloatingActionScopeDirective | null>;
|
|
3042
|
+
/** @internal Set by `etFloatingActionTop`; optional override for `scrollToTop()`. */
|
|
3043
|
+
top: _angular_core.WritableSignal<FloatingActionTopDirective | null>;
|
|
3044
|
+
/**
|
|
3045
|
+
* Where the trigger is: in the flow, pinned to the corner, or gone.
|
|
3046
|
+
*
|
|
3047
|
+
* Read off *above*, not merely "not visible": scrolling **down** past the anchor is what should pin the
|
|
3048
|
+
* trigger, while an anchor still below the fold has simply not been reached and must stay put. The same goes
|
|
3049
|
+
* for the scope — once it is above, the reader has left the region behind.
|
|
3050
|
+
*/
|
|
3051
|
+
state: _angular_core.Signal<FloatingActionState>;
|
|
3052
|
+
/** Whether the trigger is currently pinned to the viewport. */
|
|
3053
|
+
isFloating: _angular_core.Signal<boolean>;
|
|
3054
|
+
constructor();
|
|
3055
|
+
/**
|
|
3056
|
+
* Scroll back to the top of the region — what a filter button does after applying filters, so the reader sees
|
|
3057
|
+
* the new first result rather than wherever they happened to be. Targets `[etFloatingActionTop]` if there is
|
|
3058
|
+
* one, otherwise this element.
|
|
3059
|
+
*/
|
|
3060
|
+
scrollToTop(options?: ScrollIntoViewOptions): void;
|
|
3061
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingActionDirective, never>;
|
|
3062
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FloatingActionDirective, "[etFloatingAction]", ["etFloatingAction"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3063
|
+
}
|
|
3064
|
+
|
|
3065
|
+
declare const FLOATING_ACTION_IMPORTS: readonly [typeof FloatingActionDirective, typeof FloatingActionAnchorDirective, typeof FloatingActionTriggerDirective, typeof FloatingActionScopeDirective, typeof FloatingActionTopDirective];
|
|
3066
|
+
|
|
3067
|
+
declare const FLOATING_ACTION_TOKEN: InjectionToken<FloatingActionDirective>;
|
|
3068
|
+
|
|
2550
3069
|
declare const CASCADER_ERROR_CODES: {
|
|
2551
3070
|
readonly MISSING_TRIGGER: 3300;
|
|
2552
3071
|
readonly MISSING_SURFACE: 3301;
|
|
@@ -2615,8 +3134,11 @@ type FormFieldControl = {
|
|
|
2615
3134
|
hasValue?: Signal<boolean>;
|
|
2616
3135
|
/** True while the committed text can't be parsed (date/time/duration typed entry). */
|
|
2617
3136
|
parseError?: Signal<boolean>;
|
|
2618
|
-
/**
|
|
2619
|
-
|
|
3137
|
+
/**
|
|
3138
|
+
* User-facing message shown when `parseError` is set and there is no validation error — the control's
|
|
3139
|
+
* own `parseErrorMessage` input if it has one, else `DATE_TIME_LABELS`.
|
|
3140
|
+
*/
|
|
3141
|
+
resolvedParseErrorMessage?: Signal<string>;
|
|
2620
3142
|
/**
|
|
2621
3143
|
* True when the control carries an author-supplied accessible name (its own `aria-label` /
|
|
2622
3144
|
* `aria-labelledby`) independent of a projected `<et-label>`. The field's dev-time labelling
|
|
@@ -2624,19 +3146,46 @@ type FormFieldControl = {
|
|
|
2624
3146
|
* `<et-label>` for labelling leave this unset.
|
|
2625
3147
|
*/
|
|
2626
3148
|
hasCustomAccessibleName?: Signal<boolean>;
|
|
3149
|
+
/**
|
|
3150
|
+
* The control's current value. `et-counter` derives the length it displays from this — a string's
|
|
3151
|
+
* `length`, an array's/set's element count, or whatever the counter's `lengthOf` says.
|
|
3152
|
+
*/
|
|
3153
|
+
value?: Signal<unknown>;
|
|
3154
|
+
/**
|
|
3155
|
+
* The bound field's `maxLength()` limit. Signal forms binds this automatically into any control
|
|
3156
|
+
* that declares a `maxLength` input, so `et-counter` gets its limit from the schema without the
|
|
3157
|
+
* consumer repeating it. Note the controls deliberately do **not** forward it to the native
|
|
3158
|
+
* `maxlength` attribute — hard-truncating input would stop the validator from ever reporting the
|
|
3159
|
+
* over-limit error the counter is there to make visible.
|
|
3160
|
+
*/
|
|
3161
|
+
maxLength?: Signal<number | undefined>;
|
|
3162
|
+
/**
|
|
3163
|
+
* True while an async validator is in flight for the bound field — bound automatically by signal
|
|
3164
|
+
* forms into any control declaring a `pending` input. Surfaces as the field's busy state.
|
|
3165
|
+
*/
|
|
3166
|
+
pending?: Signal<boolean>;
|
|
2627
3167
|
activate(): void;
|
|
2628
3168
|
};
|
|
2629
3169
|
type HintComponentBase = object;
|
|
3170
|
+
/** A projected `et-counter`. The field only needs to know one is present to make room for it. */
|
|
3171
|
+
type CounterComponentBase = object;
|
|
2630
3172
|
declare const FORM_FIELD_TOKEN: InjectionToken<FormFieldDirectiveBase>;
|
|
2631
3173
|
type FormFieldDirectiveBase = {
|
|
2632
3174
|
registerControl(control: FormFieldControl): void;
|
|
2633
3175
|
unregisterControl(control: FormFieldControl): void;
|
|
2634
3176
|
registerHint(hint: HintComponentBase): void;
|
|
2635
3177
|
unregisterHint(hint: HintComponentBase): void;
|
|
3178
|
+
registerCounter(counter: CounterComponentBase): void;
|
|
3179
|
+
unregisterCounter(counter: CounterComponentBase): void;
|
|
2636
3180
|
unregisterLabel(label: LabelDirectiveBase): void;
|
|
2637
3181
|
registeredControl: WritableSignal<FormFieldControl | null>;
|
|
2638
3182
|
registeredHint: WritableSignal<HintComponentBase | null>;
|
|
3183
|
+
registeredCounter: WritableSignal<CounterComponentBase | null>;
|
|
2639
3184
|
registeredLabel: WritableSignal<LabelDirectiveBase | null>;
|
|
3185
|
+
/** The registered control's value, for the counter to measure. */
|
|
3186
|
+
controlValue: Signal<unknown>;
|
|
3187
|
+
/** The bound field's schema `maxLength()`, when it has one. */
|
|
3188
|
+
controlMaxLength: Signal<number | undefined>;
|
|
2640
3189
|
/** The field's visible control frame — the box overlay-based controls anchor their panels to. */
|
|
2641
3190
|
controlFrameElement: WritableSignal<HTMLElement | null>;
|
|
2642
3191
|
activate(): void;
|
|
@@ -2651,6 +3200,8 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
|
|
|
2651
3200
|
/** @internal */
|
|
2652
3201
|
registeredHint: _angular_core.WritableSignal<object | null>;
|
|
2653
3202
|
/** @internal */
|
|
3203
|
+
registeredCounter: _angular_core.WritableSignal<object | null>;
|
|
3204
|
+
/** @internal */
|
|
2654
3205
|
registeredLabel: _angular_core.WritableSignal<LabelDirectiveBase | null>;
|
|
2655
3206
|
/** Set by the form-field component; read by overlay-based controls (e.g. the select) as their anchor. */
|
|
2656
3207
|
controlFrameElement: _angular_core.WritableSignal<HTMLElement | null>;
|
|
@@ -2664,6 +3215,12 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
|
|
|
2664
3215
|
/** The control's parse-error message (shown when there's a parse error but no validation error). */
|
|
2665
3216
|
parseErrorMessage: _angular_core.Signal<string | null>;
|
|
2666
3217
|
controlType: _angular_core.Signal<_ethlete_components.FormFieldControlType>;
|
|
3218
|
+
/** The registered control's value — the counter measures this. */
|
|
3219
|
+
controlValue: _angular_core.Signal<unknown>;
|
|
3220
|
+
/** The bound field's schema `maxLength()`, when signal forms bound one into the control. */
|
|
3221
|
+
controlMaxLength: _angular_core.Signal<number | undefined>;
|
|
3222
|
+
/** Whether an async validator is currently in flight for the bound field. */
|
|
3223
|
+
isPending: _angular_core.Signal<boolean>;
|
|
2667
3224
|
focused: _angular_core.Signal<boolean>;
|
|
2668
3225
|
/** Whether the registered control's popup (picker/select/cascader panel) is open. */
|
|
2669
3226
|
expanded: _angular_core.Signal<boolean>;
|
|
@@ -2685,6 +3242,10 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
|
|
|
2685
3242
|
/** @internal */
|
|
2686
3243
|
unregisterHint(hint: HintComponentBase): void;
|
|
2687
3244
|
/** @internal */
|
|
3245
|
+
registerCounter(counter: CounterComponentBase): void;
|
|
3246
|
+
/** @internal */
|
|
3247
|
+
unregisterCounter(counter: CounterComponentBase): void;
|
|
3248
|
+
/** @internal */
|
|
2688
3249
|
unregisterLabel(label: LabelDirectiveBase): void;
|
|
2689
3250
|
activate(): void;
|
|
2690
3251
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldDirective, never>;
|
|
@@ -2933,9 +3494,17 @@ type OverlayStrategyBreakpoint = {
|
|
|
2933
3494
|
/** Overlay strategy to be applied when the breakpoint is active. */
|
|
2934
3495
|
strategy: OverlayStrategy;
|
|
2935
3496
|
};
|
|
3497
|
+
/** A drag direction expressed in physical terms. Unaffected by the writing direction. */
|
|
3498
|
+
type OverlayDragToDismissPhysicalDirection = 'to-top' | 'to-bottom' | 'to-left' | 'to-right';
|
|
3499
|
+
/**
|
|
3500
|
+
* A drag direction. The logical values (`to-inline-start`/`to-inline-end`) are resolved to their
|
|
3501
|
+
* physical counterpart when the gesture is set up, using the overlay container's computed
|
|
3502
|
+
* `direction` — so they follow the writing direction like the logical position strategies do.
|
|
3503
|
+
*/
|
|
3504
|
+
type OverlayDragToDismissDirection = OverlayDragToDismissPhysicalDirection | 'to-inline-start' | 'to-inline-end';
|
|
2936
3505
|
type OverlayDragToDismissConfig = {
|
|
2937
3506
|
/** Direction in which the overlay can be dragged. */
|
|
2938
|
-
direction:
|
|
3507
|
+
direction: OverlayDragToDismissDirection;
|
|
2939
3508
|
/**
|
|
2940
3509
|
* The minimum distance in pixels that the user must swipe to dismiss the overlay.
|
|
2941
3510
|
*
|
|
@@ -2945,9 +3514,27 @@ type OverlayDragToDismissConfig = {
|
|
|
2945
3514
|
/**
|
|
2946
3515
|
* The minimum velocity in pixels per second that the user must swipe to dismiss the overlay.
|
|
2947
3516
|
*
|
|
3517
|
+
* Doubles as the flick threshold when `snapPoints` are set: a release at or above it advances one
|
|
3518
|
+
* snap point in the direction of the flick.
|
|
3519
|
+
*
|
|
2948
3520
|
* @default 150 // 150px/s
|
|
2949
3521
|
*/
|
|
2950
3522
|
minVelocityToDismiss?: number;
|
|
3523
|
+
/**
|
|
3524
|
+
* Resting positions the overlay can be dragged between, as fractions of its own size along the
|
|
3525
|
+
* dismiss axis — `0` is fully open, `0.5` is dragged halfway out. The docked position is always
|
|
3526
|
+
* available whether or not it is listed, and values outside `[0, 1)` are ignored.
|
|
3527
|
+
*
|
|
3528
|
+
* With snap points set, a flick advances one point in its own direction and a slow release settles
|
|
3529
|
+
* at the nearest one; either running past the last point dismisses the overlay. Leaving this unset
|
|
3530
|
+
* keeps the plain two-state behavior driven by `minDistanceToDismiss`/`minVelocityToDismiss`.
|
|
3531
|
+
*
|
|
3532
|
+
* The overlay stays its full size at every snap point — only its offset changes. Content that
|
|
3533
|
+
* should reflow or scroll differently at a partial position is the consumer's concern.
|
|
3534
|
+
*
|
|
3535
|
+
* @default undefined // no intermediate resting positions
|
|
3536
|
+
*/
|
|
3537
|
+
snapPoints?: number[];
|
|
2951
3538
|
};
|
|
2952
3539
|
type OverlayBreakpointConfig = {
|
|
2953
3540
|
/** Min-width of the overlay. If a number is provided, assumes pixel units. */
|
|
@@ -3073,13 +3660,13 @@ declare class OverlayDirective {
|
|
|
3073
3660
|
mode: _angular_core.InputSignal<OverlayMode>;
|
|
3074
3661
|
role: _angular_core.InputSignal<OverlayRole | undefined>;
|
|
3075
3662
|
open: _angular_core.ModelSignal<boolean>;
|
|
3076
|
-
disabled: _angular_core.
|
|
3077
|
-
disableClose: _angular_core.
|
|
3663
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3664
|
+
disableClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3078
3665
|
autoFocus: _angular_core.InputSignal<string | false | undefined>;
|
|
3079
|
-
restoreFocus: _angular_core.
|
|
3666
|
+
restoreFocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3080
3667
|
hasBackdrop: _angular_core.InputSignal<boolean | undefined>;
|
|
3081
|
-
closeOnEscape: _angular_core.
|
|
3082
|
-
closeOnOutsidePointer: _angular_core.
|
|
3668
|
+
closeOnEscape: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3669
|
+
closeOnOutsidePointer: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3083
3670
|
hostClass: _angular_core.InputSignal<string | string[] | undefined>;
|
|
3084
3671
|
backdropClass: _angular_core.InputSignal<string | string[] | undefined>;
|
|
3085
3672
|
panelClass: _angular_core.InputSignal<string | string[] | undefined>;
|
|
@@ -3087,11 +3674,11 @@ declare class OverlayDirective {
|
|
|
3087
3674
|
fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
|
|
3088
3675
|
offset: _angular_core.InputSignal<OffsetOptions | null>;
|
|
3089
3676
|
viewportPadding: _angular_core.InputSignal<Padding | null>;
|
|
3090
|
-
autoResize: _angular_core.
|
|
3091
|
-
shift: _angular_core.
|
|
3092
|
-
autoHide: _angular_core.
|
|
3093
|
-
autoCloseIfReferenceHidden: _angular_core.
|
|
3094
|
-
mirrorWidth: _angular_core.
|
|
3677
|
+
autoResize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3678
|
+
shift: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3679
|
+
autoHide: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3680
|
+
autoCloseIfReferenceHidden: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3681
|
+
mirrorWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3095
3682
|
/** @internal */
|
|
3096
3683
|
registeredAnchor: _angular_core.WritableSignal<OverlayAnchorDirective | null>;
|
|
3097
3684
|
/** @internal */
|
|
@@ -3254,6 +3841,7 @@ declare const registerSingleton: <T>(target: WritableSignal<T | null> | null | u
|
|
|
3254
3841
|
* only surfaces inherited inputs/outputs from a decorated base.
|
|
3255
3842
|
*/
|
|
3256
3843
|
declare abstract class TextFieldControlDirective implements FormFieldControl {
|
|
3844
|
+
private formFieldLabels;
|
|
3257
3845
|
private formField;
|
|
3258
3846
|
touched: _angular_core.ModelSignal<boolean>;
|
|
3259
3847
|
/**
|
|
@@ -3264,14 +3852,28 @@ declare abstract class TextFieldControlDirective implements FormFieldControl {
|
|
|
3264
3852
|
*/
|
|
3265
3853
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
3266
3854
|
/** Placeholder text shown while `mixed` is set — overrides the consumer placeholder. */
|
|
3267
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
3268
|
-
disabled: _angular_core.
|
|
3269
|
-
readonly: _angular_core.
|
|
3270
|
-
hidden: _angular_core.
|
|
3271
|
-
invalid: _angular_core.
|
|
3855
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
3856
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3857
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3858
|
+
hidden: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3859
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3272
3860
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
3273
3861
|
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3274
3862
|
name: _angular_core.InputSignal<string>;
|
|
3863
|
+
/**
|
|
3864
|
+
* The bound field's `maxLength()` limit, bound automatically by signal forms because this input
|
|
3865
|
+
* exists — so `<et-counter />` needs no `[max]` for a schema-validated field.
|
|
3866
|
+
*
|
|
3867
|
+
* Deliberately **not** forwarded to the native `maxlength` attribute: hard-truncating typed input
|
|
3868
|
+
* would stop the validator from ever reporting the over-limit error the counter exists to surface.
|
|
3869
|
+
* Set `maxlength` yourself on the control if you want the browser to clamp instead.
|
|
3870
|
+
*/
|
|
3871
|
+
maxLength: _angular_core.InputSignal<number | undefined>;
|
|
3872
|
+
/**
|
|
3873
|
+
* True while an async validator is in flight for the bound field — bound automatically by signal
|
|
3874
|
+
* forms because this input exists. The field shell surfaces it as its busy state.
|
|
3875
|
+
*/
|
|
3876
|
+
pending: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3275
3877
|
/**
|
|
3276
3878
|
* Author-supplied accessible name, forwarded onto the native control. Use this (or an
|
|
3277
3879
|
* `<et-label>`) when the field has no visible label — a placeholder is not an accessible name.
|
|
@@ -3282,6 +3884,8 @@ declare abstract class TextFieldControlDirective implements FormFieldControl {
|
|
|
3282
3884
|
* id of a projected `<et-label>`.
|
|
3283
3885
|
*/
|
|
3284
3886
|
ariaLabelledby: _angular_core.InputSignal<string | null>;
|
|
3887
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
3888
|
+
resolvedMixedLabel: Signal<string>;
|
|
3285
3889
|
shouldDisplayError: Signal<boolean>;
|
|
3286
3890
|
describedBy: _angular_core.WritableSignal<string | null>;
|
|
3287
3891
|
focused: _angular_core.WritableSignal<boolean>;
|
|
@@ -3299,7 +3903,7 @@ declare abstract class TextFieldControlDirective implements FormFieldControl {
|
|
|
3299
3903
|
constructor();
|
|
3300
3904
|
activate(): void;
|
|
3301
3905
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextFieldControlDirective, never>;
|
|
3302
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TextFieldControlDirective, never, never, { "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "mixed": { "alias": "mixed"; "required": false; "isSignal": true; }; "mixedLabel": { "alias": "mixedLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "mixed": "mixedChange"; }, never, never, true, never>;
|
|
3906
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TextFieldControlDirective, never, never, { "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "mixed": { "alias": "mixed"; "required": false; "isSignal": true; }; "mixedLabel": { "alias": "mixedLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "mixed": "mixedChange"; }, never, never, true, never>;
|
|
3303
3907
|
}
|
|
3304
3908
|
|
|
3305
3909
|
/** A single entry in a cascader's hierarchy. `T` is the consumer's value type. */
|
|
@@ -3414,6 +4018,7 @@ type CascaderSearchLike = {
|
|
|
3414
4018
|
appendCharacter(character: string): void;
|
|
3415
4019
|
};
|
|
3416
4020
|
declare class CascaderDirective<T = unknown> implements FormValueControl<T | T[] | null>, FormFieldControl {
|
|
4021
|
+
private formFieldLabels;
|
|
3417
4022
|
private formField;
|
|
3418
4023
|
private destroyRef;
|
|
3419
4024
|
private document;
|
|
@@ -3424,17 +4029,17 @@ declare class CascaderDirective<T = unknown> implements FormValueControl<T | T[]
|
|
|
3424
4029
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
3425
4030
|
touched: _angular_core.ModelSignal<boolean>;
|
|
3426
4031
|
open: _angular_core.ModelSignal<boolean>;
|
|
3427
|
-
disabled: _angular_core.
|
|
3428
|
-
readonly: _angular_core.
|
|
4032
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4033
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3429
4034
|
/** Multi-select: node activations toggle values instead of committing-and-closing. */
|
|
3430
4035
|
multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3431
|
-
invalid: _angular_core.
|
|
4036
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3432
4037
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
3433
|
-
required: _angular_core.
|
|
4038
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3434
4039
|
name: _angular_core.InputSignal<string>;
|
|
3435
4040
|
placeholder: _angular_core.InputSignal<string>;
|
|
3436
4041
|
/** Trigger text shown while `mixed` is set. */
|
|
3437
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
4042
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
3438
4043
|
/** The hierarchical source browsed by the cascader. Required. */
|
|
3439
4044
|
dataSource: _angular_core.InputSignal<CascaderDataSource<T> | null>;
|
|
3440
4045
|
/** Whether only leaves (`'leaf'`, default) or any node (`'any'`) can be committed as the value. */
|
|
@@ -3448,7 +4053,7 @@ declare class CascaderDirective<T = unknown> implements FormValueControl<T | T[]
|
|
|
3448
4053
|
*/
|
|
3449
4054
|
toErrorMessage: _angular_core.InputSignal<(error: unknown) => string>;
|
|
3450
4055
|
/** Whether the overlay panel mirrors the anchor's width (off — columns size themselves). */
|
|
3451
|
-
mirrorPanelWidth: _angular_core.
|
|
4056
|
+
mirrorPanelWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3452
4057
|
/**
|
|
3453
4058
|
* How many columns the browse view shows side by side before older levels collapse into the
|
|
3454
4059
|
* breadcrumb row (min 1). Deep hierarchies would otherwise grow the panel a column-width per
|
|
@@ -3457,6 +4062,8 @@ declare class CascaderDirective<T = unknown> implements FormValueControl<T | T[]
|
|
|
3457
4062
|
maxVisibleColumns: _angular_core.InputSignalWithTransform<number, number>;
|
|
3458
4063
|
afterOpen: _angular_core.OutputEmitterRef<void>;
|
|
3459
4064
|
afterClose: _angular_core.OutputEmitterRef<void>;
|
|
4065
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
4066
|
+
resolvedMixedLabel: Signal<string>;
|
|
3460
4067
|
shouldDisplayError: Signal<boolean>;
|
|
3461
4068
|
/** The committed values, normalized to an array (one entry in single mode, empty for no value). */
|
|
3462
4069
|
values: Signal<T[]>;
|
|
@@ -3650,6 +4257,7 @@ type CascaderNodeSignal<T> = Signal<CascaderNode<T> | null>;
|
|
|
3650
4257
|
|
|
3651
4258
|
/** One level of the hierarchy — a `role="group"` of tree items. Nodes read their level from it. */
|
|
3652
4259
|
declare class CascaderColumnDirective {
|
|
4260
|
+
private cascaderLabels;
|
|
3653
4261
|
cascader: CascaderDirective<any> | null;
|
|
3654
4262
|
private destroyRef;
|
|
3655
4263
|
/** The column's zero-based level — column 0 shows the root. */
|
|
@@ -3826,6 +4434,37 @@ type CascaderFromQueryConfig<TCreator extends AnyQueryCreator, TValue, TSearchCr
|
|
|
3826
4434
|
*/
|
|
3827
4435
|
declare const cascaderFromQuery: <TCreator extends AnyQueryCreator, TValue, TSearchCreator extends AnyQueryCreator = TCreator>(config: CascaderFromQueryConfig<TCreator, TValue, TSearchCreator>) => CascaderDataSource<TValue>;
|
|
3828
4436
|
|
|
4437
|
+
/** The strings the cascader's panel renders itself — its search field and the step back up a level. */
|
|
4438
|
+
type CascaderLabels = {
|
|
4439
|
+
/** Shown while a level or a search is being fetched. */
|
|
4440
|
+
loading: string;
|
|
4441
|
+
/** Shown when a search matched nothing. */
|
|
4442
|
+
noMatches: string;
|
|
4443
|
+
/** Shown when a level has no options. */
|
|
4444
|
+
noOptions: string;
|
|
4445
|
+
/** The action that re-runs a failed search or level fetch. */
|
|
4446
|
+
retry: string;
|
|
4447
|
+
/** Heading for the root column, which has no parent option to name it. */
|
|
4448
|
+
options: string;
|
|
4449
|
+
/** Accessible label for the control that returns to the parent level. */
|
|
4450
|
+
back: string;
|
|
4451
|
+
/** Placeholder for the panel's search field. */
|
|
4452
|
+
search: string;
|
|
4453
|
+
};
|
|
4454
|
+
/** The built-in English labels. */
|
|
4455
|
+
declare const DEFAULT_CASCADER_LABELS: CascaderLabels;
|
|
4456
|
+
/**
|
|
4457
|
+
* Localize the cascader's strings for everything below this injector, and read the set in effect here as a
|
|
4458
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_CASCADER_LABELS} value. See {@link createLabels}
|
|
4459
|
+
* for the shape, which every domain in this library shares.
|
|
4460
|
+
*
|
|
4461
|
+
* @example
|
|
4462
|
+
* provideCascaderLabels({ back: 'Zurück', search: 'Suchen' });
|
|
4463
|
+
*/
|
|
4464
|
+
declare const provideCascaderLabels: (labels: _ethlete_core.LabelsSource<CascaderLabels>) => _angular_core.Provider;
|
|
4465
|
+
declare const injectCascaderLabels: () => _angular_core.Signal<CascaderLabels>;
|
|
4466
|
+
declare const CASCADER_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<CascaderLabels>>;
|
|
4467
|
+
|
|
3829
4468
|
/**
|
|
3830
4469
|
* The overlay-hosted panel surface: re-applies color/surface context (the pane is detached
|
|
3831
4470
|
* from the trigger's DOM), tracks whether focus is inside (gating the roving-focus moves),
|
|
@@ -3850,14 +4489,22 @@ declare class CascaderPanelComponent {
|
|
|
3850
4489
|
}
|
|
3851
4490
|
|
|
3852
4491
|
declare class CascaderComponent {
|
|
4492
|
+
protected cascaderLabels: _angular_core.Signal<_ethlete_components.CascaderLabels>;
|
|
4493
|
+
private formFieldLabels;
|
|
3853
4494
|
protected cascader: CascaderDirective<unknown>;
|
|
3854
4495
|
protected errorColorTheme: _ethlete_core.ColorTheme;
|
|
3855
4496
|
/** Shows a clear (×) control while a value is selected. */
|
|
3856
|
-
clearable: _angular_core.
|
|
3857
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
3858
|
-
backLabel: _angular_core.InputSignal<string>;
|
|
4497
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4498
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
4499
|
+
backLabel: _angular_core.InputSignal<string | null>;
|
|
3859
4500
|
/** Placeholder of the panel's search input (shown when the data source has a `search` hook). */
|
|
3860
|
-
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
4501
|
+
searchPlaceholder: _angular_core.InputSignal<string | null>;
|
|
4502
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
4503
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
4504
|
+
/** The string in effect: this instance's `backLabel`, else the domain's label set. */
|
|
4505
|
+
protected resolvedBackLabel: _angular_core.Signal<string>;
|
|
4506
|
+
/** The string in effect: this instance's `searchPlaceholder`, else the domain's label set. */
|
|
4507
|
+
protected resolvedSearchPlaceholder: _angular_core.Signal<string>;
|
|
3861
4508
|
protected showClear: _angular_core.Signal<boolean>;
|
|
3862
4509
|
protected handleClearClick(event: Event): void;
|
|
3863
4510
|
protected resultDisabled(path: CascaderNode<unknown>[]): boolean;
|
|
@@ -3881,12 +4528,12 @@ declare class CheckboxDirective implements FormCheckboxControl, FormFieldControl
|
|
|
3881
4528
|
checked: _angular_core.ModelSignal<boolean>;
|
|
3882
4529
|
indeterminate: _angular_core.ModelSignal<boolean>;
|
|
3883
4530
|
touched: _angular_core.ModelSignal<boolean>;
|
|
3884
|
-
disabled: _angular_core.
|
|
4531
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3885
4532
|
/** View-only: keeps the normal look and focusability but blocks toggling (unlike `disabled`). */
|
|
3886
|
-
readonly: _angular_core.
|
|
3887
|
-
invalid: _angular_core.
|
|
4533
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4534
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3888
4535
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
3889
|
-
required: _angular_core.
|
|
4536
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3890
4537
|
name: _angular_core.InputSignal<string>;
|
|
3891
4538
|
ariaChecked: _angular_core.Signal<boolean | "mixed">;
|
|
3892
4539
|
shouldDisplayError: _angular_core.Signal<boolean>;
|
|
@@ -3942,6 +4589,12 @@ declare const FORM_FIELD_SIZES: {
|
|
|
3942
4589
|
};
|
|
3943
4590
|
type FormFieldSize = (typeof FORM_FIELD_SIZES)[keyof typeof FORM_FIELD_SIZES];
|
|
3944
4591
|
|
|
4592
|
+
/** How a choice field presents itself. See {@link ChoiceFieldComponent.variant}. */
|
|
4593
|
+
declare const CHOICE_FIELD_VARIANTS: {
|
|
4594
|
+
readonly PLAIN: "plain";
|
|
4595
|
+
readonly CARD: "card";
|
|
4596
|
+
};
|
|
4597
|
+
type ChoiceFieldVariant = (typeof CHOICE_FIELD_VARIANTS)[keyof typeof CHOICE_FIELD_VARIANTS];
|
|
3945
4598
|
declare class ChoiceFieldComponent {
|
|
3946
4599
|
support: {
|
|
3947
4600
|
errorColorTheme: _ethlete_core.ColorTheme;
|
|
@@ -3961,6 +4614,12 @@ declare class ChoiceFieldComponent {
|
|
|
3961
4614
|
supportHeight: _angular_core.Signal<number>;
|
|
3962
4615
|
};
|
|
3963
4616
|
size: _angular_core.InputSignal<FormFieldSize>;
|
|
4617
|
+
/**
|
|
4618
|
+
* `'card'` turns the row into a full-width clickable panel with the label leading and the control trailing — for
|
|
4619
|
+
* a short list of consequential options where each wants room for a hint. Works for whichever control is
|
|
4620
|
+
* projected, so a checkbox and a switch get the same preset. @default 'plain'
|
|
4621
|
+
*/
|
|
4622
|
+
variant: _angular_core.InputSignal<ChoiceFieldVariant>;
|
|
3964
4623
|
private errorContentRef;
|
|
3965
4624
|
private hintContentRef;
|
|
3966
4625
|
private errorAnimatableRef;
|
|
@@ -3970,7 +4629,7 @@ declare class ChoiceFieldComponent {
|
|
|
3970
4629
|
};
|
|
3971
4630
|
constructor();
|
|
3972
4631
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChoiceFieldComponent, never>;
|
|
3973
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChoiceFieldComponent, "et-choice-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-label", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
|
|
4632
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChoiceFieldComponent, "et-choice-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-label", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
|
|
3974
4633
|
}
|
|
3975
4634
|
|
|
3976
4635
|
declare class HintComponent implements HintComponentBase {
|
|
@@ -4031,7 +4690,7 @@ declare class ColorInputComponent {
|
|
|
4031
4690
|
*/
|
|
4032
4691
|
protected blockWhenReadonly(event: Event): void;
|
|
4033
4692
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColorInputComponent, never>;
|
|
4034
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorInputComponent, "et-color-input", never, {}, {}, never, never, true, [{ directive: typeof ColorInputDirective; inputs: { "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
4693
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorInputComponent, "et-color-input", never, {}, {}, never, never, true, [{ directive: typeof ColorInputDirective; inputs: { "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
4035
4694
|
}
|
|
4036
4695
|
|
|
4037
4696
|
declare const COLOR_INPUT_IMPORTS: readonly [typeof ColorInputComponent, typeof ColorInputDirective];
|
|
@@ -4119,6 +4778,7 @@ type DatePickerInputFieldBase = {
|
|
|
4119
4778
|
* decorated base.
|
|
4120
4779
|
*/
|
|
4121
4780
|
declare abstract class DatePickerInputDirective implements FormValueControl<string | null>, FormFieldControl, DatePickerHost {
|
|
4781
|
+
private formFieldLabels;
|
|
4122
4782
|
private formField;
|
|
4123
4783
|
private document;
|
|
4124
4784
|
defaultLocale: Locale | null;
|
|
@@ -4141,11 +4801,11 @@ declare abstract class DatePickerInputDirective implements FormValueControl<stri
|
|
|
4141
4801
|
/** View state for a field whose source values disagree (bulk edit). The raw form value stays untouched. */
|
|
4142
4802
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
4143
4803
|
touched: _angular_core.ModelSignal<boolean>;
|
|
4144
|
-
disabled: _angular_core.
|
|
4145
|
-
readonly: _angular_core.
|
|
4146
|
-
invalid: _angular_core.
|
|
4804
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4805
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4806
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4147
4807
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
4148
|
-
required: _angular_core.
|
|
4808
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4149
4809
|
name: _angular_core.InputSignal<string>;
|
|
4150
4810
|
placeholder: _angular_core.InputSignal<string>;
|
|
4151
4811
|
/**
|
|
@@ -4153,7 +4813,7 @@ declare abstract class DatePickerInputDirective implements FormValueControl<stri
|
|
|
4153
4813
|
* date field cannot render arbitrary text, so the field stays empty and the
|
|
4154
4814
|
* label shows through the placeholder slot; it never enters the form value.
|
|
4155
4815
|
*/
|
|
4156
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
4816
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
4157
4817
|
/** date-fns format of the string value. Defaults to the control's format token. */
|
|
4158
4818
|
valueFormat: _angular_core.InputSignal<string | undefined>;
|
|
4159
4819
|
locale: _angular_core.InputSignal<Locale | null>;
|
|
@@ -4167,6 +4827,8 @@ declare abstract class DatePickerInputDirective implements FormValueControl<stri
|
|
|
4167
4827
|
*/
|
|
4168
4828
|
mask: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4169
4829
|
pickerOpen: _angular_core.ModelSignal<boolean>;
|
|
4830
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
4831
|
+
resolvedMixedLabel: Signal<string>;
|
|
4170
4832
|
effectiveValueFormat: Signal<string>;
|
|
4171
4833
|
effectiveLocale: Signal<Locale | null>;
|
|
4172
4834
|
/** Uncommitted field text — kept visible when it fails to parse. */
|
|
@@ -4254,15 +4916,18 @@ declare abstract class DatePickerInputFieldDirective implements InputMaskHost {
|
|
|
4254
4916
|
* only ever sees `Date` objects.
|
|
4255
4917
|
*/
|
|
4256
4918
|
declare class DateInputDirective extends DatePickerInputDirective implements FormValueControl<string | null> {
|
|
4919
|
+
private dateTimeLabels;
|
|
4257
4920
|
defaultValueFormat: string;
|
|
4258
4921
|
/** Message the form field shows when typed text can't be parsed as a date. */
|
|
4259
|
-
parseErrorMessage: _angular_core.InputSignal<string>;
|
|
4922
|
+
parseErrorMessage: _angular_core.InputSignal<string | null>;
|
|
4260
4923
|
/** date-fns format shown in (and parsed from) the field. Locale-aware by default. */
|
|
4261
4924
|
displayFormat: _angular_core.InputSignal<string>;
|
|
4262
4925
|
/** Forwarded to the picker calendar. (`min`/`max` are reserved by signal forms.) */
|
|
4263
4926
|
minDate: _angular_core.InputSignal<Date | null>;
|
|
4264
4927
|
maxDate: _angular_core.InputSignal<Date | null>;
|
|
4265
4928
|
dateFilter: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
4929
|
+
/** The string in effect: this instance's `parseErrorMessage`, else the domain's label set. */
|
|
4930
|
+
resolvedParseErrorMessage: _angular_core.Signal<string>;
|
|
4266
4931
|
controlType: _angular_core.WritableSignal<"date-input">;
|
|
4267
4932
|
/** The current value as a `Date` (what the picker calendar binds to). */
|
|
4268
4933
|
date: _angular_core.Signal<Date | null>;
|
|
@@ -4294,11 +4959,17 @@ declare class DateInputFieldDirective extends DatePickerInputFieldDirective {
|
|
|
4294
4959
|
}
|
|
4295
4960
|
|
|
4296
4961
|
declare class DateInputComponent {
|
|
4962
|
+
private dateTimeLabels;
|
|
4963
|
+
private formFieldLabels;
|
|
4297
4964
|
protected dateInput: DateInputDirective;
|
|
4298
|
-
pickerTriggerLabel: _angular_core.InputSignal<string>;
|
|
4965
|
+
pickerTriggerLabel: _angular_core.InputSignal<string | null>;
|
|
4299
4966
|
/** Shows a clear (×) control while a value or pending text is set and the field is in use. */
|
|
4300
|
-
clearable: _angular_core.
|
|
4301
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
4967
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4968
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
4969
|
+
/** The string in effect: this instance's `pickerTriggerLabel`, else the domain's label set. */
|
|
4970
|
+
protected resolvedPickerTriggerLabel: _angular_core.Signal<string>;
|
|
4971
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
4972
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
4302
4973
|
protected showClear: _angular_core.Signal<boolean>;
|
|
4303
4974
|
protected handleClearClick(event: Event): void;
|
|
4304
4975
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateInputComponent, never>;
|
|
@@ -4326,9 +4997,12 @@ declare class DatePickerTriggerDirective {
|
|
|
4326
4997
|
declare const DATE_INPUT_IMPORTS: readonly [typeof DateInputComponent, typeof DateInputDirective, typeof DateInputFieldDirective, typeof DatePickerTriggerDirective, typeof DatePickerSurfaceDirective];
|
|
4327
4998
|
|
|
4328
4999
|
declare class DatePickerPanelComponent {
|
|
5000
|
+
private dateTimeLabels;
|
|
4329
5001
|
/** Accessible name of the picker dialog — set per control (date / time / range / date-time). */
|
|
4330
|
-
dialogLabel: _angular_core.InputSignal<string>;
|
|
5002
|
+
dialogLabel: _angular_core.InputSignal<string | null>;
|
|
4331
5003
|
private panelBody;
|
|
5004
|
+
/** The string in effect: this instance's `dialogLabel`, else the domain's label set. */
|
|
5005
|
+
protected resolvedDialogLabel: _angular_core.Signal<string>;
|
|
4332
5006
|
constructor();
|
|
4333
5007
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerPanelComponent, never>;
|
|
4334
5008
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerPanelComponent, "et-date-picker-panel", never, { "dialogLabel": { "alias": "dialogLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
|
|
@@ -4350,6 +5024,8 @@ type DateRangeSide = 'start' | 'end';
|
|
|
4350
5024
|
* against `displayFormat` on blur/Enter, exactly like the single date input.
|
|
4351
5025
|
*/
|
|
4352
5026
|
declare class DateRangeInputDirective implements FormValueControl<DateRangeValue>, FormFieldControl, DatePickerHost {
|
|
5027
|
+
private dateTimeLabels;
|
|
5028
|
+
private formFieldLabels;
|
|
4353
5029
|
private formField;
|
|
4354
5030
|
private destroyRef;
|
|
4355
5031
|
private document;
|
|
@@ -4363,11 +5039,11 @@ declare class DateRangeInputDirective implements FormValueControl<DateRangeValue
|
|
|
4363
5039
|
*/
|
|
4364
5040
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
4365
5041
|
touched: _angular_core.ModelSignal<boolean>;
|
|
4366
|
-
disabled: _angular_core.
|
|
4367
|
-
readonly: _angular_core.
|
|
4368
|
-
invalid: _angular_core.
|
|
5042
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5043
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5044
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4369
5045
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
4370
|
-
required: _angular_core.
|
|
5046
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4371
5047
|
name: _angular_core.InputSignal<string>;
|
|
4372
5048
|
startPlaceholder: _angular_core.InputSignal<string>;
|
|
4373
5049
|
endPlaceholder: _angular_core.InputSignal<string>;
|
|
@@ -4376,9 +5052,9 @@ declare class DateRangeInputDirective implements FormValueControl<DateRangeValue
|
|
|
4376
5052
|
* date field cannot render arbitrary text, so the fields stay empty and the label
|
|
4377
5053
|
* shows through the placeholder slot; it never enters the form value.
|
|
4378
5054
|
*/
|
|
4379
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
5055
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
4380
5056
|
/** Message the form field shows when either side's typed text can't be parsed as a date. */
|
|
4381
|
-
parseErrorMessage: _angular_core.InputSignal<string>;
|
|
5057
|
+
parseErrorMessage: _angular_core.InputSignal<string | null>;
|
|
4382
5058
|
/** date-fns format of the string values. Defaults to the `DATE_FORMAT` token. */
|
|
4383
5059
|
valueFormat: _angular_core.InputSignal<string | undefined>;
|
|
4384
5060
|
/** date-fns format shown in (and parsed from) the fields. Locale-aware by default. */
|
|
@@ -4398,6 +5074,10 @@ declare class DateRangeInputDirective implements FormValueControl<DateRangeValue
|
|
|
4398
5074
|
maxDate: _angular_core.InputSignal<Date | null>;
|
|
4399
5075
|
dateFilter: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
4400
5076
|
pickerOpen: _angular_core.ModelSignal<boolean>;
|
|
5077
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
5078
|
+
resolvedMixedLabel: Signal<string>;
|
|
5079
|
+
/** The string in effect: this instance's `parseErrorMessage`, else the domain's label set. */
|
|
5080
|
+
resolvedParseErrorMessage: Signal<string>;
|
|
4401
5081
|
effectiveValueFormat: Signal<string>;
|
|
4402
5082
|
effectiveLocale: Signal<Locale | null>;
|
|
4403
5083
|
/** The side the focused field edits — the picker previews from here too. */
|
|
@@ -4505,13 +5185,23 @@ declare class DateRangeInputFieldDirective implements InputMaskHost {
|
|
|
4505
5185
|
}
|
|
4506
5186
|
|
|
4507
5187
|
declare class DateRangeInputComponent {
|
|
5188
|
+
private dateTimeLabels;
|
|
5189
|
+
private formFieldLabels;
|
|
4508
5190
|
protected rangeInput: DateRangeInputDirective;
|
|
4509
|
-
startAriaLabel: _angular_core.InputSignal<string>;
|
|
4510
|
-
endAriaLabel: _angular_core.InputSignal<string>;
|
|
4511
|
-
pickerTriggerLabel: _angular_core.InputSignal<string>;
|
|
5191
|
+
startAriaLabel: _angular_core.InputSignal<string | null>;
|
|
5192
|
+
endAriaLabel: _angular_core.InputSignal<string | null>;
|
|
5193
|
+
pickerTriggerLabel: _angular_core.InputSignal<string | null>;
|
|
4512
5194
|
/** Shows a clear (×) control while a value is set and the field is in use. */
|
|
4513
|
-
clearable: _angular_core.
|
|
4514
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
5195
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5196
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
5197
|
+
/** The string in effect: this instance's `startAriaLabel`, else the domain's label set. */
|
|
5198
|
+
protected resolvedStartAriaLabel: _angular_core.Signal<string>;
|
|
5199
|
+
/** The string in effect: this instance's `endAriaLabel`, else the domain's label set. */
|
|
5200
|
+
protected resolvedEndAriaLabel: _angular_core.Signal<string>;
|
|
5201
|
+
/** The string in effect: this instance's `pickerTriggerLabel`, else the domain's label set. */
|
|
5202
|
+
protected resolvedPickerTriggerLabel: _angular_core.Signal<string>;
|
|
5203
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
5204
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
4515
5205
|
protected showClear: _angular_core.Signal<boolean>;
|
|
4516
5206
|
protected handleClearClick(event: Event): void;
|
|
4517
5207
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateRangeInputComponent, never>;
|
|
@@ -4530,6 +5220,12 @@ declare const TIME_FORMAT: InjectionToken<string>;
|
|
|
4530
5220
|
/**
|
|
4531
5221
|
* The date-fns `Locale` used for display formatting and calendar labels.
|
|
4532
5222
|
* `null` falls back to date-fns' built-in default (en-US).
|
|
5223
|
+
*
|
|
5224
|
+
* This is the one piece of localization that cannot follow `provideLocale()` automatically: a date-fns
|
|
5225
|
+
* locale is a module with its own formatting rules, not something derivable from a `'de'` tag, and
|
|
5226
|
+
* importing every locale to look one up would put all of them in the bundle. So an app that sets
|
|
5227
|
+
* `provideLocale('de')` must also `provideDateLocale(de)` — {@link injectDateLocale} warns in dev mode
|
|
5228
|
+
* when it hasn't.
|
|
4533
5229
|
*/
|
|
4534
5230
|
declare const DATE_LOCALE: InjectionToken<Locale | null>;
|
|
4535
5231
|
declare const provideDateFormat: (format: string) => Provider;
|
|
@@ -4553,15 +5249,18 @@ declare const DATE_TIME_INPUT_ERROR_CODES: {
|
|
|
4553
5249
|
* and time picker only ever see `Date` objects.
|
|
4554
5250
|
*/
|
|
4555
5251
|
declare class DateTimeInputDirective extends DatePickerInputDirective implements FormValueControl<string | null> {
|
|
5252
|
+
private dateTimeLabels;
|
|
4556
5253
|
defaultValueFormat: string;
|
|
4557
5254
|
/** Message the form field shows when typed text can't be parsed as a date & time. */
|
|
4558
|
-
parseErrorMessage: _angular_core.InputSignal<string>;
|
|
5255
|
+
parseErrorMessage: _angular_core.InputSignal<string | null>;
|
|
4559
5256
|
/** Combined date-fns format shown in (and parsed from) the field. Locale-aware by default. */
|
|
4560
5257
|
displayFormat: _angular_core.InputSignal<string>;
|
|
4561
5258
|
/** Forwarded to the picker calendar. (`min`/`max` are reserved by signal forms.) */
|
|
4562
5259
|
minDate: _angular_core.InputSignal<Date | null>;
|
|
4563
5260
|
maxDate: _angular_core.InputSignal<Date | null>;
|
|
4564
5261
|
dateFilter: _angular_core.InputSignal<((date: Date) => boolean) | null>;
|
|
5262
|
+
/** The string in effect: this instance's `parseErrorMessage`, else the domain's label set. */
|
|
5263
|
+
resolvedParseErrorMessage: _angular_core.Signal<string>;
|
|
4565
5264
|
controlType: _angular_core.WritableSignal<"date-time-input">;
|
|
4566
5265
|
/** The current value as a `Date` (what the picker calendar and time picker bind to). */
|
|
4567
5266
|
dateTime: _angular_core.Signal<Date | null>;
|
|
@@ -4604,16 +5303,26 @@ declare class DateTimeInputFieldDirective extends DatePickerInputFieldDirective
|
|
|
4604
5303
|
}
|
|
4605
5304
|
|
|
4606
5305
|
declare class DateTimeInputComponent {
|
|
5306
|
+
private dateTimeLabels;
|
|
5307
|
+
private formFieldLabels;
|
|
4607
5308
|
protected dateTimeInput: DateTimeInputDirective;
|
|
4608
|
-
pickerTriggerLabel: _angular_core.InputSignal<string>;
|
|
4609
|
-
minuteStep: _angular_core.
|
|
4610
|
-
secondStep: _angular_core.
|
|
5309
|
+
pickerTriggerLabel: _angular_core.InputSignal<string | null>;
|
|
5310
|
+
minuteStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
5311
|
+
secondStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
4611
5312
|
/** Labels of the pane tabs shown when the picker mounts as a bottom sheet. */
|
|
4612
|
-
dateTabLabel: _angular_core.InputSignal<string>;
|
|
4613
|
-
timeTabLabel: _angular_core.InputSignal<string>;
|
|
5313
|
+
dateTabLabel: _angular_core.InputSignal<string | null>;
|
|
5314
|
+
timeTabLabel: _angular_core.InputSignal<string | null>;
|
|
4614
5315
|
/** Shows a clear (×) control while a value or pending text is set and the field is in use. */
|
|
4615
|
-
clearable: _angular_core.
|
|
4616
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
5316
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5317
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
5318
|
+
/** The string in effect: this instance's `pickerTriggerLabel`, else the domain's label set. */
|
|
5319
|
+
protected resolvedPickerTriggerLabel: _angular_core.Signal<string>;
|
|
5320
|
+
/** The string in effect: this instance's `dateTabLabel`, else the domain's label set. */
|
|
5321
|
+
protected resolvedDateTabLabel: _angular_core.Signal<string>;
|
|
5322
|
+
/** The string in effect: this instance's `timeTabLabel`, else the domain's label set. */
|
|
5323
|
+
protected resolvedTimeTabLabel: _angular_core.Signal<string>;
|
|
5324
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
5325
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
4617
5326
|
protected showClear: _angular_core.Signal<boolean>;
|
|
4618
5327
|
/** Which pane the bottom-sheet tabs show (both panes render side by side on desktop). */
|
|
4619
5328
|
protected activePane: _angular_core.WritableSignal<"time" | "date">;
|
|
@@ -4632,6 +5341,55 @@ declare class DateTimeInputComponent {
|
|
|
4632
5341
|
|
|
4633
5342
|
declare const DATE_TIME_INPUT_IMPORTS: readonly [typeof DateTimeInputComponent, typeof DateTimeInputDirective, typeof DateTimeInputFieldDirective, typeof DatePickerTriggerDirective, typeof DatePickerSurfaceDirective];
|
|
4634
5343
|
|
|
5344
|
+
/**
|
|
5345
|
+
* Every string the date/time inputs render or announce themselves — the picker triggers, the two halves
|
|
5346
|
+
* of a range, the date/time tabs, and the parse errors a typed value can produce.
|
|
5347
|
+
*
|
|
5348
|
+
* Month and weekday **names** are not here: they come from the `DATE_LOCALE` date-fns locale, which is
|
|
5349
|
+
* the other half of localizing these controls. See the localization guide.
|
|
5350
|
+
*/
|
|
5351
|
+
type DateTimeLabels = {
|
|
5352
|
+
/** Accessible label for the control that opens a date picker. */
|
|
5353
|
+
openCalendar: string;
|
|
5354
|
+
/** Accessible label for the control that opens a time picker. */
|
|
5355
|
+
openTimePicker: string;
|
|
5356
|
+
/** Accessible label for the control that opens a combined date & time picker. */
|
|
5357
|
+
openDateTimePicker: string;
|
|
5358
|
+
/** Accessible label for the picker's dialog. */
|
|
5359
|
+
chooseDate: string;
|
|
5360
|
+
/** Accessible label for a range's start field. */
|
|
5361
|
+
startDate: string;
|
|
5362
|
+
/** Accessible label for a range's end field. */
|
|
5363
|
+
endDate: string;
|
|
5364
|
+
/** The date & time picker's tab showing the calendar. */
|
|
5365
|
+
dateTab: string;
|
|
5366
|
+
/** The date & time picker's tab showing the clock. */
|
|
5367
|
+
timeTab: string;
|
|
5368
|
+
/** Validation message for text that isn't a date. */
|
|
5369
|
+
invalidDate: string;
|
|
5370
|
+
/** Validation message for text that isn't a time. */
|
|
5371
|
+
invalidTime: string;
|
|
5372
|
+
/** Validation message for text that isn't a date and time. */
|
|
5373
|
+
invalidDateTime: string;
|
|
5374
|
+
/** Validation message for text that isn't a date range. */
|
|
5375
|
+
invalidDateRange: string;
|
|
5376
|
+
/** Validation message for text that isn't a duration. */
|
|
5377
|
+
invalidDuration: string;
|
|
5378
|
+
};
|
|
5379
|
+
/** The built-in English labels. */
|
|
5380
|
+
declare const DEFAULT_DATE_TIME_LABELS: DateTimeLabels;
|
|
5381
|
+
/**
|
|
5382
|
+
* Localize the date/time inputs' strings for everything below this injector, and read the set in effect
|
|
5383
|
+
* here as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_DATE_TIME_LABELS} value.
|
|
5384
|
+
* See {@link createLabels} for the shape, which every domain in this library shares.
|
|
5385
|
+
*
|
|
5386
|
+
* @example
|
|
5387
|
+
* provideDateTimeLabels({ openCalendar: 'Kalender öffnen', invalidDate: 'Bitte ein gültiges Datum eingeben' });
|
|
5388
|
+
*/
|
|
5389
|
+
declare const provideDateTimeLabels: (labels: _ethlete_core.LabelsSource<DateTimeLabels>) => _angular_core.Provider;
|
|
5390
|
+
declare const injectDateTimeLabels: () => _angular_core.Signal<DateTimeLabels>;
|
|
5391
|
+
declare const DATE_TIME_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<DateTimeLabels>>;
|
|
5392
|
+
|
|
4635
5393
|
declare const DURATION_INPUT_ERROR_CODES: {
|
|
4636
5394
|
readonly FIELD_OUTSIDE_DURATION_INPUT: 3050;
|
|
4637
5395
|
};
|
|
@@ -4643,6 +5401,8 @@ declare const DURATION_INPUT_ERROR_CODES: {
|
|
|
4643
5401
|
* blur/Enter against a configurable segment layout (`130` → `1:30` under `mm:ss`).
|
|
4644
5402
|
*/
|
|
4645
5403
|
declare class DurationInputDirective implements FormValueControl<number | null>, FormFieldControl {
|
|
5404
|
+
private dateTimeLabels;
|
|
5405
|
+
private formFieldLabels;
|
|
4646
5406
|
private formField;
|
|
4647
5407
|
private destroyRef;
|
|
4648
5408
|
/** Total elapsed milliseconds, or `null` while empty/unparseable. */
|
|
@@ -4650,22 +5410,26 @@ declare class DurationInputDirective implements FormValueControl<number | null>,
|
|
|
4650
5410
|
/** View state for a field whose source values disagree (bulk edit). The raw form value stays untouched. */
|
|
4651
5411
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
4652
5412
|
touched: _angular_core.ModelSignal<boolean>;
|
|
4653
|
-
disabled: _angular_core.
|
|
4654
|
-
readonly: _angular_core.
|
|
4655
|
-
invalid: _angular_core.
|
|
5413
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5414
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5415
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4656
5416
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
4657
|
-
required: _angular_core.
|
|
5417
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4658
5418
|
name: _angular_core.InputSignal<string>;
|
|
4659
5419
|
placeholder: _angular_core.InputSignal<string>;
|
|
4660
5420
|
/**
|
|
4661
5421
|
* Field placeholder shown while `mixed` is set. Presentation only — the field stays
|
|
4662
5422
|
* empty and the label shows through the placeholder slot; it never enters the form value.
|
|
4663
5423
|
*/
|
|
4664
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
5424
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
4665
5425
|
/** Message the form field shows when typed text can't be parsed as a duration. */
|
|
4666
|
-
parseErrorMessage: _angular_core.InputSignal<string>;
|
|
5426
|
+
parseErrorMessage: _angular_core.InputSignal<string | null>;
|
|
4667
5427
|
/** The segment layout: `h`/`m`/`s`/`S` token runs plus separators. @default `'mm:ss'` */
|
|
4668
5428
|
durationFormat: _angular_core.InputSignal<string>;
|
|
5429
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
5430
|
+
resolvedMixedLabel: _angular_core.Signal<string>;
|
|
5431
|
+
/** The string in effect: this instance's `parseErrorMessage`, else the domain's label set. */
|
|
5432
|
+
resolvedParseErrorMessage: _angular_core.Signal<string>;
|
|
4669
5433
|
spec: _angular_core.Signal<_ethlete_components.DurationFormatSpec>;
|
|
4670
5434
|
/** The committed value formatted for display — masked (empty) while mixed. */
|
|
4671
5435
|
displayValue: _angular_core.Signal<string>;
|
|
@@ -4740,10 +5504,13 @@ declare const formatDuration: (ms: number | null, spec: DurationFormatSpec) => s
|
|
|
4740
5504
|
declare const parseDuration: (value: string, spec: DurationFormatSpec) => number | null;
|
|
4741
5505
|
|
|
4742
5506
|
declare class DurationInputComponent {
|
|
5507
|
+
private formFieldLabels;
|
|
4743
5508
|
protected durationInput: DurationInputDirective;
|
|
4744
5509
|
/** Shows a clear (×) control while a value or pending text is set and the field is in use. */
|
|
4745
|
-
clearable: _angular_core.
|
|
4746
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
5510
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5511
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
5512
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
5513
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
4747
5514
|
protected showClear: _angular_core.Signal<boolean>;
|
|
4748
5515
|
protected handleClearClick(event: Event): void;
|
|
4749
5516
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DurationInputComponent, never>;
|
|
@@ -4760,11 +5527,14 @@ declare const DURATION_INPUT_IMPORTS: readonly [typeof DurationInputComponent, t
|
|
|
4760
5527
|
* the time picker itself only ever sees `Date` objects.
|
|
4761
5528
|
*/
|
|
4762
5529
|
declare class TimeInputDirective extends DatePickerInputDirective implements FormValueControl<string | null> {
|
|
5530
|
+
private dateTimeLabels;
|
|
4763
5531
|
defaultValueFormat: string;
|
|
4764
5532
|
/** Message the form field shows when typed text can't be parsed as a time. */
|
|
4765
|
-
parseErrorMessage: _angular_core.InputSignal<string>;
|
|
5533
|
+
parseErrorMessage: _angular_core.InputSignal<string | null>;
|
|
4766
5534
|
/** date-fns format shown in (and parsed from) the field. Locale-aware by default. */
|
|
4767
5535
|
displayFormat: _angular_core.InputSignal<string>;
|
|
5536
|
+
/** The string in effect: this instance's `parseErrorMessage`, else the domain's label set. */
|
|
5537
|
+
resolvedParseErrorMessage: _angular_core.Signal<string>;
|
|
4768
5538
|
controlType: _angular_core.WritableSignal<"time-input">;
|
|
4769
5539
|
private referenceDate;
|
|
4770
5540
|
/** The current value as a `Date` (what the picker binds to). */
|
|
@@ -4804,13 +5574,19 @@ declare const TIME_INPUT_ERROR_CODES: {
|
|
|
4804
5574
|
};
|
|
4805
5575
|
|
|
4806
5576
|
declare class TimeInputComponent {
|
|
5577
|
+
private dateTimeLabels;
|
|
5578
|
+
private formFieldLabels;
|
|
4807
5579
|
protected timeInput: TimeInputDirective;
|
|
4808
|
-
pickerTriggerLabel: _angular_core.InputSignal<string>;
|
|
4809
|
-
minuteStep: _angular_core.
|
|
4810
|
-
secondStep: _angular_core.
|
|
5580
|
+
pickerTriggerLabel: _angular_core.InputSignal<string | null>;
|
|
5581
|
+
minuteStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
5582
|
+
secondStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
4811
5583
|
/** Shows a clear (×) control while a value or pending text is set and the field is in use. */
|
|
4812
|
-
clearable: _angular_core.
|
|
4813
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
5584
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5585
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
5586
|
+
/** The string in effect: this instance's `pickerTriggerLabel`, else the domain's label set. */
|
|
5587
|
+
protected resolvedPickerTriggerLabel: _angular_core.Signal<string>;
|
|
5588
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
5589
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
4814
5590
|
protected showClear: _angular_core.Signal<boolean>;
|
|
4815
5591
|
protected handleClearClick(event: Event): void;
|
|
4816
5592
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimeInputComponent, never>;
|
|
@@ -4824,6 +5600,41 @@ declare class DescriptionComponent {
|
|
|
4824
5600
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DescriptionComponent, "et-description", never, {}, {}, never, ["*"], true, never>;
|
|
4825
5601
|
}
|
|
4826
5602
|
|
|
5603
|
+
/**
|
|
5604
|
+
* Every string the dropzone renders or announces itself: the drop prompt, each entry's actions, and the
|
|
5605
|
+
* fallback wording for an upload that failed without saying why.
|
|
5606
|
+
*
|
|
5607
|
+
* The prompt is also replaceable as content (`<et-dropzone>` projects anything you put inside it), which
|
|
5608
|
+
* is the route to take when you want different markup rather than different words.
|
|
5609
|
+
*/
|
|
5610
|
+
type DropzoneLabels = {
|
|
5611
|
+
/** The drop-target prompt, shown when nothing is projected into the dropzone. */
|
|
5612
|
+
prompt: string;
|
|
5613
|
+
/** The retry action on a failed entry. */
|
|
5614
|
+
retry: string;
|
|
5615
|
+
/** Accessible label prefix for an entry's remove action — the file name is appended. */
|
|
5616
|
+
remove: string;
|
|
5617
|
+
/** Accessible label for the replace action, shown in single-file mode. */
|
|
5618
|
+
replaceFile: string;
|
|
5619
|
+
/** How a failure with no server message is worded: `"photo.png" failed to upload.` */
|
|
5620
|
+
uploadFailed: string;
|
|
5621
|
+
/** Announced while uploads are in flight. */
|
|
5622
|
+
uploading: (count: number) => string;
|
|
5623
|
+
};
|
|
5624
|
+
/** The built-in English labels. */
|
|
5625
|
+
declare const DEFAULT_DROPZONE_LABELS: DropzoneLabels;
|
|
5626
|
+
/**
|
|
5627
|
+
* Localize the dropzone's strings for everything below this injector, and read the set in effect here as a
|
|
5628
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_DROPZONE_LABELS} value. See {@link createLabels}
|
|
5629
|
+
* for the shape, which every domain in this library shares.
|
|
5630
|
+
*
|
|
5631
|
+
* @example
|
|
5632
|
+
* provideDropzoneLabels({ prompt: 'Datei hierher ziehen oder klicken', retry: 'Erneut versuchen' });
|
|
5633
|
+
*/
|
|
5634
|
+
declare const provideDropzoneLabels: (labels: _ethlete_core.LabelsSource<DropzoneLabels>) => _angular_core.Provider;
|
|
5635
|
+
declare const injectDropzoneLabels: () => _angular_core.Signal<DropzoneLabels>;
|
|
5636
|
+
declare const DROPZONE_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<DropzoneLabels>>;
|
|
5637
|
+
|
|
4827
5638
|
/**
|
|
4828
5639
|
* Display information for a value that is already part of the form control
|
|
4829
5640
|
* (e.g. media uploaded in a previous session inside an edit form).
|
|
@@ -5109,15 +5920,15 @@ declare class DropzoneDirective<TValue = unknown> implements FormValueControl<TV
|
|
|
5109
5920
|
private injector;
|
|
5110
5921
|
value: _angular_core.ModelSignal<TValue | TValue[] | null>;
|
|
5111
5922
|
touched: _angular_core.ModelSignal<boolean>;
|
|
5112
|
-
disabled: _angular_core.
|
|
5113
|
-
invalid: _angular_core.
|
|
5923
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5924
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5114
5925
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
5115
|
-
required: _angular_core.
|
|
5926
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5116
5927
|
name: _angular_core.InputSignal<string>;
|
|
5117
5928
|
/** The upload workflow configuration. Create it via `createDropzoneUpload()`. */
|
|
5118
5929
|
upload: _angular_core.InputSignal<AnyDropzoneUploadConfig<TValue>>;
|
|
5119
5930
|
/** Whether multiple files can be uploaded. The control value becomes an array. */
|
|
5120
|
-
multiple: _angular_core.
|
|
5931
|
+
multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5121
5932
|
/** Emits all files of a selection that were rejected, with the reason per file. */
|
|
5122
5933
|
filesReject: _angular_core.OutputEmitterRef<DropzoneFileRejection[]>;
|
|
5123
5934
|
/** Emits when the upload of an entry succeeded (after the control value was updated). */
|
|
@@ -5176,6 +5987,7 @@ declare class DropzoneDirective<TValue = unknown> implements FormValueControl<TV
|
|
|
5176
5987
|
}
|
|
5177
5988
|
|
|
5178
5989
|
declare class DropzoneComponent {
|
|
5990
|
+
private dropzoneLabels;
|
|
5179
5991
|
protected dropzoneDir: DropzoneDirective<any>;
|
|
5180
5992
|
support: {
|
|
5181
5993
|
errorColorTheme: _ethlete_core.ColorTheme;
|
|
@@ -5198,13 +6010,13 @@ declare class DropzoneComponent {
|
|
|
5198
6010
|
private renderer;
|
|
5199
6011
|
private prefersReducedMotion;
|
|
5200
6012
|
/** Label of the retry button shown for failed uploads. */
|
|
5201
|
-
retryLabel: _angular_core.InputSignal<string>;
|
|
6013
|
+
retryLabel: _angular_core.InputSignal<string | null>;
|
|
5202
6014
|
/** Accessible label prefix of the remove button. The entry name is appended. */
|
|
5203
|
-
removeLabel: _angular_core.InputSignal<string>;
|
|
6015
|
+
removeLabel: _angular_core.InputSignal<string | null>;
|
|
5204
6016
|
/** Accessible label of the replace button shown in single mode. */
|
|
5205
|
-
replaceLabel: _angular_core.InputSignal<string>;
|
|
6017
|
+
replaceLabel: _angular_core.InputSignal<string | null>;
|
|
5206
6018
|
/** Fallback error message shown when the upload error has no message. */
|
|
5207
|
-
uploadErrorLabel: _angular_core.InputSignal<string>;
|
|
6019
|
+
uploadErrorLabel: _angular_core.InputSignal<string | null>;
|
|
5208
6020
|
/** Overrides the built-in per-entry upload failure message (e.g. for i18n). */
|
|
5209
6021
|
uploadErrorMessage: _angular_core.InputSignal<((entry: DropzoneEntry) => string) | null>;
|
|
5210
6022
|
private fileInput;
|
|
@@ -5214,6 +6026,14 @@ declare class DropzoneComponent {
|
|
|
5214
6026
|
private errorAnimatableRef;
|
|
5215
6027
|
private hintAnimatableRef;
|
|
5216
6028
|
private entryElements;
|
|
6029
|
+
/** The string in effect: this instance's `retryLabel`, else the domain's label set. */
|
|
6030
|
+
protected resolvedRetryLabel: _angular_core.Signal<string>;
|
|
6031
|
+
/** The string in effect: this instance's `removeLabel`, else the domain's label set. */
|
|
6032
|
+
protected resolvedRemoveLabel: _angular_core.Signal<string>;
|
|
6033
|
+
/** The string in effect: this instance's `replaceLabel`, else the domain's label set. */
|
|
6034
|
+
protected resolvedReplaceLabel: _angular_core.Signal<string>;
|
|
6035
|
+
/** The string in effect: this instance's `uploadErrorLabel`, else the domain's label set. */
|
|
6036
|
+
resolvedUploadErrorLabel: _angular_core.Signal<string>;
|
|
5217
6037
|
private removingEntryIds;
|
|
5218
6038
|
private filePickerOpen;
|
|
5219
6039
|
canAnimate: {
|
|
@@ -5249,6 +6069,38 @@ declare const DROPZONE_ERROR_CODES: {
|
|
|
5249
6069
|
readonly VALUE_MODE_MISMATCH: 2402;
|
|
5250
6070
|
};
|
|
5251
6071
|
|
|
6072
|
+
/**
|
|
6073
|
+
* The `x / N` character counter in a form field's support region.
|
|
6074
|
+
*
|
|
6075
|
+
* It sits at the inline-end of the support row and is **persistent** — unlike the hint, it does not
|
|
6076
|
+
* swap out when an error appears, because a reader who just crossed the limit needs to see both the
|
|
6077
|
+
* error and the count that caused it.
|
|
6078
|
+
*
|
|
6079
|
+
* The limit comes from `[max]` if given, otherwise from the bound field's schema `maxLength()`
|
|
6080
|
+
* (signal forms binds that into the control automatically). With neither, the counter renders the
|
|
6081
|
+
* bare count.
|
|
6082
|
+
*/
|
|
6083
|
+
declare class CounterComponent implements CounterComponentBase {
|
|
6084
|
+
private formField;
|
|
6085
|
+
/**
|
|
6086
|
+
* The limit to count towards. Wins over the schema's `maxLength()` — use it for a control whose
|
|
6087
|
+
* length isn't schema-validated, or to count towards a softer limit than the one that validates.
|
|
6088
|
+
*/
|
|
6089
|
+
max: _angular_core.InputSignal<number | undefined>;
|
|
6090
|
+
/** Measures the control's value. Override for a value type the default can't count. */
|
|
6091
|
+
lengthOf: _angular_core.InputSignal<(value: unknown) => number>;
|
|
6092
|
+
/** The limit actually in effect: the explicit `[max]`, else the bound field's `maxLength()`. */
|
|
6093
|
+
resolvedMax: _angular_core.Signal<number | undefined>;
|
|
6094
|
+
/** The current length of the control's value. */
|
|
6095
|
+
current: _angular_core.Signal<number>;
|
|
6096
|
+
isOverLimit: _angular_core.Signal<boolean>;
|
|
6097
|
+
protected limitSuffix: _angular_core.Signal<string>;
|
|
6098
|
+
protected announcement: _angular_core.Signal<string | null>;
|
|
6099
|
+
constructor();
|
|
6100
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CounterComponent, never>;
|
|
6101
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CounterComponent, "et-counter", never, { "max": { "alias": "max"; "required": false; "isSignal": true; }; "lengthOf": { "alias": "lengthOf"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6102
|
+
}
|
|
6103
|
+
|
|
5252
6104
|
/**
|
|
5253
6105
|
* Resolves the text shown for a validation error. Return `null` to fall back to the error's own
|
|
5254
6106
|
* `message`. Lets an app centralize/localize error texts by `kind` (e.g. `required`, `minLength`,
|
|
@@ -5265,6 +6117,34 @@ declare class FormErrorComponent {
|
|
|
5265
6117
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormErrorComponent, "et-form-error", never, { "error": { "alias": "error"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5266
6118
|
}
|
|
5267
6119
|
|
|
6120
|
+
/**
|
|
6121
|
+
* The strings every form control shows, rather than any one control's own. Both are answers a control
|
|
6122
|
+
* gives about its *value*, which is why they recur: a bulk edit masks disagreeing values the same way in
|
|
6123
|
+
* a text field and in a slider, and a clearable control offers to empty itself the same way everywhere.
|
|
6124
|
+
*
|
|
6125
|
+
* One set for all of them on purpose — translating "Clear" once should be enough. The per-control inputs
|
|
6126
|
+
* (`clearLabel`, `mixedLabel`) still win where a specific instance needs different wording.
|
|
6127
|
+
*/
|
|
6128
|
+
type FormFieldLabels = {
|
|
6129
|
+
/** Placeholder standing in for values that disagree across a bulk edit (`mixed`). */
|
|
6130
|
+
mixed: string;
|
|
6131
|
+
/** Accessible label for a control's clear-value button. */
|
|
6132
|
+
clear: string;
|
|
6133
|
+
};
|
|
6134
|
+
/** The built-in English labels. */
|
|
6135
|
+
declare const DEFAULT_FORM_FIELD_LABELS: FormFieldLabels;
|
|
6136
|
+
/**
|
|
6137
|
+
* Localize the strings shared by every form control below this injector, and read the set in effect here
|
|
6138
|
+
* as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_FORM_FIELD_LABELS} value. See
|
|
6139
|
+
* {@link createLabels} for the shape, which every domain in this library shares.
|
|
6140
|
+
*
|
|
6141
|
+
* @example
|
|
6142
|
+
* provideFormFieldLabels({ mixed: 'Gemischt', clear: 'Leeren' });
|
|
6143
|
+
*/
|
|
6144
|
+
declare const provideFormFieldLabels: (labels: _ethlete_core.LabelsSource<FormFieldLabels>) => _angular_core.Provider;
|
|
6145
|
+
declare const injectFormFieldLabels: () => _angular_core.Signal<FormFieldLabels>;
|
|
6146
|
+
declare const FORM_FIELD_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<FormFieldLabels>>;
|
|
6147
|
+
|
|
5268
6148
|
declare class FormFieldComponent {
|
|
5269
6149
|
private provideColor;
|
|
5270
6150
|
private provideSurface;
|
|
@@ -5276,14 +6156,23 @@ declare class FormFieldComponent {
|
|
|
5276
6156
|
fill: _angular_core.InputSignal<FormFieldFill>;
|
|
5277
6157
|
labelMode: _angular_core.InputSignal<FormFieldLabelMode>;
|
|
5278
6158
|
size: _angular_core.InputSignal<FormFieldSize>;
|
|
6159
|
+
/**
|
|
6160
|
+
* Forces the busy state on. The field already shows it while an async validator is in flight for
|
|
6161
|
+
* the bound field; use this for work the form doesn't know about (saving, a lookup of your own).
|
|
6162
|
+
*/
|
|
6163
|
+
busy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5279
6164
|
protected errorContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
5280
6165
|
protected hintContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
6166
|
+
counterContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
5281
6167
|
private controlFrame;
|
|
5282
6168
|
prefixEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
5283
6169
|
protected errorAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
|
|
5284
6170
|
protected hintAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
|
|
6171
|
+
/** Whether the field is showing its busy affordance — a pending async validator, or `[busy]`. */
|
|
6172
|
+
isBusy: _angular_core.Signal<boolean>;
|
|
5285
6173
|
private errorDimensions;
|
|
5286
6174
|
private hintDimensions;
|
|
6175
|
+
private counterDimensions;
|
|
5287
6176
|
private prefixDimensions;
|
|
5288
6177
|
private supportPresentation;
|
|
5289
6178
|
private resolvedSurface;
|
|
@@ -5310,7 +6199,7 @@ declare class FormFieldComponent {
|
|
|
5310
6199
|
constructor();
|
|
5311
6200
|
protected handleFramePointerDown(event: MouseEvent): void;
|
|
5312
6201
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
|
|
5313
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "et-form-field", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "labelMode": { "alias": "labelMode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etInputPrefix]", "et-label", "*", "[etInputSuffix]", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveHasFocusDirective; inputs: {}; outputs: {}; }]>;
|
|
6202
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "et-form-field", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "labelMode": { "alias": "labelMode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "busy": { "alias": "busy"; "required": false; "isSignal": true; }; }, {}, never, ["[etInputPrefix]", "et-label", "*", "[etInputSuffix]", "et-hint", "et-counter"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveHasFocusDirective; inputs: {}; outputs: {}; }]>;
|
|
5314
6203
|
}
|
|
5315
6204
|
|
|
5316
6205
|
declare class InputPrefixDirective {
|
|
@@ -5323,7 +6212,7 @@ declare class InputSuffixDirective {
|
|
|
5323
6212
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputSuffixDirective, "[etInputSuffix]", never, {}, {}, never, never, true, never>;
|
|
5324
6213
|
}
|
|
5325
6214
|
|
|
5326
|
-
declare const FORM_FIELD_IMPORTS: readonly [typeof FormFieldComponent, typeof FormFieldDirective, typeof LabelDirective, typeof HintComponent, typeof InputPrefixDirective, typeof InputSuffixDirective];
|
|
6215
|
+
declare const FORM_FIELD_IMPORTS: readonly [typeof FormFieldComponent, typeof FormFieldDirective, typeof LabelDirective, typeof HintComponent, typeof CounterComponent, typeof InputPrefixDirective, typeof InputSuffixDirective];
|
|
5327
6216
|
|
|
5328
6217
|
declare const INPUT_TEXT_ALIGNMENTS: {
|
|
5329
6218
|
readonly START: "start";
|
|
@@ -5471,53 +6360,96 @@ declare class PasswordInputDirective extends TextFieldControlDirective implement
|
|
|
5471
6360
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PasswordInputDirective, "[etPasswordInput]", ["etPasswordInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "revealed": { "alias": "revealed"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "revealed": "revealedChange"; }, never, never, true, never>;
|
|
5472
6361
|
}
|
|
5473
6362
|
|
|
6363
|
+
/**
|
|
6364
|
+
* The strings the text-field family's own controls render — the number input's steppers and the password
|
|
6365
|
+
* input's reveal toggle. The field's label, hint and errors are yours; these are the parts the control
|
|
6366
|
+
* adds by itself.
|
|
6367
|
+
*/
|
|
6368
|
+
type InputLabels = {
|
|
6369
|
+
/** Accessible label for the number input's step-up control. */
|
|
6370
|
+
increment: string;
|
|
6371
|
+
/** Accessible label for the number input's step-down control. */
|
|
6372
|
+
decrement: string;
|
|
6373
|
+
/** Accessible label for the password input's control while the value is masked. */
|
|
6374
|
+
showPassword: string;
|
|
6375
|
+
/** Accessible label for the password input's control while the value is visible. */
|
|
6376
|
+
hidePassword: string;
|
|
6377
|
+
/** The password input's warning that Caps Lock is on. */
|
|
6378
|
+
capsLockOn: string;
|
|
6379
|
+
};
|
|
6380
|
+
/** The built-in English labels. */
|
|
6381
|
+
declare const DEFAULT_INPUT_LABELS: InputLabels;
|
|
6382
|
+
/**
|
|
6383
|
+
* Localize the text field family's strings for everything below this injector, and read the set in effect here as a
|
|
6384
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_INPUT_LABELS} value. See {@link createLabels}
|
|
6385
|
+
* for the shape, which every domain in this library shares.
|
|
6386
|
+
*
|
|
6387
|
+
* @example
|
|
6388
|
+
* provideInputLabels({ increment: 'Erhöhen', decrement: 'Verringern' });
|
|
6389
|
+
*/
|
|
6390
|
+
declare const provideInputLabels: (labels: _ethlete_core.LabelsSource<InputLabels>) => _angular_core.Provider;
|
|
6391
|
+
declare const injectInputLabels: () => _angular_core.Signal<InputLabels>;
|
|
6392
|
+
declare const INPUT_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<InputLabels>>;
|
|
6393
|
+
|
|
5474
6394
|
declare class InputComponent {
|
|
5475
6395
|
protected inputDir: InputDirective;
|
|
5476
6396
|
private nativeInput;
|
|
5477
6397
|
constructor();
|
|
5478
6398
|
syncNativeValue(event: Event): void;
|
|
5479
6399
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
5480
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "et-input", never, {}, {}, never, never, true, [{ directive: typeof InputDirective; inputs: { "type": "type"; "placeholder": "placeholder"; "autocomplete": "autocomplete"; "textAlign": "textAlign"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
6400
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "et-input", never, {}, {}, never, never, true, [{ directive: typeof InputDirective; inputs: { "type": "type"; "placeholder": "placeholder"; "autocomplete": "autocomplete"; "textAlign": "textAlign"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
5481
6401
|
}
|
|
5482
6402
|
|
|
5483
6403
|
declare class NumberInputComponent {
|
|
6404
|
+
private inputLabels;
|
|
5484
6405
|
protected numberInputDir: NumberInputDirective;
|
|
5485
6406
|
private destroyRef;
|
|
5486
6407
|
private document;
|
|
5487
6408
|
/** Renders −/+ stepper buttons with press-and-hold auto-repeat. */
|
|
5488
6409
|
stepper: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5489
6410
|
/** Accessible name of the increment stepper button. */
|
|
5490
|
-
incrementLabel: _angular_core.InputSignal<string>;
|
|
6411
|
+
incrementLabel: _angular_core.InputSignal<string | null>;
|
|
5491
6412
|
/** Accessible name of the decrement stepper button. */
|
|
5492
|
-
decrementLabel: _angular_core.InputSignal<string>;
|
|
6413
|
+
decrementLabel: _angular_core.InputSignal<string | null>;
|
|
5493
6414
|
private nativeInput;
|
|
6415
|
+
/** The string in effect: this instance's `incrementLabel`, else the domain's label set. */
|
|
6416
|
+
protected resolvedIncrementLabel: _angular_core.Signal<string>;
|
|
6417
|
+
/** The string in effect: this instance's `decrementLabel`, else the domain's label set. */
|
|
6418
|
+
protected resolvedDecrementLabel: _angular_core.Signal<string>;
|
|
5494
6419
|
private repeatSub;
|
|
5495
6420
|
constructor();
|
|
5496
6421
|
syncNativeValue(event: Event): void;
|
|
5497
6422
|
protected startStepRepeat(event: PointerEvent, direction: 1 | -1): void;
|
|
5498
6423
|
protected stopStepRepeat(): void;
|
|
5499
6424
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NumberInputComponent, never>;
|
|
5500
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberInputComponent, "et-number-input", never, { "stepper": { "alias": "stepper"; "required": false; "isSignal": true; }; "incrementLabel": { "alias": "incrementLabel"; "required": false; "isSignal": true; }; "decrementLabel": { "alias": "decrementLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof NumberInputDirective; inputs: { "min": "min"; "max": "max"; "step": "step"; "placeholder": "placeholder"; "autocomplete": "autocomplete"; "textAlign": "textAlign"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
6425
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberInputComponent, "et-number-input", never, { "stepper": { "alias": "stepper"; "required": false; "isSignal": true; }; "incrementLabel": { "alias": "incrementLabel"; "required": false; "isSignal": true; }; "decrementLabel": { "alias": "decrementLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof NumberInputDirective; inputs: { "min": "min"; "max": "max"; "step": "step"; "placeholder": "placeholder"; "autocomplete": "autocomplete"; "textAlign": "textAlign"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
5501
6426
|
}
|
|
5502
6427
|
|
|
5503
6428
|
declare class PasswordInputComponent {
|
|
6429
|
+
private inputLabels;
|
|
5504
6430
|
protected passwordDir: PasswordInputDirective;
|
|
5505
6431
|
/** Whether the reveal (show/hide) toggle renders. */
|
|
5506
|
-
revealable: _angular_core.
|
|
6432
|
+
revealable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5507
6433
|
/** Accessible name of the reveal toggle while the value is hidden (the "show" action). */
|
|
5508
|
-
revealLabel: _angular_core.InputSignal<string>;
|
|
6434
|
+
revealLabel: _angular_core.InputSignal<string | null>;
|
|
5509
6435
|
/** Accessible name of the reveal toggle while the value is shown (the "hide" action). */
|
|
5510
|
-
hideLabel: _angular_core.InputSignal<string>;
|
|
6436
|
+
hideLabel: _angular_core.InputSignal<string | null>;
|
|
5511
6437
|
/** Show a warning indicator while the field is focused and Caps Lock is on. */
|
|
5512
|
-
capsLockWarning: _angular_core.
|
|
6438
|
+
capsLockWarning: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5513
6439
|
/** Accessible text of the Caps Lock warning. */
|
|
5514
|
-
capsLockLabel: _angular_core.InputSignal<string>;
|
|
6440
|
+
capsLockLabel: _angular_core.InputSignal<string | null>;
|
|
5515
6441
|
private nativeInput;
|
|
6442
|
+
/** The string in effect: this instance's `revealLabel`, else the domain's label set. */
|
|
6443
|
+
protected resolvedRevealLabel: _angular_core.Signal<string>;
|
|
6444
|
+
/** The string in effect: this instance's `hideLabel`, else the domain's label set. */
|
|
6445
|
+
protected resolvedHideLabel: _angular_core.Signal<string>;
|
|
6446
|
+
/** The string in effect: this instance's `capsLockLabel`, else the domain's label set. */
|
|
6447
|
+
protected resolvedCapsLockLabel: _angular_core.Signal<string>;
|
|
5516
6448
|
constructor();
|
|
5517
6449
|
protected showCapsLockWarning(): boolean;
|
|
5518
6450
|
syncNativeValue(event: Event): void;
|
|
5519
6451
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PasswordInputComponent, never>;
|
|
5520
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PasswordInputComponent, "et-password-input", never, { "revealable": { "alias": "revealable"; "required": false; "isSignal": true; }; "revealLabel": { "alias": "revealLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "capsLockWarning": { "alias": "capsLockWarning"; "required": false; "isSignal": true; }; "capsLockLabel": { "alias": "capsLockLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof PasswordInputDirective; inputs: { "placeholder": "placeholder"; "autocomplete": "autocomplete"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "revealed": "revealed"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; "revealedChange": "revealedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
6452
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PasswordInputComponent, "et-password-input", never, { "revealable": { "alias": "revealable"; "required": false; "isSignal": true; }; "revealLabel": { "alias": "revealLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "capsLockWarning": { "alias": "capsLockWarning"; "required": false; "isSignal": true; }; "capsLockLabel": { "alias": "capsLockLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof PasswordInputDirective; inputs: { "placeholder": "placeholder"; "autocomplete": "autocomplete"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "revealed": "revealed"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; "revealedChange": "revealedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
5521
6453
|
}
|
|
5522
6454
|
|
|
5523
6455
|
declare const INPUT_IMPORTS: readonly [typeof InputComponent, typeof InputDirective];
|
|
@@ -5681,11 +6613,11 @@ type MultiLanguageRichTextEditorValue = Record<string, string>;
|
|
|
5681
6613
|
declare class MultiLanguageRichTextEditorDirective implements FormValueControl<MultiLanguageRichTextEditorValue> {
|
|
5682
6614
|
value: _angular_core.ModelSignal<MultiLanguageRichTextEditorValue>;
|
|
5683
6615
|
touched: _angular_core.ModelSignal<boolean>;
|
|
5684
|
-
disabled: _angular_core.
|
|
5685
|
-
readonly: _angular_core.
|
|
5686
|
-
invalid: _angular_core.
|
|
6616
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6617
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6618
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5687
6619
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
5688
|
-
required: _angular_core.
|
|
6620
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5689
6621
|
name: _angular_core.InputSignal<string>;
|
|
5690
6622
|
/** The languages to offer, in switcher order. Consumer-provided — no languages are hard-wired. */
|
|
5691
6623
|
languages: _angular_core.InputSignal<readonly MultiLanguageRichTextEditorLanguage[]>;
|
|
@@ -5855,7 +6787,11 @@ declare class RichTextEditorTriggersDirective {
|
|
|
5855
6787
|
private overlayManager;
|
|
5856
6788
|
private destroyRef;
|
|
5857
6789
|
triggers: _angular_core.InputSignal<readonly RichTextEditorTrigger[]>;
|
|
5858
|
-
|
|
6790
|
+
/** Shown by the popup when a query matches nothing. `null` (the default) uses the editor's
|
|
6791
|
+
* `noResults` label. */
|
|
6792
|
+
emptyLabel: _angular_core.InputSignal<string | null>;
|
|
6793
|
+
/** The string in effect: this instance's `emptyLabel`, else the editor's label set. */
|
|
6794
|
+
private resolvedEmptyLabel;
|
|
5859
6795
|
private readonly listboxId;
|
|
5860
6796
|
private activeMatch;
|
|
5861
6797
|
private activeIndex;
|
|
@@ -5909,6 +6845,144 @@ type RichTextMarkStates = {
|
|
|
5909
6845
|
tableCell: boolean;
|
|
5910
6846
|
};
|
|
5911
6847
|
|
|
6848
|
+
/**
|
|
6849
|
+
* Every string the rich text editor renders or announces itself. Defaults are English
|
|
6850
|
+
* ({@link DEFAULT_RICH_TEXT_EDITOR_LABELS}); override them app-wide with
|
|
6851
|
+
* {@link provideRichTextEditorLabels} or per instance via `et-rich-text-editor`'s `labels` input.
|
|
6852
|
+
*
|
|
6853
|
+
* Almost all of it is accessible labels: the toolbar's buttons show icons, so their name is the only
|
|
6854
|
+
* thing a screen reader has to go on.
|
|
6855
|
+
*
|
|
6856
|
+
* The **tool** keys (`bold` … `table`) are named after their tool tokens, which is how the toolbar looks
|
|
6857
|
+
* a button's name up. A tool your app registers through `RICH_TEXT_EDITOR_TOOL` keeps the `label` on its
|
|
6858
|
+
* own definition instead — you wrote that string, so it is already in your language.
|
|
6859
|
+
*/
|
|
6860
|
+
type RichTextEditorLabels = {
|
|
6861
|
+
/** Accessible label for the toolbar. */
|
|
6862
|
+
toolbar: string;
|
|
6863
|
+
/** Accessible label for the toolbar that follows a selection (`floatingToolbar`). */
|
|
6864
|
+
selectionToolbar: string;
|
|
6865
|
+
/** Accessible name for the block-style menu's trigger, given the current style's own label. */
|
|
6866
|
+
textStyle: (currentStyle: string) => string;
|
|
6867
|
+
/** Block-style menu entry: a normal paragraph. */
|
|
6868
|
+
paragraph: string;
|
|
6869
|
+
/** Block-style menu entry for a heading level. */
|
|
6870
|
+
heading: (level: number) => string;
|
|
6871
|
+
/** Accessible label for the link editor popover. */
|
|
6872
|
+
linkEditor: string;
|
|
6873
|
+
/** The link editor's heading while the caret sits on an existing link. */
|
|
6874
|
+
linkEditorEdit: string;
|
|
6875
|
+
/** The link editor's heading while adding a new link. */
|
|
6876
|
+
linkEditorAdd: string;
|
|
6877
|
+
/** Accessible label for the link editor's close button. */
|
|
6878
|
+
linkEditorClose: string;
|
|
6879
|
+
/** Label for the link editor's text field. */
|
|
6880
|
+
linkTextLabel: string;
|
|
6881
|
+
/** Placeholder for the link editor's text field. */
|
|
6882
|
+
linkTextPlaceholder: string;
|
|
6883
|
+
/** Label for the link editor's URL field. */
|
|
6884
|
+
linkUrlLabel: string;
|
|
6885
|
+
/** Placeholder for the link editor's URL field. */
|
|
6886
|
+
linkUrlPlaceholder: string;
|
|
6887
|
+
/** The link editor's "open in a new tab" checkbox. */
|
|
6888
|
+
linkNewTab: string;
|
|
6889
|
+
/** The link editor's action that strips the link, shown only for an existing one. */
|
|
6890
|
+
linkRemove: string;
|
|
6891
|
+
/** The link editor's confirm action while adding a link. */
|
|
6892
|
+
linkAdd: string;
|
|
6893
|
+
/** The link editor's confirm action while editing an existing link. */
|
|
6894
|
+
linkUpdate: string;
|
|
6895
|
+
/** The token palette's trigger. */
|
|
6896
|
+
insertToken: string;
|
|
6897
|
+
/** Shown by a token popup or palette that has nothing to offer. */
|
|
6898
|
+
noResults: string;
|
|
6899
|
+
/** Accessible label for a cell in the table tool's size picker, e.g. `'3 by 4'`. */
|
|
6900
|
+
tableSize: (rows: number, columns: number) => string;
|
|
6901
|
+
/** The size picker's readout while a size is hovered, e.g. `'3 × 4'`. */
|
|
6902
|
+
tableSizePreview: (rows: number, columns: number) => string;
|
|
6903
|
+
/** The size picker's readout before any size is hovered. */
|
|
6904
|
+
tableInsert: string;
|
|
6905
|
+
/** Table menu entry: add a header row to a table that has none. */
|
|
6906
|
+
tableInsertHeaderRow: string;
|
|
6907
|
+
/** Table menu entry: insert a row above the caret's. */
|
|
6908
|
+
tableInsertRowAbove: string;
|
|
6909
|
+
/** Table menu entry: insert a row below the caret's. */
|
|
6910
|
+
tableInsertRowBelow: string;
|
|
6911
|
+
/** Table menu entry: insert a column left of the caret's. */
|
|
6912
|
+
tableInsertColumnLeft: string;
|
|
6913
|
+
/** Table menu entry: insert a column right of the caret's. */
|
|
6914
|
+
tableInsertColumnRight: string;
|
|
6915
|
+
/** Table menu entry: delete the caret's row. */
|
|
6916
|
+
tableDeleteRow: string;
|
|
6917
|
+
/** Table menu entry: delete the caret's column. */
|
|
6918
|
+
tableDeleteColumn: string;
|
|
6919
|
+
/** Table menu entry: delete the whole table. */
|
|
6920
|
+
tableDeleteTable: string;
|
|
6921
|
+
/** Toolbar tool: bold. */
|
|
6922
|
+
bold: string;
|
|
6923
|
+
/** Toolbar tool: italic. */
|
|
6924
|
+
italic: string;
|
|
6925
|
+
/** Toolbar tool: strikethrough. */
|
|
6926
|
+
strike: string;
|
|
6927
|
+
/** Toolbar tool: underline. */
|
|
6928
|
+
underline: string;
|
|
6929
|
+
/** Toolbar tool: inline code. */
|
|
6930
|
+
code: string;
|
|
6931
|
+
/** Toolbar tool: bulleted list. */
|
|
6932
|
+
bulletedList: string;
|
|
6933
|
+
/** Toolbar tool: numbered list. */
|
|
6934
|
+
numberedList: string;
|
|
6935
|
+
/** Toolbar tool: link. */
|
|
6936
|
+
link: string;
|
|
6937
|
+
/** Toolbar tool: the opt-in alignment menu. */
|
|
6938
|
+
align: string;
|
|
6939
|
+
/** Accessible label for the alignment menu's trigger. */
|
|
6940
|
+
alignTrigger: string;
|
|
6941
|
+
/** Alignment menu entry: align left. */
|
|
6942
|
+
alignLeft: string;
|
|
6943
|
+
/** Alignment menu entry: center. */
|
|
6944
|
+
alignCenter: string;
|
|
6945
|
+
/** Alignment menu entry: align right. */
|
|
6946
|
+
alignRight: string;
|
|
6947
|
+
/** Alignment menu entry: justify. */
|
|
6948
|
+
alignJustify: string;
|
|
6949
|
+
/** Toolbar tool: the opt-in table menu, and its trigger. */
|
|
6950
|
+
table: string;
|
|
6951
|
+
/** Toolbar tool: the multi-language editor's language switcher. */
|
|
6952
|
+
language: string;
|
|
6953
|
+
/** Accessible name for the language switcher's trigger, given the active language's own name. */
|
|
6954
|
+
languageTrigger: (currentLanguage: string) => string;
|
|
6955
|
+
};
|
|
6956
|
+
/** The built-in English labels. */
|
|
6957
|
+
declare const DEFAULT_RICH_TEXT_EDITOR_LABELS: RichTextEditorLabels;
|
|
6958
|
+
/**
|
|
6959
|
+
* Localize the rich text editor's strings for everything below this injector, and read the set in
|
|
6960
|
+
* effect here as a signal. Partial — whatever you leave out keeps its
|
|
6961
|
+
* {@link DEFAULT_RICH_TEXT_EDITOR_LABELS} value. See {@link createLabels} for the shape, which every
|
|
6962
|
+
* domain in this library shares.
|
|
6963
|
+
*
|
|
6964
|
+
* @example
|
|
6965
|
+
* provideRichTextEditorLabels({
|
|
6966
|
+
* toolbar: 'Textformatierung',
|
|
6967
|
+
* bold: 'Fett',
|
|
6968
|
+
* heading: (level) => `Überschrift ${level}`,
|
|
6969
|
+
* });
|
|
6970
|
+
*/
|
|
6971
|
+
declare const provideRichTextEditorLabels: (labels: _ethlete_core.LabelsSource<RichTextEditorLabels>) => _angular_core.Provider;
|
|
6972
|
+
declare const injectRichTextEditorLabels: () => _angular_core.Signal<RichTextEditorLabels>;
|
|
6973
|
+
declare const RICH_TEXT_EDITOR_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<RichTextEditorLabels>>;
|
|
6974
|
+
/**
|
|
6975
|
+
* A toolbar button's accessible name: the label set's entry for its tool token, or the `label` on the
|
|
6976
|
+
* definition itself for a tool this library doesn't ship (an app's own tool, already in its language).
|
|
6977
|
+
*
|
|
6978
|
+
* The cast is the price of an extensible token: tool tokens are open strings, so no index signature can
|
|
6979
|
+
* describe "the built-in ones happen to be keys of {@link RichTextEditorLabels}".
|
|
6980
|
+
*/
|
|
6981
|
+
declare const richTextEditorToolLabel: (labels: RichTextEditorLabels, tool: {
|
|
6982
|
+
token: string;
|
|
6983
|
+
label: string;
|
|
6984
|
+
}) => string;
|
|
6985
|
+
|
|
5912
6986
|
/**
|
|
5913
6987
|
* The formatting controls the rich text editor can render in its toolbar. `'divider'` renders a
|
|
5914
6988
|
* visual separator and `'heading'` renders the block-style menu; every other token renders a toggle
|
|
@@ -5954,7 +7028,13 @@ declare const injectRichTextEditorTools: {
|
|
|
5954
7028
|
*/
|
|
5955
7029
|
declare const provideRichTextEditorTools: (tools: readonly RichTextEditorTool[]) => _angular_core.Provider[];
|
|
5956
7030
|
|
|
5957
|
-
/**
|
|
7031
|
+
/**
|
|
7032
|
+
* Icon + label + wiring for a single toggle-button tool.
|
|
7033
|
+
*
|
|
7034
|
+
* `label` is only the fallback: what the toolbar renders comes from `RICH_TEXT_EDITOR_LABELS`, keyed by
|
|
7035
|
+
* the tool's token — which is why the built-in tables below read their labels from that set's defaults
|
|
7036
|
+
* rather than repeating them.
|
|
7037
|
+
*/
|
|
5958
7038
|
type RichTextEditorToolButton = {
|
|
5959
7039
|
icon: string;
|
|
5960
7040
|
label: string;
|
|
@@ -6039,6 +7119,7 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
|
|
|
6039
7119
|
private document;
|
|
6040
7120
|
private renderer;
|
|
6041
7121
|
private toolsConfig;
|
|
7122
|
+
private injectedLabels;
|
|
6042
7123
|
/** @internal */
|
|
6043
7124
|
editorDom: {
|
|
6044
7125
|
root: _angular_core.WritableSignal<HTMLElement | null>;
|
|
@@ -6075,12 +7156,12 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
|
|
|
6075
7156
|
};
|
|
6076
7157
|
value: _angular_core.ModelSignal<string>;
|
|
6077
7158
|
touched: _angular_core.ModelSignal<boolean>;
|
|
6078
|
-
disabled: _angular_core.
|
|
6079
|
-
readonly: _angular_core.
|
|
6080
|
-
hidden: _angular_core.
|
|
6081
|
-
invalid: _angular_core.
|
|
7159
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7160
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7161
|
+
hidden: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7162
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6082
7163
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
6083
|
-
required: _angular_core.
|
|
7164
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6084
7165
|
name: _angular_core.InputSignal<string>;
|
|
6085
7166
|
placeholder: _angular_core.InputSignal<string>;
|
|
6086
7167
|
/** Which formatting tools the toolbar renders, and in what order. Falls back to the value from
|
|
@@ -6089,9 +7170,20 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
|
|
|
6089
7170
|
/** Markdown autoformat while typing: `- `, `1. ` and `# `–`### ` at a line start convert into
|
|
6090
7171
|
* lists/headings, and closing `**bold**`, `*italic*`, `` `code` ``, `~~strike~~`, `__`/`_` runs
|
|
6091
7172
|
* convert into their marks. Registered token-trigger characters never autoformat. */
|
|
6092
|
-
autoformat: _angular_core.
|
|
7173
|
+
autoformat: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7174
|
+
/**
|
|
7175
|
+
* Per-instance overrides for the editor's strings, merged over the injected `RICH_TEXT_EDITOR_LABELS`.
|
|
7176
|
+
* Prefer `provideRichTextEditorLabels` for app-wide localization; use this for a one-off wording.
|
|
7177
|
+
*/
|
|
7178
|
+
labels: _angular_core.InputSignal<Partial<RichTextEditorLabels> | null>;
|
|
6093
7179
|
/** Resolved toolbar tools: the `tools` input if set, otherwise the provided/default config. */
|
|
6094
7180
|
resolvedTools: _angular_core.Signal<readonly RichTextEditorTool[]>;
|
|
7181
|
+
/**
|
|
7182
|
+
* The strings in effect here: the injected label set with this instance's `labels` applied. Every part
|
|
7183
|
+
* of the editor reads it through this — the toolbars, the link editor and the opt-in tools all reach
|
|
7184
|
+
* the editor already.
|
|
7185
|
+
*/
|
|
7186
|
+
resolvedLabels: _angular_core.Signal<RichTextEditorLabels>;
|
|
6095
7187
|
/**
|
|
6096
7188
|
* @internal Codec that (de)serializes `{{type:id}}` token chips. Installed by
|
|
6097
7189
|
* `[etRichTextEditorTriggers]` or a render-only provider; `null` when the building-block
|
|
@@ -6210,7 +7302,7 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
|
|
|
6210
7302
|
private reflectMarks;
|
|
6211
7303
|
private runCommand;
|
|
6212
7304
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorDirective, never>;
|
|
6213
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorDirective, "[etRichTextEditor]", ["etRichTextEditor"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "autoformat": { "alias": "autoformat"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
7305
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorDirective, "[etRichTextEditor]", ["etRichTextEditor"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "autoformat": { "alias": "autoformat"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
6214
7306
|
}
|
|
6215
7307
|
|
|
6216
7308
|
declare class RichTextEditorFloatingToolbarComponent {
|
|
@@ -6233,9 +7325,15 @@ declare class RichTextEditorFloatingToolbarComponent {
|
|
|
6233
7325
|
readonly DIVIDER: "divider";
|
|
6234
7326
|
};
|
|
6235
7327
|
protected readonly TOOL_BUTTONS: Partial<Record<_ethlete_components.RichTextEditorTool, _ethlete_components.RichTextEditorToolButton>>;
|
|
7328
|
+
/** The editor's strings — the same set, since this toolbar is part of that editor. */
|
|
7329
|
+
protected labels: _angular_core.Signal<_ethlete_components.RichTextEditorLabels>;
|
|
6236
7330
|
/** The inline marks from the editor's configured tools — headings/lists stay in the static toolbar. */
|
|
6237
7331
|
protected inlineTools: _angular_core.Signal<_ethlete_components.RichTextEditorTool[]>;
|
|
6238
7332
|
constructor();
|
|
7333
|
+
/** A tool button's accessible name, from the label set. */
|
|
7334
|
+
protected toolLabel(token: string, tool: {
|
|
7335
|
+
label: string;
|
|
7336
|
+
}): string;
|
|
6239
7337
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorFloatingToolbarComponent, never>;
|
|
6240
7338
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorFloatingToolbarComponent, "et-rich-text-editor-floating-toolbar", never, { "editor": { "alias": "editor"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
|
|
6241
7339
|
}
|
|
@@ -6249,25 +7347,27 @@ type RichTextEditorLinkEditorValue = {
|
|
|
6249
7347
|
declare class RichTextEditorLinkEditorComponent {
|
|
6250
7348
|
private ownColorProvider;
|
|
6251
7349
|
private contextColorProvider;
|
|
7350
|
+
/** The editor's strings, handed in by `[etRichTextEditorLinkEditor]` — the popover renders detached. */
|
|
7351
|
+
labels: _angular_core.InputSignal<RichTextEditorLabels>;
|
|
6252
7352
|
href: _angular_core.InputSignal<string>;
|
|
6253
7353
|
text: _angular_core.InputSignal<string>;
|
|
6254
|
-
newTab: _angular_core.
|
|
7354
|
+
newTab: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6255
7355
|
/** Whether the caret sits on an existing link (shows the Remove action + "Update"/"Add" wording). */
|
|
6256
|
-
exists: _angular_core.
|
|
7356
|
+
exists: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6257
7357
|
saveLink: _angular_core.OutputEmitterRef<RichTextEditorLinkEditorValue>;
|
|
6258
7358
|
removeLink: _angular_core.OutputEmitterRef<void>;
|
|
6259
7359
|
dismiss: _angular_core.OutputEmitterRef<void>;
|
|
6260
7360
|
protected urlValue: _angular_core.WritableSignal<string>;
|
|
6261
7361
|
protected textValue: _angular_core.WritableSignal<string>;
|
|
6262
7362
|
protected newTabValue: _angular_core.WritableSignal<boolean>;
|
|
6263
|
-
protected title: _angular_core.Signal<
|
|
7363
|
+
protected title: _angular_core.Signal<string>;
|
|
6264
7364
|
constructor();
|
|
6265
7365
|
protected save(): void;
|
|
6266
7366
|
/** Applying re-focuses the editor before the browser processes the Enter keydown's default
|
|
6267
7367
|
* action, which would then insert a line break into the editor — so the default is prevented. */
|
|
6268
7368
|
protected saveOnEnter(event: Event): void;
|
|
6269
7369
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorLinkEditorComponent, never>;
|
|
6270
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorLinkEditorComponent, "et-rich-text-editor-link-editor", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "newTab": { "alias": "newTab"; "required": false; "isSignal": true; }; "exists": { "alias": "exists"; "required": false; "isSignal": true; }; }, { "saveLink": "saveLink"; "removeLink": "removeLink"; "dismiss": "dismiss"; }, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
|
|
7370
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorLinkEditorComponent, "et-rich-text-editor-link-editor", never, { "labels": { "alias": "labels"; "required": true; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "newTab": { "alias": "newTab"; "required": false; "isSignal": true; }; "exists": { "alias": "exists"; "required": false; "isSignal": true; }; }, { "saveLink": "saveLink"; "removeLink": "removeLink"; "dismiss": "dismiss"; }, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
|
|
6271
7371
|
}
|
|
6272
7372
|
|
|
6273
7373
|
/**
|
|
@@ -6306,10 +7406,12 @@ declare class RichTextEditorTokenPaletteComponent {
|
|
|
6306
7406
|
editor: _angular_core.InputSignal<RichTextEditorDirective>;
|
|
6307
7407
|
/** The triggers whose items become chip buttons. Use the same array as the editor's triggers. */
|
|
6308
7408
|
triggers: _angular_core.InputSignal<readonly RichTextEditorTrigger[]>;
|
|
6309
|
-
/** Accessible name for the palette group. */
|
|
6310
|
-
label: _angular_core.InputSignal<string>;
|
|
7409
|
+
/** Accessible name for the palette group. `null` (the default) uses the editor's `insertToken` label. */
|
|
7410
|
+
label: _angular_core.InputSignal<string | null>;
|
|
6311
7411
|
/** Focus the editor after inserting so the user can keep typing. */
|
|
6312
|
-
focusEditorOnInsert: _angular_core.
|
|
7412
|
+
focusEditorOnInsert: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7413
|
+
/** The name in effect: this instance's `label`, else the editor's label set. */
|
|
7414
|
+
protected resolvedLabel: _angular_core.Signal<string>;
|
|
6313
7415
|
private groups;
|
|
6314
7416
|
/** Only groups that actually have items to offer — empty (e.g. search-only) triggers are dropped. */
|
|
6315
7417
|
protected visibleGroups: _angular_core.Signal<RichTextEditorTokenPaletteGroup[]>;
|
|
@@ -6341,7 +7443,7 @@ declare class RichTextEditorTokenPopupComponent {
|
|
|
6341
7443
|
private contextColorProvider;
|
|
6342
7444
|
items: _angular_core.InputSignal<RichTextEditorTriggerItem[]>;
|
|
6343
7445
|
activeIndex: _angular_core.InputSignal<number>;
|
|
6344
|
-
loading: _angular_core.
|
|
7446
|
+
loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6345
7447
|
error: _angular_core.InputSignal<string | null>;
|
|
6346
7448
|
emptyLabel: _angular_core.InputSignal<string>;
|
|
6347
7449
|
listboxId: _angular_core.InputSignal<string>;
|
|
@@ -6353,7 +7455,7 @@ declare class RichTextEditorTokenPopupComponent {
|
|
|
6353
7455
|
constructor();
|
|
6354
7456
|
private resolveErrorTheme;
|
|
6355
7457
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorTokenPopupComponent, never>;
|
|
6356
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorTokenPopupComponent, "et-rich-text-editor-token-popup", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required":
|
|
7458
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorTokenPopupComponent, "et-rich-text-editor-token-popup", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": true; "isSignal": true; }; "listboxId": { "alias": "listboxId"; "required": true; "isSignal": true; }; }, { "selectItem": "selectItem"; "activateItem": "activateItem"; }, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
|
|
6357
7459
|
}
|
|
6358
7460
|
|
|
6359
7461
|
/**
|
|
@@ -6391,11 +7493,13 @@ declare class RichTextEditorAlignToolComponent {
|
|
|
6391
7493
|
/** On touch, open the menu without stealing focus so the keyboard (and docked toolbar) stay put. */
|
|
6392
7494
|
protected hasTouchInput: _angular_core.Signal<boolean>;
|
|
6393
7495
|
editor: _angular_core.InputSignal<RichTextEditorDirective>;
|
|
6394
|
-
|
|
7496
|
+
/** The editor's strings — the tool is part of that editor's toolbar. */
|
|
7497
|
+
protected labels: _angular_core.Signal<_ethlete_components.RichTextEditorLabels>;
|
|
7498
|
+
protected options: _angular_core.Signal<{
|
|
6395
7499
|
value: TextAlign;
|
|
6396
7500
|
label: string;
|
|
6397
7501
|
icon: string;
|
|
6398
|
-
}[]
|
|
7502
|
+
}[]>;
|
|
6399
7503
|
/** Alignment of the caret's block/cell — kept live so the trigger icon and menu stay in sync. */
|
|
6400
7504
|
protected current: _angular_core.WritableSignal<"left" | "right" | "center" | "justify">;
|
|
6401
7505
|
protected currentIcon: _angular_core.Signal<string>;
|
|
@@ -6539,13 +7643,13 @@ declare class MenuDirective {
|
|
|
6539
7643
|
offset: _angular_core.InputSignal<OffsetOptions | "auto" | null>;
|
|
6540
7644
|
viewportPadding: _angular_core.InputSignal<Padding | null>;
|
|
6541
7645
|
/** Render an arrow pointing at the trigger. Trigger-anchored root menus only — submenus and context menus never render one. */
|
|
6542
|
-
arrow: _angular_core.
|
|
7646
|
+
arrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6543
7647
|
arrowPadding: _angular_core.InputSignal<Padding | null>;
|
|
6544
|
-
autoFocus: _angular_core.
|
|
6545
|
-
hoverOpen: _angular_core.
|
|
6546
|
-
hoverOpenDelay: _angular_core.
|
|
6547
|
-
hoverCloseDelay: _angular_core.
|
|
6548
|
-
disabled: _angular_core.
|
|
7648
|
+
autoFocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7649
|
+
hoverOpen: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7650
|
+
hoverOpenDelay: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
7651
|
+
hoverCloseDelay: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
7652
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6549
7653
|
open: _angular_core.ModelSignal<boolean>;
|
|
6550
7654
|
root: MenuDirective;
|
|
6551
7655
|
depth: number;
|
|
@@ -6709,10 +7813,10 @@ declare class MenuSelectionGroupDirective implements MenuSelectionGroupDirective
|
|
|
6709
7813
|
value: _angular_core.ModelSignal<unknown>;
|
|
6710
7814
|
touched: _angular_core.ModelSignal<boolean>;
|
|
6711
7815
|
multipleInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6712
|
-
disabled: _angular_core.
|
|
6713
|
-
invalid: _angular_core.
|
|
7816
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7817
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6714
7818
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
6715
|
-
required: _angular_core.
|
|
7819
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6716
7820
|
name: _angular_core.InputSignal<string>;
|
|
6717
7821
|
multiple: _angular_core.Signal<boolean>;
|
|
6718
7822
|
items: _angular_core.WritableSignal<MenuSelectionGroupItem[]>;
|
|
@@ -6740,10 +7844,10 @@ declare class MenuSelectionItemDirective {
|
|
|
6740
7844
|
checked: _angular_core.ModelSignal<boolean>;
|
|
6741
7845
|
indeterminate: _angular_core.ModelSignal<boolean>;
|
|
6742
7846
|
touched: _angular_core.ModelSignal<boolean>;
|
|
6743
|
-
disabled: _angular_core.
|
|
6744
|
-
invalid: _angular_core.
|
|
7847
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7848
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6745
7849
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
6746
|
-
required: _angular_core.
|
|
7850
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6747
7851
|
name: _angular_core.InputSignal<string>;
|
|
6748
7852
|
kind: _angular_core.Signal<MenuSelectionItemKind>;
|
|
6749
7853
|
ariaChecked: _angular_core.Signal<boolean | "mixed">;
|
|
@@ -6863,6 +7967,8 @@ declare class RichTextEditorTableToolComponent {
|
|
|
6863
7967
|
editor: _angular_core.InputSignal<RichTextEditorDirective>;
|
|
6864
7968
|
protected menu: _angular_core.Signal<MenuDirective>;
|
|
6865
7969
|
protected pickerGrid: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
7970
|
+
/** The editor's strings — the tool is part of that editor's toolbar. */
|
|
7971
|
+
protected labels: _angular_core.Signal<_ethlete_components.RichTextEditorLabels>;
|
|
6866
7972
|
private ops;
|
|
6867
7973
|
protected readonly pickerRows: number[];
|
|
6868
7974
|
protected readonly pickerCols: number[];
|
|
@@ -7004,11 +8110,14 @@ declare class RichTextEditorComponent {
|
|
|
7004
8110
|
readonly TABLE: "table";
|
|
7005
8111
|
readonly DIVIDER: "divider";
|
|
7006
8112
|
};
|
|
7007
|
-
|
|
7008
|
-
|
|
8113
|
+
/** The strings in effect, owned by the directive so the opt-in tools read the same set. */
|
|
8114
|
+
protected labels: _angular_core.Signal<_ethlete_components.RichTextEditorLabels>;
|
|
8115
|
+
/** The block-style menu's entries, named by the label set rather than by the option table. */
|
|
8116
|
+
protected headingOptions: _angular_core.Signal<{
|
|
7009
8117
|
label: string;
|
|
8118
|
+
level: number | null;
|
|
7010
8119
|
icon: string;
|
|
7011
|
-
}[]
|
|
8120
|
+
}[]>;
|
|
7012
8121
|
private registeredTools;
|
|
7013
8122
|
/** Every renderable tool by token: the static base buttons plus any opt-in tools provided via DI. */
|
|
7014
8123
|
protected toolDefs: _angular_core.Signal<Map<string, RichTextEditorToolDefinition>>;
|
|
@@ -7025,6 +8134,8 @@ declare class RichTextEditorComponent {
|
|
|
7025
8134
|
/** The toolbar button currently holding the single roving tab stop (ARIA toolbar pattern). */
|
|
7026
8135
|
private toolbarTabStop;
|
|
7027
8136
|
constructor();
|
|
8137
|
+
/** A tool button's accessible name, from the label set where this library owns the tool. */
|
|
8138
|
+
protected toolLabel(tool: RichTextEditorToolDefinition): string;
|
|
7028
8139
|
protected syncValueFromDom(): void;
|
|
7029
8140
|
/**
|
|
7030
8141
|
* The toolbar is a single tab stop (ARIA toolbar pattern): Tab enters on one button, the arrow
|
|
@@ -7056,7 +8167,7 @@ declare class RichTextEditorComponent {
|
|
|
7056
8167
|
* editor opened from the docked toolbar (which takes focus into an overlay) keeps the bar up. */
|
|
7057
8168
|
private trackEditingActive;
|
|
7058
8169
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorComponent, never>;
|
|
7059
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "et-rich-text-editor", never, {}, {}, never, never, true, [{ directive: typeof RichTextEditorDirective; inputs: { "value": "value"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "placeholder": "placeholder"; "tools": "tools"; "autoformat": "autoformat"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof RichTextEditorFloatingToolbarDirective; inputs: {}; outputs: {}; }, { directive: typeof RichTextEditorLinkEditorDirective; inputs: {}; outputs: {}; }]>;
|
|
8170
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "et-rich-text-editor", never, {}, {}, never, never, true, [{ directive: typeof RichTextEditorDirective; inputs: { "value": "value"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "placeholder": "placeholder"; "tools": "tools"; "autoformat": "autoformat"; "labels": "labels"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof RichTextEditorFloatingToolbarDirective; inputs: {}; outputs: {}; }, { directive: typeof RichTextEditorLinkEditorDirective; inputs: {}; outputs: {}; }]>;
|
|
7060
8171
|
}
|
|
7061
8172
|
|
|
7062
8173
|
declare const RICH_TEXT_EDITOR_IMPORTS: readonly [typeof RichTextEditorComponent, typeof RichTextEditorDirective];
|
|
@@ -7064,7 +8175,7 @@ declare const RICH_TEXT_EDITOR_IMPORTS: readonly [typeof RichTextEditorComponent
|
|
|
7064
8175
|
declare class MultiLanguageRichTextEditorComponent {
|
|
7065
8176
|
protected dir: MultiLanguageRichTextEditorDirective;
|
|
7066
8177
|
placeholder: _angular_core.InputSignal<string>;
|
|
7067
|
-
autoformat: _angular_core.
|
|
8178
|
+
autoformat: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7068
8179
|
/** Formatting tools for the embedded editor (the language switcher is prepended automatically).
|
|
7069
8180
|
* `null` uses the default toolbar. */
|
|
7070
8181
|
tools: _angular_core.InputSignal<readonly RichTextEditorTool[] | null>;
|
|
@@ -7081,6 +8192,8 @@ declare class MultiLanguageRichTextEditorLanguageToolComponent {
|
|
|
7081
8192
|
/** On touch, open the menu without stealing focus so the keyboard (and docked toolbar) stay put. */
|
|
7082
8193
|
protected hasTouchInput: _angular_core.Signal<boolean>;
|
|
7083
8194
|
editor: _angular_core.InputSignal<RichTextEditorDirective>;
|
|
8195
|
+
/** The editor's strings — the switcher is part of that editor's toolbar. */
|
|
8196
|
+
protected labels: _angular_core.Signal<_ethlete_components.RichTextEditorLabels>;
|
|
7084
8197
|
protected languages: _angular_core.Signal<readonly _ethlete_components.MultiLanguageRichTextEditorLanguage[]>;
|
|
7085
8198
|
protected activeCode: _angular_core.Signal<string>;
|
|
7086
8199
|
protected activeLabel: _angular_core.Signal<string>;
|
|
@@ -7111,18 +8224,18 @@ declare class OtpInputDirective implements FormValueControl<string>, FormFieldCo
|
|
|
7111
8224
|
private destroyRef;
|
|
7112
8225
|
value: _angular_core.ModelSignal<string>;
|
|
7113
8226
|
touched: _angular_core.ModelSignal<boolean>;
|
|
7114
|
-
disabled: _angular_core.
|
|
7115
|
-
readonly: _angular_core.
|
|
7116
|
-
invalid: _angular_core.
|
|
8227
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8228
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8229
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7117
8230
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
7118
|
-
required: _angular_core.
|
|
8231
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7119
8232
|
name: _angular_core.InputSignal<string>;
|
|
7120
8233
|
/** Number of characters/segments. */
|
|
7121
|
-
length: _angular_core.
|
|
8234
|
+
length: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
7122
8235
|
/** Which characters are accepted — anything else is stripped (also from pastes). */
|
|
7123
8236
|
charset: _angular_core.InputSignal<OtpInputCharset>;
|
|
7124
8237
|
/** Renders dots instead of the typed characters (PIN entry). */
|
|
7125
|
-
masked: _angular_core.
|
|
8238
|
+
masked: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7126
8239
|
/** Emits once each time the value reaches the full length. */
|
|
7127
8240
|
complete: _angular_core.OutputEmitterRef<string>;
|
|
7128
8241
|
shouldDisplayError: _angular_core.Signal<boolean>;
|
|
@@ -7251,6 +8364,7 @@ declare class PhoneInputFlagDirective {
|
|
|
7251
8364
|
}
|
|
7252
8365
|
|
|
7253
8366
|
declare class PhoneInputDirective implements FormValueControl<string>, FormFieldControl {
|
|
8367
|
+
private formFieldLabels;
|
|
7254
8368
|
private formField;
|
|
7255
8369
|
private destroyRef;
|
|
7256
8370
|
/** Normalized `+<dialCode><national digits>` — empty string while nothing is entered. */
|
|
@@ -7258,18 +8372,20 @@ declare class PhoneInputDirective implements FormValueControl<string>, FormField
|
|
|
7258
8372
|
/** View state for a field whose source values disagree. The raw form value stays untouched. */
|
|
7259
8373
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
7260
8374
|
touched: _angular_core.ModelSignal<boolean>;
|
|
7261
|
-
disabled: _angular_core.
|
|
7262
|
-
readonly: _angular_core.
|
|
7263
|
-
invalid: _angular_core.
|
|
8375
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8376
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8377
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7264
8378
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
7265
|
-
required: _angular_core.
|
|
8379
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7266
8380
|
name: _angular_core.InputSignal<string>;
|
|
7267
8381
|
placeholder: _angular_core.InputSignal<string>;
|
|
7268
8382
|
/** Field placeholder shown while `mixed` is set. */
|
|
7269
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
8383
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
7270
8384
|
defaultCountry: _angular_core.InputSignal<string>;
|
|
7271
8385
|
/** ISO codes listed on top of the country dropdown. */
|
|
7272
8386
|
preferredCountries: _angular_core.InputSignal<string[]>;
|
|
8387
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
8388
|
+
resolvedMixedLabel: _angular_core.Signal<string>;
|
|
7273
8389
|
shouldDisplayError: _angular_core.Signal<boolean>;
|
|
7274
8390
|
hasValue: _angular_core.Signal<boolean>;
|
|
7275
8391
|
/** The placeholder the tel field currently shows — `mixedLabel` while mixed. */
|
|
@@ -7342,14 +8458,46 @@ declare const PHONE_INPUT_ERROR_CODES: {
|
|
|
7342
8458
|
readonly FLAG_TEMPLATE_OUTSIDE_PHONE_INPUT: 2801;
|
|
7343
8459
|
};
|
|
7344
8460
|
|
|
8461
|
+
/**
|
|
8462
|
+
* The strings the phone input renders itself. The country *names* are not here — they come from
|
|
8463
|
+
* `Intl.DisplayNames` for the current locale, so they are already translated.
|
|
8464
|
+
*/
|
|
8465
|
+
type PhoneInputLabels = {
|
|
8466
|
+
/** Accessible label for the country-code selector. */
|
|
8467
|
+
selectCountry: string;
|
|
8468
|
+
/** Placeholder for the country list's search field. */
|
|
8469
|
+
searchCountries: string;
|
|
8470
|
+
/** Shown when a country search matched nothing. */
|
|
8471
|
+
noCountries: string;
|
|
8472
|
+
};
|
|
8473
|
+
/** The built-in English labels. */
|
|
8474
|
+
declare const DEFAULT_PHONE_INPUT_LABELS: PhoneInputLabels;
|
|
8475
|
+
/**
|
|
8476
|
+
* Localize the phone input's strings for everything below this injector, and read the set in effect here as a
|
|
8477
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_PHONE_INPUT_LABELS} value. See {@link createLabels}
|
|
8478
|
+
* for the shape, which every domain in this library shares.
|
|
8479
|
+
*
|
|
8480
|
+
* @example
|
|
8481
|
+
* providePhoneInputLabels({ selectCountry: 'Land auswählen' });
|
|
8482
|
+
*/
|
|
8483
|
+
declare const providePhoneInputLabels: (labels: _ethlete_core.LabelsSource<PhoneInputLabels>) => _angular_core.Provider;
|
|
8484
|
+
declare const injectPhoneInputLabels: () => _angular_core.Signal<PhoneInputLabels>;
|
|
8485
|
+
declare const PHONE_INPUT_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<PhoneInputLabels>>;
|
|
8486
|
+
|
|
7345
8487
|
declare class PhoneInputComponent {
|
|
8488
|
+
protected phoneInputLabels: _angular_core.Signal<_ethlete_components.PhoneInputLabels>;
|
|
8489
|
+
private formFieldLabels;
|
|
7346
8490
|
protected phone: PhoneInputDirective;
|
|
7347
8491
|
private locale;
|
|
7348
8492
|
/** Accessible name of the country-picker trigger — its only visible content is the flag + dial code. */
|
|
7349
|
-
countryLabel: _angular_core.InputSignal<string>;
|
|
8493
|
+
countryLabel: _angular_core.InputSignal<string | null>;
|
|
7350
8494
|
/** Shows a clear (×) control while a number is set and the field is in use. */
|
|
7351
|
-
clearable: _angular_core.
|
|
7352
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
8495
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8496
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
8497
|
+
/** The string in effect: this instance's `countryLabel`, else the domain's label set. */
|
|
8498
|
+
protected resolvedCountryLabel: _angular_core.Signal<string>;
|
|
8499
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
8500
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
7353
8501
|
protected showClear: _angular_core.Signal<boolean>;
|
|
7354
8502
|
protected countries: _angular_core.Signal<{
|
|
7355
8503
|
name: string;
|
|
@@ -7369,6 +8517,7 @@ declare const PHONE_INPUT_IMPORTS: readonly [typeof PhoneInputComponent, typeof
|
|
|
7369
8517
|
|
|
7370
8518
|
type RatingIconState = 'full' | 'half' | 'empty';
|
|
7371
8519
|
declare class RatingDirective implements FormValueControl<number | null>, FormFieldControl {
|
|
8520
|
+
private formFieldLabels;
|
|
7372
8521
|
private formField;
|
|
7373
8522
|
private destroyRef;
|
|
7374
8523
|
private elementRef;
|
|
@@ -7376,20 +8525,22 @@ declare class RatingDirective implements FormValueControl<number | null>, FormFi
|
|
|
7376
8525
|
/** View state for a field whose source values disagree. The raw form value stays untouched. */
|
|
7377
8526
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
7378
8527
|
/** `aria-valuetext` announced while `mixed` is set. */
|
|
7379
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
8528
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
7380
8529
|
touched: _angular_core.ModelSignal<boolean>;
|
|
7381
|
-
disabled: _angular_core.
|
|
7382
|
-
readonly: _angular_core.
|
|
7383
|
-
invalid: _angular_core.
|
|
8530
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8531
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8532
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7384
8533
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
7385
|
-
required: _angular_core.
|
|
8534
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7386
8535
|
name: _angular_core.InputSignal<string>;
|
|
7387
8536
|
/**
|
|
7388
8537
|
* Typed `number | undefined` because signal forms reserves `max` on value controls —
|
|
7389
8538
|
* a schema `max(...)` validator binds straight into this input.
|
|
7390
8539
|
*/
|
|
7391
8540
|
max: _angular_core.InputSignal<number | undefined>;
|
|
7392
|
-
allowHalf: _angular_core.
|
|
8541
|
+
allowHalf: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8542
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
8543
|
+
resolvedMixedLabel: _angular_core.Signal<string>;
|
|
7393
8544
|
effectiveMax: _angular_core.Signal<number>;
|
|
7394
8545
|
step: _angular_core.Signal<1 | 0.5>;
|
|
7395
8546
|
/** The value previewed under the pointer, set by the rendered icons. */
|
|
@@ -7732,6 +8883,7 @@ type SelectAsyncOptions = {
|
|
|
7732
8883
|
hasMore: Signal<boolean>;
|
|
7733
8884
|
};
|
|
7734
8885
|
declare class SelectDirective implements FormValueControl<unknown>, FormFieldControl {
|
|
8886
|
+
private formFieldLabels;
|
|
7735
8887
|
private formField;
|
|
7736
8888
|
private destroyRef;
|
|
7737
8889
|
private document;
|
|
@@ -7742,14 +8894,14 @@ declare class SelectDirective implements FormValueControl<unknown>, FormFieldCon
|
|
|
7742
8894
|
open: _angular_core.ModelSignal<boolean>;
|
|
7743
8895
|
multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7744
8896
|
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7745
|
-
readonly: _angular_core.
|
|
7746
|
-
invalid: _angular_core.
|
|
8897
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8898
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7747
8899
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
7748
|
-
required: _angular_core.
|
|
8900
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7749
8901
|
name: _angular_core.InputSignal<string>;
|
|
7750
8902
|
placeholder: _angular_core.InputSignal<string>;
|
|
7751
8903
|
/** Trigger text shown while `mixed` is set. */
|
|
7752
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
8904
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
7753
8905
|
/**
|
|
7754
8906
|
* Data-driven options: the select owns the option rows instead of the consumer projecting
|
|
7755
8907
|
* `et-select-option`s, and windows their rendering (virtualization) — only rows near the
|
|
@@ -7761,7 +8913,7 @@ declare class SelectDirective implements FormValueControl<unknown>, FormFieldCon
|
|
|
7761
8913
|
options: _angular_core.InputSignal<readonly SelectOptionData[] | null>;
|
|
7762
8914
|
filterModeInput: _angular_core.InputSignal<SelectFilterMode>;
|
|
7763
8915
|
/** Enter with a search query that matches no option commits the raw query string as the value. */
|
|
7764
|
-
allowCustomValues: _angular_core.
|
|
8916
|
+
allowCustomValues: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7765
8917
|
/**
|
|
7766
8918
|
* Single characters that commit the pending search query as a custom value the moment they
|
|
7767
8919
|
* are typed (e.g. `[',']`), and split pasted text in multi mode. Only with `allowCustomValues`.
|
|
@@ -7773,17 +8925,17 @@ declare class SelectDirective implements FormValueControl<unknown>, FormFieldCon
|
|
|
7773
8925
|
* Commits a pending search query as a custom value when the panel closes (Tab, outside
|
|
7774
8926
|
* click) instead of discarding it. An Escape close never commits — it clears the query first.
|
|
7775
8927
|
*/
|
|
7776
|
-
commitCustomValueOnClose: _angular_core.
|
|
8928
|
+
commitCustomValueOnClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7777
8929
|
/** Maximum number of selected values (multi select) — further adds are ignored. */
|
|
7778
8930
|
maxSelection: _angular_core.InputSignal<number | undefined>;
|
|
7779
8931
|
/** Renders an "Add new" row in `et-select`'s panel — clicking it emits `addNew`. */
|
|
7780
8932
|
allowAddNew: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7781
8933
|
/** Async option state — rendered by `et-select` as a loading row inside the panel. */
|
|
7782
|
-
loadingInput: _angular_core.
|
|
8934
|
+
loadingInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7783
8935
|
/** Async option state — rendered by `et-select` as an error row inside the panel. */
|
|
7784
8936
|
errorInput: _angular_core.InputSignal<string | null>;
|
|
7785
8937
|
/** Async option state — `et-select` renders a load-more control emitting `loadMore`. */
|
|
7786
|
-
hasMoreItemsInput: _angular_core.
|
|
8938
|
+
hasMoreItemsInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7787
8939
|
/** Whether the panel mirrors the anchor's width. Off for compact triggers (e.g. a country picker). */
|
|
7788
8940
|
mirrorPanelWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7789
8941
|
/**
|
|
@@ -7810,6 +8962,8 @@ declare class SelectDirective implements FormValueControl<unknown>, FormFieldCon
|
|
|
7810
8962
|
* value selection.
|
|
7811
8963
|
*/
|
|
7812
8964
|
pickOption: _angular_core.OutputEmitterRef<unknown>;
|
|
8965
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
8966
|
+
resolvedMixedLabel: Signal<string>;
|
|
7813
8967
|
/**
|
|
7814
8968
|
* An async option source pushed in by `[etSelectOptions]` (from `selectOptionsFromQuery` /
|
|
7815
8969
|
* `selectOptionsFromV2Query`). While set it overrides the `loading`/`error`/`hasMoreItems`
|
|
@@ -8245,6 +9399,36 @@ declare const SELECT_ERROR_CODES: {
|
|
|
8245
9399
|
readonly OPTIONS_OUTSIDE_SELECT: 1013;
|
|
8246
9400
|
};
|
|
8247
9401
|
|
|
9402
|
+
/**
|
|
9403
|
+
* The strings the select's panel renders itself. The options are yours; these are the panel's own
|
|
9404
|
+
* affordances — paging through an async option list, and the create-a-value flow (`customValues`).
|
|
9405
|
+
*/
|
|
9406
|
+
type SelectLabels = {
|
|
9407
|
+
/** Shown while the option list is being fetched. */
|
|
9408
|
+
loading: string;
|
|
9409
|
+
/** Shown when the option list came back empty. */
|
|
9410
|
+
empty: string;
|
|
9411
|
+
/** The "fetch the next page of options" control in an async panel. */
|
|
9412
|
+
loadMore: string;
|
|
9413
|
+
/** The panel's entry that starts creating a value that isn't in the list. */
|
|
9414
|
+
addNew: string;
|
|
9415
|
+
/** The confirm action of the create-a-value flow. */
|
|
9416
|
+
create: string;
|
|
9417
|
+
};
|
|
9418
|
+
/** The built-in English labels. */
|
|
9419
|
+
declare const DEFAULT_SELECT_LABELS: SelectLabels;
|
|
9420
|
+
/**
|
|
9421
|
+
* Localize the select's strings for everything below this injector, and read the set in effect here as a
|
|
9422
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_SELECT_LABELS} value. See {@link createLabels}
|
|
9423
|
+
* for the shape, which every domain in this library shares.
|
|
9424
|
+
*
|
|
9425
|
+
* @example
|
|
9426
|
+
* provideSelectLabels({ loadMore: 'Mehr laden', create: 'Erstellen' });
|
|
9427
|
+
*/
|
|
9428
|
+
declare const provideSelectLabels: (labels: _ethlete_core.LabelsSource<SelectLabels>) => _angular_core.Provider;
|
|
9429
|
+
declare const injectSelectLabels: () => _angular_core.Signal<SelectLabels>;
|
|
9430
|
+
declare const SELECT_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<SelectLabels>>;
|
|
9431
|
+
|
|
8248
9432
|
declare class SelectOptionGroupComponent {
|
|
8249
9433
|
protected group: SelectOptionGroupDirective;
|
|
8250
9434
|
protected readonly labelId: string;
|
|
@@ -8359,15 +9543,25 @@ declare class SelectVirtualOptionComponent {
|
|
|
8359
9543
|
}
|
|
8360
9544
|
|
|
8361
9545
|
declare class SelectComponent {
|
|
9546
|
+
protected selectLabels: _angular_core.Signal<_ethlete_components.SelectLabels>;
|
|
9547
|
+
private formFieldLabels;
|
|
8362
9548
|
protected select: SelectDirective;
|
|
8363
9549
|
protected errorColorTheme: _ethlete_core.ColorTheme;
|
|
8364
|
-
loadMoreLabel: _angular_core.InputSignal<string>;
|
|
8365
|
-
addNewLabel: _angular_core.InputSignal<string>;
|
|
9550
|
+
loadMoreLabel: _angular_core.InputSignal<string | null>;
|
|
9551
|
+
addNewLabel: _angular_core.InputSignal<string | null>;
|
|
8366
9552
|
/** Leading text of the "Create …" row rendered for `customValueCandidate`. */
|
|
8367
|
-
createLabel: _angular_core.InputSignal<string>;
|
|
9553
|
+
createLabel: _angular_core.InputSignal<string | null>;
|
|
8368
9554
|
/** Shows a clear (×) control while a value is selected. */
|
|
8369
9555
|
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8370
|
-
clearLabel: _angular_core.InputSignal<string>;
|
|
9556
|
+
clearLabel: _angular_core.InputSignal<string | null>;
|
|
9557
|
+
/** The string in effect: this instance's `loadMoreLabel`, else the domain's label set. */
|
|
9558
|
+
protected resolvedLoadMoreLabel: _angular_core.Signal<string>;
|
|
9559
|
+
/** The string in effect: this instance's `addNewLabel`, else the domain's label set. */
|
|
9560
|
+
protected resolvedAddNewLabel: _angular_core.Signal<string>;
|
|
9561
|
+
/** The string in effect: this instance's `createLabel`, else the domain's label set. */
|
|
9562
|
+
protected resolvedCreateLabel: _angular_core.Signal<string>;
|
|
9563
|
+
/** The string in effect: this instance's `clearLabel`, else `FORM_FIELD_LABELS`. */
|
|
9564
|
+
protected resolvedClearLabel: _angular_core.Signal<string>;
|
|
8371
9565
|
protected mixedLabelId: string;
|
|
8372
9566
|
protected showClear: _angular_core.Signal<boolean>;
|
|
8373
9567
|
hasSearch: _angular_core.Signal<boolean>;
|
|
@@ -8417,12 +9611,12 @@ declare class SelectionListDirective implements SelectionListDirectiveBase, Form
|
|
|
8417
9611
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
8418
9612
|
touched: _angular_core.ModelSignal<boolean>;
|
|
8419
9613
|
multipleInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8420
|
-
disabled: _angular_core.
|
|
9614
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8421
9615
|
/** View-only: options keep their normal look and focusability but cannot be (de)selected. */
|
|
8422
|
-
readonly: _angular_core.
|
|
8423
|
-
invalid: _angular_core.
|
|
9616
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9617
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8424
9618
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
8425
|
-
required: _angular_core.
|
|
9619
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8426
9620
|
name: _angular_core.InputSignal<string>;
|
|
8427
9621
|
multiple: _angular_core.Signal<boolean>;
|
|
8428
9622
|
selection: SelectionState<unknown, SelectionListItem>;
|
|
@@ -8503,13 +9697,25 @@ declare class SelectionOptionDirective {
|
|
|
8503
9697
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectionOptionDirective, "[etSelectionOption]", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
8504
9698
|
}
|
|
8505
9699
|
|
|
9700
|
+
/** How a checkbox option presents itself. See {@link CheckboxOptionComponent.variant}. */
|
|
9701
|
+
declare const CHECKBOX_OPTION_VARIANTS: {
|
|
9702
|
+
readonly PLAIN: "plain";
|
|
9703
|
+
readonly CARD: "card";
|
|
9704
|
+
};
|
|
9705
|
+
type CheckboxOptionVariant = (typeof CHECKBOX_OPTION_VARIANTS)[keyof typeof CHECKBOX_OPTION_VARIANTS];
|
|
8506
9706
|
declare class CheckboxOptionComponent {
|
|
8507
9707
|
optionDirective: SelectionOptionDirective;
|
|
9708
|
+
/**
|
|
9709
|
+
* `'card'` turns the option into a full-width clickable panel with the label leading and the control trailing —
|
|
9710
|
+
* for a small set of consequential choices where each deserves room for a description. `'plain'` is the ordinary
|
|
9711
|
+
* control-then-label row. @default 'plain'
|
|
9712
|
+
*/
|
|
9713
|
+
variant: _angular_core.InputSignal<CheckboxOptionVariant>;
|
|
8508
9714
|
canAnimate: {
|
|
8509
9715
|
state: _angular_core.Signal<boolean>;
|
|
8510
9716
|
};
|
|
8511
9717
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxOptionComponent, never>;
|
|
8512
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxOptionComponent, "et-checkbox-option", never, {}, {}, never, ["*", "et-description"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
9718
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxOptionComponent, "et-checkbox-option", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-description"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
8513
9719
|
}
|
|
8514
9720
|
|
|
8515
9721
|
declare class RadioGroupComponent {
|
|
@@ -8543,15 +9749,33 @@ declare class RadioGroupComponent {
|
|
|
8543
9749
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "et-radio-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
|
|
8544
9750
|
}
|
|
8545
9751
|
|
|
9752
|
+
/** How a radio presents itself. See {@link RadioComponent.variant}. */
|
|
9753
|
+
declare const RADIO_VARIANTS: {
|
|
9754
|
+
readonly PLAIN: "plain";
|
|
9755
|
+
readonly CARD: "card";
|
|
9756
|
+
};
|
|
9757
|
+
type RadioVariant = (typeof RADIO_VARIANTS)[keyof typeof RADIO_VARIANTS];
|
|
8546
9758
|
declare class RadioComponent {
|
|
8547
9759
|
optionDirective: SelectionOptionDirective;
|
|
9760
|
+
/**
|
|
9761
|
+
* `'card'` turns the option into a full-width clickable panel with the label leading and the control trailing —
|
|
9762
|
+
* for a small set of consequential choices (a plan, a shipping speed) where each deserves room for a
|
|
9763
|
+
* description. `'plain'` is the ordinary control-then-label row. @default 'plain'
|
|
9764
|
+
*/
|
|
9765
|
+
variant: _angular_core.InputSignal<RadioVariant>;
|
|
8548
9766
|
canAnimate: {
|
|
8549
9767
|
state: _angular_core.Signal<boolean>;
|
|
8550
9768
|
};
|
|
8551
9769
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
|
|
8552
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "et-radio", never, {}, {}, never, ["*", "et-description"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
9770
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "et-radio", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-description"], true, [{ directive: typeof SelectionOptionDirective; inputs: { "value": "value"; "checked": "checked"; "disabled": "disabled"; }; outputs: { "checkedChange": "checkedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
8553
9771
|
}
|
|
8554
9772
|
|
|
9773
|
+
/** How a segmented button group presents its selection. See {@link SegmentedButtonGroupComponent.variant}. */
|
|
9774
|
+
declare const SEGMENTED_BUTTON_GROUP_VARIANTS: {
|
|
9775
|
+
readonly PILL: "pill";
|
|
9776
|
+
readonly TABS: "tabs";
|
|
9777
|
+
};
|
|
9778
|
+
type SegmentedButtonGroupVariant = (typeof SEGMENTED_BUTTON_GROUP_VARIANTS)[keyof typeof SEGMENTED_BUTTON_GROUP_VARIANTS];
|
|
8555
9779
|
declare class SegmentedButtonGroupComponent {
|
|
8556
9780
|
support: {
|
|
8557
9781
|
errorColorTheme: _ethlete_core.ColorTheme;
|
|
@@ -8571,6 +9795,15 @@ declare class SegmentedButtonGroupComponent {
|
|
|
8571
9795
|
supportHeight: _angular_core.Signal<number>;
|
|
8572
9796
|
};
|
|
8573
9797
|
size: _angular_core.InputSignal<FormFieldSize>;
|
|
9798
|
+
/**
|
|
9799
|
+
* How the selection is drawn. `'pill'` fills the selected segment; `'tabs'` underlines it instead, for a group
|
|
9800
|
+
* that reads as a set of views rather than a set of values.
|
|
9801
|
+
*
|
|
9802
|
+
* It is still a **selection control**, not navigation — it binds to a form field and announces itself as a radio
|
|
9803
|
+
* group. If the segments correspond to routes, or to panels of content that should be linkable, reach for
|
|
9804
|
+
* [tabs](/components/tabs) instead; this variant is for a filter that happens to look like tabs. @default 'pill'
|
|
9805
|
+
*/
|
|
9806
|
+
variant: _angular_core.InputSignal<SegmentedButtonGroupVariant>;
|
|
8574
9807
|
private errorContentRef;
|
|
8575
9808
|
private hintContentRef;
|
|
8576
9809
|
private errorAnimatableRef;
|
|
@@ -8582,7 +9815,7 @@ declare class SegmentedButtonGroupComponent {
|
|
|
8582
9815
|
};
|
|
8583
9816
|
constructor();
|
|
8584
9817
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButtonGroupComponent, never>;
|
|
8585
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonGroupComponent, "et-segmented-button-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["et-label", ".et-segmented-button-group-label", "*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
|
|
9818
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonGroupComponent, "et-segmented-button-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["et-label", ".et-segmented-button-group-label", "*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
|
|
8586
9819
|
}
|
|
8587
9820
|
|
|
8588
9821
|
declare class SegmentedButtonComponent {
|
|
@@ -8622,8 +9855,8 @@ type SliderHostBase = {
|
|
|
8622
9855
|
step: Signal<number>;
|
|
8623
9856
|
/** Bulk-edit view state — while set, thumbs park at the track start and hide their value from ARIA. */
|
|
8624
9857
|
mixed: Signal<boolean>;
|
|
8625
|
-
/** `aria-valuetext` the thumbs announce while `mixed` is set. */
|
|
8626
|
-
|
|
9858
|
+
/** `aria-valuetext` the thumbs announce while `mixed` is set, after `SLIDER_LABELS` is applied. */
|
|
9859
|
+
resolvedMixedLabel: Signal<string>;
|
|
8627
9860
|
disabled: Signal<boolean>;
|
|
8628
9861
|
readonly: Signal<boolean>;
|
|
8629
9862
|
interactive: Signal<boolean>;
|
|
@@ -8654,25 +9887,28 @@ declare const SLIDER_TOKEN: InjectionToken<SliderHostBase>;
|
|
|
8654
9887
|
|
|
8655
9888
|
type RangeSliderValue = [number, number];
|
|
8656
9889
|
declare class RangeSliderDirective implements FormValueControl<RangeSliderValue>, FormFieldControl, SliderHostBase {
|
|
9890
|
+
private formFieldLabels;
|
|
8657
9891
|
private formField;
|
|
8658
9892
|
private destroyRef;
|
|
8659
9893
|
value: _angular_core.ModelSignal<RangeSliderValue>;
|
|
8660
9894
|
/** View state for a field whose source values disagree. The raw form value stays untouched. */
|
|
8661
9895
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
8662
9896
|
/** `aria-valuetext` both thumbs announce while `mixed` is set. */
|
|
8663
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
9897
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
8664
9898
|
touched: _angular_core.ModelSignal<boolean>;
|
|
8665
|
-
disabled: _angular_core.
|
|
8666
|
-
readonly: _angular_core.
|
|
8667
|
-
invalid: _angular_core.
|
|
9899
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9900
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9901
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8668
9902
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
8669
|
-
required: _angular_core.
|
|
9903
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8670
9904
|
name: _angular_core.InputSignal<string>;
|
|
8671
|
-
minValue: _angular_core.
|
|
8672
|
-
maxValue: _angular_core.
|
|
8673
|
-
step: _angular_core.
|
|
9905
|
+
minValue: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9906
|
+
maxValue: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9907
|
+
step: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
8674
9908
|
/** Minimum gap kept between the two thumbs — should be a multiple of `step`. */
|
|
8675
|
-
minDistance: _angular_core.
|
|
9909
|
+
minDistance: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9910
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
9911
|
+
resolvedMixedLabel: _angular_core.Signal<string>;
|
|
8676
9912
|
effectiveMin: _angular_core.Signal<number>;
|
|
8677
9913
|
effectiveMax: _angular_core.Signal<number>;
|
|
8678
9914
|
interactive: _angular_core.Signal<boolean>;
|
|
@@ -8758,23 +9994,26 @@ declare class SliderTrackDirective {
|
|
|
8758
9994
|
}
|
|
8759
9995
|
|
|
8760
9996
|
declare class SliderDirective implements FormValueControl<number>, FormFieldControl, SliderHostBase {
|
|
9997
|
+
private formFieldLabels;
|
|
8761
9998
|
private formField;
|
|
8762
9999
|
private destroyRef;
|
|
8763
10000
|
value: _angular_core.ModelSignal<number>;
|
|
8764
10001
|
/** View state for a field whose source values disagree. The raw form value stays untouched. */
|
|
8765
10002
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
8766
10003
|
/** `aria-valuetext` the thumb announces while `mixed` is set. */
|
|
8767
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
10004
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
8768
10005
|
touched: _angular_core.ModelSignal<boolean>;
|
|
8769
|
-
disabled: _angular_core.
|
|
8770
|
-
readonly: _angular_core.
|
|
8771
|
-
invalid: _angular_core.
|
|
10006
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10007
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10008
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8772
10009
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
8773
|
-
required: _angular_core.
|
|
10010
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8774
10011
|
name: _angular_core.InputSignal<string>;
|
|
8775
10012
|
min: _angular_core.InputSignal<number | undefined>;
|
|
8776
10013
|
max: _angular_core.InputSignal<number | undefined>;
|
|
8777
|
-
step: _angular_core.
|
|
10014
|
+
step: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
10015
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
10016
|
+
resolvedMixedLabel: _angular_core.Signal<string>;
|
|
8778
10017
|
effectiveMin: _angular_core.Signal<number>;
|
|
8779
10018
|
effectiveMax: _angular_core.Signal<number>;
|
|
8780
10019
|
interactive: _angular_core.Signal<boolean>;
|
|
@@ -8808,6 +10047,7 @@ declare class SliderDirective implements FormValueControl<number>, FormFieldCont
|
|
|
8808
10047
|
}
|
|
8809
10048
|
|
|
8810
10049
|
declare class RangeSliderComponent {
|
|
10050
|
+
private sliderLabels;
|
|
8811
10051
|
support: {
|
|
8812
10052
|
errorColorTheme: _ethlete_core.ColorTheme;
|
|
8813
10053
|
formFieldDir: FormFieldDirective;
|
|
@@ -8827,13 +10067,17 @@ declare class RangeSliderComponent {
|
|
|
8827
10067
|
};
|
|
8828
10068
|
protected slider: RangeSliderDirective;
|
|
8829
10069
|
/** Accessible name of the start thumb. */
|
|
8830
|
-
startLabel: _angular_core.InputSignal<string>;
|
|
10070
|
+
startLabel: _angular_core.InputSignal<string | null>;
|
|
8831
10071
|
/** Accessible name of the end thumb. */
|
|
8832
|
-
endLabel: _angular_core.InputSignal<string>;
|
|
10072
|
+
endLabel: _angular_core.InputSignal<string | null>;
|
|
8833
10073
|
private errorContentRef;
|
|
8834
10074
|
private hintContentRef;
|
|
8835
10075
|
private errorAnimatableRef;
|
|
8836
10076
|
private hintAnimatableRef;
|
|
10077
|
+
/** The string in effect: this instance's `startLabel`, else the domain's label set. */
|
|
10078
|
+
protected resolvedStartLabel: _angular_core.Signal<string>;
|
|
10079
|
+
/** The string in effect: this instance's `endLabel`, else the domain's label set. */
|
|
10080
|
+
protected resolvedEndLabel: _angular_core.Signal<string>;
|
|
8837
10081
|
canAnimate: {
|
|
8838
10082
|
state: _angular_core.Signal<boolean>;
|
|
8839
10083
|
};
|
|
@@ -8850,6 +10094,30 @@ declare const SLIDER_ERROR_CODES: {
|
|
|
8850
10094
|
readonly THUMB_COUNT_MISMATCH: 3103;
|
|
8851
10095
|
};
|
|
8852
10096
|
|
|
10097
|
+
/**
|
|
10098
|
+
* The strings a slider announces. A range slider has two thumbs and no visible text, so naming them is
|
|
10099
|
+
* the only way a screen reader can tell them apart.
|
|
10100
|
+
*/
|
|
10101
|
+
type SliderLabels = {
|
|
10102
|
+
/** Accessible label for a range slider's lower thumb. */
|
|
10103
|
+
minimum: string;
|
|
10104
|
+
/** Accessible label for a range slider's upper thumb. */
|
|
10105
|
+
maximum: string;
|
|
10106
|
+
};
|
|
10107
|
+
/** The built-in English labels. */
|
|
10108
|
+
declare const DEFAULT_SLIDER_LABELS: SliderLabels;
|
|
10109
|
+
/**
|
|
10110
|
+
* Localize a slider's strings for everything below this injector, and read the set in effect here as a
|
|
10111
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_SLIDER_LABELS} value. See {@link createLabels}
|
|
10112
|
+
* for the shape, which every domain in this library shares.
|
|
10113
|
+
*
|
|
10114
|
+
* @example
|
|
10115
|
+
* provideSliderLabels({ minimum: 'Minimum', maximum: 'Maximum' });
|
|
10116
|
+
*/
|
|
10117
|
+
declare const provideSliderLabels: (labels: _ethlete_core.LabelsSource<SliderLabels>) => _angular_core.Provider;
|
|
10118
|
+
declare const injectSliderLabels: () => _angular_core.Signal<SliderLabels>;
|
|
10119
|
+
declare const SLIDER_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<SliderLabels>>;
|
|
10120
|
+
|
|
8853
10121
|
declare class SliderComponent {
|
|
8854
10122
|
support: {
|
|
8855
10123
|
errorColorTheme: _ethlete_core.ColorTheme;
|
|
@@ -8898,10 +10166,10 @@ declare class SwitchDirective implements FormFieldControl {
|
|
|
8898
10166
|
touched: _angular_core.ModelSignal<boolean>;
|
|
8899
10167
|
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8900
10168
|
/** View-only: keeps the normal look and focusability but blocks toggling (unlike `disabled`). */
|
|
8901
|
-
readonly: _angular_core.
|
|
8902
|
-
invalid: _angular_core.
|
|
10169
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10170
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8903
10171
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
8904
|
-
required: _angular_core.
|
|
10172
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8905
10173
|
name: _angular_core.InputSignal<string>;
|
|
8906
10174
|
shouldDisplayError: _angular_core.Signal<boolean>;
|
|
8907
10175
|
describedBy: _angular_core.WritableSignal<string | null>;
|
|
@@ -8925,30 +10193,45 @@ declare class SwitchComponent {
|
|
|
8925
10193
|
declare const SWITCH_IMPORTS: readonly [typeof SwitchComponent, typeof SwitchDirective];
|
|
8926
10194
|
|
|
8927
10195
|
declare class TagInputDirective implements FormValueControl<string[]>, FormFieldControl {
|
|
10196
|
+
private formFieldLabels;
|
|
8928
10197
|
private formField;
|
|
8929
10198
|
private destroyRef;
|
|
8930
10199
|
value: _angular_core.ModelSignal<string[]>;
|
|
8931
10200
|
/** View state for a field whose source values disagree. The raw form value stays untouched. */
|
|
8932
10201
|
mixed: _angular_core.ModelSignal<boolean>;
|
|
8933
10202
|
touched: _angular_core.ModelSignal<boolean>;
|
|
8934
|
-
disabled: _angular_core.
|
|
8935
|
-
readonly: _angular_core.
|
|
8936
|
-
invalid: _angular_core.
|
|
10203
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10204
|
+
readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10205
|
+
invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8937
10206
|
errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
8938
|
-
required: _angular_core.
|
|
10207
|
+
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8939
10208
|
name: _angular_core.InputSignal<string>;
|
|
10209
|
+
/**
|
|
10210
|
+
* The bound field's `maxLength()` limit — for an array value that is the maximum number of tags.
|
|
10211
|
+
* Signal forms binds it automatically because this input exists, so `<et-counter />` picks the
|
|
10212
|
+
* limit up from the schema. Display only: the tag input does not refuse tags past it, so the
|
|
10213
|
+
* validator is still the thing that reports the violation.
|
|
10214
|
+
*/
|
|
10215
|
+
maxLength: _angular_core.InputSignal<number | undefined>;
|
|
10216
|
+
/**
|
|
10217
|
+
* True while an async validator is in flight for the bound field — bound automatically by signal
|
|
10218
|
+
* forms because this input exists. The field shell surfaces it as its busy state.
|
|
10219
|
+
*/
|
|
10220
|
+
pending: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8940
10221
|
placeholder: _angular_core.InputSignal<string>;
|
|
8941
10222
|
/** Field placeholder shown while `mixed` is set. */
|
|
8942
|
-
mixedLabel: _angular_core.InputSignal<string>;
|
|
10223
|
+
mixedLabel: _angular_core.InputSignal<string | null>;
|
|
8943
10224
|
/**
|
|
8944
10225
|
* What commits the pending text as a tag: multi-character entries are key names
|
|
8945
10226
|
* (`'Enter'`), single characters commit as soon as they are typed (and split pastes).
|
|
8946
10227
|
*/
|
|
8947
10228
|
separators: _angular_core.InputSignal<string[]>;
|
|
8948
|
-
allowDuplicates: _angular_core.
|
|
10229
|
+
allowDuplicates: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8949
10230
|
/** Maps raw text to the stored tag — return `null` to reject. Defaults to trimming. */
|
|
8950
10231
|
normalizeTag: _angular_core.InputSignal<(raw: string) => string | null>;
|
|
8951
10232
|
maxTags: _angular_core.InputSignal<number | undefined>;
|
|
10233
|
+
/** The string in effect: this instance's `mixedLabel`, else `FORM_FIELD_LABELS`. */
|
|
10234
|
+
resolvedMixedLabel: _angular_core.Signal<string>;
|
|
8952
10235
|
shouldDisplayError: _angular_core.Signal<boolean>;
|
|
8953
10236
|
/** The raw value normalized to the tags the control currently shows. Mixed has no effective tags. */
|
|
8954
10237
|
effectiveValues: _angular_core.Signal<readonly string[]>;
|
|
@@ -8981,7 +10264,7 @@ declare class TagInputDirective implements FormValueControl<string[]>, FormField
|
|
|
8981
10264
|
removeAt(index: number): void;
|
|
8982
10265
|
removeLast(): void;
|
|
8983
10266
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagInputDirective, never>;
|
|
8984
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TagInputDirective, "[etTagInput]", ["etTagInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mixed": { "alias": "mixed"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "mixedLabel": { "alias": "mixedLabel"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "normalizeTag": { "alias": "normalizeTag"; "required": false; "isSignal": true; }; "maxTags": { "alias": "maxTags"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "mixed": "mixedChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
10267
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TagInputDirective, "[etTagInput]", ["etTagInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mixed": { "alias": "mixed"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "mixedLabel": { "alias": "mixedLabel"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "normalizeTag": { "alias": "normalizeTag"; "required": false; "isSignal": true; }; "maxTags": { "alias": "maxTags"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "mixed": "mixedChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
8985
10268
|
}
|
|
8986
10269
|
|
|
8987
10270
|
/** The text field of a tag input — commits its text as a tag on separators and blur. */
|
|
@@ -9010,7 +10293,7 @@ declare const TAG_INPUT_ERROR_CODES: {
|
|
|
9010
10293
|
declare class TagInputComponent {
|
|
9011
10294
|
protected tagInput: TagInputDirective;
|
|
9012
10295
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagInputComponent, never>;
|
|
9013
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagInputComponent, "et-tag-input", never, {}, {}, never, never, true, [{ directive: typeof TagInputDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "placeholder": "placeholder"; "mixedLabel": "mixedLabel"; "separators": "separators"; "allowDuplicates": "allowDuplicates"; "normalizeTag": "normalizeTag"; "maxTags": "maxTags"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
10296
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagInputComponent, "et-tag-input", never, {}, {}, never, never, true, [{ directive: typeof TagInputDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "placeholder": "placeholder"; "mixedLabel": "mixedLabel"; "separators": "separators"; "allowDuplicates": "allowDuplicates"; "normalizeTag": "normalizeTag"; "maxTags": "maxTags"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
9014
10297
|
}
|
|
9015
10298
|
|
|
9016
10299
|
declare const TAG_INPUT_IMPORTS: readonly [typeof TagInputComponent, typeof TagInputDirective, typeof TagInputFieldDirective];
|
|
@@ -9025,8 +10308,8 @@ declare class TextareaDirective extends TextFieldControlDirective implements For
|
|
|
9025
10308
|
value: _angular_core.ModelSignal<string>;
|
|
9026
10309
|
placeholder: _angular_core.InputSignal<string>;
|
|
9027
10310
|
autocomplete: _angular_core.InputSignal<string>;
|
|
9028
|
-
rows: _angular_core.
|
|
9029
|
-
autosize: _angular_core.
|
|
10311
|
+
rows: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
10312
|
+
autosize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9030
10313
|
minRows: _angular_core.InputSignal<number | null>;
|
|
9031
10314
|
maxRows: _angular_core.InputSignal<number | null>;
|
|
9032
10315
|
/** Only applied when `autosize` is off; an autosizing textarea is never manually resizable. */
|
|
@@ -9063,7 +10346,7 @@ declare class TextareaComponent {
|
|
|
9063
10346
|
constructor();
|
|
9064
10347
|
syncNativeValue(event: Event): void;
|
|
9065
10348
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
9066
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "et-textarea", never, {}, {}, never, never, true, [{ directive: typeof TextareaDirective; inputs: { "placeholder": "placeholder"; "autocomplete": "autocomplete"; "rows": "rows"; "autosize": "autosize"; "minRows": "minRows"; "maxRows": "maxRows"; "resize": "resize"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
10349
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "et-textarea", never, {}, {}, never, never, true, [{ directive: typeof TextareaDirective; inputs: { "placeholder": "placeholder"; "autocomplete": "autocomplete"; "rows": "rows"; "autosize": "autosize"; "minRows": "minRows"; "maxRows": "maxRows"; "resize": "resize"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
|
|
9067
10350
|
}
|
|
9068
10351
|
|
|
9069
10352
|
declare const TEXTAREA_IMPORTS: readonly [typeof TextareaComponent, typeof TextareaDirective];
|
|
@@ -9151,8 +10434,8 @@ declare class GridDirective {
|
|
|
9151
10434
|
private gridConfig;
|
|
9152
10435
|
private reducedMotion;
|
|
9153
10436
|
breakpoints: _angular_core.InputSignal<GridBreakpointConfig[]>;
|
|
9154
|
-
rowHeight: _angular_core.
|
|
9155
|
-
gap: _angular_core.
|
|
10437
|
+
rowHeight: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
10438
|
+
gap: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9156
10439
|
initialItems: _angular_core.InputSignal<GridItemConfig[]>;
|
|
9157
10440
|
readOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9158
10441
|
layoutChange: _angular_core.OutputEmitterRef<GridSerializedState>;
|
|
@@ -9548,10 +10831,6 @@ declare const GRID_TOKEN: InjectionToken<GridDirective>;
|
|
|
9548
10831
|
|
|
9549
10832
|
type GridConfig = {
|
|
9550
10833
|
registrations: GridComponentRegistration[];
|
|
9551
|
-
interactiveAriaLabel: string;
|
|
9552
|
-
readonlyAriaLabel: string;
|
|
9553
|
-
removeActionAriaLabel: string;
|
|
9554
|
-
transformer: (text: string, locale: string) => string;
|
|
9555
10834
|
actionsComponent?: GridItemActionsComponent | null;
|
|
9556
10835
|
};
|
|
9557
10836
|
declare const provideGridConfig: (valueOverride?: Partial<GridConfig> | undefined) => _angular_core.Provider[];
|
|
@@ -9586,7 +10865,7 @@ declare const fromGridPosition: (pos: GridItemPosition) => {
|
|
|
9586
10865
|
declare class GridComponent {
|
|
9587
10866
|
grid: GridDirective;
|
|
9588
10867
|
private gridConfig;
|
|
9589
|
-
private
|
|
10868
|
+
private labels;
|
|
9590
10869
|
protected actionsComponent: _angular_core.Signal<_ethlete_components.GridItemActionsComponent | null>;
|
|
9591
10870
|
protected registeredItems: _angular_core.Signal<{
|
|
9592
10871
|
item: _ethlete_components.GridItemConfig;
|
|
@@ -9626,8 +10905,7 @@ declare class GridItemToolbarComponent {
|
|
|
9626
10905
|
|
|
9627
10906
|
declare class GridItemDefaultActionsComponent {
|
|
9628
10907
|
private grid;
|
|
9629
|
-
private
|
|
9630
|
-
private locale;
|
|
10908
|
+
private labels;
|
|
9631
10909
|
itemId: _angular_core.InputSignal<string>;
|
|
9632
10910
|
data: _angular_core.InputSignal<unknown>;
|
|
9633
10911
|
protected removeAriaLabel: _angular_core.Signal<string>;
|
|
@@ -9687,6 +10965,36 @@ declare const GRID_ERROR_CODES: {
|
|
|
9687
10965
|
readonly UNKNOWN_ITEM_TYPE: 1904;
|
|
9688
10966
|
};
|
|
9689
10967
|
|
|
10968
|
+
/**
|
|
10969
|
+
* Every string the grid announces. It renders no text of its own — the items are yours — so these are
|
|
10970
|
+
* all accessible labels.
|
|
10971
|
+
*
|
|
10972
|
+
* They used to live on `GridConfig` next to a `transformer(text, locale)` hook, which asked an app to
|
|
10973
|
+
* translate *by matching the English string*. `GridConfig` keeps the registrations and the actions
|
|
10974
|
+
* component; the wording lives here, like every other label in this library.
|
|
10975
|
+
*/
|
|
10976
|
+
type GridLabels = {
|
|
10977
|
+
/** Accessible label for a grid whose items can be moved and resized. */
|
|
10978
|
+
interactiveGrid: string;
|
|
10979
|
+
/** Accessible label for a read-only grid. */
|
|
10980
|
+
readonlyGrid: string;
|
|
10981
|
+
/** Accessible label for an item's remove action. */
|
|
10982
|
+
removeItem: string;
|
|
10983
|
+
};
|
|
10984
|
+
/** The built-in English labels. */
|
|
10985
|
+
declare const DEFAULT_GRID_LABELS: GridLabels;
|
|
10986
|
+
/**
|
|
10987
|
+
* Localize the grid's accessible labels for everything below this injector, and read the set in effect
|
|
10988
|
+
* here as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_GRID_LABELS} value. See
|
|
10989
|
+
* {@link createLabels} for the shape, which every domain in this library shares.
|
|
10990
|
+
*
|
|
10991
|
+
* @example
|
|
10992
|
+
* provideGridLabels({ readonlyGrid: 'Raster', removeItem: 'Element entfernen' });
|
|
10993
|
+
*/
|
|
10994
|
+
declare const provideGridLabels: (labels: _ethlete_core.LabelsSource<GridLabels>) => _angular_core.Provider;
|
|
10995
|
+
declare const injectGridLabels: () => _angular_core.Signal<GridLabels>;
|
|
10996
|
+
declare const GRID_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<GridLabels>>;
|
|
10997
|
+
|
|
9690
10998
|
declare const GRID_IMPORTS: readonly [typeof GridComponent, typeof GridItemComponent, typeof GridItemToolbarComponent, typeof GridItemDefaultActionsComponent, typeof GridDebugComponent];
|
|
9691
10999
|
|
|
9692
11000
|
type IconDefinition = {
|
|
@@ -9748,7 +11056,7 @@ declare const provideIcons: (...icons: IconDefinition[]) => {
|
|
|
9748
11056
|
* Keep this in sync when adding or removing a built-in `et-*` icon under
|
|
9749
11057
|
* `libs/components/src/lib/icon/headless/`.
|
|
9750
11058
|
*/
|
|
9751
|
-
declare const ET_BUILT_IN_ICON_NAMES: readonly ["et-align-center", "et-align-justify", "et-align-left", "et-align-right", "et-arrow-out-up-right", "et-arrow-right", "et-arrow-up", "et-arrows-left-right", "et-bold", "et-calendar", "et-check", "et-chevron", "et-clipboard-check", "et-clock", "et-code", "et-ellipsis-vertical", "et-eye", "et-eye-slash", "et-file", "et-filter", "et-floppy-disk", "et-focus-frame", "et-grid-2x2", "et-heading-1", "et-heading-2", "et-heading-3", "et-italic", "et-link", "et-list-bulleted", "et-list-numbered", "et-lock", "et-minus", "et-paragraph", "et-pause", "et-pencil", "et-play", "et-plus", "et-rotate-right", "et-star", "et-strikethrough", "et-table", "et-times", "et-triangle-exclamation", "et-underline", "et-upload"];
|
|
11059
|
+
declare const ET_BUILT_IN_ICON_NAMES: readonly ["et-align-center", "et-align-justify", "et-align-left", "et-align-right", "et-arrow-out-up-right", "et-arrow-right", "et-arrow-up", "et-arrows-left-right", "et-bold", "et-calendar", "et-check", "et-chevron", "et-clipboard-check", "et-clock", "et-code", "et-ellipsis", "et-ellipsis-vertical", "et-eye", "et-eye-slash", "et-file", "et-filter", "et-floppy-disk", "et-focus-frame", "et-grid-2x2", "et-heading-1", "et-heading-2", "et-heading-3", "et-italic", "et-link", "et-list-bulleted", "et-list-numbered", "et-lock", "et-minus", "et-paragraph", "et-pause", "et-pencil", "et-play", "et-plus", "et-rotate-right", "et-star", "et-strikethrough", "et-table", "et-times", "et-triangle-exclamation", "et-underline", "et-upload"];
|
|
9752
11060
|
/** Union of the SDK's built-in icon names — see {@link ET_BUILT_IN_ICON_NAMES}. */
|
|
9753
11061
|
type EtBuiltInIconName = (typeof ET_BUILT_IN_ICON_NAMES)[number];
|
|
9754
11062
|
/**
|
|
@@ -9822,6 +11130,9 @@ declare const CLOCK_ICON: IconDefinition;
|
|
|
9822
11130
|
|
|
9823
11131
|
declare const CODE_ICON: IconDefinition;
|
|
9824
11132
|
|
|
11133
|
+
/** Horizontal three-dot glyph — the breadcrumb's "show the hidden levels" trigger. */
|
|
11134
|
+
declare const ELLIPSIS_ICON: IconDefinition;
|
|
11135
|
+
|
|
9825
11136
|
/** Vertical three-dot "more actions" glyph — the table's column menu trigger. */
|
|
9826
11137
|
declare const ELLIPSIS_VERTICAL_ICON: IconDefinition;
|
|
9827
11138
|
|
|
@@ -9913,6 +11224,7 @@ declare const UPLOAD_ICON: IconDefinition;
|
|
|
9913
11224
|
declare const ICON_IMPORTS: readonly [typeof IconDirective];
|
|
9914
11225
|
|
|
9915
11226
|
declare class BrandLoaderComponent {
|
|
11227
|
+
protected labels: _angular_core.Signal<_ethlete_components.LoaderLabels>;
|
|
9916
11228
|
readonly PATH = "M15.905 6.21401C15.7794 6.8902 16.2818 7.51877 16.9517 7.51877H23.8598L22.9201 12.3378H15.6817C15.1048 12.3378 14.6071 12.7569 14.5001 13.3378C14.4861 13.4188 14.4768 13.4997 14.4768 13.5811C14.4768 14.2426 15.0071 14.8092 15.6817 14.8092H23.9435L22.9201 19.9997H6.79183L7.2198 17.814H7.64313C7.94085 17.814 8.20601 17.6907 8.40139 17.495C8.59212 17.2954 8.71307 17.0235 8.71307 16.7235C8.71307 16.1188 8.23858 15.6331 7.64778 15.6288H2.73534C2.14919 15.6288 1.67004 15.1426 1.67004 14.5378C1.67004 14.2383 1.791 13.9621 1.98172 13.7664C2.17711 13.5711 2.44227 13.4473 2.73534 13.4473H8.07111L8.96428 8.88115H9.39226C9.68533 8.88115 9.95049 8.75686 10.1459 8.5621C10.3366 8.3621 10.4576 8.08591 10.4576 7.78543C10.4576 7.18543 9.9784 6.69543 9.39226 6.69543H4.48447C3.89367 6.69543 3.41452 6.20448 3.41452 5.60496C3.41452 5.30448 3.53547 5.02877 3.7262 4.82829C3.92158 4.63353 4.19139 4.50924 4.48447 4.50924H10.2436C10.5366 4.50924 10.8064 4.3902 10.9972 4.1902C11.1879 3.99496 11.3089 3.72401 11.3089 3.41877C11.3089 2.81401 10.8344 2.32829 10.2436 2.32829H1.06994C0.479149 2.32829 0 1.83829 0 1.23305C0 0.933054 0.12095 0.656864 0.31168 0.461626C0.507061 0.266864 0.776873 0.142578 1.06994 0.142578H26.4369L25.4135 5.33305H16.9517C16.4446 5.33305 16.0027 5.70496 15.905 6.21401Z";
|
|
9917
11229
|
readonly OUTLINE_PATH = "M1.07 0.14 L26.44 0.14 L25.41 5.33 L16.95 5.33 C16.44 5.33 16.0 5.70 15.91 6.21 C15.78 6.89 16.28 7.52 16.95 7.52 L23.86 7.52 L22.92 12.34 L15.68 12.34 C15.10 12.34 14.61 12.76 14.50 13.34 C14.49 13.42 14.48 13.50 14.48 13.58 C14.48 14.24 15.01 14.81 15.68 14.81 L23.94 14.81 L22.92 20.0 L6.79 20.0 L7.22 17.81 L7.64 17.81 C7.94 17.81 8.21 17.69 8.40 17.50 C8.59 17.30 8.71 17.02 8.71 16.72 C8.71 16.12 8.24 15.63 7.65 15.63 L2.74 15.63 C2.15 15.63 1.67 15.14 1.67 14.54 C1.67 14.24 1.79 13.96 1.98 13.77 C2.18 13.57 2.44 13.45 2.74 13.45 L8.07 13.45 L8.96 8.88 L9.39 8.88 C9.69 8.88 9.95 8.76 10.15 8.56 C10.34 8.36 10.46 8.09 10.46 7.79 C10.46 7.19 9.98 6.70 9.39 6.70 L4.48 6.70 C3.89 6.70 3.41 6.20 3.41 5.60 C3.41 5.30 3.54 5.03 3.73 4.83 C3.92 4.63 4.19 4.51 4.48 4.51 L10.24 4.51 C10.54 4.51 10.81 4.39 10.997 4.19 C11.188 3.99 11.31 3.72 11.31 3.42 C11.31 2.81 10.83 2.33 10.24 2.33 L1.07 2.33 C0.48 2.33 0 1.84 0 1.23 C0 0.93 0.12 0.66 0.31 0.46 C0.51 0.27 0.78 0.14 1.07 0.14 Z";
|
|
9918
11230
|
readonly SHAPE_CLIP_ID: string;
|
|
@@ -9920,34 +11232,277 @@ declare class BrandLoaderComponent {
|
|
|
9920
11232
|
readonly FILL_CLIP_ID: string;
|
|
9921
11233
|
fillClip: string;
|
|
9922
11234
|
constructor();
|
|
9923
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrandLoaderComponent, never>;
|
|
9924
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BrandLoaderComponent, "et-brand-loader", never, {}, {}, never, never, true, never>;
|
|
11235
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrandLoaderComponent, never>;
|
|
11236
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BrandLoaderComponent, "et-brand-loader", never, {}, {}, never, never, true, never>;
|
|
11237
|
+
}
|
|
11238
|
+
|
|
11239
|
+
/**
|
|
11240
|
+
* What a busy indicator announces. A spinner, a brand loader and a skeleton are all shapes with no
|
|
11241
|
+
* text, so this is the only thing a screen reader has to go on.
|
|
11242
|
+
*
|
|
11243
|
+
* One set for all of them on purpose: an app that translates "Loading" should not have to say so once
|
|
11244
|
+
* per component. `et-skeleton`'s `loadingAllyText` still overrides it per instance where something more
|
|
11245
|
+
* specific reads better ("Loading results").
|
|
11246
|
+
*/
|
|
11247
|
+
type LoaderLabels = {
|
|
11248
|
+
/** Announced by an indeterminate loader — the spinner, the brand loader, a stream's loading overlay. */
|
|
11249
|
+
loading: string;
|
|
11250
|
+
/** Announced in place of a skeleton's shapes, which are `aria-hidden`. */
|
|
11251
|
+
loadingContent: string;
|
|
11252
|
+
};
|
|
11253
|
+
/** The built-in English labels. */
|
|
11254
|
+
declare const DEFAULT_LOADER_LABELS: LoaderLabels;
|
|
11255
|
+
/**
|
|
11256
|
+
* Localize what loaders announce for everything below this injector, and read the set in effect here as
|
|
11257
|
+
* a signal. Partial — whatever you leave out keeps its {@link DEFAULT_LOADER_LABELS} value. See
|
|
11258
|
+
* {@link createLabels} for the shape, which every domain in this library shares.
|
|
11259
|
+
*
|
|
11260
|
+
* @example
|
|
11261
|
+
* provideLoaderLabels({ loading: 'Lädt', loadingContent: 'Lädt…' });
|
|
11262
|
+
*/
|
|
11263
|
+
declare const provideLoaderLabels: (labels: _ethlete_core.LabelsSource<LoaderLabels>) => _angular_core.Provider;
|
|
11264
|
+
declare const injectLoaderLabels: () => _angular_core.Signal<LoaderLabels>;
|
|
11265
|
+
declare const LOADER_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<LoaderLabels>>;
|
|
11266
|
+
|
|
11267
|
+
declare class ProgressBarComponent {
|
|
11268
|
+
value: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11269
|
+
indeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11270
|
+
clampedValue: _angular_core.Signal<number>;
|
|
11271
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
|
|
11272
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressBarComponent, "et-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11273
|
+
}
|
|
11274
|
+
|
|
11275
|
+
declare class SpinnerComponent {
|
|
11276
|
+
diameter: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11277
|
+
strokeWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11278
|
+
track: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11279
|
+
value: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11280
|
+
determinate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11281
|
+
circleRadius: _angular_core.Signal<number>;
|
|
11282
|
+
normalizedStrokeWidth: _angular_core.Signal<number>;
|
|
11283
|
+
viewBox: _angular_core.Signal<string>;
|
|
11284
|
+
strokeCircumference: _angular_core.Signal<number>;
|
|
11285
|
+
circleStrokeWidth: _angular_core.Signal<number>;
|
|
11286
|
+
clampedValue: _angular_core.Signal<number>;
|
|
11287
|
+
determinateDashOffset: _angular_core.Signal<number>;
|
|
11288
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
11289
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "et-spinner", never, { "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "determinate": { "alias": "determinate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11290
|
+
}
|
|
11291
|
+
|
|
11292
|
+
/**
|
|
11293
|
+
* One item in a masonry. It measures itself — continuously, via its own `ResizeObserver` — and takes the
|
|
11294
|
+
* width and position the masonry works out from those measurements.
|
|
11295
|
+
*
|
|
11296
|
+
* Continuous measurement is what makes late content behave: an image that arrives after layout, a card that
|
|
11297
|
+
* reflows when a translation swaps in, a description that expands on click. cdk measured each item once and
|
|
11298
|
+
* kept the number, so any of those left the item overlapping its neighbour until the next resize.
|
|
11299
|
+
*
|
|
11300
|
+
* The element is yours, which is what lets a masonry be a real list — `<ul etMasonry>` with `<li
|
|
11301
|
+
* etMasonryItem>` children needs no ARIA roles at all.
|
|
11302
|
+
*
|
|
11303
|
+
* @example
|
|
11304
|
+
* <li etMasonryItem>…</li>
|
|
11305
|
+
*/
|
|
11306
|
+
declare class MasonryItemDirective {
|
|
11307
|
+
/** @internal The masonry sorts its items by document position, which needs their elements. */
|
|
11308
|
+
elementRef: ElementRef<HTMLElement>;
|
|
11309
|
+
private masonry;
|
|
11310
|
+
private dimensions;
|
|
11311
|
+
/**
|
|
11312
|
+
* The item's measured border box.
|
|
11313
|
+
*
|
|
11314
|
+
* `rect()` rather than the integer `offset` sizes: a column width is rarely a whole number of pixels (the
|
|
11315
|
+
* remainder is shared out between the columns), and rounding every item's height would drift the columns
|
|
11316
|
+
* apart by a pixel per item stacked.
|
|
11317
|
+
*/
|
|
11318
|
+
private measured;
|
|
11319
|
+
/** How tall the item is right now — what the masonry packs with. */
|
|
11320
|
+
blockSize: _angular_core.Signal<number>;
|
|
11321
|
+
/**
|
|
11322
|
+
* How wide the item is right now. The masonry compares this against the column width to know whether the
|
|
11323
|
+
* item has re-measured since the columns changed — a stale width means a stale height too, and both arrive
|
|
11324
|
+
* together when the observer fires.
|
|
11325
|
+
*/
|
|
11326
|
+
inlineSize: _angular_core.Signal<number>;
|
|
11327
|
+
/** The width the masonry has assigned, or `null` before its container has been measured. */
|
|
11328
|
+
columnInlineSize: _angular_core.Signal<number | null>;
|
|
11329
|
+
/**
|
|
11330
|
+
* Whether the item has reported its size *at the width the masonry gave it*. Until it has, its height is
|
|
11331
|
+
* the height it had at some other width, so the placement derived from it would be wrong. The observer
|
|
11332
|
+
* delivers both sizes together, which is what makes the width a reliable proxy for "this height is current".
|
|
11333
|
+
*/
|
|
11334
|
+
isMeasured: _angular_core.Signal<boolean>;
|
|
11335
|
+
/** Where the masonry has put this item, or `null` before it has. */
|
|
11336
|
+
placement: _angular_core.Signal<_ethlete_components.MasonryPlacement | null>;
|
|
11337
|
+
/** Whether the item's placement is current, i.e. derived from a height measured at its present width. */
|
|
11338
|
+
isPlaced: _angular_core.Signal<boolean>;
|
|
11339
|
+
/**
|
|
11340
|
+
* Whether the item has a place on screen — **sticky**: it fades in on its first placement and then stays
|
|
11341
|
+
* visible. That the reveal latches is the point. Every column width change un-measures every item for a
|
|
11342
|
+
* frame (its recorded width is the old one until the observer reports), and a reveal tied to the live
|
|
11343
|
+
* measurement would therefore fade the whole masonry out and back in on every frame of a window drag.
|
|
11344
|
+
*
|
|
11345
|
+
* Before the first placement there is nothing to show but a pile of items in the container's start corner,
|
|
11346
|
+
* which is what the initial transparency is for.
|
|
11347
|
+
*/
|
|
11348
|
+
private hasBeenPlaced;
|
|
11349
|
+
isPositioned: _angular_core.Signal<unknown>;
|
|
11350
|
+
private isMoveArmed;
|
|
11351
|
+
/**
|
|
11352
|
+
* Whether this item may animate a move. It must not animate the first one: before it has a placement its
|
|
11353
|
+
* offsets are zero, so an armed transition would slide it in from the container's start corner — and an item
|
|
11354
|
+
* appended to a feed would slide in from there too. So the transition is armed a frame *after* the item is
|
|
11355
|
+
* placed, by which point the browser has painted it where it belongs and there is nothing to animate from.
|
|
11356
|
+
*/
|
|
11357
|
+
canMove: _angular_core.Signal<boolean>;
|
|
11358
|
+
constructor();
|
|
11359
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MasonryItemDirective, never>;
|
|
11360
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MasonryItemDirective, "[etMasonryItem]", ["etMasonryItem"], {}, {}, never, never, true, never>;
|
|
11361
|
+
}
|
|
11362
|
+
|
|
11363
|
+
/** Where one item sits: which column it landed in, and its offset from the container's start corner. */
|
|
11364
|
+
type MasonryPlacement = {
|
|
11365
|
+
column: number;
|
|
11366
|
+
/** Offset along the inline axis (left in LTR, right in RTL — CSS resolves the side). */
|
|
11367
|
+
inlineOffset: number;
|
|
11368
|
+
/** Offset along the block axis, i.e. how tall the column was when this item was placed. */
|
|
11369
|
+
blockOffset: number;
|
|
11370
|
+
};
|
|
11371
|
+
/** The column grid a masonry has settled on for its current width. */
|
|
11372
|
+
type MasonryColumns = {
|
|
11373
|
+
/** `0` means the container has not been measured yet, so nothing can be placed. */
|
|
11374
|
+
count: number;
|
|
11375
|
+
inlineSize: number;
|
|
11376
|
+
};
|
|
11377
|
+
/** The result of one packing pass. */
|
|
11378
|
+
type MasonryPacking = {
|
|
11379
|
+
/** Index-aligned with the block sizes handed in. */
|
|
11380
|
+
placements: MasonryPlacement[];
|
|
11381
|
+
/** How tall each column ended up, gap included — the state the greedy pass carries along. */
|
|
11382
|
+
columnBlockSizes: number[];
|
|
11383
|
+
/** How tall the container has to be to hold every column. */
|
|
11384
|
+
blockSize: number;
|
|
11385
|
+
};
|
|
11386
|
+
|
|
11387
|
+
/**
|
|
11388
|
+
* Packs variable-height items into columns, each item going to whichever column is currently shortest — the
|
|
11389
|
+
* layout a photo feed wants, where cropping every card to a common height would be the alternative.
|
|
11390
|
+
*
|
|
11391
|
+
* It measures and positions, because CSS still can't: native masonry (`display: grid-lanes`, CSS Grid Level
|
|
11392
|
+
* 3) is not Baseline as of this writing, and CSS `columns` fills column by column, so the reading order of a
|
|
11393
|
+
* feed would no longer be its visual order. See `plans/cdk-port/07-masonry.md` for the full verdict. Items
|
|
11394
|
+
* are therefore absolutely positioned from their measured sizes, which keeps DOM order and reading order the
|
|
11395
|
+
* same and means a reflow never relayouts the page around it.
|
|
11396
|
+
*
|
|
11397
|
+
* The measuring is per item and continuous (a `ResizeObserver` each), so a card whose image loads late, or
|
|
11398
|
+
* whose text reflows, moves the ones below it — the one thing cdk's one-shot `getBoundingClientRect()`
|
|
11399
|
+
* snapshots could not do.
|
|
11400
|
+
*
|
|
11401
|
+
* @example
|
|
11402
|
+
* <ul etMasonry [columnWidth]="240" [gap]="16">
|
|
11403
|
+
* @for (photo of photos(); track photo.id) {
|
|
11404
|
+
* <li etMasonryItem><img [src]="photo.url" alt="" /></li>
|
|
11405
|
+
* }
|
|
11406
|
+
* </ul>
|
|
11407
|
+
*/
|
|
11408
|
+
declare class MasonryDirective {
|
|
11409
|
+
private elementRef;
|
|
11410
|
+
private styleManager;
|
|
11411
|
+
/**
|
|
11412
|
+
* The narrowest a column may be, in px — a minimum rather than a target. As many columns as fit at that
|
|
11413
|
+
* width are used (gaps included), and the leftover space is shared out between them, so the columns always
|
|
11414
|
+
* fill the container. That is `repeat(auto-fill, minmax(X, 1fr))`, expressed as a number because the
|
|
11415
|
+
* packing needs it as one.
|
|
11416
|
+
*
|
|
11417
|
+
* Accepts a per-breakpoint map (`{ xs: 150, md: 240 }`) for a layout that wants coarser columns on a phone
|
|
11418
|
+
* than the container width alone would give. @default 250
|
|
11419
|
+
*/
|
|
11420
|
+
columnWidth: _angular_core.InputSignalWithTransform<number, string | _ethlete_core.BreakpointInput<number>>;
|
|
11421
|
+
/**
|
|
11422
|
+
* The space between columns and between stacked items, in px. Also accepts a per-breakpoint map. It is a
|
|
11423
|
+
* number rather than CSS `gap` because the items are positioned, not laid out — CSS never sees the
|
|
11424
|
+
* columns. @default 16
|
|
11425
|
+
*/
|
|
11426
|
+
gap: _angular_core.InputSignalWithTransform<number, string | _ethlete_core.BreakpointInput<number>>;
|
|
11427
|
+
private dimensions;
|
|
11428
|
+
private registeredItems;
|
|
11429
|
+
/**
|
|
11430
|
+
* @internal The items in DOM order, which for masonry *is* the placement order: registration order follows
|
|
11431
|
+
* creation order, and a `@for` that re-orders its items would otherwise pack them by the order they were
|
|
11432
|
+
* born in rather than the order they are read in.
|
|
11433
|
+
*/
|
|
11434
|
+
items: _angular_core.Signal<MasonryItemDirective[]>;
|
|
11435
|
+
/**
|
|
11436
|
+
* How wide the container is. Only the inline size is taken from the observed dimensions, deliberately: this
|
|
11437
|
+
* directive *sets* the container's height, so a signal carrying both would see its own write and lay out
|
|
11438
|
+
* again. Reading one number out of it means the recompute stops at an unchanged value instead.
|
|
11439
|
+
*/
|
|
11440
|
+
containerInlineSize: _angular_core.Signal<number>;
|
|
11441
|
+
/** The column grid in effect: how many, and how wide. `count: 0` until the container has been measured. */
|
|
11442
|
+
columns: _angular_core.Signal<_ethlete_components.MasonryColumns>;
|
|
11443
|
+
/**
|
|
11444
|
+
* The columns items have already been given, and the column count they were given for. Rebalancing is a
|
|
11445
|
+
* *geometry* decision, not a content one: see `repack()`.
|
|
11446
|
+
*/
|
|
11447
|
+
private columnAssignments;
|
|
11448
|
+
/**
|
|
11449
|
+
* Every item's position, derived rather than assigned. The whole layout is one `computed` over the item
|
|
11450
|
+
* sizes, the column grid and the gap — so there is no invalidation to get right, no imperative pass over
|
|
11451
|
+
* the DOM, and appending to a feed re-derives the existing placements *identically* because the packing is
|
|
11452
|
+
* prefix-stable. What cdk did with a partial-invalidation mode, Angular's binding dedupe does here: an
|
|
11453
|
+
* item whose placement is unchanged is not written to again.
|
|
11454
|
+
*/
|
|
11455
|
+
private layout;
|
|
11456
|
+
/** How tall the container is, i.e. the tallest column. */
|
|
11457
|
+
blockSize: _angular_core.Signal<number>;
|
|
11458
|
+
/**
|
|
11459
|
+
* Whether the layout matches what is on screen: the container has been measured, and every item has
|
|
11460
|
+
* reported its size at the current column width.
|
|
11461
|
+
*
|
|
11462
|
+
* This is the signal to gate an infinite scroll on — fetching the next page while the current one is still
|
|
11463
|
+
* settling appends items against sizes that are about to change, which is what cdk needed its
|
|
11464
|
+
* `injectInfinityQueryResponseDelay` handshake for. That provider only ever existed for the legacy query
|
|
11465
|
+
* client, so this is the generic replacement: `disabled: !masonry.isSettled()` on the trigger, whatever the
|
|
11466
|
+
* client.
|
|
11467
|
+
*/
|
|
11468
|
+
isSettled: _angular_core.Signal<boolean>;
|
|
11469
|
+
/**
|
|
11470
|
+
* Whether the container itself has changed width in the last moment — a window drag, a panel opening, a
|
|
11471
|
+
* sidebar collapsing. Items snap to their new columns while it is true instead of animating: the columns
|
|
11472
|
+
* change every frame of a drag, so a move transition would be restarted every frame and the items would
|
|
11473
|
+
* trail behind the layout they belong to.
|
|
11474
|
+
*/
|
|
11475
|
+
isResizing: _angular_core.Signal<boolean>;
|
|
11476
|
+
constructor();
|
|
11477
|
+
/** @internal Where an item sits, or `null` before the first measurement. */
|
|
11478
|
+
placementOf(item: MasonryItemDirective): MasonryPlacement | null;
|
|
11479
|
+
/**
|
|
11480
|
+
* Re-balance the columns from scratch, as if the items had just arrived.
|
|
11481
|
+
*
|
|
11482
|
+
* Items keep the column they were first given for as long as the column count holds, because the
|
|
11483
|
+
* alternative is a grid that reshuffles itself whenever any one card changes height — expanding a
|
|
11484
|
+
* description would move cards two columns away. The cost is that heights which change a lot *after* the
|
|
11485
|
+
* first layout leave the columns less even than a fresh pack would, so this is the escape hatch: call it
|
|
11486
|
+
* after replacing the content wholesale, and the packing balances again. A resize that changes the column
|
|
11487
|
+
* count rebalances on its own.
|
|
11488
|
+
*/
|
|
11489
|
+
repack(): void;
|
|
11490
|
+
/** @internal Called by an item while it exists. */
|
|
11491
|
+
registerItem(item: MasonryItemDirective): void;
|
|
11492
|
+
/** @internal */
|
|
11493
|
+
unregisterItem(item: MasonryItemDirective): void;
|
|
11494
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MasonryDirective, never>;
|
|
11495
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MasonryDirective, "[etMasonry]", ["etMasonry"], { "columnWidth": { "alias": "columnWidth"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9925
11496
|
}
|
|
9926
11497
|
|
|
9927
|
-
declare
|
|
9928
|
-
value: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9929
|
-
indeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9930
|
-
clampedValue: _angular_core.Signal<number>;
|
|
9931
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
|
|
9932
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressBarComponent, "et-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9933
|
-
}
|
|
11498
|
+
declare const MASONRY_TOKEN: InjectionToken<MasonryDirective>;
|
|
9934
11499
|
|
|
9935
|
-
declare
|
|
9936
|
-
|
|
9937
|
-
|
|
9938
|
-
|
|
9939
|
-
|
|
9940
|
-
|
|
9941
|
-
circleRadius: _angular_core.Signal<number>;
|
|
9942
|
-
normalizedStrokeWidth: _angular_core.Signal<number>;
|
|
9943
|
-
viewBox: _angular_core.Signal<string>;
|
|
9944
|
-
strokeCircumference: _angular_core.Signal<number>;
|
|
9945
|
-
circleStrokeWidth: _angular_core.Signal<number>;
|
|
9946
|
-
clampedValue: _angular_core.Signal<number>;
|
|
9947
|
-
determinateDashOffset: _angular_core.Signal<number>;
|
|
9948
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
9949
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "et-spinner", never, { "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "determinate": { "alias": "determinate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9950
|
-
}
|
|
11500
|
+
declare const MASONRY_ERROR_CODES: {
|
|
11501
|
+
readonly PART_OUTSIDE_MASONRY: 3900;
|
|
11502
|
+
readonly MISSING_ITEMS: 3901;
|
|
11503
|
+
};
|
|
11504
|
+
|
|
11505
|
+
declare const MASONRY_IMPORTS: readonly [typeof MasonryDirective, typeof MasonryItemDirective];
|
|
9951
11506
|
|
|
9952
11507
|
declare class NotificationActionDirective {
|
|
9953
11508
|
private notification;
|
|
@@ -10093,11 +11648,6 @@ type NotificationManagerConfig = {
|
|
|
10093
11648
|
* Uses the notification's status color when not set.
|
|
10094
11649
|
*/
|
|
10095
11650
|
controlsColor?: string;
|
|
10096
|
-
/**
|
|
10097
|
-
* Accessible label for the dismiss button.
|
|
10098
|
-
* @default 'Dismiss'
|
|
10099
|
-
*/
|
|
10100
|
-
dismissLabel: string;
|
|
10101
11651
|
};
|
|
10102
11652
|
declare const DEFAULT_NOTIFICATION_MANAGER_CONFIG: NotificationManagerConfig;
|
|
10103
11653
|
declare const provideNotificationManagerConfig: (valueOverride?: Partial<NotificationManagerConfig> | undefined) => _angular_core.Provider[];
|
|
@@ -10114,6 +11664,25 @@ declare const NOTIFICATION_ERROR_CODES: {
|
|
|
10114
11664
|
readonly DISMISS_OUTSIDE_NOTIFICATION: 1701;
|
|
10115
11665
|
};
|
|
10116
11666
|
|
|
11667
|
+
/** The strings a notification renders itself. Its message and actions are yours; dismissal is its own. */
|
|
11668
|
+
type NotificationLabels = {
|
|
11669
|
+
/** Accessible label for a notification's dismiss button. */
|
|
11670
|
+
dismiss: string;
|
|
11671
|
+
};
|
|
11672
|
+
/** The built-in English labels. */
|
|
11673
|
+
declare const DEFAULT_NOTIFICATION_LABELS: NotificationLabels;
|
|
11674
|
+
/**
|
|
11675
|
+
* Localize a notification's strings for everything below this injector, and read the set in effect here as a
|
|
11676
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_NOTIFICATION_LABELS} value. See {@link createLabels}
|
|
11677
|
+
* for the shape, which every domain in this library shares.
|
|
11678
|
+
*
|
|
11679
|
+
* @example
|
|
11680
|
+
* provideNotificationLabels({ dismiss: 'Schließen' });
|
|
11681
|
+
*/
|
|
11682
|
+
declare const provideNotificationLabels: (labels: _ethlete_core.LabelsSource<NotificationLabels>) => _angular_core.Provider;
|
|
11683
|
+
declare const injectNotificationLabels: () => _angular_core.Signal<NotificationLabels>;
|
|
11684
|
+
declare const NOTIFICATION_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<NotificationLabels>>;
|
|
11685
|
+
|
|
10117
11686
|
type NotificationEntry = {
|
|
10118
11687
|
id: string;
|
|
10119
11688
|
config: NotificationConfig;
|
|
@@ -10165,6 +11734,7 @@ declare class NotificationComponent {
|
|
|
10165
11734
|
private provideTheme;
|
|
10166
11735
|
private provideSurface;
|
|
10167
11736
|
private managerConfig;
|
|
11737
|
+
private labels;
|
|
10168
11738
|
private surfaceThemes;
|
|
10169
11739
|
private surfaceContextTracker;
|
|
10170
11740
|
private resolvedColor;
|
|
@@ -10289,7 +11859,7 @@ declare class OverlayContainerComponent {
|
|
|
10289
11859
|
};
|
|
10290
11860
|
component: _angular_core.InputSignal<Type<object>>;
|
|
10291
11861
|
componentBindings: _angular_core.InputSignal<Binding[] | undefined>;
|
|
10292
|
-
renderArrow: _angular_core.
|
|
11862
|
+
renderArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10293
11863
|
private contentOutlet;
|
|
10294
11864
|
animatedLifecycle: _angular_core.WritableSignal<AnimatedLifecycleDirective>;
|
|
10295
11865
|
contentComponentRef: _angular_core.WritableSignal<ComponentRef<object> | null>;
|
|
@@ -10392,6 +11962,7 @@ declare const OVERLAY_ERROR_CODES: {
|
|
|
10392
11962
|
readonly NESTED_OVERLAY_MAIN: 1206;
|
|
10393
11963
|
readonly REF_OUTSIDE_OVERLAY: 1207;
|
|
10394
11964
|
readonly MISSING_OVERLAY_MAIN: 1208;
|
|
11965
|
+
readonly MISSING_ANIMATION_ORIGIN: 1209;
|
|
10395
11966
|
};
|
|
10396
11967
|
|
|
10397
11968
|
declare const OVERLAY_FOOTER_TOKEN: InjectionToken<OverlayFooterDirective>;
|
|
@@ -11062,11 +12633,24 @@ declare const injectLeftSheetStrategy: {
|
|
|
11062
12633
|
};
|
|
11063
12634
|
declare const leftSheetOverlayStrategy: (config?: Partial<OverlayBreakpointConfig>) => (() => OverlayStrategyBreakpoint[]);
|
|
11064
12635
|
|
|
12636
|
+
/** The momentum a dismissing gesture had when the pointer let go, so the exit can carry it. */
|
|
12637
|
+
type DragDismissMomentum = {
|
|
12638
|
+
/** Release speed along the dismiss axis in px/s. Always positive. */
|
|
12639
|
+
speed: number;
|
|
12640
|
+
/** How far the overlay still has to travel to clear its docked edge, in px. */
|
|
12641
|
+
remainingDistance: number;
|
|
12642
|
+
};
|
|
11065
12643
|
type DragToDismissContext = {
|
|
11066
12644
|
element: HTMLElement;
|
|
11067
12645
|
overlayRef: OverlayRef<object, unknown>;
|
|
11068
12646
|
config: OverlayDragToDismissConfig;
|
|
11069
12647
|
renderer: AngularRenderer;
|
|
12648
|
+
/**
|
|
12649
|
+
* Called immediately before the gesture closes the overlay, with the momentum of the release. The
|
|
12650
|
+
* sheet strategy uses it to give the leave transition the speed of the swipe instead of a fixed
|
|
12651
|
+
* duration — see `createSheetStrategy`.
|
|
12652
|
+
*/
|
|
12653
|
+
onDismiss?: (momentum: DragDismissMomentum) => void;
|
|
11070
12654
|
};
|
|
11071
12655
|
type DragToDismissRef = {
|
|
11072
12656
|
unsubscribe: () => void;
|
|
@@ -11216,11 +12800,10 @@ type PaginationLabels = {
|
|
|
11216
12800
|
};
|
|
11217
12801
|
/** The built-in English labels. */
|
|
11218
12802
|
declare const DEFAULT_PAGINATION_LABELS: PaginationLabels;
|
|
11219
|
-
/** The label set every paginator in this injector uses. @default DEFAULT_PAGINATION_LABELS */
|
|
11220
|
-
declare const PAGINATION_LABELS: InjectionToken<PaginationLabels>;
|
|
11221
12803
|
/**
|
|
11222
|
-
* Localize the paginator's strings for everything below this injector
|
|
11223
|
-
* out keeps its {@link DEFAULT_PAGINATION_LABELS}
|
|
12804
|
+
* Localize the paginator's strings for everything below this injector, and read the set in effect
|
|
12805
|
+
* here as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_PAGINATION_LABELS}
|
|
12806
|
+
* value. See {@link createLabels} for the shape, which every domain in this library shares.
|
|
11224
12807
|
*
|
|
11225
12808
|
* @example
|
|
11226
12809
|
* providePaginationLabels({
|
|
@@ -11230,8 +12813,9 @@ declare const PAGINATION_LABELS: InjectionToken<PaginationLabels>;
|
|
|
11230
12813
|
* range: ({ start, end, totalItems }) => `Zeige ${start}–${end} von ${totalItems}`,
|
|
11231
12814
|
* });
|
|
11232
12815
|
*/
|
|
11233
|
-
declare const providePaginationLabels: (labels:
|
|
11234
|
-
declare const injectPaginationLabels: () => PaginationLabels
|
|
12816
|
+
declare const providePaginationLabels: (labels: _ethlete_core.LabelsSource<PaginationLabels>) => _angular_core.Provider;
|
|
12817
|
+
declare const injectPaginationLabels: () => _angular_core.Signal<PaginationLabels>;
|
|
12818
|
+
declare const PAGINATION_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<PaginationLabels>>;
|
|
11235
12819
|
|
|
11236
12820
|
/** The kind of control a {@link PaginationItem} represents. */
|
|
11237
12821
|
type PaginationItemType = 'first' | 'previous' | 'page' | 'ellipsis' | 'next' | 'last';
|
|
@@ -11282,15 +12866,15 @@ declare class PaginationDirective {
|
|
|
11282
12866
|
/** The active page (1-based). Two-way bindable. */
|
|
11283
12867
|
page: _angular_core.ModelSignal<number>;
|
|
11284
12868
|
/** Total number of pages. */
|
|
11285
|
-
totalPages: _angular_core.
|
|
12869
|
+
totalPages: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11286
12870
|
/** Pages shown on each side of the current page. @default 1 */
|
|
11287
|
-
siblingCount: _angular_core.
|
|
12871
|
+
siblingCount: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11288
12872
|
/** Pages shown at each edge before an ellipsis. @default 1 */
|
|
11289
|
-
boundaryCount: _angular_core.
|
|
12873
|
+
boundaryCount: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11290
12874
|
/** Omit the first/last jump controls. @default false */
|
|
11291
|
-
hideFirstLast: _angular_core.
|
|
12875
|
+
hideFirstLast: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11292
12876
|
/** Omit the previous/next controls. @default false */
|
|
11293
|
-
hidePreviousNext: _angular_core.
|
|
12877
|
+
hidePreviousNext: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11294
12878
|
/**
|
|
11295
12879
|
* Accessible label for the navigation landmark. `null` (the default) uses the resolved
|
|
11296
12880
|
* {@link PaginationLabels}' `navigation` label — set this only to distinguish one paginator from
|
|
@@ -11384,7 +12968,7 @@ declare class PaginationComponent {
|
|
|
11384
12968
|
/** Items per page, used to compute the readout range. */
|
|
11385
12969
|
pageSize: _angular_core.InputSignal<number | null>;
|
|
11386
12970
|
/** Show a jump-to-page number field (useful for very large page counts). @default false */
|
|
11387
|
-
showJumpTo: _angular_core.
|
|
12971
|
+
showJumpTo: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11388
12972
|
private listEl;
|
|
11389
12973
|
private itemEls;
|
|
11390
12974
|
private hostDimensions;
|
|
@@ -11484,6 +13068,227 @@ declare class PaginationSeoDirective {
|
|
|
11484
13068
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PaginationSeoDirective, "[etPaginationSeo]", never, { "urlForPage": { "alias": "etPaginationSeo"; "required": false; "isSignal": true; }; "pageTitle": { "alias": "pageTitle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11485
13069
|
}
|
|
11486
13070
|
|
|
13071
|
+
/**
|
|
13072
|
+
* One candidate set for a `<picture>`, i.e. one `<source>` element.
|
|
13073
|
+
*
|
|
13074
|
+
* @see https://web.dev/learn/design/responsive-images
|
|
13075
|
+
*/
|
|
13076
|
+
type PictureSource = {
|
|
13077
|
+
/**
|
|
13078
|
+
* The image's mime type, e.g. `image/webp`. Inferred from the URL when omitted; a URL it can't be
|
|
13079
|
+
* inferred from logs an error in dev mode rather than throwing, since the browser copes without it.
|
|
13080
|
+
*/
|
|
13081
|
+
type?: string | null;
|
|
13082
|
+
/**
|
|
13083
|
+
* A single URL, or a comma-separated candidate list with descriptors.
|
|
13084
|
+
*
|
|
13085
|
+
* With **width** descriptors (`400w`) you must also give `sizes`, or the browser has no way to know how
|
|
13086
|
+
* much of the viewport the image will occupy. With **density** descriptors (`2x`) you must not — the
|
|
13087
|
+
* browser picks by device pixel ratio. The two forms can't be mixed in one srcset.
|
|
13088
|
+
*
|
|
13089
|
+
* @example 'https://example.com/hero.jpg'
|
|
13090
|
+
* @example 'https://example.com/hero.jpg 1x, https://example.com/hero@2x.jpg 2x'
|
|
13091
|
+
* @example 'https://example.com/hero-400.jpg 400w, https://example.com/hero-800.jpg 800w'
|
|
13092
|
+
*/
|
|
13093
|
+
srcset: string;
|
|
13094
|
+
/**
|
|
13095
|
+
* How much space the image will take, so the browser can pick a candidate before it has laid the page
|
|
13096
|
+
* out. Only meaningful alongside width descriptors. Falls back to the picture's own `sizes`.
|
|
13097
|
+
*
|
|
13098
|
+
* @example '100vw'
|
|
13099
|
+
* @example '(min-width: 800px) 50vw, 100vw'
|
|
13100
|
+
*/
|
|
13101
|
+
sizes?: string | null;
|
|
13102
|
+
/**
|
|
13103
|
+
* The media query this source applies to — this is what makes art direction possible, as opposed to
|
|
13104
|
+
* merely picking a resolution.
|
|
13105
|
+
*
|
|
13106
|
+
* @example '(min-width: 800px)'
|
|
13107
|
+
* @example '(orientation: portrait)'
|
|
13108
|
+
*/
|
|
13109
|
+
media?: string | null;
|
|
13110
|
+
};
|
|
13111
|
+
type PictureConfig = {
|
|
13112
|
+
/**
|
|
13113
|
+
* Prefixed onto every relative `srcset` entry, so sources can be authored as API paths. Absolute URLs
|
|
13114
|
+
* and `data:` URIs are left alone.
|
|
13115
|
+
*/
|
|
13116
|
+
baseUrl?: string;
|
|
13117
|
+
};
|
|
13118
|
+
/** Where the `<img>` has got to. `'loading'` until the browser reports either way. */
|
|
13119
|
+
declare const PICTURE_STATES: {
|
|
13120
|
+
readonly LOADING: "loading";
|
|
13121
|
+
readonly LOADED: "loaded";
|
|
13122
|
+
readonly ERROR: "error";
|
|
13123
|
+
};
|
|
13124
|
+
type PictureState = (typeof PICTURE_STATES)[keyof typeof PICTURE_STATES];
|
|
13125
|
+
|
|
13126
|
+
/**
|
|
13127
|
+
* App- or route-wide picture defaults. Provide it where the media host is known — usually the app config, or
|
|
13128
|
+
* a route that talks to a different CDN.
|
|
13129
|
+
*
|
|
13130
|
+
* @example
|
|
13131
|
+
* providers: [providePictureConfig({ baseUrl: 'https://cdn.example.com' })]
|
|
13132
|
+
*/
|
|
13133
|
+
declare const providePictureConfig: (valueOverride?: Partial<PictureConfig> | undefined) => _angular_core.Provider[];
|
|
13134
|
+
declare const injectPictureConfig: {
|
|
13135
|
+
(): PictureConfig;
|
|
13136
|
+
(options: _angular_core.InjectOptions & {
|
|
13137
|
+
optional?: false;
|
|
13138
|
+
}): PictureConfig;
|
|
13139
|
+
(options: _angular_core.InjectOptions): PictureConfig | null;
|
|
13140
|
+
};
|
|
13141
|
+
|
|
13142
|
+
/**
|
|
13143
|
+
* What to show while the image is still loading — a blurred `data:` URI, a solid block, a
|
|
13144
|
+
* [skeleton](/components/skeleton). Optional; without it the space simply stays empty.
|
|
13145
|
+
*
|
|
13146
|
+
* @example
|
|
13147
|
+
* <ng-template etPicturePlaceholder><et-skeleton-item shape="rect" /></ng-template>
|
|
13148
|
+
*/
|
|
13149
|
+
declare class PicturePlaceholderDirective {
|
|
13150
|
+
templateRef: TemplateRef<void>;
|
|
13151
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PicturePlaceholderDirective, never>;
|
|
13152
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PicturePlaceholderDirective, "ng-template[etPicturePlaceholder]", never, {}, {}, never, never, true, never>;
|
|
13153
|
+
}
|
|
13154
|
+
/**
|
|
13155
|
+
* What to show when the image fails to load. Optional — without it a broken image renders as the browser's
|
|
13156
|
+
* broken-image icon, which is rarely what a page wants.
|
|
13157
|
+
*
|
|
13158
|
+
* @example
|
|
13159
|
+
* <ng-template etPictureError><p>This image is unavailable.</p></ng-template>
|
|
13160
|
+
*/
|
|
13161
|
+
declare class PictureErrorDirective {
|
|
13162
|
+
templateRef: TemplateRef<void>;
|
|
13163
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PictureErrorDirective, never>;
|
|
13164
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PictureErrorDirective, "ng-template[etPictureError]", never, {}, {}, never, never, true, never>;
|
|
13165
|
+
}
|
|
13166
|
+
|
|
13167
|
+
/**
|
|
13168
|
+
* A responsive image: `<figure><picture><source…><img></picture><figcaption></figure>` from a list of sources.
|
|
13169
|
+
*
|
|
13170
|
+
* Two different jobs share the one element, and it is worth knowing which one you are doing. Several
|
|
13171
|
+
* candidates in a **single** source's `srcset` is *resolution switching* — the same picture at several sizes,
|
|
13172
|
+
* and the browser picks. Several **sources** with `media` queries is *art direction* — a different crop for a
|
|
13173
|
+
* phone than for a desktop, which no `srcset` can express. `type` on a source is a third axis: offer AVIF
|
|
13174
|
+
* before JPEG and a browser that can't decode it skips to the next without downloading anything.
|
|
13175
|
+
*
|
|
13176
|
+
* Reserve the space the image will occupy — `width`/`height`, or `aspectRatio` when only the ratio is known —
|
|
13177
|
+
* or the page will shift when it loads.
|
|
13178
|
+
*
|
|
13179
|
+
* @example
|
|
13180
|
+
* <et-picture
|
|
13181
|
+
* [sources]="[
|
|
13182
|
+
* { srcset: 'hero-wide.avif', media: '(min-width: 800px)' },
|
|
13183
|
+
* { srcset: 'hero-tall.avif' },
|
|
13184
|
+
* ]"
|
|
13185
|
+
* defaultSrc="hero.jpg"
|
|
13186
|
+
* alt="The stadium at kickoff"
|
|
13187
|
+
* [aspectRatio]="16 / 9"
|
|
13188
|
+
* />
|
|
13189
|
+
*/
|
|
13190
|
+
declare class PictureComponent {
|
|
13191
|
+
private config;
|
|
13192
|
+
/**
|
|
13193
|
+
* The `<source>` candidates, in the order the browser should consider them — first match wins, so put the
|
|
13194
|
+
* most specific `media` and the most modern `type` first. A plain string is shorthand for
|
|
13195
|
+
* `{ srcset: theString }`.
|
|
13196
|
+
*/
|
|
13197
|
+
sources: _angular_core.InputSignal<(string | PictureSource)[]>;
|
|
13198
|
+
/**
|
|
13199
|
+
* The `<img>` behind the sources: what a browser loads when no `<source>` matched, and the element every
|
|
13200
|
+
* `<picture>` needs — a `<picture>` with no `<img>` renders nothing at all. Give it the most compatible
|
|
13201
|
+
* format you have.
|
|
13202
|
+
*/
|
|
13203
|
+
defaultSrc: _angular_core.InputSignal<string | PictureSource | null>;
|
|
13204
|
+
/**
|
|
13205
|
+
* The image's alternative text. **Required**, because an image without it is invisible to a screen reader
|
|
13206
|
+
* and unaccounted for by a linter — pass `''` for a decorative image, which is a deliberate statement that
|
|
13207
|
+
* it carries no information.
|
|
13208
|
+
*/
|
|
13209
|
+
alt: _angular_core.InputSignal<string>;
|
|
13210
|
+
/** A visible caption, rendered as `<figcaption>` after the image. Omit for an image that needs none. */
|
|
13211
|
+
figcaption: _angular_core.InputSignal<string | null>;
|
|
13212
|
+
/**
|
|
13213
|
+
* Load this image eagerly and at high priority, instead of lazily. For the one image that is the largest
|
|
13214
|
+
* thing in the initial viewport (a hero, a header) — it is usually the page's Largest Contentful Paint, and
|
|
13215
|
+
* lazy-loading it delays the metric it defines. Never for images below the fold. @default false
|
|
13216
|
+
*/
|
|
13217
|
+
priority: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13218
|
+
/**
|
|
13219
|
+
* The image's intrinsic width in px, set as the `width` attribute. Together with `height` this reserves the
|
|
13220
|
+
* space before the image arrives, which is what stops the page shifting.
|
|
13221
|
+
*/
|
|
13222
|
+
width: _angular_core.InputSignalWithTransform<number | null, unknown>;
|
|
13223
|
+
/** The image's intrinsic height in px, set as the `height` attribute. */
|
|
13224
|
+
height: _angular_core.InputSignalWithTransform<number | null, unknown>;
|
|
13225
|
+
/**
|
|
13226
|
+
* The ratio to hold the image's box at, e.g. `16 / 9`. The alternative to `width`/`height` for a responsive
|
|
13227
|
+
* image whose rendered size is decided by CSS: one number reserves the space in a layout where the pixel
|
|
13228
|
+
* dimensions are not known in advance.
|
|
13229
|
+
*/
|
|
13230
|
+
aspectRatio: _angular_core.InputSignal<string | number | null>;
|
|
13231
|
+
/**
|
|
13232
|
+
* How much space the image will occupy, for sources using width descriptors. Takes the attribute's own
|
|
13233
|
+
* comma-separated form, or an array of its parts, which is easier to read.
|
|
13234
|
+
*
|
|
13235
|
+
* @example [sizes]="['(min-width: 800px) 50vw', '100vw']"
|
|
13236
|
+
*/
|
|
13237
|
+
sizes: _angular_core.InputSignalWithTransform<string | null, string | string[] | null | undefined>;
|
|
13238
|
+
/** The image finished loading. */
|
|
13239
|
+
imgLoad: _angular_core.OutputEmitterRef<void>;
|
|
13240
|
+
/** The image failed to load — a dead URL, a network error, an undecodable file. */
|
|
13241
|
+
imgError: _angular_core.OutputEmitterRef<void>;
|
|
13242
|
+
protected placeholder: _angular_core.Signal<PicturePlaceholderDirective | undefined>;
|
|
13243
|
+
protected errorSlot: _angular_core.Signal<PictureErrorDirective | undefined>;
|
|
13244
|
+
protected resolvedSources: _angular_core.Signal<PictureSource[]>;
|
|
13245
|
+
protected resolvedDefaultSource: _angular_core.Signal<PictureSource | null>;
|
|
13246
|
+
/** The `src` for the fallback `<img>`, which needs a single URL rather than a candidate list. */
|
|
13247
|
+
protected defaultSrcUrl: _angular_core.Signal<string | null>;
|
|
13248
|
+
/**
|
|
13249
|
+
* Reset by the source it describes: a picture pointed at a new URL is loading again, and a state that
|
|
13250
|
+
* stayed `'loaded'` would leave the placeholder hidden for the second image.
|
|
13251
|
+
*/
|
|
13252
|
+
private loadState;
|
|
13253
|
+
/**
|
|
13254
|
+
* Where the image has got to, as a signal rather than only a pair of events — so a template can react to it
|
|
13255
|
+
* without keeping its own copy. Also on the host as `data-state`, for styling.
|
|
13256
|
+
*/
|
|
13257
|
+
state: _angular_core.Signal<PictureState>;
|
|
13258
|
+
protected markLoaded(): void;
|
|
13259
|
+
protected markFailed(): void;
|
|
13260
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PictureComponent, never>;
|
|
13261
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PictureComponent, "et-picture", never, { "sources": { "alias": "sources"; "required": false; "isSignal": true; }; "defaultSrc": { "alias": "defaultSrc"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": true; "isSignal": true; }; "figcaption": { "alias": "figcaption"; "required": false; "isSignal": true; }; "priority": { "alias": "priority"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; "sizes": { "alias": "sizes"; "required": false; "isSignal": true; }; }, { "imgLoad": "imgLoad"; "imgError": "imgError"; }, ["placeholder", "errorSlot"], never, true, never>;
|
|
13262
|
+
}
|
|
13263
|
+
|
|
13264
|
+
declare const PICTURE_IMPORTS: readonly [typeof PictureComponent, typeof PicturePlaceholderDirective, typeof PictureErrorDirective];
|
|
13265
|
+
|
|
13266
|
+
/**
|
|
13267
|
+
* The first URL out of a srcset, for the `<img src>` fallback a `<picture>` still needs — a browser that
|
|
13268
|
+
* matches no `<source>` (or doesn't support `<picture>` at all) loads the `img`.
|
|
13269
|
+
*
|
|
13270
|
+
* Descriptors are stripped, and a `data:` URI is returned whole rather than split on its commas — base64
|
|
13271
|
+
* payloads contain them, so treating one as a candidate list would truncate the image.
|
|
13272
|
+
*/
|
|
13273
|
+
declare const extractFirstImageUrl: (source: string | PictureSource | null) => string | null;
|
|
13274
|
+
/**
|
|
13275
|
+
* A source in its full form, with the mime type filled in from the URL where it wasn't given. The type is
|
|
13276
|
+
* what lets a browser skip a `<source>` it can't decode without downloading it, so it is worth inferring —
|
|
13277
|
+
* but a URL that carries no extension (a signed CDN URL, an API endpoint) can't be inferred from, which
|
|
13278
|
+
* warns in dev rather than throwing: the browser will simply try the source.
|
|
13279
|
+
*/
|
|
13280
|
+
declare const normalizePictureSource: (source: string | PictureSource) => PictureSource;
|
|
13281
|
+
/** `sizes` as the attribute wants it. An array is the readable way to author one, so both forms are taken. */
|
|
13282
|
+
declare const normalizePictureSizes: (sizes: string | string[] | null | undefined) => string | null;
|
|
13283
|
+
/**
|
|
13284
|
+
* A source with the configured `baseUrl` applied, so sources can be authored as the paths an API returns.
|
|
13285
|
+
*
|
|
13286
|
+
* Applied **per candidate**, which is what makes a relative multi-candidate srcset work: cdk prefixed the
|
|
13287
|
+
* srcset as one string, so `'a.jpg 1x, b.jpg 2x'` left the second candidate unresolved. A `data:` URI is
|
|
13288
|
+
* passed through whole — its base64 payload contains commas, so it is not a candidate list.
|
|
13289
|
+
*/
|
|
13290
|
+
declare const withPictureBaseUrl: (source: PictureSource, config: PictureConfig | null) => PictureSource;
|
|
13291
|
+
|
|
11487
13292
|
type JsonKind = 'string' | 'number' | 'boolean' | 'null' | 'undefined' | 'array' | 'object';
|
|
11488
13293
|
/**
|
|
11489
13294
|
* A recursive, collapsible, searchable JSON tree used by the query devtools value explorer. Renders
|
|
@@ -11493,7 +13298,7 @@ type JsonKind = 'string' | 'number' | 'boolean' | 'null' | 'undefined' | 'array'
|
|
|
11493
13298
|
declare class QueryDevtoolsJsonComponent {
|
|
11494
13299
|
value: _angular_core.InputSignal<unknown>;
|
|
11495
13300
|
nodeKey: _angular_core.InputSignal<string | null>;
|
|
11496
|
-
depth: _angular_core.
|
|
13301
|
+
depth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
11497
13302
|
/** Lowercased search term; when set, the tree auto-expands and matches are highlighted. */
|
|
11498
13303
|
search: _angular_core.InputSignal<string>;
|
|
11499
13304
|
/** Full path of this node from the explorer root, used as the key for persisted expansion. */
|
|
@@ -11513,13 +13318,22 @@ declare class QueryDevtoolsJsonComponent {
|
|
|
11513
13318
|
private localExpanded;
|
|
11514
13319
|
protected expanded: _angular_core.Signal<boolean>;
|
|
11515
13320
|
protected effectiveExpanded: _angular_core.Signal<boolean>;
|
|
13321
|
+
protected copied: _angular_core.WritableSignal<boolean>;
|
|
13322
|
+
private copiedReset$;
|
|
13323
|
+
protected copyLabel: _angular_core.Signal<string>;
|
|
11516
13324
|
protected preview: _angular_core.Signal<string>;
|
|
11517
13325
|
protected display: _angular_core.Signal<string>;
|
|
11518
13326
|
protected keyHit: _angular_core.Signal<boolean>;
|
|
11519
13327
|
protected valueHit: _angular_core.Signal<boolean>;
|
|
13328
|
+
constructor();
|
|
11520
13329
|
protected childPath(key: string): string;
|
|
11521
13330
|
protected toggle(): void;
|
|
13331
|
+
/**
|
|
13332
|
+
* Containers copy their whole subtree as JSON; leaves copy something pasteable — a raw string
|
|
13333
|
+
* without the display quotes, so an id or url can go straight into a search box.
|
|
13334
|
+
*/
|
|
11522
13335
|
protected copyValue(): void;
|
|
13336
|
+
private flagCopied;
|
|
11523
13337
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsJsonComponent, never>;
|
|
11524
13338
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsJsonComponent, "et-query-devtools-json", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "nodeKey": { "alias": "nodeKey"; "required": false; "isSignal": true; }; "depth": { "alias": "depth"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "path": { "alias": "path"; "required": false; "isSignal": true; }; "expandedPaths": { "alias": "expandedPaths"; "required": false; "isSignal": true; }; "collapsedPaths": { "alias": "collapsedPaths"; "required": false; "isSignal": true; }; "toggleFn": { "alias": "toggleFn"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11525
13339
|
}
|
|
@@ -11532,6 +13346,7 @@ declare class QueryDevtoolsJsonComponent {
|
|
|
11532
13346
|
*/
|
|
11533
13347
|
declare class QueryDevtoolsToggleComponent {
|
|
11534
13348
|
openChange: _angular_core.OutputEmitterRef<void>;
|
|
13349
|
+
protected shortcut: string;
|
|
11535
13350
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsToggleComponent, never>;
|
|
11536
13351
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsToggleComponent, "et-query-devtools-toggle", never, {}, { "openChange": "openChange"; }, never, never, true, never>;
|
|
11537
13352
|
}
|
|
@@ -11586,6 +13401,7 @@ declare class QueryDevtoolsComponent {
|
|
|
11586
13401
|
id: "events";
|
|
11587
13402
|
label: string;
|
|
11588
13403
|
})[];
|
|
13404
|
+
protected readonly shortcut: string;
|
|
11589
13405
|
protected open: _angular_core.WritableSignal<boolean>;
|
|
11590
13406
|
protected panelHeight: _angular_core.WritableSignal<number>;
|
|
11591
13407
|
protected resizing: _angular_core.WritableSignal<boolean>;
|
|
@@ -11743,6 +13559,257 @@ declare class QueryDevtoolsComponent {
|
|
|
11743
13559
|
|
|
11744
13560
|
declare const QUERY_DEVTOOLS_IMPORTS: readonly [typeof QueryDevtoolsComponent];
|
|
11745
13561
|
|
|
13562
|
+
/**
|
|
13563
|
+
* What the directive needs from a query in order to retry it: something executable. Both query clients satisfy
|
|
13564
|
+
* it — the current client's `Query` directly, and a legacy one through
|
|
13565
|
+
* [`legacyQueryErrorSource`](./query-error-legacy).
|
|
13566
|
+
*
|
|
13567
|
+
* Typed structurally rather than against `Query<TArgs>` so this component never has to name a client's types,
|
|
13568
|
+
* which is what kept cdk's version pinned to the legacy one.
|
|
13569
|
+
*/
|
|
13570
|
+
type QueryErrorRetryTarget = {
|
|
13571
|
+
execute: (executeArgs?: {
|
|
13572
|
+
options?: {
|
|
13573
|
+
allowCache?: boolean;
|
|
13574
|
+
};
|
|
13575
|
+
}) => unknown;
|
|
13576
|
+
};
|
|
13577
|
+
/** A query error, ready to render. */
|
|
13578
|
+
type QueryErrorView = {
|
|
13579
|
+
/** The heading — from the status code, since that is the one thing every error has. */
|
|
13580
|
+
title: string;
|
|
13581
|
+
/** Every message the response carried, or one derived from the status code when it carried none. */
|
|
13582
|
+
messages: string[];
|
|
13583
|
+
/** Whether to render the messages as a list. True for a violation list, i.e. more than one message. */
|
|
13584
|
+
isList: boolean;
|
|
13585
|
+
/** Whether the failure is one the retry policy considers worth repeating. */
|
|
13586
|
+
canRetry: boolean;
|
|
13587
|
+
/** How long the retry policy would wait, in ms. `0` when it wouldn't retry at all. */
|
|
13588
|
+
retryDelay: number;
|
|
13589
|
+
/** The HTTP status, or `0` for a failure that never reached a server. */
|
|
13590
|
+
status: number;
|
|
13591
|
+
};
|
|
13592
|
+
|
|
13593
|
+
/** What a slot template is handed: the error, already worked out. */
|
|
13594
|
+
type QueryErrorSlotContext = {
|
|
13595
|
+
$implicit: QueryErrorView;
|
|
13596
|
+
error: QueryErrorView;
|
|
13597
|
+
};
|
|
13598
|
+
/**
|
|
13599
|
+
* Replaces the title. The error is in scope, so a title can key off the status — "You are signed out" reads
|
|
13600
|
+
* better for a 401 than the generic table entry does.
|
|
13601
|
+
*
|
|
13602
|
+
* @example
|
|
13603
|
+
* <ng-template etQueryErrorTitle let-error>
|
|
13604
|
+
* {{ error.status === 401 ? 'You are signed out' : error.title }}
|
|
13605
|
+
* </ng-template>
|
|
13606
|
+
*/
|
|
13607
|
+
declare class QueryErrorTitleDirective {
|
|
13608
|
+
templateRef: TemplateRef<QueryErrorSlotContext>;
|
|
13609
|
+
constructor();
|
|
13610
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryErrorTitleDirective, never>;
|
|
13611
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QueryErrorTitleDirective, "ng-template[etQueryErrorTitle]", never, {}, {}, never, never, true, never>;
|
|
13612
|
+
}
|
|
13613
|
+
/**
|
|
13614
|
+
* Replaces the actions row, retry button included. For adding a "contact support" link, or for a recovery that
|
|
13615
|
+
* isn't a retry — the retry itself stays available as `queryError.retry()`.
|
|
13616
|
+
*
|
|
13617
|
+
* @example
|
|
13618
|
+
* <ng-template etQueryErrorActions>
|
|
13619
|
+
* <button (click)="queryError.retry()" et-button>Try again</button>
|
|
13620
|
+
* <a routerLink="/support">Contact support</a>
|
|
13621
|
+
* </ng-template>
|
|
13622
|
+
*/
|
|
13623
|
+
declare class QueryErrorActionsDirective {
|
|
13624
|
+
templateRef: TemplateRef<QueryErrorSlotContext>;
|
|
13625
|
+
constructor();
|
|
13626
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryErrorActionsDirective, never>;
|
|
13627
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QueryErrorActionsDirective, "ng-template[etQueryErrorActions]", never, {}, {}, never, never, true, never>;
|
|
13628
|
+
}
|
|
13629
|
+
|
|
13630
|
+
/**
|
|
13631
|
+
* Every string a query error renders. Two of them are functions of the HTTP status, because that is the only
|
|
13632
|
+
* thing there is to go on when a response carries no message of its own.
|
|
13633
|
+
*
|
|
13634
|
+
* Defaults come from `@ethlete/query`'s status tables, in English or German depending on
|
|
13635
|
+
* [`injectLocale()`](/core/providers) — so a localized app needs no configuration here at all. Override
|
|
13636
|
+
* app-wide with {@link provideQueryErrorLabels}, or per instance via the `labels` input.
|
|
13637
|
+
*/
|
|
13638
|
+
type QueryErrorLabels = {
|
|
13639
|
+
/** The heading for a status code, e.g. `'Not found'`. */
|
|
13640
|
+
title: (status: number) => string;
|
|
13641
|
+
/**
|
|
13642
|
+
* The message for a status code. Used when the response carried none of its own, and as the replacement when
|
|
13643
|
+
* the response's only message merely repeats the title.
|
|
13644
|
+
*/
|
|
13645
|
+
message: (status: number) => string;
|
|
13646
|
+
/** The retry button's label. */
|
|
13647
|
+
retry: string;
|
|
13648
|
+
};
|
|
13649
|
+
/** The built-in English labels. */
|
|
13650
|
+
declare const DEFAULT_QUERY_ERROR_LABELS: QueryErrorLabels;
|
|
13651
|
+
/** The built-in German labels, used when the current locale is a German one. */
|
|
13652
|
+
declare const GERMAN_QUERY_ERROR_LABELS: QueryErrorLabels;
|
|
13653
|
+
/**
|
|
13654
|
+
* The label set for a locale. Only English and German ship with the SDK, since those are the only status
|
|
13655
|
+
* tables `@ethlete/query` carries; any other locale needs {@link provideQueryErrorLabels}.
|
|
13656
|
+
*/
|
|
13657
|
+
declare const queryErrorLabelsForLocale: (locale: string) => QueryErrorLabels;
|
|
13658
|
+
/**
|
|
13659
|
+
* Localize a query error's strings for everything below this injector, and read the set in effect here as a
|
|
13660
|
+
* signal. Partial — whatever you leave out keeps the value the current locale gives it, so this is also how you
|
|
13661
|
+
* localize into a third language while keeping English or German as the base. See {@link createLabels} for the
|
|
13662
|
+
* shape, which every domain in this library shares.
|
|
13663
|
+
*
|
|
13664
|
+
* @example
|
|
13665
|
+
* provideQueryErrorLabels({ retry: 'Réessayer', title: () => 'Une erreur est survenue' });
|
|
13666
|
+
*/
|
|
13667
|
+
declare const provideQueryErrorLabels: (labels: _ethlete_core.LabelsSource<QueryErrorLabels>) => _angular_core.Provider;
|
|
13668
|
+
declare const injectQueryErrorLabels: () => _angular_core.Signal<QueryErrorLabels>;
|
|
13669
|
+
declare const QUERY_ERROR_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<QueryErrorLabels>>;
|
|
13670
|
+
|
|
13671
|
+
/**
|
|
13672
|
+
* Turns a failed query into something renderable: a title, the messages, and whether retrying is worth
|
|
13673
|
+
* offering. All state, no markup — `<et-query-error>` is this with the chrome on top.
|
|
13674
|
+
*
|
|
13675
|
+
* The classification work is not here, deliberately. `@ethlete/query` already normalizes every error shape it
|
|
13676
|
+
* knows (class-validator arrays, Symfony violation lists, a bare `{ message }`, a plain string) into
|
|
13677
|
+
* `QueryErrorResponse` before it reaches `query.error()`, and it attaches the retry policy's verdict as
|
|
13678
|
+
* `retryState`. cdk re-did all of that by hand against the legacy client; this reads what the client already
|
|
13679
|
+
* worked out, which is why it is client-agnostic.
|
|
13680
|
+
*
|
|
13681
|
+
* @example
|
|
13682
|
+
* @if (usersQuery.error(); as error) {
|
|
13683
|
+
* <div etQueryError [error]="error" [query]="usersQuery">…</div>
|
|
13684
|
+
* }
|
|
13685
|
+
*/
|
|
13686
|
+
declare class QueryErrorDirective {
|
|
13687
|
+
private injectedLabels;
|
|
13688
|
+
/**
|
|
13689
|
+
* The failed query's error, i.e. `query.error()`. `null` renders nothing, so this can be bound
|
|
13690
|
+
* unconditionally.
|
|
13691
|
+
*/
|
|
13692
|
+
error: _angular_core.InputSignal<QueryErrorResponse | null>;
|
|
13693
|
+
/**
|
|
13694
|
+
* The query to re-run when the reader retries. Optional: without it the retry button still renders (when the
|
|
13695
|
+
* error is retryable) and only emits `retry`, which is the hook for a legacy query or any other recovery.
|
|
13696
|
+
*/
|
|
13697
|
+
query: _angular_core.InputSignal<QueryErrorRetryTarget | null>;
|
|
13698
|
+
/**
|
|
13699
|
+
* Show the retry button even for an error the retry policy considers final — a 404 will not fix itself, and
|
|
13700
|
+
* offering to try again invites the reader to waste their time. Turn it on for a query whose failure really
|
|
13701
|
+
* can be transient in a way the policy can't see. @default false
|
|
13702
|
+
*/
|
|
13703
|
+
alwaysAllowRetry: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13704
|
+
/** Per-instance label overrides, merged over the locale's set and any `provideQueryErrorLabels`. */
|
|
13705
|
+
labels: _angular_core.InputSignal<Partial<QueryErrorLabels> | null>;
|
|
13706
|
+
/**
|
|
13707
|
+
* The reader asked to retry. Fires whether or not `query` is set, and after the query has been re-executed
|
|
13708
|
+
* when it is — so it doubles as "retried" for analytics.
|
|
13709
|
+
*/
|
|
13710
|
+
retryRequest: _angular_core.OutputEmitterRef<void>;
|
|
13711
|
+
/** @internal Set by `etQueryErrorTitle`; replaces the default heading. */
|
|
13712
|
+
titleSlot: _angular_core.WritableSignal<TemplateRef<QueryErrorSlotContext> | null>;
|
|
13713
|
+
/** @internal Set by `etQueryErrorActions`; replaces the whole actions row. */
|
|
13714
|
+
actionsSlot: _angular_core.WritableSignal<TemplateRef<QueryErrorSlotContext> | null>;
|
|
13715
|
+
/** The strings in effect: the locale's set, with the injected and per-instance overrides applied. */
|
|
13716
|
+
resolvedLabels: _angular_core.Signal<QueryErrorLabels>;
|
|
13717
|
+
/** The error as something to render, or `null` when there is no error. */
|
|
13718
|
+
view: _angular_core.Signal<QueryErrorView | null>;
|
|
13719
|
+
/** Whether to offer a retry — false when there is no error at all. */
|
|
13720
|
+
canRetry: _angular_core.Signal<boolean>;
|
|
13721
|
+
/**
|
|
13722
|
+
* Re-run the query and tell the world. Bypasses the cache: a retry exists because the last answer was
|
|
13723
|
+
* unusable, so serving it again from memory would make the button do nothing.
|
|
13724
|
+
*/
|
|
13725
|
+
retry(): void;
|
|
13726
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryErrorDirective, never>;
|
|
13727
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QueryErrorDirective, "[etQueryError]", ["etQueryError"], { "error": { "alias": "error"; "required": true; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "alwaysAllowRetry": { "alias": "alwaysAllowRetry"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, { "retryRequest": "retryRequest"; }, never, never, true, never>;
|
|
13728
|
+
}
|
|
13729
|
+
|
|
13730
|
+
declare const QUERY_ERROR_TOKEN: InjectionToken<QueryErrorDirective>;
|
|
13731
|
+
|
|
13732
|
+
declare const QUERY_ERROR_ERROR_CODES: {
|
|
13733
|
+
readonly PART_OUTSIDE_QUERY_ERROR: 4000;
|
|
13734
|
+
};
|
|
13735
|
+
|
|
13736
|
+
/**
|
|
13737
|
+
* A legacy `RequestError` as the current client's `QueryErrorResponse`.
|
|
13738
|
+
*
|
|
13739
|
+
* Nearly free, because a legacy error carries the raw `HttpErrorResponse` it came from — so the current
|
|
13740
|
+
* client's own normalizer does the classifying, and a legacy error is described by exactly the same code, and
|
|
13741
|
+
* judged by the same retry policy, as a current one. That is the point of the adapter: no second
|
|
13742
|
+
* classification path to keep in step.
|
|
13743
|
+
*/
|
|
13744
|
+
declare const queryErrorResponseFromLegacyError: (error: RequestError) => QueryErrorResponse;
|
|
13745
|
+
type LegacyQueryErrorSource = {
|
|
13746
|
+
/** Bind to `<et-query-error [error]="…">`. */
|
|
13747
|
+
error: Signal<QueryErrorResponse | null>;
|
|
13748
|
+
/** Re-runs the legacy query, bypassing its cache. */
|
|
13749
|
+
retry: () => void;
|
|
13750
|
+
/** Bind to `<et-query-error [query]="…">` to have the retry button call `retry` for you. */
|
|
13751
|
+
retryTarget: QueryErrorRetryTarget;
|
|
13752
|
+
};
|
|
13753
|
+
/**
|
|
13754
|
+
* Bridges a legacy query into `<et-query-error>`, so an app still on the V2 client gets the components-lib
|
|
13755
|
+
* error UI without the component ever naming a legacy type.
|
|
13756
|
+
*
|
|
13757
|
+
* A separate adapter rather than a union-typed input — the same split as the select and table query adapters —
|
|
13758
|
+
* so the component's API describes one client, and this file is the only thing to delete when the last legacy
|
|
13759
|
+
* query is gone.
|
|
13760
|
+
*
|
|
13761
|
+
* The error is passed in rather than read off the query because legacy query state is an `Observable`, not a
|
|
13762
|
+
* signal: how you get from `state$` to a signal is the app's choice (`toSignal`, a store, an `async` pipe
|
|
13763
|
+
* feeding an input), and this adapter should not make it for you.
|
|
13764
|
+
*
|
|
13765
|
+
* @example
|
|
13766
|
+
* private legacyUsers = legacyQueryErrorSource({
|
|
13767
|
+
* error: toSignal(this.usersQuery.state$.pipe(map((s) => (isQueryStateFailure(s) ? s.error : null)))),
|
|
13768
|
+
* query: () => this.usersQuery,
|
|
13769
|
+
* });
|
|
13770
|
+
*
|
|
13771
|
+
* // template:
|
|
13772
|
+
* @if (legacyUsers.error(); as error) {
|
|
13773
|
+
* <et-query-error [error]="error" [query]="legacyUsers.retryTarget" />
|
|
13774
|
+
* }
|
|
13775
|
+
*/
|
|
13776
|
+
declare const legacyQueryErrorSource: (config: {
|
|
13777
|
+
error: () => RequestError | null | undefined;
|
|
13778
|
+
query?: () => AnyV2Query | AnyLegacyQuery | AnyQueryCollection | null | undefined;
|
|
13779
|
+
}) => LegacyQueryErrorSource;
|
|
13780
|
+
|
|
13781
|
+
/**
|
|
13782
|
+
* The default rendering of a failed query: a heading from the status, the message (or the violation list), and a
|
|
13783
|
+
* retry button when the failure is one worth repeating.
|
|
13784
|
+
*
|
|
13785
|
+
* Render it conditionally on the error, which is also what makes the `role="alert"` announce:
|
|
13786
|
+
*
|
|
13787
|
+
* @example
|
|
13788
|
+
* @if (usersQuery.error(); as error) {
|
|
13789
|
+
* <et-query-error [error]="error" [query]="usersQuery" />
|
|
13790
|
+
* }
|
|
13791
|
+
*
|
|
13792
|
+
* Both the title and the whole actions row are replaceable via `etQueryErrorTitle` / `etQueryErrorActions`, so
|
|
13793
|
+
* an app can key the wording off the status or add a support link without forking the component.
|
|
13794
|
+
*/
|
|
13795
|
+
declare class QueryErrorComponent {
|
|
13796
|
+
/** @internal Read from the template; also the handle for a consumer reaching in with `viewChild`. */
|
|
13797
|
+
queryError: QueryErrorDirective;
|
|
13798
|
+
private provideColor;
|
|
13799
|
+
private errorTheme;
|
|
13800
|
+
/**
|
|
13801
|
+
* The colour theme for the panel and its retry button. Defaults to the app's `type: 'error'` theme, which is
|
|
13802
|
+
* what makes an error look like one — override for a failure that shouldn't read as alarming (a cancelled
|
|
13803
|
+
* request, an empty search).
|
|
13804
|
+
*/
|
|
13805
|
+
color: _angular_core.InputSignal<string | ColorTheme | null>;
|
|
13806
|
+
constructor();
|
|
13807
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryErrorComponent, never>;
|
|
13808
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryErrorComponent, "et-query-error", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof QueryErrorDirective; inputs: { "error": "error"; "query": "query"; "alwaysAllowRetry": "alwaysAllowRetry"; "labels": "labels"; }; outputs: { "retryRequest": "retryRequest"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }]>;
|
|
13809
|
+
}
|
|
13810
|
+
|
|
13811
|
+
declare const QUERY_ERROR_IMPORTS: readonly [typeof QueryErrorComponent, typeof QueryErrorDirective, typeof QueryErrorTitleDirective, typeof QueryErrorActionsDirective];
|
|
13812
|
+
|
|
11746
13813
|
/** The common placeholder shapes. Anything else is your own CSS on the item. */
|
|
11747
13814
|
type SkeletonShape = 'text' | 'rect' | 'circle';
|
|
11748
13815
|
/**
|
|
@@ -11797,17 +13864,21 @@ declare class SkeletonTextComponent {
|
|
|
11797
13864
|
* </et-skeleton>
|
|
11798
13865
|
*/
|
|
11799
13866
|
declare class SkeletonComponent {
|
|
13867
|
+
private labels;
|
|
11800
13868
|
/**
|
|
11801
13869
|
* What a screen reader announces in place of the shapes, which are `aria-hidden` — they carry no
|
|
11802
|
-
* information, and reading "loading" once is the whole message.
|
|
13870
|
+
* information, and reading "loading" once is the whole message. `null` (the default) uses
|
|
13871
|
+
* `LOADER_LABELS`' `loadingContent`; set it for something more specific ("Loading results").
|
|
11803
13872
|
*/
|
|
11804
|
-
loadingAllyText: _angular_core.InputSignal<string>;
|
|
13873
|
+
loadingAllyText: _angular_core.InputSignal<string | null>;
|
|
11805
13874
|
/**
|
|
11806
13875
|
* Run the shimmer. Off leaves a static placeholder — the same shapes without motion, which is what
|
|
11807
13876
|
* you want inside something that already animates (an opening panel), or on a very long list.
|
|
11808
13877
|
* Independent of `prefers-reduced-motion`, which drops the shimmer regardless. @default true
|
|
11809
13878
|
*/
|
|
11810
13879
|
animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13880
|
+
/** The announcement in effect: this instance's `loadingAllyText`, else `LOADER_LABELS`. */
|
|
13881
|
+
protected resolvedLoadingAllyText: _angular_core.Signal<string>;
|
|
11811
13882
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
|
|
11812
13883
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "et-skeleton", never, { "loadingAllyText": { "alias": "loadingAllyText"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
11813
13884
|
}
|
|
@@ -11835,22 +13906,11 @@ declare class StreamConsentDirective {
|
|
|
11835
13906
|
}
|
|
11836
13907
|
|
|
11837
13908
|
type StreamConsentConfig = {
|
|
11838
|
-
/** The heading displayed in the consent placeholder. */
|
|
11839
|
-
heading: string;
|
|
11840
|
-
/** The description text displayed below the heading. */
|
|
11841
|
-
description: string;
|
|
11842
|
-
/** The label for the accept button. */
|
|
11843
|
-
acceptLabel: string;
|
|
11844
13909
|
/**
|
|
11845
13910
|
* The color theme name to apply on the accept button.
|
|
11846
13911
|
* When set, applies `[etProvideColor]` on the button element.
|
|
11847
13912
|
*/
|
|
11848
13913
|
acceptButtonColor: string | null;
|
|
11849
|
-
/**
|
|
11850
|
-
* A function to transform text based on the current locale.
|
|
11851
|
-
* Use `provideLocale()` to update the locale dynamically.
|
|
11852
|
-
*/
|
|
11853
|
-
transformer: (text: string, locale: string) => string;
|
|
11854
13914
|
};
|
|
11855
13915
|
declare const provideStreamConsentConfig: (valueOverride?: Partial<StreamConsentConfig> | undefined) => _angular_core.Provider[];
|
|
11856
13916
|
declare const injectStreamConsentConfig: {
|
|
@@ -11864,7 +13924,7 @@ declare const injectStreamConsentConfig: {
|
|
|
11864
13924
|
declare class StreamConsentComponent {
|
|
11865
13925
|
private parentSurfaceProvider;
|
|
11866
13926
|
private config;
|
|
11867
|
-
private
|
|
13927
|
+
private labels;
|
|
11868
13928
|
private surfaceThemes;
|
|
11869
13929
|
protected readonly HEADING_ID: string;
|
|
11870
13930
|
cardSurface: _angular_core.Signal<string | null>;
|
|
@@ -11889,22 +13949,11 @@ declare class StreamPlayerErrorDirective {
|
|
|
11889
13949
|
}
|
|
11890
13950
|
|
|
11891
13951
|
type StreamPlayerErrorConfig = {
|
|
11892
|
-
/** The heading displayed in the error overlay. */
|
|
11893
|
-
heading: string;
|
|
11894
|
-
/** The description text displayed below the heading. */
|
|
11895
|
-
description: string;
|
|
11896
|
-
/** The label for the retry button. */
|
|
11897
|
-
retryLabel: string;
|
|
11898
13952
|
/**
|
|
11899
13953
|
* The color theme name to apply on the retry button.
|
|
11900
13954
|
* When set, applies `[color]` on the button element.
|
|
11901
13955
|
*/
|
|
11902
13956
|
retryButtonColor: string | null;
|
|
11903
|
-
/**
|
|
11904
|
-
* A function to transform text based on the current locale.
|
|
11905
|
-
* Use `provideLocale()` to update the locale dynamically.
|
|
11906
|
-
*/
|
|
11907
|
-
transformer: (text: string, locale: string) => string;
|
|
11908
13957
|
};
|
|
11909
13958
|
declare const provideStreamPlayerErrorConfig: (valueOverride?: Partial<StreamPlayerErrorConfig> | undefined) => _angular_core.Provider[];
|
|
11910
13959
|
declare const injectStreamPlayerErrorConfig: {
|
|
@@ -11919,7 +13968,7 @@ declare class StreamPlayerErrorComponent {
|
|
|
11919
13968
|
private errorDirective;
|
|
11920
13969
|
private parentSurfaceProvider;
|
|
11921
13970
|
private config;
|
|
11922
|
-
private
|
|
13971
|
+
private labels;
|
|
11923
13972
|
private surfaceThemes;
|
|
11924
13973
|
cardSurface: _angular_core.Signal<string | null>;
|
|
11925
13974
|
heading: _angular_core.Signal<string>;
|
|
@@ -11947,6 +13996,7 @@ declare const injectStreamPlayerLoadingConfig: {
|
|
|
11947
13996
|
};
|
|
11948
13997
|
|
|
11949
13998
|
declare class StreamPlayerLoadingComponent {
|
|
13999
|
+
protected labels: _angular_core.Signal<_ethlete_components.StreamLabels>;
|
|
11950
14000
|
protected config: _ethlete_components.StreamPlayerLoadingConfig;
|
|
11951
14001
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StreamPlayerLoadingComponent, never>;
|
|
11952
14002
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StreamPlayerLoadingComponent, "et-stream-player-loading", never, {}, {}, never, never, true, never>;
|
|
@@ -12177,6 +14227,7 @@ declare class PipBackDirective {
|
|
|
12177
14227
|
private chrome;
|
|
12178
14228
|
private tokenEntry;
|
|
12179
14229
|
private pipManager;
|
|
14230
|
+
protected labels: _angular_core.Signal<_ethlete_components.StreamLabels>;
|
|
12180
14231
|
entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
|
|
12181
14232
|
back(event: Event): void;
|
|
12182
14233
|
private resolveEntry;
|
|
@@ -12357,6 +14408,7 @@ declare class PipCloseDirective {
|
|
|
12357
14408
|
private pipWindow;
|
|
12358
14409
|
private tokenEntry;
|
|
12359
14410
|
private pipManager;
|
|
14411
|
+
protected labels: _angular_core.Signal<_ethlete_components.StreamLabels>;
|
|
12360
14412
|
entry: _angular_core.InputSignal<StreamPipEntry | undefined>;
|
|
12361
14413
|
close(event: Event): void;
|
|
12362
14414
|
private resolveEntry;
|
|
@@ -12431,20 +14483,11 @@ declare class PipPlayerComponent {
|
|
|
12431
14483
|
}
|
|
12432
14484
|
|
|
12433
14485
|
type PipSlotPlaceholderConfig = {
|
|
12434
|
-
/** The message displayed in the placeholder overlay. */
|
|
12435
|
-
message: string;
|
|
12436
|
-
/** The label for the "back to player" button. */
|
|
12437
|
-
backLabel: string;
|
|
12438
14486
|
/**
|
|
12439
14487
|
* The color theme name to apply on the back button.
|
|
12440
14488
|
* When set, applies `[color]` on the button element.
|
|
12441
14489
|
*/
|
|
12442
14490
|
backButtonColor: string | null;
|
|
12443
|
-
/**
|
|
12444
|
-
* A function to transform text based on the current locale.
|
|
12445
|
-
* Use `provideLocale()` to update the locale dynamically.
|
|
12446
|
-
*/
|
|
12447
|
-
transformer: (text: string, locale: string) => string;
|
|
12448
14491
|
};
|
|
12449
14492
|
declare const providePipSlotPlaceholderConfig: (valueOverride?: Partial<PipSlotPlaceholderConfig> | undefined) => _angular_core.Provider[];
|
|
12450
14493
|
declare const injectPipSlotPlaceholderConfig: {
|
|
@@ -12460,7 +14503,7 @@ declare class PipSlotPlaceholderComponent {
|
|
|
12460
14503
|
private parentSurfaceProvider;
|
|
12461
14504
|
private pipManager;
|
|
12462
14505
|
private config;
|
|
12463
|
-
private
|
|
14506
|
+
private labels;
|
|
12464
14507
|
private surfaceThemes;
|
|
12465
14508
|
private bringBackDir;
|
|
12466
14509
|
cardSurface: _angular_core.Signal<string | null>;
|
|
@@ -12580,6 +14623,7 @@ declare const STREAM_PLAYER_TOKEN: InjectionToken<StreamPlayer>;
|
|
|
12580
14623
|
|
|
12581
14624
|
declare const DAILYMOTION_PLAYER_TOKEN: InjectionToken<DailymotionPlayerDirective>;
|
|
12582
14625
|
declare class DailymotionPlayerDirective implements StreamPlayer {
|
|
14626
|
+
private streamLabels;
|
|
12583
14627
|
private platformId;
|
|
12584
14628
|
private params;
|
|
12585
14629
|
private el;
|
|
@@ -12695,6 +14739,7 @@ declare class KickPlayerParamsDirective implements StreamPlayerParams {
|
|
|
12695
14739
|
|
|
12696
14740
|
declare const KICK_PLAYER_TOKEN: InjectionToken<KickPlayerDirective>;
|
|
12697
14741
|
declare class KickPlayerDirective implements StreamPlayer {
|
|
14742
|
+
private streamLabels;
|
|
12698
14743
|
private platformId;
|
|
12699
14744
|
private document;
|
|
12700
14745
|
private params;
|
|
@@ -12740,6 +14785,7 @@ declare class SoopPlayerParamsDirective implements StreamPlayerParams {
|
|
|
12740
14785
|
|
|
12741
14786
|
declare const SOOP_PLAYER_TOKEN: InjectionToken<SoopPlayerDirective>;
|
|
12742
14787
|
declare class SoopPlayerDirective implements StreamPlayer {
|
|
14788
|
+
private streamLabels;
|
|
12743
14789
|
private platformId;
|
|
12744
14790
|
private params;
|
|
12745
14791
|
private el;
|
|
@@ -12784,6 +14830,7 @@ declare class TikTokPlayerParamsDirective implements StreamPlayerParams {
|
|
|
12784
14830
|
|
|
12785
14831
|
declare const TIKTOK_PLAYER_TOKEN: InjectionToken<TikTokPlayerDirective>;
|
|
12786
14832
|
declare class TikTokPlayerDirective implements StreamPlayer {
|
|
14833
|
+
private streamLabels;
|
|
12787
14834
|
private platformId;
|
|
12788
14835
|
private params;
|
|
12789
14836
|
private el;
|
|
@@ -13216,6 +15263,61 @@ declare const createStreamConfig: (valueOverride?: Partial<StreamConfig>) => {
|
|
|
13216
15263
|
};
|
|
13217
15264
|
declare const provideStreamConfig: (valueOverride?: Partial<StreamConfig>) => _angular_core.Provider[];
|
|
13218
15265
|
|
|
15266
|
+
/**
|
|
15267
|
+
* Every string the stream player's own chrome renders: the consent gate, the failure overlay, the
|
|
15268
|
+
* picture-in-picture placeholder and the PiP window's controls.
|
|
15269
|
+
*
|
|
15270
|
+
* These used to live on the `StreamConsentConfig` / `StreamPlayerErrorConfig` /
|
|
15271
|
+
* `PipSlotPlaceholderConfig` objects next to a `transformer(text, locale)` hook, which asked an app to
|
|
15272
|
+
* translate *by matching the English string*. They are labels, so they live where every other label in
|
|
15273
|
+
* this library lives; those configs keep only what is genuinely configuration (the button colors).
|
|
15274
|
+
*/
|
|
15275
|
+
type StreamLabels = {
|
|
15276
|
+
/** Announced by the loading overlay while a player is starting up. */
|
|
15277
|
+
loading: string;
|
|
15278
|
+
/**
|
|
15279
|
+
* `title` for an embedded player's iframe, given the platform's own name — announced in place of the
|
|
15280
|
+
* frame's contents. The brand name is not translated; the wording around it is.
|
|
15281
|
+
*/
|
|
15282
|
+
playerFrame: (platform: string) => string;
|
|
15283
|
+
/** The consent gate's heading. */
|
|
15284
|
+
consentHeading: string;
|
|
15285
|
+
/** The consent gate's explanation. */
|
|
15286
|
+
consentDescription: string;
|
|
15287
|
+
/** The consent gate's accept button. */
|
|
15288
|
+
consentAccept: string;
|
|
15289
|
+
/** The failure overlay's heading. */
|
|
15290
|
+
errorHeading: string;
|
|
15291
|
+
/** The failure overlay's explanation. */
|
|
15292
|
+
errorDescription: string;
|
|
15293
|
+
/** The failure overlay's retry button. */
|
|
15294
|
+
errorRetry: string;
|
|
15295
|
+
/** The placeholder shown where a player would be while it plays in picture-in-picture. */
|
|
15296
|
+
pipPlaceholderMessage: string;
|
|
15297
|
+
/** The placeholder's button that pulls the stream back into the page. */
|
|
15298
|
+
pipPlaceholderBack: string;
|
|
15299
|
+
/** Accessible label for the PiP window's close button. */
|
|
15300
|
+
pipClose: string;
|
|
15301
|
+
/** Accessible label for the PiP window's control that focuses the stream's page. */
|
|
15302
|
+
pipFocus: string;
|
|
15303
|
+
};
|
|
15304
|
+
/** The built-in English labels. */
|
|
15305
|
+
declare const DEFAULT_STREAM_LABELS: StreamLabels;
|
|
15306
|
+
/**
|
|
15307
|
+
* Localize the stream chrome's strings for everything below this injector, and read the set in effect
|
|
15308
|
+
* here as a signal. Partial — whatever you leave out keeps its {@link DEFAULT_STREAM_LABELS} value. See
|
|
15309
|
+
* {@link createLabels} for the shape, which every domain in this library shares.
|
|
15310
|
+
*
|
|
15311
|
+
* @example
|
|
15312
|
+
* provideStreamLabels({
|
|
15313
|
+
* consentHeading: 'Inhalt blockiert',
|
|
15314
|
+
* consentAccept: 'Erlauben und abspielen',
|
|
15315
|
+
* });
|
|
15316
|
+
*/
|
|
15317
|
+
declare const provideStreamLabels: (labels: _ethlete_core.LabelsSource<StreamLabels>) => _angular_core.Provider;
|
|
15318
|
+
declare const injectStreamLabels: () => _angular_core.Signal<StreamLabels>;
|
|
15319
|
+
declare const STREAM_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<StreamLabels>>;
|
|
15320
|
+
|
|
13219
15321
|
declare const provideStreamManager: () => _angular_core.Provider[];
|
|
13220
15322
|
declare const injectStreamManager: {
|
|
13221
15323
|
(): StreamManager;
|
|
@@ -13363,17 +15465,17 @@ type TableLabels = {
|
|
|
13363
15465
|
/** The built-in English labels. */
|
|
13364
15466
|
declare const DEFAULT_TABLE_LABELS: TableLabels;
|
|
13365
15467
|
/**
|
|
13366
|
-
* A label set, or a function building one for the **active locale
|
|
13367
|
-
*
|
|
13368
|
-
*
|
|
13369
|
-
*
|
|
15468
|
+
* A label set, or a function building one for the **active locale**. See {@link LabelsSource}.
|
|
15469
|
+
*
|
|
15470
|
+
* @deprecated Use {@link LabelsSource}`<`{@link TableLabels}`>` — the shape is shared by every domain
|
|
15471
|
+
* in this library now.
|
|
13370
15472
|
*/
|
|
13371
|
-
type TableLabelsSource =
|
|
13372
|
-
/** What {@link provideTableLabels} stores. Read it through {@link injectTableLabels}, not directly. */
|
|
13373
|
-
declare const TABLE_LABELS: InjectionToken<TableLabelsSource>;
|
|
15473
|
+
type TableLabelsSource = LabelsSource<TableLabels>;
|
|
13374
15474
|
/**
|
|
13375
|
-
* Localize the table's strings for everything below this injector
|
|
13376
|
-
*
|
|
15475
|
+
* Localize the table's strings for everything below this injector, and read the set in effect here as
|
|
15476
|
+
* a signal: the defaults with the provided set (or the set its factory builds for the current locale)
|
|
15477
|
+
* layered on top. Partial — whatever you leave out keeps its {@link DEFAULT_TABLE_LABELS} value. See
|
|
15478
|
+
* {@link createLabels} for the shape, which every domain in this library shares.
|
|
13377
15479
|
*
|
|
13378
15480
|
* @example
|
|
13379
15481
|
* // fixed wording
|
|
@@ -13391,13 +15493,9 @@ declare const TABLE_LABELS: InjectionToken<TableLabelsSource>;
|
|
|
13391
15493
|
* sortAction: (header, next) => translate(`table.sort.${next ?? 'clear'}`, locale, { header }),
|
|
13392
15494
|
* }));
|
|
13393
15495
|
*/
|
|
13394
|
-
declare const provideTableLabels: (labels:
|
|
13395
|
-
|
|
13396
|
-
|
|
13397
|
-
* factory builds for the current locale) layered on top. A signal because the locale can change at
|
|
13398
|
-
* runtime — read it in the template/computed, never destructure it once.
|
|
13399
|
-
*/
|
|
13400
|
-
declare const injectTableLabels: () => Signal<TableLabels>;
|
|
15496
|
+
declare const provideTableLabels: (labels: LabelsSource<TableLabels>) => _angular_core.Provider;
|
|
15497
|
+
declare const injectTableLabels: () => _angular_core.Signal<TableLabels>;
|
|
15498
|
+
declare const TABLE_LABELS: _angular_core.InjectionToken<LabelsSource<TableLabels>>;
|
|
13401
15499
|
|
|
13402
15500
|
/** Horizontal alignment of a column's header and cells. */
|
|
13403
15501
|
type TableColumnAlign = 'start' | 'center' | 'end';
|
|
@@ -14263,7 +16361,7 @@ declare class TableComponent<T> {
|
|
|
14263
16361
|
*/
|
|
14264
16362
|
loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14265
16363
|
/** How many placeholder rows to draw while loading with no rows yet. @default 5 */
|
|
14266
|
-
loadingRows: _angular_core.
|
|
16364
|
+
loadingRows: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
14267
16365
|
/**
|
|
14268
16366
|
* The load's failure, if any — anything non-nullish counts (an `HttpErrorResponse`, a message, a
|
|
14269
16367
|
* flag), so it takes a query's `error` signal as-is. Set, it replaces the body with the error
|
|
@@ -14307,7 +16405,7 @@ declare class TableComponent<T> {
|
|
|
14307
16405
|
*/
|
|
14308
16406
|
sort: _angular_core.ModelSignal<TableSort[]>;
|
|
14309
16407
|
/** Allow more than one column to be sorted at once. @default false */
|
|
14310
|
-
multiSort: _angular_core.
|
|
16408
|
+
multiSort: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14311
16409
|
/**
|
|
14312
16410
|
* `'client'` sorts the rows in the browser via {@link sortRows}; `'server'`
|
|
14313
16411
|
* leaves rows untouched so the backend can sort.
|
|
@@ -15456,7 +17554,7 @@ declare class TabBarTriggerDirective {
|
|
|
15456
17554
|
private elementRef;
|
|
15457
17555
|
private scrollable;
|
|
15458
17556
|
protected tabBar: _ethlete_components.TabBarDirective | null;
|
|
15459
|
-
disabled: _angular_core.
|
|
17557
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15460
17558
|
readonly ID: string;
|
|
15461
17559
|
justActivated: _angular_core.WritableSignal<boolean>;
|
|
15462
17560
|
isSelected: _angular_core.Signal<boolean>;
|
|
@@ -15503,7 +17601,7 @@ declare class TabBarDirective {
|
|
|
15503
17601
|
orientation: _angular_core.InputSignal<TabBarOrientation>;
|
|
15504
17602
|
fit: _angular_core.InputSignal<TabBarFit>;
|
|
15505
17603
|
variant: _angular_core.InputSignal<TabBarVariant>;
|
|
15506
|
-
divider: _angular_core.
|
|
17604
|
+
divider: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15507
17605
|
/** @internal */
|
|
15508
17606
|
triggers: _angular_core.WritableSignal<TabBarTriggerDirective[]>;
|
|
15509
17607
|
/** @internal */
|
|
@@ -15624,7 +17722,7 @@ declare class TabPanelDirective {
|
|
|
15624
17722
|
declare class TabGroupDirective {
|
|
15625
17723
|
tabBar: TabBarDirective;
|
|
15626
17724
|
private elementRef;
|
|
15627
|
-
preserveContent: _angular_core.
|
|
17725
|
+
preserveContent: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15628
17726
|
selectedIndex: _angular_core.ModelSignal<number>;
|
|
15629
17727
|
sessionMemoryKey: _angular_core.InputSignal<string | null>;
|
|
15630
17728
|
private sessionMemoryAvailable;
|
|
@@ -15666,7 +17764,7 @@ declare class TabComponent {
|
|
|
15666
17764
|
private tabGroup;
|
|
15667
17765
|
label: _angular_core.InputSignal<string>;
|
|
15668
17766
|
icon: _angular_core.InputSignal<string | null>;
|
|
15669
|
-
disabled: _angular_core.
|
|
17767
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15670
17768
|
customLabel: _angular_core.Signal<TabLabelDirective | undefined>;
|
|
15671
17769
|
/** @internal */
|
|
15672
17770
|
implicitLabelRef: _angular_core.Signal<TemplateRef<unknown>>;
|
|
@@ -15721,19 +17819,28 @@ type TimePickerColumn = {
|
|
|
15721
17819
|
* only — string parsing/formatting belongs to the input directives.
|
|
15722
17820
|
*/
|
|
15723
17821
|
declare class TimePickerDirective {
|
|
17822
|
+
private timePickerLabels;
|
|
15724
17823
|
private defaultFormat;
|
|
15725
17824
|
private defaultLocale;
|
|
15726
17825
|
/** date-fns time format the column layout derives from. Defaults to the `TIME_FORMAT` token. */
|
|
15727
17826
|
format: _angular_core.InputSignal<string | undefined>;
|
|
15728
17827
|
locale: _angular_core.InputSignal<Locale | null>;
|
|
15729
|
-
minuteStep: _angular_core.
|
|
15730
|
-
secondStep: _angular_core.
|
|
15731
|
-
hoursLabel: _angular_core.InputSignal<string>;
|
|
15732
|
-
minutesLabel: _angular_core.InputSignal<string>;
|
|
15733
|
-
secondsLabel: _angular_core.InputSignal<string>;
|
|
15734
|
-
periodLabel: _angular_core.InputSignal<string>;
|
|
17828
|
+
minuteStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
17829
|
+
secondStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
17830
|
+
hoursLabel: _angular_core.InputSignal<string | null>;
|
|
17831
|
+
minutesLabel: _angular_core.InputSignal<string | null>;
|
|
17832
|
+
secondsLabel: _angular_core.InputSignal<string | null>;
|
|
17833
|
+
periodLabel: _angular_core.InputSignal<string | null>;
|
|
15735
17834
|
/** The selected time of day, carried on a `Date`. Stays `null` until a part is picked. */
|
|
15736
17835
|
value: _angular_core.ModelSignal<Date | null>;
|
|
17836
|
+
/** The string in effect: this instance's `hoursLabel`, else the domain's label set. */
|
|
17837
|
+
resolvedHoursLabel: _angular_core.Signal<string>;
|
|
17838
|
+
/** The string in effect: this instance's `minutesLabel`, else the domain's label set. */
|
|
17839
|
+
resolvedMinutesLabel: _angular_core.Signal<string>;
|
|
17840
|
+
/** The string in effect: this instance's `secondsLabel`, else the domain's label set. */
|
|
17841
|
+
resolvedSecondsLabel: _angular_core.Signal<string>;
|
|
17842
|
+
/** The string in effect: this instance's `periodLabel`, else the domain's label set. */
|
|
17843
|
+
resolvedPeriodLabel: _angular_core.Signal<string>;
|
|
15737
17844
|
private now;
|
|
15738
17845
|
effectiveFormat: _angular_core.Signal<string>;
|
|
15739
17846
|
effectiveLocale: _angular_core.Signal<Locale | null>;
|
|
@@ -15812,6 +17919,31 @@ declare const TIME_PICKER_ERROR_CODES: {
|
|
|
15812
17919
|
readonly OPTION_OUTSIDE_COLUMN: 3021;
|
|
15813
17920
|
};
|
|
15814
17921
|
|
|
17922
|
+
/** The strings the time picker's columns announce — each is a listbox of numbers with no visible label. */
|
|
17923
|
+
type TimePickerLabels = {
|
|
17924
|
+
/** Accessible label for the hours column. */
|
|
17925
|
+
hours: string;
|
|
17926
|
+
/** Accessible label for the minutes column. */
|
|
17927
|
+
minutes: string;
|
|
17928
|
+
/** Accessible label for the seconds column. */
|
|
17929
|
+
seconds: string;
|
|
17930
|
+
/** Accessible label for the AM/PM column. */
|
|
17931
|
+
period: string;
|
|
17932
|
+
};
|
|
17933
|
+
/** The built-in English labels. */
|
|
17934
|
+
declare const DEFAULT_TIME_PICKER_LABELS: TimePickerLabels;
|
|
17935
|
+
/**
|
|
17936
|
+
* Localize the time picker's strings for everything below this injector, and read the set in effect here as a
|
|
17937
|
+
* signal. Partial — whatever you leave out keeps its {@link DEFAULT_TIME_PICKER_LABELS} value. See {@link createLabels}
|
|
17938
|
+
* for the shape, which every domain in this library shares.
|
|
17939
|
+
*
|
|
17940
|
+
* @example
|
|
17941
|
+
* provideTimePickerLabels({ hours: 'Stunden', minutes: 'Minuten' });
|
|
17942
|
+
*/
|
|
17943
|
+
declare const provideTimePickerLabels: (labels: _ethlete_core.LabelsSource<TimePickerLabels>) => _angular_core.Provider;
|
|
17944
|
+
declare const injectTimePickerLabels: () => _angular_core.Signal<TimePickerLabels>;
|
|
17945
|
+
declare const TIME_PICKER_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<TimePickerLabels>>;
|
|
17946
|
+
|
|
15815
17947
|
declare class TimePickerComponent {
|
|
15816
17948
|
protected timePicker: TimePickerDirective;
|
|
15817
17949
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimePickerComponent, never>;
|
|
@@ -15832,9 +17964,15 @@ declare class ToggletipDirective {
|
|
|
15832
17964
|
placement: _angular_core.InputSignal<Placement>;
|
|
15833
17965
|
fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
|
|
15834
17966
|
offset: _angular_core.InputSignal<OffsetOptions | null>;
|
|
17967
|
+
/**
|
|
17968
|
+
* How close the arrow may get to the panel's corners. Must clear the panel's border radius
|
|
17969
|
+
* (`--_et-toggletip-radius`, 16px) or the arrow's base rides into the rounded corner — which is what
|
|
17970
|
+
* happens on aligned placements (`bottom-end`, `left-start`, …) and whenever `shift` pushes a panel
|
|
17971
|
+
* off center near a viewport edge.
|
|
17972
|
+
*/
|
|
15835
17973
|
arrowPadding: _angular_core.InputSignal<Padding | null>;
|
|
15836
17974
|
viewportPadding: _angular_core.InputSignal<Padding | null>;
|
|
15837
|
-
disabled: _angular_core.
|
|
17975
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15838
17976
|
open: _angular_core.ModelSignal<boolean>;
|
|
15839
17977
|
/** @internal */
|
|
15840
17978
|
overlayRef: _angular_core.WritableSignal<OverlayRef<ToggletipComponent, unknown> | null>;
|
|
@@ -15926,10 +18064,16 @@ declare class TooltipDirective {
|
|
|
15926
18064
|
placement: _angular_core.InputSignal<Placement>;
|
|
15927
18065
|
fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
|
|
15928
18066
|
offset: _angular_core.InputSignal<OffsetOptions | null>;
|
|
18067
|
+
/**
|
|
18068
|
+
* How close the arrow may get to the panel's corners. Must clear the panel's border radius
|
|
18069
|
+
* (`--_et-tooltip-radius`, 16px) or the arrow's base rides into the rounded corner — which is what
|
|
18070
|
+
* happens on aligned placements (`bottom-end`, `left-start`, …) and whenever `shift` pushes a panel
|
|
18071
|
+
* off center near a viewport edge.
|
|
18072
|
+
*/
|
|
15929
18073
|
arrowPadding: _angular_core.InputSignal<Padding | null>;
|
|
15930
18074
|
viewportPadding: _angular_core.InputSignal<Padding | null>;
|
|
15931
18075
|
showDelay: _angular_core.InputSignal<number>;
|
|
15932
|
-
disabled: _angular_core.
|
|
18076
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15933
18077
|
/** @internal */
|
|
15934
18078
|
overlayRef: _angular_core.WritableSignal<OverlayRef<TooltipComponent, unknown> | null>;
|
|
15935
18079
|
private hasHover;
|
|
@@ -15941,6 +18085,12 @@ declare class TooltipDirective {
|
|
|
15941
18085
|
show(): void;
|
|
15942
18086
|
hide(): void;
|
|
15943
18087
|
private setupHoverBehavior;
|
|
18088
|
+
/**
|
|
18089
|
+
* A tooltip can outlive the hover that opened it — a `pointercancel`, a scroll that moves the
|
|
18090
|
+
* trigger out from under the pointer, or a browser that synthesizes an enter with no matching
|
|
18091
|
+
* leave. A press anywhere else is unambiguous, so treat it as a dismissal.
|
|
18092
|
+
*/
|
|
18093
|
+
private dismissOnOutsidePointer;
|
|
15944
18094
|
private setupFocusBehavior;
|
|
15945
18095
|
private syncHostDescription;
|
|
15946
18096
|
private syncDescriptionElement;
|
|
@@ -15955,5 +18105,5 @@ declare const TOOLTIP_ERROR_CODES: {
|
|
|
15955
18105
|
|
|
15956
18106
|
declare const TOOLTIP_IMPORTS: readonly [typeof TooltipDirective, typeof TooltipComponent];
|
|
15957
18107
|
|
|
15958
|
-
export { ACCORDION_ERROR_CODES, ACCORDION_GROUP_TOKEN, ACCORDION_IMPORTS, ACCORDION_TOKEN, ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROWS_LEFT_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, ARROW_UP_ICON, AccordionComponent, AccordionContentDirective, AccordionDirective, AccordionGroupComponent, AccordionGroupDirective, AccordionHintDirective, AccordionLabelDirective, AccordionPanelDirective, AccordionTriggerDirective, BOLD_ICON, BRACKET_DATA_LAYOUT, BRACKET_ERROR_CODES, BRACKET_IMPORTS, BRACKET_ROUND_MIRROR_TYPE, BRACKET_SWISS_GROUP_COLOR_TYPE, BREADCRUMB_ERROR_CODES, BREADCRUMB_IMPORTS, BREADCRUMB_LABELS, BREADCRUMB_SEGMENT_TOKEN, BREADCRUMB_TOKEN, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BracketComponent, BracketDefaultContinueComponent, BracketDefaultMatchComponent, BracketDefaultRoundHeaderComponent, BracketMap, BrandLoaderComponent, BreadcrumbComponent, BreadcrumbDirective, BreadcrumbItemDirective, BreadcrumbItemTemplateDirective, BreadcrumbOutletComponent, BreadcrumbSegmentDirective, BreadcrumbSeparatorDirective, ButtonComponent, ButtonDirective, ButtonStylesDirective, CALENDAR_ERROR_CODES, CALENDAR_ICON, CALENDAR_IMPORTS, CAROUSEL_AUTOPLAY_TOKEN, CAROUSEL_ERROR_CODES, CAROUSEL_IMPORTS, CAROUSEL_LABELS, CAROUSEL_SLIDE_ALIGNMENTS, CAROUSEL_TOKEN, CAROUSEL_TRANSITIONS, CAROUSEL_TRANSITION_DRIVERS, CASCADER_ERROR_CODES, CASCADER_IMPORTS, CASCADER_SELECTABLE_LEVELS, CHECKBOX_IMPORTS, CHECK_ICON, CHEVRON_ICON, CHIP_ERROR_CODES, CHIP_IMPORTS, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CLOCK_ICON, CODE_ICON, COLOR_INPUT_IMPORTS, COMMON_BRACKET_ROUND_TYPE, CalendarCellDirective, CalendarComponent, CalendarDirective, CalendarGridDirective, CarouselAutoplayDirective, CarouselComponent, CarouselDirective, CarouselItemDirective, CarouselNextDirective, CarouselPlayToggleDirective, CarouselPreviousDirective, CarouselSlideDirective, CascaderColumnDirective, CascaderComponent, CascaderDirective, CascaderNodeDirective, CascaderPanelComponent, CascaderSearchDirective, CascaderSearchOptionDirective, CascaderSurfaceDirective, CascaderTriggerDirective, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChipComponent, ChipDirective, ChipRemoveDirective, ChoiceFieldComponent, ColorInputComponent, ColorInputDirective, DAILYMOTION_PLAYER_TOKEN, DATE_FORMAT, DATE_INPUT_ERROR_CODES, DATE_INPUT_IMPORTS, DATE_LOCALE, DATE_PICKER_HOST, DATE_RANGE_INPUT_ERROR_CODES, DATE_RANGE_INPUT_IMPORTS, DATE_TIME_INPUT_ERROR_CODES, DATE_TIME_INPUT_IMPORTS, DEFAULT_BREADCRUMB_LABELS, DEFAULT_BREAKPOINTS, DEFAULT_CAROUSEL_LABELS, DEFAULT_ICON_VARIANT, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PAGINATION_LABELS, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_STREAM_PLAYER_STATE, DEFAULT_TABLE_LABELS, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DURATION_INPUT_ERROR_CODES, DURATION_INPUT_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DateInputComponent, DateInputDirective, DateInputFieldDirective, DatePickerPanelComponent, DatePickerSurfaceDirective, DatePickerTriggerDirective, DateRangeInputComponent, DateRangeInputDirective, DateRangeInputFieldDirective, DateTimeInputComponent, DateTimeInputDirective, DateTimeInputFieldDirective, DescriptionComponent, DropzoneComponent, DropzoneDirective, DurationInputComponent, DurationInputDirective, DurationInputFieldDirective, ELLIPSIS_VERTICAL_ICON, ET_BUILT_IN_ICON_NAMES, EYE_ICON, EYE_SLASH_ICON, FACEBOOK_PLAYER_TOKEN, FILE_ICON, FILTER_ICON, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_ERROR_MESSAGE_RESOLVER, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_IMPORTS, GRID_TOKEN, GROUP_BRACKET_ROUND_TYPE, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemRef, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, ICON_OVERRIDES_TOKEN, INITIAL_SUPPORT_PRESENTATION_STATE, INPUT_IMPORTS, INPUT_MASK_HOST, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, INTERACTIVE_TAGS, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputMaskDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOCK_ICON, LabelDirective, MASKED_INPUT_ERROR_CODES, MASKED_INPUT_IMPORTS, MASK_VALUE_MODES, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MINUS_ICON, MULTI_LANGUAGE_RICH_TEXT_EDITOR_ERROR_CODES, MULTI_LANGUAGE_RICH_TEXT_EDITOR_IMPORTS, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, MultiLanguageRichTextEditorComponent, MultiLanguageRichTextEditorDirective, MultiLanguageRichTextEditorLanguageToolComponent, NAV_TABS_TOKEN, NAV_TAB_IMPORTS, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NUMBER_INPUT_IMPORTS, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, NumberInputComponent, NumberInputDirective, OTP_INPUT_IMPORTS, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OtpInputComponent, OtpInputDirective, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PAGINATION_IMPORTS, PAGINATION_LABELS, PARAGRAPH_ICON, PASSWORD_INPUT_IMPORTS, PAUSE_ICON, PENCIL_ICON, PHONE_COUNTRIES, PHONE_INPUT_ERROR_CODES, PHONE_INPUT_IMPORTS, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLAY_ICON, PLUS_ICON, PaginationComponent, PaginationDirective, PaginationSeoDirective, PasswordInputComponent, PasswordInputDirective, PhoneInputComponent, PhoneInputDirective, PhoneInputFieldDirective, PhoneInputFlagDirective, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, QUERY_DEVTOOLS_IMPORTS, QueryDevtoolsComponent, QueryDevtoolsJsonComponent, QueryDevtoolsToggleComponent, QueryParamOverlayLinkDirective, RATING_IMPORTS, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_LANGUAGE_TOOL, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOKEN_PALETTE_IMPORTS, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RangeSliderComponent, RangeSliderDirective, RatingComponent, RatingDirective, RatingIconDirective, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorLinkEditorComponent, RichTextEditorLinkEditorDirective, RichTextEditorTableToolComponent, RichTextEditorTokenPaletteComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SELECT_ERROR_CODES, SELECT_FILTER_MODES, SELECT_IMPORTS, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SINGLE_ELIMINATION_BRACKET_ROUND_TYPE, SKELETON_IMPORTS, SLIDER_ERROR_CODES, SLIDER_IMPORTS, SLIDER_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STAR_ICON, STREAM_CONSENT_TOKEN, STREAM_IMPORTS, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SUPPORT_CONTENT_STATE, SUPPORT_TRANSITION_DIRECTION, SWISS_ADVANCE_WINS, SWISS_BRACKET_ROUND_TYPE, SWISS_ELIMINATE_LOSSES, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectComponent, SelectDirective, SelectEmptyDirective, SelectErrorDirective, SelectListboxDirective, SelectLoadingDirective, SelectOptionComponent, SelectOptionDirective, SelectOptionGroupComponent, SelectOptionGroupDirective, SelectOptionTemplateDirective, SelectOptionsDirective, SelectPanelComponent, SelectSearchDirective, SelectSurfaceDirective, SelectTriggerDirective, SelectValueDirective, SelectViewportDirective, SelectVirtualOptionComponent, SelectVirtualOptionDirective, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SkeletonComponent, SkeletonItemComponent, SkeletonTextComponent, SliderComponent, SliderDirective, SliderThumbDirective, SliderThumbLabelDirective, SliderTrackDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_CELL_ERROR_TOOLTIP_IMPORTS, TABLE_COLUMN_CHOOSER_IMPORTS, TABLE_COLUMN_MENU_IMPORTS, TABLE_ERROR_CODES, TABLE_FEATURE_HOST, TABLE_FILTER_IMPORTS, TABLE_ICON, TABLE_IMPORTS, TABLE_LABELS, TABLE_REORDER_IMPORTS, TABLE_RESIZE_IMPORTS, TABLE_SELECTION_IMPORTS, TABLE_STATE_PERSISTENCE_IMPORTS, TABLE_VIRTUAL_SCROLL_IMPORTS, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_IMPORTS, TAB_PANEL_TOKEN, TAB_SIZES, TAG_INPUT_ERROR_CODES, TAG_INPUT_IMPORTS, TEXTAREA_IMPORTS, TEXTAREA_RESIZE_MODES, TEXT_ALIGNS, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TIME_FORMAT, TIME_INPUT_ERROR_CODES, TIME_INPUT_IMPORTS, TIME_PICKER_ERROR_CODES, TIME_PICKER_IMPORTS, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TOURNAMENT_MODE, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TableCellDirective, TableCellErrorMarkComponent, TableCellErrorTooltipDirective, TableCellSkeletonDirective, TableColumnChooserComponent, TableColumnMenuDirective, TableColumnMenuTriggerComponent, TableComponent, TableDetailStylesComponent, TableExpanderCellComponent, TableFilterOptionDirective, TableFilterTriggerComponent, TableFiltersDirective, TableFooterCellDirective, TableFooterDirective, TableHeaderCellDirective, TableReorderDirective, TableReorderOverlayComponent, TableResizeDirective, TableResizeGripComponent, TableSelectAllCellComponent, TableSelectCellComponent, TableSelectionDirective, TableStatePersistenceDirective, TableVirtualScrollDirective, TableVirtualScrollStylesComponent, TagInputComponent, TagInputDirective, TagInputFieldDirective, TextButtonComponent, TextFieldControlDirective, TextareaComponent, TextareaDirective, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, TimeInputComponent, TimeInputDirective, TimeInputFieldDirective, TimePickerColumnDirective, TimePickerComponent, TimePickerDirective, TimePickerOptionDirective, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, UNIT_MS, UPLOAD_ICON, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, autoPlace, bottomSheetOverlayStrategy, buildAnchoredRuntimePositionStrategy, canHaveChildren, canRenderLayoutInTournamentMode, cascaderFromQuery, centeredOverlayStrategy, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, compactLayout, computeGeometry, computeGridHeight, createAnchoredPanelController, createAutoScroller, createBracket, createBracketBase, createCardMask, createCurrencyMask, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createGridAdapter, createIbanMask, createMatchesMapBase, createNewMatchParticipantBase, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createOverlayUnsavedChangesGuard, createParticipantsMapBase, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createRoundsMapBase, createStreamConfig, createStreamPlayerSlot, createTableRowsSource, createTableStateStorage, createV2DropzoneUpload, defaultCompareWith, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deriveDurationFormatSpec, deserializeGridLayout, deserializeTableState, dialogOverlayStrategy, disposeDropzoneEntry, dropzoneFiles, enableDragToDismiss, filterRows, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatDuration, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, generateBracketDataForEthlete, generateBracketRoundSwissGroupMaps, generateMatchPosition, generateMatchRelationPositions, generateMatchRelationsNew, generateRoundRelationsNew, generateRoundTypeFromEthleteRoundType, generateTournamentModeFormEthleteRounds, getAvailableSwissGroupsForRound, getClosestOverlay, getOriginCoordinatesAndDimensions, getSwissGroupColorType, hysteresisRound, iconRegistryKey, indexOfNode, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectBracketConfig, injectBreadcrumbLabels, injectBreadcrumbManager, injectCarouselLabels, injectDateFormat, injectDateLocale, injectDialogStrategy, injectDialogStrategyDefaults, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectOverlaySurfaceContext, injectPaginationLabels, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSidebarOverlay, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTableFeatureHost, injectTableLabels, injectTimeFormat, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isFileAccepted, isHtmlElement, isInteractiveElement, isPointerEvent, isTargetInsideOverlayTree, isTouchEvent, itemsCollide, leftSheetOverlayStrategy, mapLayoutToBreakpoint, matchCountryByDialCode, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, nodesEqual, paginate, parseDuration, phoneCountryFlag, phoneCountryName, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideBracketConfig, provideBreadcrumbLabels, provideBreadcrumbManager, provideCarouselLabels, provideDateFormat, provideDateLocale, provideDialogStrategy, provideDialogStrategyDefaults, provideFormErrorMessageResolver, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideIconOverrides, provideIcons, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePaginationLabels, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideRichTextEditorAlignmentTool, provideRichTextEditorLanguageTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTableLabels, provideTimeFormat, provideTopSheetStrategy, provideTopSheetStrategyDefaults, reconcileColumnOrder, reconcileColumnWidths, reconcileHiddenColumns, reduceSupportPresentation, registerSingleton, requiredLanguages, resizeSpanBounds, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, rightSheetOverlayStrategy, rowsToPixelHeight, selectOptionsFromQuery, selectOptionsFromV2Query, serializeGridLayout, serializeTableState, snapResizeSpan, sortRows, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, stripTrunkZero, supportPresentationIncludesState, tableFeatureConfig, tableRowsFromQuery, tableRowsFromV2Query, toChildrenObservable, toGridPosition, toPathObservable, toSearchObservable, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy, wireFormSupport };
|
|
15959
|
-
export type { AccordionHeadingLevel, AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPanelCloseInfo, AnchoredPanelOverlayRef, AnchoredPanelSurfaceLike, AnchoredPositionOptions, AnyDropzoneUploadConfig, AnyTableColumn, AutoPlaceOptions, AutoScrollPointer, AutoScroller, Bracket, BracketBase, BracketConfig, BracketDataLayout, BracketDataSource, BracketMatch, BracketMatchBase, BracketMatchFactor, BracketMatchId, BracketMatchParticipant, BracketMatchParticipantBase, BracketMatchParticipantWithRelationsBase, BracketMatchPosition, BracketMatchRelation, BracketMatchRelationNothingToOne, BracketMatchRelationOneToNothing, BracketMatchRelationOneToOne, BracketMatchRelationTwoToNothing, BracketMatchRelationTwoToOne, BracketMatchShortId, BracketMatchSource, BracketMatchStatus, BracketMatchWithRelationsBase, BracketParticipant, BracketParticipantBase, BracketParticipantMatch, BracketParticipantWithRelationsBase, BracketRound, BracketRoundBase, BracketRoundId, BracketRoundMapWithSwissData, BracketRoundMirrorType, BracketRoundPosition, BracketRoundRelation, BracketRoundRelationNothingToOne, BracketRoundRelationOneToNothing, BracketRoundRelationOneToOne, BracketRoundRelationTwoToNothing, BracketRoundRelationTwoToOne, BracketRoundShortId, BracketRoundSource, BracketRoundSwissData, BracketRoundSwissGroup, BracketRoundSwissGroupId, BracketRoundSwissGroupMap, BracketRoundType, BracketRoundWithRelationsBase, BracketSwissColors, BracketSwissConfig, BracketSwissGroupColorType, BreadcrumbCrumb, BreadcrumbLabels, BreadcrumbRenderItem, BreadcrumbSegment, ButtonIconAlignment, ButtonSize, CalendarCell, CalendarMode, CalendarRange, CalendarWeekday, CarouselAutoplayPauseReason, CarouselLabels, CarouselResolvedTransitionDriver, CarouselSlideAlign, CarouselSlideContext, CarouselSlideTemplateRef, CarouselTransition, CarouselTransitionDriver, CascaderColumnState, CascaderCompareWith, CascaderDataSource, CascaderFromQueryConfig, CascaderFromQuerySearchConfig, CascaderNode, CascaderNodeSignal, CascaderSearchState, CascaderSelectableLevels, CascaderSurfaceContext, CenteredOverlayStrategyOptions, ClampPositionOptions, CommonBracketRoundType, CompactLayoutOptions, CreateAnchoredPanelControllerOptions, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, CreateOverlayUnsavedChangesGuardConfig, CreateTableRowsSourceOptions, CurrencyMaskOptions, DatePickerHost, DatePickerSurfaceBase, DatePickerSurfaceContext, DatePickerTriggerBase, DateRangeSide, DateRangeValue, DoubleEliminationBracketRoundType, DragToDismissContext, DragToDismissRef, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneUploadConfig, DropzoneUploadError, DropzoneUploadHandle, DropzoneUploadHandleOptions, DropzoneUploadState, DurationFormatSpec, DurationSegment, DurationUnit, EtBuiltInIconName, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FilterRowsConfig, FindCollisionOptions, FormErrorMessageResolver, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldSize, FormSupport, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GenerateBracketDataOptions, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLayoutEntry, GridSerializedState, GroupBracketRoundType, HintComponentBase, IconDefinition, IconOverride, InputMaskHost, InputTextAlignment, LabelDirectiveBase, MapLayoutOptions, MaskSpec, MaskValueMode, MatchParticipantId, MatchParticipantShortId, MatchParticipantSide, MatchPositionMaps, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, MultiLanguageRichTextEditorLanguage, MultiLanguageRichTextEditorValue, NotificationAction, NotificationConfig, NotificationEntry, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OtpInputCharset, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayCloseGuard, OverlayConfig, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, OverlayTreeContainmentOptions, OverlayUnsavedChangesDismissSources, OverlayUnsavedChangesGuardRef, PaginateOptions, PaginationItem, PaginationItemType, PaginationLabels, PaginationRangeContext, PaginationRenderAs, ParticipantMatchResult, PhoneCountry, PhoneInputFlagContext, PhoneInputFlagCountry, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, RangeSliderValue, RatingIconContext, RatingIconState, ReconcilableColumn, ReduceSupportPresentationInput, RegisteredIconName, RegisteredIconVariant, RequiredLanguagesOptions, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, ResolvedDropzoneUploadConfig, RichTextEditorLinkEditorValue, RichTextEditorQueryTriggerConfig, RichTextEditorTool, RichTextEditorToolButton, RichTextEditorToolDefinition, RichTextEditorToolsConfig, RichTextEditorTrigger, RichTextEditorTriggerItem, RichTextEditorTriggerItemResolver, RichTextEditorTriggerItemSource, RichTextEditorTriggerType, RowFloors, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SelectAsyncOptions, SelectErrorContext, SelectFilterMode, SelectItem, SelectOptionData, SelectOptionGroupItem, SelectOptionTemplateContext, SelectOptionsFromQuery, SelectOptionsFromQueryConfig, SelectOptionsFromV2QueryConfig, SelectSelectedEntry, SelectSurfaceContext, SelectValueContext, SelectionListDirectiveBase, SelectionListItem, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, SingleEliminationBracketRoundType, SkeletonShape, SliderHostBase, SliderThumbBase, SliderThumbLabelBase, SliderThumbLabelContext, SortRowsConfig, StreamConfig, StreamConsentConfig, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, SupportContentState, SupportPresentationState, SupportTransitionDirection, SwissBracketRoundType, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, TableCellContext, TableCellErrorMark, TableCellErrorTooltipConfig, TableCellSkeletonContext, TableCellState, TableCellStateValue, TableColumn, TableColumnAlign, TableColumnDef, TableColumnMenuConfig, TableColumnMeta, TableColumnState, TableColumnTemplate, TableColumnVisibilityHost, TableColumns, TableEmptyContext, TableErrorContext, TableExpandedRowContext, TableFeatureConfig, TableFeatureHost, TableFilter, TableFilterOption, TableFilterOptionContext, TableFilterOptionsProvider, TableFilterSelection, TableFiltersConfig, TableFooterContext, TableHeaderAdornment, TableHeaderContext, TableHeaderGroup, TableLabels, TableLabelsSource, TableLayer, TableLeadCellComponent, TableLeadColumn, TableReorderConfig, TableResizeConfig, TableRowKey, TableRowWindow, TableRowsDriver, TableRowsFromQuery, TableRowsFromQueryConfig, TableRowsFromV2QueryConfig, TableRowsQueryState, TableRowsSource, TableSelectionConfig, TableSort, TableSortDirection, TableSortValue, TableState, TableStatePersistenceConfig, TableStateSlice, TableStateStorage, TableStateStorageKind, TableStateStorageOptions, TableTemplateSlot, TableVirtualScrollConfig, TextAlign, TextareaResizeMode, TimePickerColumn, TimePickerOption, TimePickerUnit, ToggletipContent, TooltipContent, TournamentMode, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, V2DropzonePrepareArgsOf, V2DropzoneUploadConfig, V2PrepareArgsOf, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };
|
|
18108
|
+
export { ACCORDION_ERROR_CODES, ACCORDION_GROUP_TOKEN, ACCORDION_IMPORTS, ACCORDION_TOKEN, ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROWS_LEFT_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, ARROW_UP_ICON, AccordionComponent, AccordionContentDirective, AccordionDirective, AccordionGroupComponent, AccordionGroupDirective, AccordionHintDirective, AccordionLabelDirective, AccordionPanelDirective, AccordionTriggerDirective, BOLD_ICON, BRACKET_DATA_LAYOUT, BRACKET_ERROR_CODES, BRACKET_IMPORTS, BRACKET_ROUND_MIRROR_TYPE, BRACKET_SWISS_GROUP_COLOR_TYPE, BREADCRUMB_ERROR_CODES, BREADCRUMB_IMPORTS, BREADCRUMB_LABELS, BREADCRUMB_SEGMENT_TOKEN, BREADCRUMB_TOKEN, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BracketComponent, BracketDefaultContinueComponent, BracketDefaultMatchComponent, BracketDefaultRoundHeaderComponent, BracketMap, BrandLoaderComponent, BreadcrumbComponent, BreadcrumbDirective, BreadcrumbItemDirective, BreadcrumbItemTemplateDirective, BreadcrumbOutletComponent, BreadcrumbSegmentDirective, BreadcrumbSeparatorDirective, ButtonComponent, ButtonDirective, ButtonStylesDirective, CALENDAR_ERROR_CODES, CALENDAR_ICON, CALENDAR_IMPORTS, CALENDAR_LABELS, CAROUSEL_AUTOPLAY_TOKEN, CAROUSEL_ERROR_CODES, CAROUSEL_IMPORTS, CAROUSEL_LABELS, CAROUSEL_SLIDE_ALIGNMENTS, CAROUSEL_TOKEN, CAROUSEL_TRANSITIONS, CAROUSEL_TRANSITION_DRIVERS, CASCADER_ERROR_CODES, CASCADER_IMPORTS, CASCADER_LABELS, CASCADER_SELECTABLE_LEVELS, CHECKBOX_IMPORTS, CHECKBOX_OPTION_VARIANTS, CHECK_ICON, CHEVRON_ICON, CHIP_ERROR_CODES, CHIP_IMPORTS, CHIP_LABELS, CHOICE_FIELD_IMPORTS, CHOICE_FIELD_VARIANTS, CLIPBOARD_CHECK_ICON, CLOCK_ICON, CODE_ICON, COLOR_INPUT_IMPORTS, COMMON_BRACKET_ROUND_TYPE, CalendarCellDirective, CalendarComponent, CalendarDirective, CalendarGridDirective, CarouselAutoplayDirective, CarouselComponent, CarouselDirective, CarouselItemDirective, CarouselNextDirective, CarouselPlayToggleDirective, CarouselPreviousDirective, CarouselSlideDirective, CascaderColumnDirective, CascaderComponent, CascaderDirective, CascaderNodeDirective, CascaderPanelComponent, CascaderSearchDirective, CascaderSearchOptionDirective, CascaderSurfaceDirective, CascaderTriggerDirective, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChipComponent, ChipDirective, ChipRemoveDirective, ChoiceFieldComponent, ColorInputComponent, ColorInputDirective, CounterComponent, DAILYMOTION_PLAYER_TOKEN, DATE_FORMAT, DATE_INPUT_ERROR_CODES, DATE_INPUT_IMPORTS, DATE_LOCALE, DATE_PICKER_HOST, DATE_RANGE_INPUT_ERROR_CODES, DATE_RANGE_INPUT_IMPORTS, DATE_TIME_INPUT_ERROR_CODES, DATE_TIME_INPUT_IMPORTS, DATE_TIME_LABELS, DEFAULT_BREADCRUMB_LABELS, DEFAULT_BREAKPOINTS, DEFAULT_CALENDAR_LABELS, DEFAULT_CAROUSEL_LABELS, DEFAULT_CASCADER_LABELS, DEFAULT_CHIP_LABELS, DEFAULT_DATE_TIME_LABELS, DEFAULT_DROPZONE_LABELS, DEFAULT_FILTER_OVERLAY_LABELS, DEFAULT_FORM_FIELD_LABELS, DEFAULT_GRID_LABELS, DEFAULT_ICON_VARIANT, DEFAULT_INPUT_LABELS, DEFAULT_LOADER_LABELS, DEFAULT_NOTIFICATION_LABELS, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PAGINATION_LABELS, DEFAULT_PHONE_INPUT_LABELS, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_QUERY_ERROR_LABELS, DEFAULT_RICH_TEXT_EDITOR_LABELS, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_SELECT_LABELS, DEFAULT_SLIDER_LABELS, DEFAULT_STREAM_LABELS, DEFAULT_STREAM_PLAYER_STATE, DEFAULT_TABLE_LABELS, DEFAULT_TIME_PICKER_LABELS, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DROPZONE_LABELS, DURATION_INPUT_ERROR_CODES, DURATION_INPUT_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DateInputComponent, DateInputDirective, DateInputFieldDirective, DatePickerPanelComponent, DatePickerSurfaceDirective, DatePickerTriggerDirective, DateRangeInputComponent, DateRangeInputDirective, DateRangeInputFieldDirective, DateTimeInputComponent, DateTimeInputDirective, DateTimeInputFieldDirective, DescriptionComponent, DropzoneComponent, DropzoneDirective, DurationInputComponent, DurationInputDirective, DurationInputFieldDirective, ELLIPSIS_ICON, ELLIPSIS_VERTICAL_ICON, ET_BUILT_IN_ICON_NAMES, EYE_ICON, EYE_SLASH_ICON, FACEBOOK_PLAYER_TOKEN, FILE_ICON, FILTER_ICON, FILTER_OVERLAY_ERROR_CODES, FILTER_OVERLAY_IMPORTS, FILTER_OVERLAY_LABELS, FILTER_OVERLAY_TOKEN, FLOATING_ACTION_ERROR_CODES, FLOATING_ACTION_IMPORTS, FLOATING_ACTION_STATES, FLOATING_ACTION_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_ERROR_MESSAGE_RESOLVER, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABELS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FilterOverlayResetDirective, FilterOverlaySubmitDirective, FloatingActionAnchorDirective, FloatingActionDirective, FloatingActionScopeDirective, FloatingActionTopDirective, FloatingActionTriggerDirective, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GERMAN_FILTER_OVERLAY_LABELS, GERMAN_QUERY_ERROR_LABELS, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_IMPORTS, GRID_LABELS, GRID_TOKEN, GROUP_BRACKET_ROUND_TYPE, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemRef, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, ICON_OVERRIDES_TOKEN, INITIAL_SUPPORT_PRESENTATION_STATE, INPUT_IMPORTS, INPUT_LABELS, INPUT_MASK_HOST, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, INTERACTIVE_TAGS, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputMaskDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOADER_LABELS, LOCK_ICON, LabelDirective, MASKED_INPUT_ERROR_CODES, MASKED_INPUT_IMPORTS, MASK_VALUE_MODES, MASONRY_ERROR_CODES, MASONRY_IMPORTS, MASONRY_TOKEN, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MINUS_ICON, MULTI_LANGUAGE_RICH_TEXT_EDITOR_ERROR_CODES, MULTI_LANGUAGE_RICH_TEXT_EDITOR_IMPORTS, MasonryDirective, MasonryItemDirective, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, MultiLanguageRichTextEditorComponent, MultiLanguageRichTextEditorDirective, MultiLanguageRichTextEditorLanguageToolComponent, NAV_TABS_TOKEN, NAV_TAB_IMPORTS, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_LABELS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NUMBER_INPUT_IMPORTS, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, NumberInputComponent, NumberInputDirective, OTP_INPUT_IMPORTS, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OtpInputComponent, OtpInputDirective, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PAGINATION_IMPORTS, PAGINATION_LABELS, PARAGRAPH_ICON, PASSWORD_INPUT_IMPORTS, PAUSE_ICON, PENCIL_ICON, PHONE_COUNTRIES, PHONE_INPUT_ERROR_CODES, PHONE_INPUT_IMPORTS, PHONE_INPUT_LABELS, PICTURE_IMPORTS, PICTURE_STATES, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLAY_ICON, PLUS_ICON, PaginationComponent, PaginationDirective, PaginationSeoDirective, PasswordInputComponent, PasswordInputDirective, PhoneInputComponent, PhoneInputDirective, PhoneInputFieldDirective, PhoneInputFlagDirective, PictureComponent, PictureErrorDirective, PicturePlaceholderDirective, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, QUERY_DEVTOOLS_IMPORTS, QUERY_ERROR_ERROR_CODES, QUERY_ERROR_IMPORTS, QUERY_ERROR_LABELS, QUERY_ERROR_TOKEN, QueryDevtoolsComponent, QueryDevtoolsJsonComponent, QueryDevtoolsToggleComponent, QueryErrorActionsDirective, QueryErrorComponent, QueryErrorDirective, QueryErrorTitleDirective, QueryParamOverlayLinkDirective, RADIO_VARIANTS, RATING_IMPORTS, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_LABELS, RICH_TEXT_EDITOR_LANGUAGE_TOOL, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOKEN_PALETTE_IMPORTS, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RangeSliderComponent, RangeSliderDirective, RatingComponent, RatingDirective, RatingIconDirective, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorLinkEditorComponent, RichTextEditorLinkEditorDirective, RichTextEditorTableToolComponent, RichTextEditorTokenPaletteComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SEGMENTED_BUTTON_GROUP_VARIANTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SELECT_ERROR_CODES, SELECT_FILTER_MODES, SELECT_IMPORTS, SELECT_LABELS, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SINGLE_ELIMINATION_BRACKET_ROUND_TYPE, SKELETON_IMPORTS, SLIDER_ERROR_CODES, SLIDER_IMPORTS, SLIDER_LABELS, SLIDER_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STAR_ICON, STREAM_CONSENT_TOKEN, STREAM_IMPORTS, STREAM_LABELS, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SUPPORT_CONTENT_STATE, SUPPORT_TRANSITION_DIRECTION, SWISS_ADVANCE_WINS, SWISS_BRACKET_ROUND_TYPE, SWISS_ELIMINATE_LOSSES, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectComponent, SelectDirective, SelectEmptyDirective, SelectErrorDirective, SelectListboxDirective, SelectLoadingDirective, SelectOptionComponent, SelectOptionDirective, SelectOptionGroupComponent, SelectOptionGroupDirective, SelectOptionTemplateDirective, SelectOptionsDirective, SelectPanelComponent, SelectSearchDirective, SelectSurfaceDirective, SelectTriggerDirective, SelectValueDirective, SelectViewportDirective, SelectVirtualOptionComponent, SelectVirtualOptionDirective, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SkeletonComponent, SkeletonItemComponent, SkeletonTextComponent, SliderComponent, SliderDirective, SliderThumbDirective, SliderThumbLabelDirective, SliderTrackDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_CELL_ERROR_TOOLTIP_IMPORTS, TABLE_COLUMN_CHOOSER_IMPORTS, TABLE_COLUMN_MENU_IMPORTS, TABLE_ERROR_CODES, TABLE_FEATURE_HOST, TABLE_FILTER_IMPORTS, TABLE_ICON, TABLE_IMPORTS, TABLE_LABELS, TABLE_REORDER_IMPORTS, TABLE_RESIZE_IMPORTS, TABLE_SELECTION_IMPORTS, TABLE_STATE_PERSISTENCE_IMPORTS, TABLE_VIRTUAL_SCROLL_IMPORTS, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_IMPORTS, TAB_PANEL_TOKEN, TAB_SIZES, TAG_INPUT_ERROR_CODES, TAG_INPUT_IMPORTS, TEXTAREA_IMPORTS, TEXTAREA_RESIZE_MODES, TEXT_ALIGNS, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TIME_FORMAT, TIME_INPUT_ERROR_CODES, TIME_INPUT_IMPORTS, TIME_PICKER_ERROR_CODES, TIME_PICKER_IMPORTS, TIME_PICKER_LABELS, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TOURNAMENT_MODE, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TableCellDirective, TableCellErrorMarkComponent, TableCellErrorTooltipDirective, TableCellSkeletonDirective, TableColumnChooserComponent, TableColumnMenuDirective, TableColumnMenuTriggerComponent, TableComponent, TableDetailStylesComponent, TableExpanderCellComponent, TableFilterOptionDirective, TableFilterTriggerComponent, TableFiltersDirective, TableFooterCellDirective, TableFooterDirective, TableHeaderCellDirective, TableReorderDirective, TableReorderOverlayComponent, TableResizeDirective, TableResizeGripComponent, TableSelectAllCellComponent, TableSelectCellComponent, TableSelectionDirective, TableStatePersistenceDirective, TableVirtualScrollDirective, TableVirtualScrollStylesComponent, TagInputComponent, TagInputDirective, TagInputFieldDirective, TextButtonComponent, TextFieldControlDirective, TextareaComponent, TextareaDirective, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, TimeInputComponent, TimeInputDirective, TimeInputFieldDirective, TimePickerColumnDirective, TimePickerComponent, TimePickerDirective, TimePickerOptionDirective, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, UNIT_MS, UPLOAD_ICON, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, autoPlace, bottomSheetOverlayStrategy, buildAnchoredRuntimePositionStrategy, canHaveChildren, canRenderLayoutInTournamentMode, cascaderFromQuery, centeredOverlayStrategy, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, compactLayout, computeGeometry, computeGridHeight, createAnchoredPanelController, createAutoScroller, createBracket, createBracketBase, createCardMask, createCurrencyMask, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createGridAdapter, createIbanMask, createMatchesMapBase, createNewMatchParticipantBase, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createOverlayUnsavedChangesGuard, createParticipantsMapBase, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createRoundsMapBase, createStreamConfig, createStreamPlayerSlot, createTableRowsSource, createTableStateStorage, createV2DropzoneUpload, defaultCompareWith, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deriveDurationFormatSpec, deserializeGridLayout, deserializeTableState, dialogOverlayStrategy, disposeDropzoneEntry, dropzoneFiles, enableDragToDismiss, extractFirstImageUrl, filterOverlayLabelsForLocale, filterOverlayPreviewFromQuery, filterRows, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatDuration, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, generateBracketDataForEthlete, generateBracketRoundSwissGroupMaps, generateMatchPosition, generateMatchRelationPositions, generateMatchRelationsNew, generateRoundRelationsNew, generateRoundTypeFromEthleteRoundType, generateTournamentModeFormEthleteRounds, getAvailableSwissGroupsForRound, getClosestOverlay, getOriginCoordinatesAndDimensions, getSwissGroupColorType, hysteresisRound, iconRegistryKey, indexOfNode, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectBracketConfig, injectBreadcrumbLabels, injectBreadcrumbManager, injectCalendarLabels, injectCarouselLabels, injectCascaderLabels, injectChipLabels, injectDateFormat, injectDateLocale, injectDateTimeLabels, injectDialogStrategy, injectDialogStrategyDefaults, injectDropzoneLabels, injectFilterOverlay, injectFilterOverlayLabels, injectFormFieldLabels, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectGridLabels, injectInputLabels, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectLoaderLabels, injectNotificationLabels, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectOverlaySurfaceContext, injectPaginationLabels, injectPhoneInputLabels, injectPictureConfig, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectQueryErrorLabels, injectRichTextEditorLabels, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSelectLabels, injectSidebarOverlay, injectSliderLabels, injectStreamConfig, injectStreamConsentConfig, injectStreamLabels, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTableFeatureHost, injectTableLabels, injectTimeFormat, injectTimePickerLabels, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isFileAccepted, isHtmlElement, isInteractiveElement, isPointerEvent, isTargetInsideOverlayTree, isTouchEvent, itemsCollide, leftSheetOverlayStrategy, legacyQueryErrorSource, mapLayoutToBreakpoint, matchCountryByDialCode, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, nodesEqual, normalizePictureSizes, normalizePictureSource, paginate, parseDuration, phoneCountryFlag, phoneCountryName, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideBracketConfig, provideBreadcrumbLabels, provideBreadcrumbManager, provideCalendarLabels, provideCarouselLabels, provideCascaderLabels, provideChipLabels, provideDateFormat, provideDateLocale, provideDateTimeLabels, provideDialogStrategy, provideDialogStrategyDefaults, provideDropzoneLabels, provideFilterOverlay, provideFilterOverlayLabels, provideFormErrorMessageResolver, provideFormFieldLabels, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideGridLabels, provideIconOverrides, provideIcons, provideInputLabels, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideLoaderLabels, provideNotificationLabels, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePaginationLabels, providePhoneInputLabels, providePictureConfig, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideQueryErrorLabels, provideRichTextEditorAlignmentTool, provideRichTextEditorLabels, provideRichTextEditorLanguageTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSelectLabels, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideSliderLabels, provideStreamConfig, provideStreamConsentConfig, provideStreamLabels, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTableLabels, provideTimeFormat, provideTimePickerLabels, provideTopSheetStrategy, provideTopSheetStrategyDefaults, queryErrorLabelsForLocale, queryErrorResponseFromLegacyError, reconcileColumnOrder, reconcileColumnWidths, reconcileHiddenColumns, reduceSupportPresentation, registerSingleton, requiredLanguages, resizeSpanBounds, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, resolveFilterOverlaySubmitButton, richTextEditorToolLabel, rightSheetOverlayStrategy, rowsToPixelHeight, selectOptionsFromQuery, selectOptionsFromV2Query, serializeGridLayout, serializeTableState, snapResizeSpan, sortRows, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, stripTrunkZero, supportPresentationIncludesState, tableFeatureConfig, tableRowsFromQuery, tableRowsFromV2Query, toChildrenObservable, toGridPosition, toPathObservable, toSearchObservable, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy, wireFormSupport, withPictureBaseUrl };
|
|
18109
|
+
export type { AccordionHeadingLevel, AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPanelCloseInfo, AnchoredPanelOverlayRef, AnchoredPanelSurfaceLike, AnchoredPositionOptions, AnyDropzoneUploadConfig, AnyTableColumn, AutoPlaceOptions, AutoScrollPointer, AutoScroller, Bracket, BracketBase, BracketConfig, BracketDataLayout, BracketDataSource, BracketMatch, BracketMatchBase, BracketMatchFactor, BracketMatchId, BracketMatchParticipant, BracketMatchParticipantBase, BracketMatchParticipantWithRelationsBase, BracketMatchPosition, BracketMatchRelation, BracketMatchRelationNothingToOne, BracketMatchRelationOneToNothing, BracketMatchRelationOneToOne, BracketMatchRelationTwoToNothing, BracketMatchRelationTwoToOne, BracketMatchShortId, BracketMatchSource, BracketMatchStatus, BracketMatchWithRelationsBase, BracketParticipant, BracketParticipantBase, BracketParticipantMatch, BracketParticipantWithRelationsBase, BracketRound, BracketRoundBase, BracketRoundId, BracketRoundMapWithSwissData, BracketRoundMirrorType, BracketRoundPosition, BracketRoundRelation, BracketRoundRelationNothingToOne, BracketRoundRelationOneToNothing, BracketRoundRelationOneToOne, BracketRoundRelationTwoToNothing, BracketRoundRelationTwoToOne, BracketRoundShortId, BracketRoundSource, BracketRoundSwissData, BracketRoundSwissGroup, BracketRoundSwissGroupId, BracketRoundSwissGroupMap, BracketRoundType, BracketRoundWithRelationsBase, BracketSwissColors, BracketSwissConfig, BracketSwissGroupColorType, BreadcrumbCrumb, BreadcrumbLabels, BreadcrumbRenderItem, BreadcrumbSegment, ButtonIconAlignment, ButtonSize, CalendarCell, CalendarLabels, CalendarMode, CalendarRange, CalendarWeekday, CarouselAutoplayPauseReason, CarouselLabels, CarouselResolvedTransitionDriver, CarouselSlideAlign, CarouselSlideContext, CarouselSlideTemplateRef, CarouselTransition, CarouselTransitionDriver, CascaderColumnState, CascaderCompareWith, CascaderDataSource, CascaderFromQueryConfig, CascaderFromQuerySearchConfig, CascaderLabels, CascaderNode, CascaderNodeSignal, CascaderSearchState, CascaderSelectableLevels, CascaderSurfaceContext, CenteredOverlayStrategyOptions, CheckboxOptionVariant, ChipLabels, ChoiceFieldVariant, ClampPositionOptions, CommonBracketRoundType, CompactLayoutOptions, CounterComponentBase, CreateAnchoredPanelControllerOptions, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, CreateOverlayUnsavedChangesGuardConfig, CreateTableRowsSourceOptions, CurrencyMaskOptions, DatePickerHost, DatePickerSurfaceBase, DatePickerSurfaceContext, DatePickerTriggerBase, DateRangeSide, DateRangeValue, DateTimeLabels, DoubleEliminationBracketRoundType, DragDismissMomentum, DragToDismissContext, DragToDismissRef, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneLabels, DropzoneUploadConfig, DropzoneUploadError, DropzoneUploadHandle, DropzoneUploadHandleOptions, DropzoneUploadState, DurationFormatSpec, DurationSegment, DurationUnit, EtBuiltInIconName, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FilterOverlay, FilterOverlayConfig, FilterOverlayDraft, FilterOverlayLabels, FilterOverlayPreview, FilterOverlayResult, FilterOverlaySubmitButton, FilterOverlaySubmitState, FilterOverlayValueOf, FilterRowsConfig, FindCollisionOptions, FloatingActionState, FormErrorMessageResolver, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldLabels, FormFieldSize, FormSupport, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GenerateBracketDataOptions, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLabels, GridLayoutEntry, GridSerializedState, GroupBracketRoundType, HintComponentBase, IconDefinition, IconOverride, InputLabels, InputMaskHost, InputTextAlignment, LabelDirectiveBase, LegacyQueryErrorSource, LoaderLabels, MapLayoutOptions, MaskSpec, MaskValueMode, MasonryColumns, MasonryPacking, MasonryPlacement, MatchParticipantId, MatchParticipantShortId, MatchParticipantSide, MatchPositionMaps, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, MultiLanguageRichTextEditorLanguage, MultiLanguageRichTextEditorValue, NotificationAction, NotificationConfig, NotificationEntry, NotificationLabels, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OtpInputCharset, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayCloseGuard, OverlayConfig, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayDragToDismissDirection, OverlayDragToDismissPhysicalDirection, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, OverlayTreeContainmentOptions, OverlayUnsavedChangesDismissSources, OverlayUnsavedChangesGuardRef, PaginateOptions, PaginationItem, PaginationItemType, PaginationLabels, PaginationRangeContext, PaginationRenderAs, ParticipantMatchResult, PhoneCountry, PhoneInputFlagContext, PhoneInputFlagCountry, PhoneInputLabels, PictureConfig, PictureSource, PictureState, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, QueryErrorLabels, QueryErrorRetryTarget, QueryErrorSlotContext, QueryErrorView, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, RadioVariant, RangeSliderValue, RatingIconContext, RatingIconState, ReconcilableColumn, ReduceSupportPresentationInput, RegisteredIconName, RegisteredIconVariant, RequiredLanguagesOptions, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, ResolvedDropzoneUploadConfig, RichTextEditorLabels, RichTextEditorLinkEditorValue, RichTextEditorQueryTriggerConfig, RichTextEditorTool, RichTextEditorToolButton, RichTextEditorToolDefinition, RichTextEditorToolsConfig, RichTextEditorTrigger, RichTextEditorTriggerItem, RichTextEditorTriggerItemResolver, RichTextEditorTriggerItemSource, RichTextEditorTriggerType, RowFloors, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SegmentedButtonGroupVariant, SelectAsyncOptions, SelectErrorContext, SelectFilterMode, SelectItem, SelectLabels, SelectOptionData, SelectOptionGroupItem, SelectOptionTemplateContext, SelectOptionsFromQuery, SelectOptionsFromQueryConfig, SelectOptionsFromV2QueryConfig, SelectSelectedEntry, SelectSurfaceContext, SelectValueContext, SelectionListDirectiveBase, SelectionListItem, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, SingleEliminationBracketRoundType, SkeletonShape, SliderHostBase, SliderLabels, SliderThumbBase, SliderThumbLabelBase, SliderThumbLabelContext, SortRowsConfig, StreamConfig, StreamConsentConfig, StreamLabels, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, SupportContentState, SupportPresentationState, SupportTransitionDirection, SwissBracketRoundType, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, TableCellContext, TableCellErrorMark, TableCellErrorTooltipConfig, TableCellSkeletonContext, TableCellState, TableCellStateValue, TableColumn, TableColumnAlign, TableColumnDef, TableColumnMenuConfig, TableColumnMeta, TableColumnState, TableColumnTemplate, TableColumnVisibilityHost, TableColumns, TableEmptyContext, TableErrorContext, TableExpandedRowContext, TableFeatureConfig, TableFeatureHost, TableFilter, TableFilterOption, TableFilterOptionContext, TableFilterOptionsProvider, TableFilterSelection, TableFiltersConfig, TableFooterContext, TableHeaderAdornment, TableHeaderContext, TableHeaderGroup, TableLabels, TableLabelsSource, TableLayer, TableLeadCellComponent, TableLeadColumn, TableReorderConfig, TableResizeConfig, TableRowKey, TableRowWindow, TableRowsDriver, TableRowsFromQuery, TableRowsFromQueryConfig, TableRowsFromV2QueryConfig, TableRowsQueryState, TableRowsSource, TableSelectionConfig, TableSort, TableSortDirection, TableSortValue, TableState, TableStatePersistenceConfig, TableStateSlice, TableStateStorage, TableStateStorageKind, TableStateStorageOptions, TableTemplateSlot, TableVirtualScrollConfig, TextAlign, TextareaResizeMode, TimePickerColumn, TimePickerLabels, TimePickerOption, TimePickerUnit, ToggletipContent, TooltipContent, TournamentMode, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, V2DropzonePrepareArgsOf, V2DropzoneUploadConfig, V2PrepareArgsOf, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };
|