@tedi-design-system/angular 8.1.0-rc.2 → 8.1.0-rc.21
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/community/index.d.ts +13 -2
- package/community/index.d.ts.map +1 -1
- package/community/text-editor/index.d.ts +129 -0
- package/community/text-editor/index.d.ts.map +1 -0
- package/fesm2022/tedi-design-system-angular-community-text-editor.mjs +378 -0
- package/fesm2022/tedi-design-system-angular-community-text-editor.mjs.map +1 -0
- package/fesm2022/tedi-design-system-angular-community.mjs +261 -230
- package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -1
- package/fesm2022/tedi-design-system-angular-tedi.mjs +2353 -351
- package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -1
- package/index.css +1 -1
- package/package.json +16 -2
- package/tedi/index.d.ts +1190 -65
- package/tedi/index.d.ts.map +1 -1
package/tedi/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, OnInit, OnDestroy, TemplateRef, ElementRef, Injector, WritableSignal, InjectionToken, AfterViewChecked, AfterContentInit, QueryList, EnvironmentProviders } from '@angular/core';
|
|
3
|
-
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
3
|
+
import { _IdGenerator, Highlightable } from '@angular/cdk/a11y';
|
|
4
4
|
import * as _tedi_design_system_angular_tedi from '@tedi-design-system/angular/tedi';
|
|
5
5
|
import { ControlValueAccessor } from '@angular/forms';
|
|
6
6
|
import * as _tanstack_table_core from '@tanstack/table-core';
|
|
@@ -65,7 +65,9 @@ declare class IconComponent {
|
|
|
65
65
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconComponent, "tedi-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
type
|
|
68
|
+
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
69
|
+
type HeadingModifiers = `h${HeadingLevel}`;
|
|
70
|
+
type TextModifiers = HeadingModifiers | "normal" | "small" | "extra-small" | "bold" | "thin" | "italic" | "center" | "left" | "right" | "nowrap" | "break-all" | "break-word" | "break-spaces" | "uppercase" | "lowercase" | "capitalize" | "capitalize-first" | "inline-block" | "inline" | "line-normal" | "line-condensed" | "subtitle";
|
|
69
71
|
type TextColor = "primary" | "secondary" | "tertiary" | "white" | "disabled" | "brand" | "success" | "warning" | "danger" | "info" | "neutral" | "inherit";
|
|
70
72
|
declare class TextComponent {
|
|
71
73
|
/**
|
|
@@ -352,6 +354,27 @@ declare const translationsMap: {
|
|
|
352
354
|
en: string;
|
|
353
355
|
ru: string;
|
|
354
356
|
};
|
|
357
|
+
"search.no-results": {
|
|
358
|
+
description: string;
|
|
359
|
+
components: string[];
|
|
360
|
+
et: string;
|
|
361
|
+
en: string;
|
|
362
|
+
ru: string;
|
|
363
|
+
};
|
|
364
|
+
"search.loading": {
|
|
365
|
+
description: string;
|
|
366
|
+
components: string[];
|
|
367
|
+
et: string;
|
|
368
|
+
en: string;
|
|
369
|
+
ru: string;
|
|
370
|
+
};
|
|
371
|
+
"search.results-count": {
|
|
372
|
+
description: string;
|
|
373
|
+
components: string[];
|
|
374
|
+
et: (count: number) => string;
|
|
375
|
+
en: (count: number) => string;
|
|
376
|
+
ru: (count: number) => string;
|
|
377
|
+
};
|
|
355
378
|
required: {
|
|
356
379
|
description: string;
|
|
357
380
|
components: string[];
|
|
@@ -575,6 +598,13 @@ declare const translationsMap: {
|
|
|
575
598
|
en: string;
|
|
576
599
|
ru: string;
|
|
577
600
|
};
|
|
601
|
+
"toast.close": {
|
|
602
|
+
description: string;
|
|
603
|
+
components: string[];
|
|
604
|
+
et: (title: string) => string;
|
|
605
|
+
en: (title: string) => string;
|
|
606
|
+
ru: (title: string) => string;
|
|
607
|
+
};
|
|
578
608
|
"modal.close": {
|
|
579
609
|
description: string;
|
|
580
610
|
components: string[];
|
|
@@ -1030,20 +1060,6 @@ declare const translationsMap: {
|
|
|
1030
1060
|
en: string;
|
|
1031
1061
|
ru: string;
|
|
1032
1062
|
};
|
|
1033
|
-
"table-of-contents.valid": {
|
|
1034
|
-
description: string;
|
|
1035
|
-
components: string[];
|
|
1036
|
-
et: (count: string | number) => string;
|
|
1037
|
-
en: (count: string | number) => string;
|
|
1038
|
-
ru: (count: string | number) => string;
|
|
1039
|
-
};
|
|
1040
|
-
"table-of-contents.invalid": {
|
|
1041
|
-
description: string;
|
|
1042
|
-
components: string[];
|
|
1043
|
-
et: (count: string | number) => string;
|
|
1044
|
-
en: (count: string | number) => string;
|
|
1045
|
-
ru: (count: string | number) => string;
|
|
1046
|
-
};
|
|
1047
1063
|
"truncate.see-more": {
|
|
1048
1064
|
description: string;
|
|
1049
1065
|
components: string[];
|
|
@@ -1548,6 +1564,125 @@ declare const translationsMap: {
|
|
|
1548
1564
|
en: string;
|
|
1549
1565
|
ru: string;
|
|
1550
1566
|
};
|
|
1567
|
+
"text-editor.bold": {
|
|
1568
|
+
description: string;
|
|
1569
|
+
components: string[];
|
|
1570
|
+
et: string;
|
|
1571
|
+
en: string;
|
|
1572
|
+
ru: string;
|
|
1573
|
+
};
|
|
1574
|
+
"text-editor.italic": {
|
|
1575
|
+
description: string;
|
|
1576
|
+
components: string[];
|
|
1577
|
+
et: string;
|
|
1578
|
+
en: string;
|
|
1579
|
+
ru: string;
|
|
1580
|
+
};
|
|
1581
|
+
"text-editor.underline": {
|
|
1582
|
+
description: string;
|
|
1583
|
+
components: string[];
|
|
1584
|
+
et: string;
|
|
1585
|
+
en: string;
|
|
1586
|
+
ru: string;
|
|
1587
|
+
};
|
|
1588
|
+
"text-editor.strike": {
|
|
1589
|
+
description: string;
|
|
1590
|
+
components: string[];
|
|
1591
|
+
et: string;
|
|
1592
|
+
en: string;
|
|
1593
|
+
ru: string;
|
|
1594
|
+
};
|
|
1595
|
+
"text-editor.align.left": {
|
|
1596
|
+
description: string;
|
|
1597
|
+
components: string[];
|
|
1598
|
+
et: string;
|
|
1599
|
+
en: string;
|
|
1600
|
+
ru: string;
|
|
1601
|
+
};
|
|
1602
|
+
"text-editor.align.center": {
|
|
1603
|
+
description: string;
|
|
1604
|
+
components: string[];
|
|
1605
|
+
et: string;
|
|
1606
|
+
en: string;
|
|
1607
|
+
ru: string;
|
|
1608
|
+
};
|
|
1609
|
+
"text-editor.align.right": {
|
|
1610
|
+
description: string;
|
|
1611
|
+
components: string[];
|
|
1612
|
+
et: string;
|
|
1613
|
+
en: string;
|
|
1614
|
+
ru: string;
|
|
1615
|
+
};
|
|
1616
|
+
"text-editor.align.justify": {
|
|
1617
|
+
description: string;
|
|
1618
|
+
components: string[];
|
|
1619
|
+
et: string;
|
|
1620
|
+
en: string;
|
|
1621
|
+
ru: string;
|
|
1622
|
+
};
|
|
1623
|
+
"text-editor.list.bullet": {
|
|
1624
|
+
description: string;
|
|
1625
|
+
components: string[];
|
|
1626
|
+
et: string;
|
|
1627
|
+
en: string;
|
|
1628
|
+
ru: string;
|
|
1629
|
+
};
|
|
1630
|
+
"text-editor.list.ordered": {
|
|
1631
|
+
description: string;
|
|
1632
|
+
components: string[];
|
|
1633
|
+
et: string;
|
|
1634
|
+
en: string;
|
|
1635
|
+
ru: string;
|
|
1636
|
+
};
|
|
1637
|
+
"text-editor.indent.increase": {
|
|
1638
|
+
description: string;
|
|
1639
|
+
components: string[];
|
|
1640
|
+
et: string;
|
|
1641
|
+
en: string;
|
|
1642
|
+
ru: string;
|
|
1643
|
+
};
|
|
1644
|
+
"text-editor.indent.decrease": {
|
|
1645
|
+
description: string;
|
|
1646
|
+
components: string[];
|
|
1647
|
+
et: string;
|
|
1648
|
+
en: string;
|
|
1649
|
+
ru: string;
|
|
1650
|
+
};
|
|
1651
|
+
"text-editor.color": {
|
|
1652
|
+
description: string;
|
|
1653
|
+
components: string[];
|
|
1654
|
+
et: string;
|
|
1655
|
+
en: string;
|
|
1656
|
+
ru: string;
|
|
1657
|
+
};
|
|
1658
|
+
"text-editor.background": {
|
|
1659
|
+
description: string;
|
|
1660
|
+
components: string[];
|
|
1661
|
+
et: string;
|
|
1662
|
+
en: string;
|
|
1663
|
+
ru: string;
|
|
1664
|
+
};
|
|
1665
|
+
"text-editor.link": {
|
|
1666
|
+
description: string;
|
|
1667
|
+
components: string[];
|
|
1668
|
+
et: string;
|
|
1669
|
+
en: string;
|
|
1670
|
+
ru: string;
|
|
1671
|
+
};
|
|
1672
|
+
"text-editor.blockquote": {
|
|
1673
|
+
description: string;
|
|
1674
|
+
components: string[];
|
|
1675
|
+
et: string;
|
|
1676
|
+
en: string;
|
|
1677
|
+
ru: string;
|
|
1678
|
+
};
|
|
1679
|
+
"text-editor.clean": {
|
|
1680
|
+
description: string;
|
|
1681
|
+
components: string[];
|
|
1682
|
+
et: string;
|
|
1683
|
+
en: string;
|
|
1684
|
+
ru: string;
|
|
1685
|
+
};
|
|
1551
1686
|
"time-picker.hours": {
|
|
1552
1687
|
description: string;
|
|
1553
1688
|
components: string[];
|
|
@@ -1705,12 +1840,19 @@ declare class AlertComponent {
|
|
|
1705
1840
|
* @default false
|
|
1706
1841
|
*/
|
|
1707
1842
|
showClose: _angular_core.InputSignal<boolean>;
|
|
1843
|
+
/**
|
|
1844
|
+
* Accessible name for the close button. Override the generic default
|
|
1845
|
+
* ("Close") when several alerts can be on screen at once, so the button
|
|
1846
|
+
* says which one it closes.
|
|
1847
|
+
*/
|
|
1848
|
+
closeAriaLabel: _angular_core.InputSignal<string | undefined>;
|
|
1708
1849
|
/**
|
|
1709
1850
|
* The ARIA role of the alert, informing screen readers about the alert's purpose.
|
|
1851
|
+
* The role carries its own live-region semantics, so no separate `aria-live` is set.
|
|
1710
1852
|
* Options:
|
|
1711
|
-
* - 'alert': For high-priority messages that demand immediate attention.
|
|
1712
|
-
* - 'status': For less urgent messages providing feedback or updates.
|
|
1713
|
-
* - 'none':
|
|
1853
|
+
* - 'alert': For high-priority messages that demand immediate attention (announced assertively).
|
|
1854
|
+
* - 'status': For less urgent messages providing feedback or updates (announced politely).
|
|
1855
|
+
* - 'none': No role and no announcement.
|
|
1714
1856
|
* @default alert
|
|
1715
1857
|
*/
|
|
1716
1858
|
role: _angular_core.InputSignal<AlertRole>;
|
|
@@ -1745,8 +1887,6 @@ declare class AlertComponent {
|
|
|
1745
1887
|
* Close click output
|
|
1746
1888
|
*/
|
|
1747
1889
|
readonly closeClick: _angular_core.OutputEmitterRef<void>;
|
|
1748
|
-
getAriaLive: _angular_core.Signal<"assertive" | "polite" | "off">;
|
|
1749
|
-
getAriaLabel: _angular_core.Signal<string>;
|
|
1750
1890
|
classes: _angular_core.Signal<{
|
|
1751
1891
|
[x: string]: boolean;
|
|
1752
1892
|
"tedi-alert": boolean;
|
|
@@ -1755,7 +1895,7 @@ declare class AlertComponent {
|
|
|
1755
1895
|
}>;
|
|
1756
1896
|
handleClose(): void;
|
|
1757
1897
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertComponent, never>;
|
|
1758
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "tedi-alert", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "titleElement": { "alias": "titleElement"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closeClick": "closeClick"; }, never, ["[tedi-alert-action]", "*"], true, never>;
|
|
1898
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "tedi-alert", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "closeAriaLabel": { "alias": "closeAriaLabel"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "titleElement": { "alias": "titleElement"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closeClick": "closeClick"; }, never, ["[tedi-alert-action]", "*"], true, never>;
|
|
1759
1899
|
}
|
|
1760
1900
|
|
|
1761
1901
|
declare const TOAST_DEFAULT_DURATION = 6000;
|
|
@@ -1790,15 +1930,16 @@ interface ToastConfig {
|
|
|
1790
1930
|
*/
|
|
1791
1931
|
showProgressBar?: boolean;
|
|
1792
1932
|
/**
|
|
1793
|
-
* Whether to pause the auto-close timer
|
|
1933
|
+
* Whether to pause the auto-close timer while the toast is hovered or
|
|
1934
|
+
* holds keyboard focus.
|
|
1794
1935
|
* @default true
|
|
1795
1936
|
*/
|
|
1796
1937
|
pauseOnHover?: boolean;
|
|
1797
1938
|
/**
|
|
1798
|
-
*
|
|
1799
|
-
* - 'status': For non-critical notifications.
|
|
1800
|
-
* - 'alert': For critical errors.
|
|
1801
|
-
* - 'none':
|
|
1939
|
+
* Politeness of the screen reader announcement.
|
|
1940
|
+
* - 'status': For non-critical notifications (announced politely).
|
|
1941
|
+
* - 'alert': For critical errors (announced immediately).
|
|
1942
|
+
* - 'none': No announcement.
|
|
1802
1943
|
* @default status
|
|
1803
1944
|
*/
|
|
1804
1945
|
role?: ToastRole;
|
|
@@ -1832,10 +1973,12 @@ declare class ToastComponent {
|
|
|
1832
1973
|
*/
|
|
1833
1974
|
readonly icon: _angular_core.InputSignal<string>;
|
|
1834
1975
|
/**
|
|
1835
|
-
*
|
|
1836
|
-
*
|
|
1837
|
-
*
|
|
1838
|
-
* - '
|
|
1976
|
+
* Politeness of the screen reader announcement made by `ToastService`.
|
|
1977
|
+
* The visible toast itself is never a live region — announcing from both it
|
|
1978
|
+
* and the announcer made screen readers read every toast two or three times.
|
|
1979
|
+
* - 'status': For non-critical notifications (announced politely).
|
|
1980
|
+
* - 'alert': For critical errors (announced immediately).
|
|
1981
|
+
* - 'none': No announcement.
|
|
1839
1982
|
* @default status
|
|
1840
1983
|
*/
|
|
1841
1984
|
readonly role: _angular_core.InputSignal<AlertRole>;
|
|
@@ -1858,13 +2001,25 @@ declare class ToastComponent {
|
|
|
1858
2001
|
* Emits when the toast is closed by the user.
|
|
1859
2002
|
*/
|
|
1860
2003
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
2004
|
+
private readonly translationService;
|
|
2005
|
+
protected readonly closeLabel: _angular_core.Signal<string>;
|
|
1861
2006
|
readonly mouseEnter: _angular_core.OutputEmitterRef<void>;
|
|
1862
2007
|
readonly mouseLeave: _angular_core.OutputEmitterRef<void>;
|
|
2008
|
+
/**
|
|
2009
|
+
* Emits when focus enters the toast, so the auto-close timer can be paused.
|
|
2010
|
+
*/
|
|
2011
|
+
readonly focusIn: _angular_core.OutputEmitterRef<void>;
|
|
2012
|
+
/**
|
|
2013
|
+
* Emits when focus leaves the toast entirely.
|
|
2014
|
+
*/
|
|
2015
|
+
readonly focusOut: _angular_core.OutputEmitterRef<void>;
|
|
1863
2016
|
handleClose(): void;
|
|
1864
2017
|
onMouseEnter(): void;
|
|
1865
2018
|
onMouseLeave(): void;
|
|
2019
|
+
onFocusIn(): void;
|
|
2020
|
+
onFocusOut(event: FocusEvent): void;
|
|
1866
2021
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
1867
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "tedi-toast", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "showProgressBar": { "alias": "showProgressBar"; "required": false; "isSignal": true; }; "paused": { "alias": "paused"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "mouseEnter": "mouseEnter"; "mouseLeave": "mouseLeave"; }, never, ["*"], true, never>;
|
|
2022
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "tedi-toast", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "showProgressBar": { "alias": "showProgressBar"; "required": false; "isSignal": true; }; "paused": { "alias": "paused"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "mouseEnter": "mouseEnter"; "mouseLeave": "mouseLeave"; "focusIn": "focusIn"; "focusOut": "focusOut"; }, never, ["*"], true, never>;
|
|
1868
2023
|
}
|
|
1869
2024
|
|
|
1870
2025
|
interface ToastItem {
|
|
@@ -2150,6 +2305,81 @@ declare class ClosingButtonComponent {
|
|
|
2150
2305
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClosingButtonComponent, "button[tedi-closing-button]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showTitle": { "alias": "showTitle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2151
2306
|
}
|
|
2152
2307
|
|
|
2308
|
+
type FloatingButtonVariant = "primary" | "secondary";
|
|
2309
|
+
type FloatingButtonSize = "default" | "large";
|
|
2310
|
+
type FloatingButtonAxis = "horizontal" | "vertical";
|
|
2311
|
+
type FloatingButtonPosition = "fixed" | "absolute" | "sticky" | "relative" | "static";
|
|
2312
|
+
type FloatingButtonPlacement = {
|
|
2313
|
+
vertical: "top" | "bottom" | "center";
|
|
2314
|
+
horizontal: "left" | "right" | "center";
|
|
2315
|
+
};
|
|
2316
|
+
type FloatingButtonOffset = {
|
|
2317
|
+
top?: number | string;
|
|
2318
|
+
bottom?: number | string;
|
|
2319
|
+
left?: number | string;
|
|
2320
|
+
right?: number | string;
|
|
2321
|
+
};
|
|
2322
|
+
declare class FloatingButtonComponent implements OnInit {
|
|
2323
|
+
private readonly baseButton;
|
|
2324
|
+
/**
|
|
2325
|
+
* The button's color variant.
|
|
2326
|
+
* @default primary
|
|
2327
|
+
*/
|
|
2328
|
+
readonly variant: _angular_core.InputSignal<FloatingButtonVariant>;
|
|
2329
|
+
/**
|
|
2330
|
+
* The button's size.
|
|
2331
|
+
* @default default
|
|
2332
|
+
*/
|
|
2333
|
+
readonly size: _angular_core.InputSignal<FloatingButtonSize>;
|
|
2334
|
+
/**
|
|
2335
|
+
* `vertical` rotates the button 90° counter-clockwise, with rounded left
|
|
2336
|
+
* corners and square right corners. Intended for desktop side placement;
|
|
2337
|
+
* on mobile prefer a horizontal button near the bottom, or an icon-only one.
|
|
2338
|
+
*
|
|
2339
|
+
* Rotation does not change the layout box. To align the visible button with
|
|
2340
|
+
* an edge, center it in a container that reserves its rotated width and height,
|
|
2341
|
+
* then position the container at that edge. See the Placement story.
|
|
2342
|
+
* @default horizontal
|
|
2343
|
+
*/
|
|
2344
|
+
readonly axis: _angular_core.InputSignal<FloatingButtonAxis>;
|
|
2345
|
+
/**
|
|
2346
|
+
* CSS positioning mode. Defaults to `fixed`; use `static` to keep the button
|
|
2347
|
+
* in normal document flow.
|
|
2348
|
+
* @default fixed
|
|
2349
|
+
*/
|
|
2350
|
+
readonly position: _angular_core.InputSignal<FloatingButtonPosition>;
|
|
2351
|
+
/**
|
|
2352
|
+
* Where to pin the button within its containing block. Applied as `top` / `bottom` /
|
|
2353
|
+
* `left` / `right`; `center` pins the midpoint on that axis. Has no effect when
|
|
2354
|
+
* `position` is `static`.
|
|
2355
|
+
*/
|
|
2356
|
+
readonly placement: _angular_core.InputSignal<FloatingButtonPlacement | undefined>;
|
|
2357
|
+
/**
|
|
2358
|
+
* Distance from the pinned edges, defaulting to `0`. Numbers are treated as pixels,
|
|
2359
|
+
* strings accept CSS lengths such as `1rem`. Only the edges named by `placement` apply.
|
|
2360
|
+
*/
|
|
2361
|
+
readonly offset: _angular_core.InputSignal<FloatingButtonOffset | undefined>;
|
|
2362
|
+
/**
|
|
2363
|
+
* Overrides the button's CSS `z-index`. Defaults to `--z-index-feedback` when omitted.
|
|
2364
|
+
*/
|
|
2365
|
+
readonly zIndex: _angular_core.InputSignal<number | undefined>;
|
|
2366
|
+
readonly classes: _angular_core.Signal<string>;
|
|
2367
|
+
/**
|
|
2368
|
+
* Uses the separate `translate` property for centering, while the vertical
|
|
2369
|
+
* orientation is handled by `rotate`.
|
|
2370
|
+
*/
|
|
2371
|
+
protected readonly placementStyles: _angular_core.Signal<{
|
|
2372
|
+
top: string | null;
|
|
2373
|
+
bottom: string | null;
|
|
2374
|
+
left: string | null;
|
|
2375
|
+
right: string | null;
|
|
2376
|
+
translate: string | null;
|
|
2377
|
+
}>;
|
|
2378
|
+
ngOnInit(): void;
|
|
2379
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingButtonComponent, never>;
|
|
2380
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingButtonComponent, "[tedi-floating-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "axis": { "alias": "axis"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof BaseButtonDirective; inputs: {}; outputs: {}; }]>;
|
|
2381
|
+
}
|
|
2382
|
+
|
|
2153
2383
|
/**
|
|
2154
2384
|
* A single item inside a `tedi-accordion`. Owns the item's state (expanded)
|
|
2155
2385
|
* and the inputs shared by header and content (selected, showIconCard,
|
|
@@ -2336,7 +2566,7 @@ declare class AccordionItemHeaderComponent {
|
|
|
2336
2566
|
* `display: contents` so it doesn't affect the visual layout — it only adds
|
|
2337
2567
|
* semantic information for assistive technologies and TOC tools.
|
|
2338
2568
|
*/
|
|
2339
|
-
headingLevel: _angular_core.InputSignal<1 |
|
|
2569
|
+
headingLevel: _angular_core.InputSignal<1 | 2 | 3 | 4 | 5 | 6 | undefined>;
|
|
2340
2570
|
/**
|
|
2341
2571
|
* Chevron style of the default expand action.
|
|
2342
2572
|
* Only effective when `headerClickable` is `false` (otherwise the
|
|
@@ -2618,6 +2848,53 @@ declare class CardHeaderComponent extends CardContentComponent {
|
|
|
2618
2848
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardHeaderComponent, "tedi-card-header", never, {}, {}, never, ["*"], true, never>;
|
|
2619
2849
|
}
|
|
2620
2850
|
|
|
2851
|
+
declare class HeadingWithIconComponent {
|
|
2852
|
+
/**
|
|
2853
|
+
* Name of the Material Icon
|
|
2854
|
+
* https://fonts.google.com/icons
|
|
2855
|
+
*
|
|
2856
|
+
* Rendered as decorative and hidden from assistive technology — the
|
|
2857
|
+
* projected text is the accessible heading name.
|
|
2858
|
+
*/
|
|
2859
|
+
icon: _angular_core.InputSignal<string>;
|
|
2860
|
+
/**
|
|
2861
|
+
* Semantic heading tag. Also sets the typography unless a heading modifier
|
|
2862
|
+
* overrides it, so pick the tag that fits the surrounding document outline.
|
|
2863
|
+
* @default h4
|
|
2864
|
+
*/
|
|
2865
|
+
element: _angular_core.InputSignal<"h1" | "h2" | "h3" | "h4" | "h5" | "h6">;
|
|
2866
|
+
/**
|
|
2867
|
+
* Single or multiple modifiers to change the heading behavior. A heading
|
|
2868
|
+
* modifier here styles the heading as that level while `element` keeps the
|
|
2869
|
+
* semantics — e.g. an `h2` that looks like an `h4`.
|
|
2870
|
+
*/
|
|
2871
|
+
modifiers: _angular_core.InputSignal<TextModifiers | TextModifiers[] | undefined>;
|
|
2872
|
+
/**
|
|
2873
|
+
* Heading text color.
|
|
2874
|
+
* @default primary
|
|
2875
|
+
*/
|
|
2876
|
+
headingColor: _angular_core.InputSignal<TextColor>;
|
|
2877
|
+
/**
|
|
2878
|
+
* Color of the icon.
|
|
2879
|
+
* @default primary
|
|
2880
|
+
*/
|
|
2881
|
+
iconColor: _angular_core.InputSignal<IconColor>;
|
|
2882
|
+
/**
|
|
2883
|
+
* Size of the icon in pixels.
|
|
2884
|
+
* @default 24
|
|
2885
|
+
*/
|
|
2886
|
+
iconSize: _angular_core.InputSignal<IconSize>;
|
|
2887
|
+
/**
|
|
2888
|
+
* Whether the icon should be filled or outlined.
|
|
2889
|
+
* @default outlined
|
|
2890
|
+
*/
|
|
2891
|
+
iconVariant: _angular_core.InputSignal<IconVariant>;
|
|
2892
|
+
private readonly visualLevel;
|
|
2893
|
+
lineHeightVar: _angular_core.Signal<string>;
|
|
2894
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeadingWithIconComponent, never>;
|
|
2895
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeadingWithIconComponent, "tedi-heading-with-icon", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "element": { "alias": "element"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; "headingColor": { "alias": "headingColor"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconVariant": { "alias": "iconVariant"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2621
2898
|
type BulletColor = "primary" | "secondary" | "tertiary" | "brand" | "brand-dark" | "success" | "warning" | "warning-dark" | "danger" | "white";
|
|
2622
2899
|
declare class ListComponent {
|
|
2623
2900
|
/**
|
|
@@ -3711,7 +3988,7 @@ declare class PaginationComponent {
|
|
|
3711
3988
|
protected readonly statusText: _angular_core.Signal<string>;
|
|
3712
3989
|
constructor();
|
|
3713
3990
|
protected handlePageChange(nextPage: number | null): void;
|
|
3714
|
-
protected handlePageSizeChange(value:
|
|
3991
|
+
protected handlePageSizeChange(value: unknown): void;
|
|
3715
3992
|
protected openMobilePicker(): void;
|
|
3716
3993
|
protected openPageSizePicker(): void;
|
|
3717
3994
|
private openPickerModal;
|
|
@@ -4937,10 +5214,57 @@ declare class TediTableHeaderButtonComponent {
|
|
|
4937
5214
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TediTableHeaderButtonComponent, "button[tedi-table-header-button]", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "filled": { "alias": "filled"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4938
5215
|
}
|
|
4939
5216
|
|
|
4940
|
-
|
|
5217
|
+
declare class TruncateComponent {
|
|
5218
|
+
/**
|
|
5219
|
+
* Text to display and truncate when it exceeds `maxLength`.
|
|
5220
|
+
*/
|
|
5221
|
+
readonly text: _angular_core.InputSignal<string>;
|
|
5222
|
+
/**
|
|
5223
|
+
* Maximum characters shown while collapsed, excluding the ellipsis.
|
|
5224
|
+
* Accepts a number or a breakpoint object, e.g. `{ xs: 100, md: 200 }`.
|
|
5225
|
+
* @default 200
|
|
5226
|
+
*/
|
|
5227
|
+
readonly maxLength: _angular_core.InputSignalWithTransform<BreakpointObject<number>, BreakpointInput<number>>;
|
|
5228
|
+
/**
|
|
5229
|
+
* Text appended when content is truncated.
|
|
5230
|
+
* @default "..."
|
|
5231
|
+
*/
|
|
5232
|
+
readonly ellipsis: _angular_core.InputSignal<string>;
|
|
5233
|
+
/**
|
|
5234
|
+
* Shows an expand/collapse button when the text exceeds `maxLength`.
|
|
5235
|
+
* When false, `expanded` can still be controlled programmatically.
|
|
5236
|
+
* @default true
|
|
5237
|
+
*/
|
|
5238
|
+
readonly expandable: _angular_core.InputSignal<boolean>;
|
|
5239
|
+
/**
|
|
5240
|
+
* Whether to show the full text. Supports two-way binding with `[(expanded)]`.
|
|
5241
|
+
* @default false
|
|
5242
|
+
*/
|
|
5243
|
+
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
5244
|
+
private readonly breakpointService;
|
|
5245
|
+
protected readonly textId: string;
|
|
5246
|
+
protected readonly resolvedMaxLength: _angular_core.Signal<number>;
|
|
5247
|
+
private readonly characters;
|
|
5248
|
+
protected readonly exceedsMaxLength: _angular_core.Signal<boolean>;
|
|
5249
|
+
protected readonly isTruncated: _angular_core.Signal<boolean>;
|
|
5250
|
+
protected readonly showToggle: _angular_core.Signal<boolean>;
|
|
5251
|
+
protected readonly displayText: _angular_core.Signal<string>;
|
|
5252
|
+
protected toggle(): void;
|
|
5253
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TruncateComponent, never>;
|
|
5254
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TruncateComponent, "tedi-truncate", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, never, true, never>;
|
|
5255
|
+
}
|
|
5256
|
+
|
|
5257
|
+
type DropdownTriggerAriaHasPopup = "menu" | "listbox" | "dialog" | "true" | "false";
|
|
4941
5258
|
declare class DropdownTriggerDirective implements AfterViewInit {
|
|
4942
|
-
/**
|
|
4943
|
-
|
|
5259
|
+
/**
|
|
5260
|
+
* The `aria-haspopup` value for the trigger, telling assistive technology
|
|
5261
|
+
* what kind of popup it opens.
|
|
5262
|
+
*
|
|
5263
|
+
* Defaults to the content's `dropdownRole`: `menu` for a menu, `listbox` for
|
|
5264
|
+
* a listbox, and no attribute for a plain `list`, which ARIA has no
|
|
5265
|
+
* `aria-haspopup` token for. `false` also omits the attribute.
|
|
5266
|
+
*/
|
|
5267
|
+
readonly ariaHaspopup: _angular_core.InputSignal<DropdownTriggerAriaHasPopup | undefined>;
|
|
4944
5268
|
readonly host: ElementRef<HTMLElement>;
|
|
4945
5269
|
readonly dropdown: DropdownComponent;
|
|
4946
5270
|
readonly overlayOrigin: CdkOverlayOrigin;
|
|
@@ -4953,6 +5277,7 @@ declare class DropdownTriggerDirective implements AfterViewInit {
|
|
|
4953
5277
|
* would both be tab stops, and the ARIA state would land on the wrong element.
|
|
4954
5278
|
*/
|
|
4955
5279
|
private readonly triggerElement;
|
|
5280
|
+
private readonly hasPopup;
|
|
4956
5281
|
constructor();
|
|
4957
5282
|
ngAfterViewInit(): void;
|
|
4958
5283
|
focus(): void;
|
|
@@ -4961,6 +5286,7 @@ declare class DropdownTriggerDirective implements AfterViewInit {
|
|
|
4961
5286
|
get focusableElement(): HTMLElement;
|
|
4962
5287
|
onClick(): void;
|
|
4963
5288
|
onKeydown(event: KeyboardEvent): void;
|
|
5289
|
+
private isWidgetContent;
|
|
4964
5290
|
private resolveTriggerElement;
|
|
4965
5291
|
private isNativelyFocusable;
|
|
4966
5292
|
private openAndFocusFirst;
|
|
@@ -4969,6 +5295,18 @@ declare class DropdownTriggerDirective implements AfterViewInit {
|
|
|
4969
5295
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DropdownTriggerDirective, "[tedi-dropdown-trigger]", never, { "ariaHaspopup": { "alias": "ariaHaspopup"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _angular_cdk_overlay.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
|
|
4970
5296
|
}
|
|
4971
5297
|
|
|
5298
|
+
/**
|
|
5299
|
+
* How the dropdown panel is exposed to assistive technology.
|
|
5300
|
+
*
|
|
5301
|
+
* - `menu`: a menu of actions. Composite widget, so it is a single tab stop
|
|
5302
|
+
* with arrow-key navigation and its items are `menuitem`s.
|
|
5303
|
+
* - `listbox`: a list of options, one of which can be selected. Composite
|
|
5304
|
+
* widget, like `menu`, and its items are `option`s.
|
|
5305
|
+
* - `list`: a plain list, not a widget. Items keep their own semantics, so
|
|
5306
|
+
* navigation links stay links and each is its own tab stop. Use this
|
|
5307
|
+
* whenever the panel is a set of links.
|
|
5308
|
+
*/
|
|
5309
|
+
type DropdownRole = "menu" | "listbox" | "list";
|
|
4972
5310
|
interface DropdownApi {
|
|
4973
5311
|
/** Current value of the dropdown. Used to track the selected option in listbox mode. */
|
|
4974
5312
|
value: WritableSignal<string | undefined>;
|
|
@@ -4998,7 +5336,9 @@ interface DropdownApi {
|
|
|
4998
5336
|
declare const DROPDOWN_API: InjectionToken<DropdownApi>;
|
|
4999
5337
|
interface DropdownContentApi {
|
|
5000
5338
|
/** The ARIA role of the dropdown content. Determines keyboard interaction and accessibility semantics. */
|
|
5001
|
-
dropdownRole: Signal<
|
|
5339
|
+
dropdownRole: Signal<DropdownRole>;
|
|
5340
|
+
/** Whether the content is a composite widget (`menu`, `listbox`) rather than a plain `list`. Widgets own focus management and key handling; a plain list leaves both to the items' own controls. */
|
|
5341
|
+
isWidget: Signal<boolean>;
|
|
5002
5342
|
}
|
|
5003
5343
|
declare const DROPDOWN_CONTENT_API: InjectionToken<DropdownContentApi>;
|
|
5004
5344
|
|
|
@@ -5050,6 +5390,20 @@ declare class DropdownItemComponent {
|
|
|
5050
5390
|
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
5051
5391
|
/** Is item disabled? */
|
|
5052
5392
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5393
|
+
/**
|
|
5394
|
+
* Whether the projected content is itself the interactive control, e.g. a
|
|
5395
|
+
* button. In a `menu` or `listbox` the item role and the roving tabindex then
|
|
5396
|
+
* move onto that element instead of the host `li`, so assistive technology
|
|
5397
|
+
* reports one control per item and the control keeps its own activation
|
|
5398
|
+
* behaviour.
|
|
5399
|
+
*
|
|
5400
|
+
* A widget role replaces the control's own role, so a projected link stops
|
|
5401
|
+
* being announced as a link. For navigation links use
|
|
5402
|
+
* `dropdownRole="list"` instead, where this input is not needed: a plain list
|
|
5403
|
+
* adds no roles, and the links stay links and stay in the tab order.
|
|
5404
|
+
* @default false
|
|
5405
|
+
*/
|
|
5406
|
+
readonly interactiveContent: _angular_core.InputSignal<boolean>;
|
|
5053
5407
|
/**
|
|
5054
5408
|
* Whether the item's label clips overflowing content (for text ellipsis).
|
|
5055
5409
|
* Set `false` when projecting content with decorations that intentionally
|
|
@@ -5075,20 +5429,58 @@ declare class DropdownItemComponent {
|
|
|
5075
5429
|
readonly dropdownContent: DropdownContentApi;
|
|
5076
5430
|
/** Check if custom dropdown-item-value is provided */
|
|
5077
5431
|
readonly customItemValue: _angular_core.Signal<DropdownItemValueComponent | undefined>;
|
|
5432
|
+
private readonly renderer;
|
|
5433
|
+
private readonly destroyRef;
|
|
5434
|
+
private control;
|
|
5435
|
+
constructor();
|
|
5436
|
+
/** The widget role for this item, or `null` in a plain `list`. */
|
|
5437
|
+
itemRole(): "menuitem" | "option" | null;
|
|
5438
|
+
hostRole(): "option" | "menuitem" | "none" | null;
|
|
5439
|
+
hostAriaSelected(): boolean | null;
|
|
5440
|
+
hostAriaDisabled(): "true" | null;
|
|
5441
|
+
hostTabindex(): "-1" | null;
|
|
5442
|
+
/**
|
|
5443
|
+
* Whether the item's ARIA state and focus belong on the projected control
|
|
5444
|
+
* rather than the host `li`. Always true in a plain `list`, where the
|
|
5445
|
+
* projected control is what the item is.
|
|
5446
|
+
*/
|
|
5447
|
+
private controlOwnsSemantics;
|
|
5078
5448
|
isSelected(): boolean;
|
|
5449
|
+
/**
|
|
5450
|
+
* The element that carries the item's role, roving tabindex and focus: the
|
|
5451
|
+
* projected control when it owns the item's semantics, the host `li`
|
|
5452
|
+
* otherwise.
|
|
5453
|
+
*/
|
|
5454
|
+
focusTarget(): HTMLElement;
|
|
5079
5455
|
focus(): void;
|
|
5456
|
+
setTabindex(value: string | null): void;
|
|
5457
|
+
private controlElement;
|
|
5080
5458
|
onClick(): void;
|
|
5081
5459
|
onMousedown(event: MouseEvent): void;
|
|
5082
5460
|
onKeydown(event: KeyboardEvent): void;
|
|
5461
|
+
/** Returns whether the key was an activation key and has been dealt with. */
|
|
5462
|
+
private handleActivationKey;
|
|
5083
5463
|
private onItemSelect;
|
|
5084
5464
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownItemComponent, never>;
|
|
5085
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItemComponent, "li[tedi-dropdown-item]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clipContent": { "alias": "clipContent"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, ["customItemValue"], ["tedi-dropdown-item-value", "*"], true, never>;
|
|
5465
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItemComponent, "li[tedi-dropdown-item]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "interactiveContent": { "alias": "interactiveContent"; "required": false; "isSignal": true; }; "clipContent": { "alias": "clipContent"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, ["customItemValue"], ["tedi-dropdown-item-value", "*"], true, never>;
|
|
5086
5466
|
}
|
|
5087
5467
|
|
|
5088
|
-
type DropdownRole = "menu" | "listbox";
|
|
5089
5468
|
declare class DropdownContentComponent {
|
|
5090
5469
|
/**
|
|
5091
|
-
*
|
|
5470
|
+
* How the panel is exposed to assistive technology: `menu` for actions,
|
|
5471
|
+
* `listbox` for selectable options, `list` for a plain list of links.
|
|
5472
|
+
*
|
|
5473
|
+
* `menu` and `listbox` are composite widgets, so the panel is a single tab
|
|
5474
|
+
* stop with arrow-key navigation and the items carry `menuitem` / `option`.
|
|
5475
|
+
* `list` is not a widget: it adds no item roles and no key handling, so
|
|
5476
|
+
* projected links keep the link role and each one is its own tab stop. A
|
|
5477
|
+
* panel of navigation links belongs in `list`, because a widget role would
|
|
5478
|
+
* replace the link role and screen readers would stop announcing them as
|
|
5479
|
+
* links. The `role="list"` it puts on the `ul` is redundant on paper but not
|
|
5480
|
+
* in Safari, which drops list semantics from a list with no marker. A `list`
|
|
5481
|
+
* panel also renders in the dropdown's own place in the DOM rather than at the
|
|
5482
|
+
* end of `<body>`, so it keeps its place in reading order for the screen
|
|
5483
|
+
* readers that navigate by DOM order instead of by `Tab`.
|
|
5092
5484
|
* @default menu
|
|
5093
5485
|
*/
|
|
5094
5486
|
readonly dropdownRole: _angular_core.InputSignal<DropdownRole>;
|
|
@@ -5096,6 +5488,7 @@ declare class DropdownContentComponent {
|
|
|
5096
5488
|
private readonly dropdownApi;
|
|
5097
5489
|
readonly containerId: _angular_core.Signal<string>;
|
|
5098
5490
|
readonly items: _angular_core.Signal<readonly DropdownItemComponent[]>;
|
|
5491
|
+
readonly isWidget: _angular_core.Signal<boolean>;
|
|
5099
5492
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownContentComponent, never>;
|
|
5100
5493
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownContentComponent, "tedi-dropdown-content", never, { "dropdownRole": { "alias": "dropdownRole"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*", "li[tedi-dropdown-item]"], true, never>;
|
|
5101
5494
|
}
|
|
@@ -5145,6 +5538,7 @@ declare class DropdownComponent implements OnDestroy {
|
|
|
5145
5538
|
private readonly platformId;
|
|
5146
5539
|
private readonly document;
|
|
5147
5540
|
private readonly renderer;
|
|
5541
|
+
private readonly overlayContainer;
|
|
5148
5542
|
private scrollListener?;
|
|
5149
5543
|
private skipNextGestureOutsideClick;
|
|
5150
5544
|
constructor();
|
|
@@ -5155,6 +5549,12 @@ declare class DropdownComponent implements OnDestroy {
|
|
|
5155
5549
|
onOutsideClick(event?: MouseEvent): void;
|
|
5156
5550
|
handleFocusOut: (event: FocusEvent) => void;
|
|
5157
5551
|
tabOutOfDropdown(shiftKey: boolean): void;
|
|
5552
|
+
/**
|
|
5553
|
+
* Focuses `target` and only then tears the panel down, so focus is never on a
|
|
5554
|
+
* detached element. `handleFocusOut` already closes on the resulting
|
|
5555
|
+
* `focusin`; the explicit call covers a target that refuses focus.
|
|
5556
|
+
*/
|
|
5557
|
+
private moveFocusOut;
|
|
5158
5558
|
focusFirstItem(): void;
|
|
5159
5559
|
focusLastItem(): void;
|
|
5160
5560
|
setActiveToSelectedOrFirst(): void;
|
|
@@ -5162,6 +5562,11 @@ declare class DropdownComponent implements OnDestroy {
|
|
|
5162
5562
|
focusNextItem(fromEl: HTMLLIElement): void;
|
|
5163
5563
|
focusPrevItem(fromEl: HTMLLIElement): void;
|
|
5164
5564
|
updateTabindexes(): void;
|
|
5565
|
+
/** Moves focus to the first focusable element in the panel. */
|
|
5566
|
+
focusPanelStart(): void;
|
|
5567
|
+
onPanelKeydown(event: KeyboardEvent): void;
|
|
5568
|
+
private panelFocusables;
|
|
5569
|
+
private closeAndFocusTrigger;
|
|
5165
5570
|
private setupScrollListener;
|
|
5166
5571
|
private cleanupScrollListener;
|
|
5167
5572
|
private findIndexByElement;
|
|
@@ -5715,6 +6120,13 @@ interface DateInputTag {
|
|
|
5715
6120
|
}
|
|
5716
6121
|
declare class DateInputComponent implements AfterViewChecked {
|
|
5717
6122
|
readonly inputId: _angular_core.InputSignal<string>;
|
|
6123
|
+
/** `name` attribute of the text input; omitted from the DOM when not set. */
|
|
6124
|
+
readonly name: _angular_core.InputSignal<string | undefined>;
|
|
6125
|
+
/**
|
|
6126
|
+
* `aria-describedby` ids for the input. Handed to the `tedi-text-field`
|
|
6127
|
+
* directive, which owns the input's `aria-describedby` attribute.
|
|
6128
|
+
*/
|
|
6129
|
+
readonly ariaDescribedby: _angular_core.InputSignal<string | null>;
|
|
5718
6130
|
readonly value: _angular_core.InputSignal<string>;
|
|
5719
6131
|
readonly tags: _angular_core.InputSignal<readonly DateInputTag[]>;
|
|
5720
6132
|
readonly mode: _angular_core.InputSignal<DateFieldMode>;
|
|
@@ -5746,6 +6158,7 @@ declare class DateInputComponent implements AfterViewChecked {
|
|
|
5746
6158
|
private readonly inputElement;
|
|
5747
6159
|
private readonly fieldElement;
|
|
5748
6160
|
private readonly tagElements;
|
|
6161
|
+
private readonly textField;
|
|
5749
6162
|
/** Number of tags that fit on a single row; `null` until measured. */
|
|
5750
6163
|
readonly visibleTagsCount: _angular_core.WritableSignal<number | null>;
|
|
5751
6164
|
constructor();
|
|
@@ -5768,7 +6181,7 @@ declare class DateInputComponent implements AfterViewChecked {
|
|
|
5768
6181
|
private calculateVisibleTags;
|
|
5769
6182
|
private getAvailableTagWidth;
|
|
5770
6183
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateInputComponent, never>;
|
|
5771
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateInputComponent, "tedi-date-input", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "iconActive": { "alias": "iconActive"; "required": false; "isSignal": true; }; "iconDisabled": { "alias": "iconDisabled"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "nativeIsoValue": { "alias": "nativeIsoValue"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "inputChange": "inputChange"; "iconClick": "iconClick"; "tagRemove": "tagRemove"; "clear": "clear"; }, never, never, true, never>;
|
|
6184
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateInputComponent, "tedi-date-input", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "iconActive": { "alias": "iconActive"; "required": false; "isSignal": true; }; "iconDisabled": { "alias": "iconDisabled"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "nativeIsoValue": { "alias": "nativeIsoValue"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "inputChange": "inputChange"; "iconClick": "iconClick"; "tagRemove": "tagRemove"; "clear": "clear"; }, never, never, true, never>;
|
|
5772
6185
|
}
|
|
5773
6186
|
|
|
5774
6187
|
/**
|
|
@@ -5794,6 +6207,12 @@ interface FormFieldControl<T = unknown> {
|
|
|
5794
6207
|
dirty?: Signal<boolean>;
|
|
5795
6208
|
required?: Signal<boolean>;
|
|
5796
6209
|
maxLength?: Signal<number | undefined>;
|
|
6210
|
+
/**
|
|
6211
|
+
* Number of characters `tedi-form-field`'s counter should report. Implemented
|
|
6212
|
+
* by controls whose value is not the text the user sees — a rich text editor
|
|
6213
|
+
* holding markup, say. Falls back to the length of `value`.
|
|
6214
|
+
*/
|
|
6215
|
+
characterCount?: Signal<number>;
|
|
5797
6216
|
/**
|
|
5798
6217
|
* Clears the value. Implemented by controls that can be cleared, and called
|
|
5799
6218
|
* by `tedi-form-field`'s clear button.
|
|
@@ -5851,6 +6270,11 @@ declare class DateFieldComponent implements OnInit, ControlValueAccessor, FormFi
|
|
|
5851
6270
|
* `<label tedi-label [for]>` to the same value.
|
|
5852
6271
|
*/
|
|
5853
6272
|
readonly inputId: _angular_core.InputSignal<string>;
|
|
6273
|
+
/**
|
|
6274
|
+
* `name` attribute of the underlying text input, used by native form
|
|
6275
|
+
* submission. Omitted from the DOM when not set.
|
|
6276
|
+
*/
|
|
6277
|
+
readonly name: _angular_core.InputSignal<string | undefined>;
|
|
5854
6278
|
/**
|
|
5855
6279
|
* The selected value (two-way / `ControlValueAccessor`). Shape follows `mode`:
|
|
5856
6280
|
* `single` → `Date | null`, `multiple` → `Date[]`, `range` → `{ from, to }`.
|
|
@@ -6044,7 +6468,17 @@ declare class DateFieldComponent implements OnInit, ControlValueAccessor, FormFi
|
|
|
6044
6468
|
readonly overlayOpen: _angular_core.WritableSignal<boolean>;
|
|
6045
6469
|
private readonly openedBy;
|
|
6046
6470
|
readonly overlayPositions: _angular_core.Signal<ConnectedPosition[]>;
|
|
6471
|
+
/**
|
|
6472
|
+
* `aria-describedby` ids for the inner input — the wrapping form-field's
|
|
6473
|
+
* feedback text, plus any set on `<tedi-date-field>` itself.
|
|
6474
|
+
*/
|
|
6475
|
+
readonly describedBy: _tedi_design_system_angular_tedi.ControlDescribedBy;
|
|
6047
6476
|
private readonly cvaDisabled;
|
|
6477
|
+
/**
|
|
6478
|
+
* Uncommitted input text, tracked separately so resets clear it even when
|
|
6479
|
+
* `value` is unchanged. Value changes discard it; `null` shows the formatted value.
|
|
6480
|
+
*/
|
|
6481
|
+
private readonly typedText;
|
|
6048
6482
|
private modalRef;
|
|
6049
6483
|
private scrollListener?;
|
|
6050
6484
|
private onChange;
|
|
@@ -6073,6 +6507,11 @@ declare class DateFieldComponent implements OnInit, ControlValueAccessor, FormFi
|
|
|
6073
6507
|
readonly nativeIsoValue: _angular_core.Signal<string>;
|
|
6074
6508
|
readonly effectivePlaceholder: _angular_core.Signal<string>;
|
|
6075
6509
|
readonly displayValue: _angular_core.Signal<string>;
|
|
6510
|
+
/**
|
|
6511
|
+
* What the text input actually shows: uncommitted typed text when there is
|
|
6512
|
+
* any, otherwise the formatted `value`.
|
|
6513
|
+
*/
|
|
6514
|
+
readonly inputText: _angular_core.Signal<string>;
|
|
6076
6515
|
readonly tagsForMultipleMode: _angular_core.Signal<DateInputTag[]>;
|
|
6077
6516
|
readonly canClear: _angular_core.Signal<boolean>;
|
|
6078
6517
|
readonly inputIsTrigger: _angular_core.Signal<boolean>;
|
|
@@ -6082,6 +6521,7 @@ declare class DateFieldComponent implements OnInit, ControlValueAccessor, FormFi
|
|
|
6082
6521
|
registerOnChange(fn: (value: DateFieldValue) => void): void;
|
|
6083
6522
|
registerOnTouched(fn: () => void): void;
|
|
6084
6523
|
setDisabledState(isDisabled: boolean): void;
|
|
6524
|
+
setDescribedBy(ids: string[]): void;
|
|
6085
6525
|
focus(): void;
|
|
6086
6526
|
reset(): void;
|
|
6087
6527
|
handleClear(): void;
|
|
@@ -6121,7 +6561,7 @@ declare class DateFieldComponent implements OnInit, ControlValueAccessor, FormFi
|
|
|
6121
6561
|
private toIsoDate;
|
|
6122
6562
|
private queryNativeInput;
|
|
6123
6563
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateFieldComponent, never>;
|
|
6124
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateFieldComponent, "tedi-date-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalidInput": { "alias": "invalid"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disablePast": { "alias": "disablePast"; "required": false; "isSignal": true; }; "disableFuture": { "alias": "disableFuture"; "required": false; "isSignal": true; }; "shouldDisableMonth": { "alias": "shouldDisableMonth"; "required": false; "isSignal": true; }; "shouldDisableYear": { "alias": "shouldDisableYear"; "required": false; "isSignal": true; }; "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "initialMonth": { "alias": "initialMonth"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "enableCalendar": { "alias": "enableCalendar"; "required": false; "isSignal": true; }; "calendarTrigger": { "alias": "calendarTrigger"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "openChange": "openChange"; }, never, ["[tediCalendarFooter]"], true, never>;
|
|
6564
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateFieldComponent, "tedi-date-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalidInput": { "alias": "invalid"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disablePast": { "alias": "disablePast"; "required": false; "isSignal": true; }; "disableFuture": { "alias": "disableFuture"; "required": false; "isSignal": true; }; "shouldDisableMonth": { "alias": "shouldDisableMonth"; "required": false; "isSignal": true; }; "shouldDisableYear": { "alias": "shouldDisableYear"; "required": false; "isSignal": true; }; "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "initialMonth": { "alias": "initialMonth"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "enableCalendar": { "alias": "enableCalendar"; "required": false; "isSignal": true; }; "calendarTrigger": { "alias": "calendarTrigger"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "openChange": "openChange"; }, never, ["[tediCalendarFooter]"], true, never>;
|
|
6125
6565
|
}
|
|
6126
6566
|
|
|
6127
6567
|
declare class DatePickerCalendarGridComponent {
|
|
@@ -6335,7 +6775,7 @@ declare class FeedbackTextComponent {
|
|
|
6335
6775
|
*/
|
|
6336
6776
|
position: _angular_core.InputSignal<FeedbackTextPosition>;
|
|
6337
6777
|
role: _angular_core.Signal<"alert" | undefined>;
|
|
6338
|
-
ariaLive: _angular_core.Signal<"
|
|
6778
|
+
ariaLive: _angular_core.Signal<"polite" | "assertive">;
|
|
6339
6779
|
classes: _angular_core.Signal<string>;
|
|
6340
6780
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FeedbackTextComponent, never>;
|
|
6341
6781
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FeedbackTextComponent, "tedi-feedback-text", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -6556,7 +6996,78 @@ declare class FormFieldComponent implements FieldContext {
|
|
|
6556
6996
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "tedi-form-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "characterLimit": { "alias": "characterLimit"; "required": false; "isSignal": true; }; }, {}, ["control", "feedback"], ["label[tedi-label], tedi-label-row", "*", "tedi-feedback-text", "[tediFormFieldExtra]"], true, never>;
|
|
6557
6997
|
}
|
|
6558
6998
|
|
|
6999
|
+
/**
|
|
7000
|
+
* Context passed to a custom suggestion row template.
|
|
7001
|
+
*/
|
|
7002
|
+
interface SearchSuggestionContext<T = unknown> {
|
|
7003
|
+
/** The suggestion, so `let-item` works without naming a context key. */
|
|
7004
|
+
$implicit: T;
|
|
7005
|
+
/** The same suggestion under a name, for `let-item="item"`. */
|
|
7006
|
+
item: T;
|
|
7007
|
+
/** Position in the rendered list, matching the row's `aria-activedescendant` id. */
|
|
7008
|
+
index: number;
|
|
7009
|
+
/** Resolved display label, via `bindLabel`. */
|
|
7010
|
+
label: string;
|
|
7011
|
+
/** Resolved secondary line, via `bindDescription`. Empty when unbound. */
|
|
7012
|
+
description: string;
|
|
7013
|
+
/** Whether the row is unselectable, via `bindDisabled`. */
|
|
7014
|
+
disabled: boolean;
|
|
7015
|
+
/** Current trimmed field value, for custom match highlighting. */
|
|
7016
|
+
query: string;
|
|
7017
|
+
}
|
|
7018
|
+
/**
|
|
7019
|
+
* Renders each suggestion row. Without it, rows show the resolved label with the
|
|
7020
|
+
* matched substring bolded.
|
|
7021
|
+
*
|
|
7022
|
+
* @example
|
|
7023
|
+
* ```html
|
|
7024
|
+
* <tedi-search [suggestions]="people" bindLabel="name">
|
|
7025
|
+
* <ng-template tediSearchSuggestion let-item>
|
|
7026
|
+
* <span tedi-text modifiers="bold">{{ item.name }}</span>
|
|
7027
|
+
* <span tedi-text color="tertiary">{{ item.code }}</span>
|
|
7028
|
+
* </ng-template>
|
|
7029
|
+
* </tedi-search>
|
|
7030
|
+
* ```
|
|
7031
|
+
*/
|
|
7032
|
+
declare class SearchSuggestionTemplateDirective<T = unknown> {
|
|
7033
|
+
template: TemplateRef<SearchSuggestionContext<T>>;
|
|
7034
|
+
static ngTemplateContextGuard<T>(_dir: SearchSuggestionTemplateDirective<T>, _ctx: unknown): _ctx is SearchSuggestionContext<T>;
|
|
7035
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchSuggestionTemplateDirective<any>, never>;
|
|
7036
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SearchSuggestionTemplateDirective<any>, "[tediSearchSuggestion]", never, {}, {}, never, never, true, never>;
|
|
7037
|
+
}
|
|
7038
|
+
/**
|
|
7039
|
+
* Extra content pinned below the suggestions — fallback actions and a hint, for
|
|
7040
|
+
* example. It shows whenever the panel is open, including the no-results state,
|
|
7041
|
+
* which is what makes it useful for "nothing matched, try this instead".
|
|
7042
|
+
*
|
|
7043
|
+
* Suggestions keep behaving exactly as they do without it: filtering, arrow-key
|
|
7044
|
+
* navigation and Enter to select are unchanged. Tab moves from the field into the
|
|
7045
|
+
* footer's controls.
|
|
7046
|
+
*
|
|
7047
|
+
* @example
|
|
7048
|
+
* ```html
|
|
7049
|
+
* <tedi-search [suggestions]="matches()">
|
|
7050
|
+
* <ng-template tediSearchFooter>
|
|
7051
|
+
* <tedi-search-footer-actions>
|
|
7052
|
+
* <button tedi-button variant="secondary">Isik teadmata</button>
|
|
7053
|
+
* </tedi-search-footer-actions>
|
|
7054
|
+
* </ng-template>
|
|
7055
|
+
* </tedi-search>
|
|
7056
|
+
* ```
|
|
7057
|
+
*/
|
|
7058
|
+
declare class SearchFooterTemplateDirective {
|
|
7059
|
+
template: TemplateRef<unknown>;
|
|
7060
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchFooterTemplateDirective, never>;
|
|
7061
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SearchFooterTemplateDirective, "[tediSearchFooter]", never, {}, {}, never, never, true, never>;
|
|
7062
|
+
}
|
|
7063
|
+
|
|
6559
7064
|
type SearchSize = InputSize;
|
|
7065
|
+
interface SearchSuggestionView<T = unknown> {
|
|
7066
|
+
item: T;
|
|
7067
|
+
label: string;
|
|
7068
|
+
description: string;
|
|
7069
|
+
disabled: boolean;
|
|
7070
|
+
}
|
|
6560
7071
|
interface SearchButton {
|
|
6561
7072
|
/**
|
|
6562
7073
|
* Visible button text. When omitted, the button is rendered icon-only.
|
|
@@ -6578,7 +7089,7 @@ interface SearchButton {
|
|
|
6578
7089
|
*/
|
|
6579
7090
|
ariaLabel?: string;
|
|
6580
7091
|
}
|
|
6581
|
-
declare class SearchComponent implements ControlValueAccessor {
|
|
7092
|
+
declare class SearchComponent<T = unknown> implements ControlValueAccessor {
|
|
6582
7093
|
/**
|
|
6583
7094
|
* Unique identifier for the input element, used to associate the label.
|
|
6584
7095
|
*/
|
|
@@ -6628,6 +7139,62 @@ declare class SearchComponent implements ControlValueAccessor {
|
|
|
6628
7139
|
* `placeholder`, then the translated "search" label.
|
|
6629
7140
|
*/
|
|
6630
7141
|
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
7142
|
+
/**
|
|
7143
|
+
* Suggestions to show in the panel, already filtered by the consumer. Bind an
|
|
7144
|
+
* empty array to keep the combobox behaviour while nothing matches; leave it
|
|
7145
|
+
* unbound for a plain search field.
|
|
7146
|
+
*/
|
|
7147
|
+
suggestions: _angular_core.InputSignal<T[] | undefined>;
|
|
7148
|
+
/**
|
|
7149
|
+
* Property holding the display label when suggestions are objects.
|
|
7150
|
+
* @default "label"
|
|
7151
|
+
*/
|
|
7152
|
+
bindLabel: _angular_core.InputSignal<string>;
|
|
7153
|
+
/**
|
|
7154
|
+
* Property holding a secondary line shown under the label. Unset by default,
|
|
7155
|
+
* so rows are a single line unless asked for.
|
|
7156
|
+
*/
|
|
7157
|
+
bindDescription: _angular_core.InputSignal<string | undefined>;
|
|
7158
|
+
/**
|
|
7159
|
+
* Property marking a suggestion as unselectable. Disabled rows are greyed out
|
|
7160
|
+
* and skipped by keyboard navigation.
|
|
7161
|
+
* @default "disabled"
|
|
7162
|
+
*/
|
|
7163
|
+
bindDisabled: _angular_core.InputSignal<string>;
|
|
7164
|
+
/**
|
|
7165
|
+
* Characters required before the panel opens. Below it nothing is shown, not
|
|
7166
|
+
* even the no-results row, so short queries stay quiet.
|
|
7167
|
+
* @default 0
|
|
7168
|
+
*/
|
|
7169
|
+
minQueryLength: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
7170
|
+
/**
|
|
7171
|
+
* Shows a loading row instead of results.
|
|
7172
|
+
* @default false
|
|
7173
|
+
*/
|
|
7174
|
+
loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7175
|
+
/**
|
|
7176
|
+
* Closes the suggestion panel when the page (or a scrollable ancestor)
|
|
7177
|
+
* scrolls. Scrolling the option list itself keeps the panel open.
|
|
7178
|
+
* @default false
|
|
7179
|
+
*/
|
|
7180
|
+
hideOnScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7181
|
+
/**
|
|
7182
|
+
* Whether the suggestion panel is open.
|
|
7183
|
+
* @default false
|
|
7184
|
+
*/
|
|
7185
|
+
panelOpen: _angular_core.ModelSignal<boolean>;
|
|
7186
|
+
/**
|
|
7187
|
+
* Overrides the translated "no results" row.
|
|
7188
|
+
*/
|
|
7189
|
+
noResultsText: _angular_core.InputSignal<string | undefined>;
|
|
7190
|
+
/**
|
|
7191
|
+
* Overrides the translated loading row.
|
|
7192
|
+
*/
|
|
7193
|
+
loadingText: _angular_core.InputSignal<string | undefined>;
|
|
7194
|
+
/**
|
|
7195
|
+
* Overrides the translated screen-reader result count.
|
|
7196
|
+
*/
|
|
7197
|
+
resultsCountText: _angular_core.InputSignal<((count: number) => string) | undefined>;
|
|
6631
7198
|
/**
|
|
6632
7199
|
* Emitted when the search is executed (Enter key or button click).
|
|
6633
7200
|
*/
|
|
@@ -6636,11 +7203,41 @@ declare class SearchComponent implements ControlValueAccessor {
|
|
|
6636
7203
|
* Emitted when the clear button is clicked.
|
|
6637
7204
|
*/
|
|
6638
7205
|
readonly clear: _angular_core.OutputEmitterRef<void>;
|
|
7206
|
+
/**
|
|
7207
|
+
* Emitted when a suggestion is accepted. The field is filled with its label.
|
|
7208
|
+
*/
|
|
7209
|
+
readonly suggestionSelect: _angular_core.OutputEmitterRef<T>;
|
|
7210
|
+
readonly suggestionTemplate: _angular_core.Signal<SearchSuggestionTemplateDirective<any> | undefined>;
|
|
7211
|
+
readonly footerTemplate: _angular_core.Signal<SearchFooterTemplateDirective | undefined>;
|
|
6639
7212
|
private readonly inputRef;
|
|
7213
|
+
private readonly overlayOrigin;
|
|
7214
|
+
private readonly connectedOverlay;
|
|
7215
|
+
private readonly suggestionRows;
|
|
6640
7216
|
private readonly formDisabled;
|
|
7217
|
+
private readonly hostElement;
|
|
6641
7218
|
private readonly translationService;
|
|
7219
|
+
private readonly renderer;
|
|
7220
|
+
private readonly document;
|
|
7221
|
+
private readonly injector;
|
|
7222
|
+
private scrollListener?;
|
|
6642
7223
|
private onChange;
|
|
6643
7224
|
private onTouched;
|
|
7225
|
+
/** Suppresses the focus-driven reopen after a selection, until the next edit. */
|
|
7226
|
+
private justSelected;
|
|
7227
|
+
/**
|
|
7228
|
+
* Navigation is driven from `event.key` via the explicit `set*ItemActive`
|
|
7229
|
+
* methods rather than `keyManager.onKeydown`, which switches on the deprecated
|
|
7230
|
+
* `event.keyCode` and so ignores synthesised events.
|
|
7231
|
+
*/
|
|
7232
|
+
private readonly keyManager;
|
|
7233
|
+
private readonly activeIndex;
|
|
7234
|
+
readonly overlayPositions: ConnectedPosition[];
|
|
7235
|
+
readonly panelWidth: _angular_core.WritableSignal<number>;
|
|
7236
|
+
/**
|
|
7237
|
+
* True while the panel sits above the field on the fallback position, so the
|
|
7238
|
+
* rounded edge can move to the side that is not joined to the field.
|
|
7239
|
+
*/
|
|
7240
|
+
readonly panelAbove: _angular_core.WritableSignal<boolean>;
|
|
6644
7241
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
6645
7242
|
readonly fieldIcon: _angular_core.Signal<string | FormFieldIcon | undefined>;
|
|
6646
7243
|
readonly fieldHeight: _angular_core.Signal<"var(--form-field-height-sm)" | "var(--form-field-height-lg)" | "var(--form-field-height)">;
|
|
@@ -6655,19 +7252,121 @@ declare class SearchComponent implements ControlValueAccessor {
|
|
|
6655
7252
|
* otherwise `aria-label` would silently override the visible text.
|
|
6656
7253
|
*/
|
|
6657
7254
|
readonly inputAriaLabel: _angular_core.Signal<string | null>;
|
|
7255
|
+
/**
|
|
7256
|
+
* Derived from capability, never from current content — an empty
|
|
7257
|
+
* `suggestions` array still means the consumer opted into the combobox.
|
|
7258
|
+
*/
|
|
7259
|
+
readonly autocomplete: _angular_core.Signal<boolean>;
|
|
7260
|
+
readonly resolvedSuggestions: _angular_core.Signal<SearchSuggestionView<T>[]>;
|
|
7261
|
+
readonly query: _angular_core.Signal<string>;
|
|
7262
|
+
readonly hasSuggestions: _angular_core.Signal<boolean>;
|
|
7263
|
+
readonly listboxId: _angular_core.Signal<string>;
|
|
7264
|
+
readonly meetsMinQueryLength: _angular_core.Signal<boolean>;
|
|
7265
|
+
readonly panelVisible: _angular_core.Signal<boolean>;
|
|
7266
|
+
readonly inputRole: _angular_core.Signal<"combobox" | "searchbox">;
|
|
7267
|
+
readonly ariaAutocomplete: _angular_core.Signal<"list" | null>;
|
|
7268
|
+
readonly ariaExpanded: _angular_core.Signal<boolean | null>;
|
|
7269
|
+
readonly ariaControls: _angular_core.Signal<string | null>;
|
|
7270
|
+
readonly activeOptionId: _angular_core.Signal<string | null>;
|
|
7271
|
+
readonly resolvedNoResultsText: _angular_core.Signal<string>;
|
|
7272
|
+
readonly resolvedLoadingText: _angular_core.Signal<string>;
|
|
7273
|
+
readonly announcement: _angular_core.Signal<string>;
|
|
7274
|
+
constructor();
|
|
7275
|
+
optionId(index: number): string;
|
|
6658
7276
|
onInputValue(value: string): void;
|
|
6659
7277
|
onClear(): void;
|
|
6660
7278
|
onBlur(): void;
|
|
7279
|
+
onInputFocus(): void;
|
|
7280
|
+
openPanel(): void;
|
|
7281
|
+
closePanel(): void;
|
|
7282
|
+
onPositionChange(change: ConnectedOverlayPositionChange): void;
|
|
7283
|
+
onOverlayAttach(): void;
|
|
7284
|
+
onOverlayDetach(): void;
|
|
7285
|
+
/**
|
|
7286
|
+
* Listens on the document in the capture phase so scrolls in any ancestor are
|
|
7287
|
+
* seen — a scroll event does not bubble past the element that scrolled.
|
|
7288
|
+
*/
|
|
7289
|
+
private setupScrollListener;
|
|
7290
|
+
private cleanupScrollListener;
|
|
7291
|
+
/** Closes the panel and hands focus back to the input. */
|
|
7292
|
+
closeAndRestoreFocus(): void;
|
|
7293
|
+
onKeydown(event: KeyboardEvent): void;
|
|
7294
|
+
/**
|
|
7295
|
+
* Footer controls live in the overlay, which sits at the end of the document,
|
|
7296
|
+
* so they are not next in tab order. Tab reaches them explicitly; without this
|
|
7297
|
+
* they would be mouse-only.
|
|
7298
|
+
*/
|
|
7299
|
+
private onTabFromInput;
|
|
7300
|
+
/**
|
|
7301
|
+
* Tabbing past the footer leaves the component: close the panel and continue to
|
|
7302
|
+
* whatever follows the field in document order, so the footer is not a trap.
|
|
7303
|
+
*/
|
|
7304
|
+
onFooterKeydown(event: KeyboardEvent): void;
|
|
7305
|
+
private footerFocusables;
|
|
7306
|
+
private focusAfterField;
|
|
7307
|
+
selectSuggestion(suggestion: SearchSuggestionView<T>): void;
|
|
7308
|
+
/**
|
|
7309
|
+
* The panel is portalled into the overlay container, so it is not a descendant
|
|
7310
|
+
* of the host — both roots have to be consulted before deciding focus left.
|
|
7311
|
+
*/
|
|
7312
|
+
onFocusOut(event: FocusEvent): void;
|
|
6661
7313
|
emitSearch(): void;
|
|
6662
7314
|
focus(): void;
|
|
6663
7315
|
writeValue(value: string | null): void;
|
|
6664
7316
|
registerOnChange(fn: (value: string) => void): void;
|
|
6665
7317
|
registerOnTouched(fn: () => void): void;
|
|
6666
7318
|
setDisabledState(isDisabled: boolean): void;
|
|
6667
|
-
|
|
6668
|
-
|
|
7319
|
+
private onArrowKey;
|
|
7320
|
+
private onEnter;
|
|
7321
|
+
private panelElement;
|
|
7322
|
+
private resetActiveOption;
|
|
7323
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchComponent<any>, never>;
|
|
7324
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchComponent<any>, "tedi-search", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "searchIcon": { "alias": "searchIcon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindDescription": { "alias": "bindDescription"; "required": false; "isSignal": true; }; "bindDisabled": { "alias": "bindDisabled"; "required": false; "isSignal": true; }; "minQueryLength": { "alias": "minQueryLength"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "panelOpen": { "alias": "panelOpen"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "resultsCountText": { "alias": "resultsCountText"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "panelOpen": "panelOpenChange"; "searchEvent": "searchEvent"; "clear": "clear"; "suggestionSelect": "suggestionSelect"; }, ["suggestionTemplate", "footerTemplate"], never, true, never>;
|
|
7325
|
+
}
|
|
7326
|
+
|
|
7327
|
+
declare class SearchSuggestionComponent implements Highlightable {
|
|
7328
|
+
/** Resolved display label. */
|
|
7329
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
7330
|
+
/** Secondary line under the label. */
|
|
7331
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
7332
|
+
/** Current field value, used to bold the matching segment. */
|
|
7333
|
+
readonly query: _angular_core.InputSignal<string>;
|
|
7334
|
+
/** Whether a custom suggestion template supplies the row content. */
|
|
7335
|
+
readonly custom: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7336
|
+
readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7337
|
+
readonly host: ElementRef<HTMLLIElement>;
|
|
7338
|
+
private readonly active;
|
|
7339
|
+
readonly isActive: _angular_core.Signal<boolean>;
|
|
7340
|
+
readonly parts: _angular_core.Signal<_tedi_design_system_angular_tedi.SearchHighlightPart[]>;
|
|
7341
|
+
/**
|
|
7342
|
+
* `Highlightable` requires a plain boolean, so the signal input is aliased and
|
|
7343
|
+
* this getter satisfies the CDK contract — a signal would always read truthy.
|
|
7344
|
+
*/
|
|
7345
|
+
get disabled(): boolean;
|
|
7346
|
+
setActiveStyles(): void;
|
|
7347
|
+
setInactiveStyles(): void;
|
|
7348
|
+
getLabel(): string;
|
|
7349
|
+
scrollIntoView(): void;
|
|
7350
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchSuggestionComponent, never>;
|
|
7351
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchSuggestionComponent, "li[tedi-search-suggestion]", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "custom": { "alias": "custom"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
6669
7352
|
}
|
|
6670
7353
|
|
|
7354
|
+
/**
|
|
7355
|
+
* Row of buttons inside a `tediSearchFooter`. Centres them and wraps to a new
|
|
7356
|
+
* line when they no longer fit side by side.
|
|
7357
|
+
*/
|
|
7358
|
+
declare class SearchFooterActionsComponent {
|
|
7359
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchFooterActionsComponent, never>;
|
|
7360
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchFooterActionsComponent, "tedi-search-footer-actions", never, {}, {}, never, ["*"], true, never>;
|
|
7361
|
+
}
|
|
7362
|
+
|
|
7363
|
+
interface SearchHighlightPart {
|
|
7364
|
+
text: string;
|
|
7365
|
+
match: boolean;
|
|
7366
|
+
}
|
|
7367
|
+
/** Splits `text` so the segment matching `query` can be emphasised. */
|
|
7368
|
+
declare function highlightParts(text: string, query: string): SearchHighlightPart[];
|
|
7369
|
+
|
|
6671
7370
|
/**
|
|
6672
7371
|
* Context provided to custom option templates.
|
|
6673
7372
|
*/
|
|
@@ -6785,6 +7484,11 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
6785
7484
|
* Used for label association and accessibility.
|
|
6786
7485
|
*/
|
|
6787
7486
|
inputId: _angular_core.InputSignal<string>;
|
|
7487
|
+
/**
|
|
7488
|
+
* Name the selection is submitted under in a native form, one entry per
|
|
7489
|
+
* selected value. With object options, set `bindValue` to pick what is sent.
|
|
7490
|
+
*/
|
|
7491
|
+
name: _angular_core.InputSignal<string | undefined>;
|
|
6788
7492
|
/**
|
|
6789
7493
|
* Label text displayed above the select.
|
|
6790
7494
|
*/
|
|
@@ -6864,6 +7568,12 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
6864
7568
|
* When undefined, the entire object is used as the value.
|
|
6865
7569
|
*/
|
|
6866
7570
|
bindValue: _angular_core.InputSignal<string | undefined>;
|
|
7571
|
+
/**
|
|
7572
|
+
* Selected value, for use without a form directive. An array in multi-select
|
|
7573
|
+
* mode, the bare value otherwise. Unlike `[ngModel]` it applies on the first
|
|
7574
|
+
* render rather than a frame later. Do not combine with a form directive.
|
|
7575
|
+
*/
|
|
7576
|
+
value: _angular_core.InputSignal<unknown>;
|
|
6867
7577
|
/**
|
|
6868
7578
|
* Whether multiple items can be selected.
|
|
6869
7579
|
* @default false
|
|
@@ -7027,6 +7737,7 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
7027
7737
|
/** `aria-label` is only used when no labelledby reference is available. */
|
|
7028
7738
|
resolvedAriaLabel: _angular_core.Signal<string | null>;
|
|
7029
7739
|
isOpen: _angular_core.WritableSignal<boolean>;
|
|
7740
|
+
/** `allowMultiple` untracked, so flipping the mode cannot wipe the selection. */
|
|
7030
7741
|
selectedValues: _angular_core.WritableSignal<unknown[]>;
|
|
7031
7742
|
disabled: _angular_core.WritableSignal<boolean>;
|
|
7032
7743
|
dropdownWidth: _angular_core.WritableSignal<number | null>;
|
|
@@ -7040,6 +7751,14 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
7040
7751
|
measuredRowHeight: _angular_core.WritableSignal<number | null>;
|
|
7041
7752
|
private static readonly DEFAULT_ROW_HEIGHT;
|
|
7042
7753
|
private static readonly SMALL_ROW_HEIGHT;
|
|
7754
|
+
/**
|
|
7755
|
+
* Values written to the hidden form inputs — one entry per selected value,
|
|
7756
|
+
* and a single empty entry when nothing is selected, so the field is still
|
|
7757
|
+
* submitted.
|
|
7758
|
+
*/
|
|
7759
|
+
readonly formValues: _angular_core.Signal<string[]>;
|
|
7760
|
+
readonly isInvalid: _angular_core.Signal<boolean>;
|
|
7761
|
+
readonly feedbackId: _angular_core.Signal<string | null>;
|
|
7043
7762
|
hiddenTagsCount: _angular_core.Signal<number>;
|
|
7044
7763
|
/**
|
|
7045
7764
|
* Whether the default identity comparator is in use. When true, selection and
|
|
@@ -7180,12 +7899,13 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
|
|
|
7180
7899
|
private toggleGroupSelection;
|
|
7181
7900
|
onChange: (value: unknown) => void;
|
|
7182
7901
|
onTouched: () => void;
|
|
7902
|
+
private toSelection;
|
|
7183
7903
|
writeValue(value: unknown): void;
|
|
7184
7904
|
registerOnChange(fn: (value: unknown) => void): void;
|
|
7185
7905
|
registerOnTouched(fn: () => void): void;
|
|
7186
7906
|
setDisabledState(isDisabled: boolean): void;
|
|
7187
7907
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
|
|
7188
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "dropdownAlign": { "alias": "dropdownAlign"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "allowMultiple": { "alias": "allowMultiple"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "selectableGroups": { "alias": "selectableGroups"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledKey": { "alias": "disabledKey"; "required": false; "isSignal": true; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; "isSignal": true; }; "maxDropdownHeight": { "alias": "maxDropdownHeight"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, ["optionTemplate", "valueTemplate", "tooltipTemplate"], never, true, never>;
|
|
7908
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "dropdownAlign": { "alias": "dropdownAlign"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "allowMultiple": { "alias": "allowMultiple"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "selectableGroups": { "alias": "selectableGroups"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledKey": { "alias": "disabledKey"; "required": false; "isSignal": true; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; "isSignal": true; }; "maxDropdownHeight": { "alias": "maxDropdownHeight"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, ["optionTemplate", "valueTemplate", "tooltipTemplate"], never, true, never>;
|
|
7189
7909
|
}
|
|
7190
7910
|
|
|
7191
7911
|
type SliderHideLabel = boolean | "keep-space";
|
|
@@ -7389,6 +8109,27 @@ declare class FormFieldExtraDirective {
|
|
|
7389
8109
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FormFieldExtraDirective, "[tediFormFieldExtra]", never, {}, {}, never, never, true, never>;
|
|
7390
8110
|
}
|
|
7391
8111
|
|
|
8112
|
+
interface DerivedControlState {
|
|
8113
|
+
invalid: Signal<boolean>;
|
|
8114
|
+
touched: Signal<boolean>;
|
|
8115
|
+
dirty: Signal<boolean>;
|
|
8116
|
+
/** Whether the bound control carries `Validators.required`. */
|
|
8117
|
+
required: Signal<boolean>;
|
|
8118
|
+
/**
|
|
8119
|
+
* Call from `ngOnInit`: a control that is its own `NG_VALUE_ACCESSOR` cannot
|
|
8120
|
+
* inject `NgControl` in the constructor, because the accessor is what
|
|
8121
|
+
* `NgControl` depends on.
|
|
8122
|
+
*/
|
|
8123
|
+
connect(): void;
|
|
8124
|
+
}
|
|
8125
|
+
declare function deriveControlState(): DerivedControlState;
|
|
8126
|
+
|
|
8127
|
+
interface ControlDescribedBy {
|
|
8128
|
+
attribute: Signal<string | null>;
|
|
8129
|
+
set(ids: string[]): void;
|
|
8130
|
+
}
|
|
8131
|
+
declare function controlDescribedBy(): ControlDescribedBy;
|
|
8132
|
+
|
|
7392
8133
|
/**
|
|
7393
8134
|
* Shared behavior for the prefix/suffix addon directives: reads the group's
|
|
7394
8135
|
* disabled state and detects whether the addon holds plain text (so the
|
|
@@ -7469,11 +8210,6 @@ declare class InputGroupComponent implements InputGroupContext {
|
|
|
7469
8210
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputGroupComponent, "tedi-input-group", never, { "addons": { "alias": "addons"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, ["prefix", "suffix"], ["label[tedi-label], tedi-label-row", "[tediInputGroupPrefix]", "tedi-form-field, tedi-select", "[tediInputGroupSuffix]", "tedi-feedback-text"], true, never>;
|
|
7470
8211
|
}
|
|
7471
8212
|
|
|
7472
|
-
interface ControlDescribedBy {
|
|
7473
|
-
attribute: Signal<string | null>;
|
|
7474
|
-
set(ids: string[]): void;
|
|
7475
|
-
}
|
|
7476
|
-
|
|
7477
8213
|
declare class TextFieldComponent implements OnInit, ControlValueAccessor, FormFieldControl {
|
|
7478
8214
|
private el;
|
|
7479
8215
|
private readonly fieldContext;
|
|
@@ -7507,7 +8243,7 @@ declare class TextFieldComponent implements OnInit, ControlValueAccessor, FormFi
|
|
|
7507
8243
|
readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7508
8244
|
readonly disabled: _angular_core.Signal<boolean>;
|
|
7509
8245
|
private readonly derived;
|
|
7510
|
-
readonly describedBy: ControlDescribedBy;
|
|
8246
|
+
readonly describedBy: _tedi_design_system_angular_tedi.ControlDescribedBy;
|
|
7511
8247
|
readonly touched: _angular_core.Signal<boolean>;
|
|
7512
8248
|
readonly dirty: _angular_core.Signal<boolean>;
|
|
7513
8249
|
readonly invalid: _angular_core.Signal<boolean>;
|
|
@@ -7615,7 +8351,7 @@ declare class TextareaComponent implements OnInit, ControlValueAccessor, FormFie
|
|
|
7615
8351
|
readonly maxHeightStyle: _angular_core.Signal<string>;
|
|
7616
8352
|
readonly disabled: _angular_core.Signal<boolean>;
|
|
7617
8353
|
private readonly derived;
|
|
7618
|
-
readonly describedBy: ControlDescribedBy;
|
|
8354
|
+
readonly describedBy: _tedi_design_system_angular_tedi.ControlDescribedBy;
|
|
7619
8355
|
readonly touched: _angular_core.Signal<boolean>;
|
|
7620
8356
|
readonly dirty: _angular_core.Signal<boolean>;
|
|
7621
8357
|
readonly invalid: _angular_core.Signal<boolean>;
|
|
@@ -7760,9 +8496,18 @@ interface ModalConfig<D = unknown> {
|
|
|
7760
8496
|
fullscreen?: ModalFullscreen;
|
|
7761
8497
|
/** Max-width cap (e.g. '75%', '60vw'). Overrides the default 95vw limit. */
|
|
7762
8498
|
maxWidth?: string;
|
|
7763
|
-
/**
|
|
8499
|
+
/**
|
|
8500
|
+
* Accessible name for the dialog. Set this only when the modal has no
|
|
8501
|
+
* visible heading, or when the heading is not the name you want announced:
|
|
8502
|
+
* a modal whose content renders a heading inside `<tedi-modal-header>` is
|
|
8503
|
+
* labelled by that heading automatically.
|
|
8504
|
+
*/
|
|
7764
8505
|
ariaLabel?: string;
|
|
7765
|
-
/**
|
|
8506
|
+
/**
|
|
8507
|
+
* Id of the element that labels the dialog, for a label that lives outside
|
|
8508
|
+
* `<tedi-modal-header>`. Ignored when `ariaLabel` is set, and takes
|
|
8509
|
+
* precedence over the automatic heading lookup.
|
|
8510
|
+
*/
|
|
7766
8511
|
ariaLabelledBy?: string;
|
|
7767
8512
|
}
|
|
7768
8513
|
/** Injection token for data passed to a modal opened via ModalService. */
|
|
@@ -8731,7 +9476,7 @@ declare class HeaderMobileButtonComponent {
|
|
|
8731
9476
|
* is confusing to assistive tech — if a popup is involved, omit `href`
|
|
8732
9477
|
* so the component renders as a button.
|
|
8733
9478
|
*/
|
|
8734
|
-
ariaHasPopup: _angular_core.InputSignal<"menu" | "listbox" | "dialog" | "true" | "
|
|
9479
|
+
ariaHasPopup: _angular_core.InputSignal<"menu" | "listbox" | "dialog" | "true" | "false" | "grid" | "tree" | undefined>;
|
|
8735
9480
|
/**
|
|
8736
9481
|
* Forwarded to the inner `<button>` as `aria-expanded`. Pair with
|
|
8737
9482
|
* `ariaHasPopup` when this button toggles a dialog/menu open.
|
|
@@ -9262,6 +10007,94 @@ declare class SideNavToggleComponent {
|
|
|
9262
10007
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideNavToggleComponent, "button[tedi-sidenav-toggle]", never, {}, {}, never, never, true, never>;
|
|
9263
10008
|
}
|
|
9264
10009
|
|
|
10010
|
+
declare class SkeletonComponent implements OnInit, OnDestroy {
|
|
10011
|
+
private readonly liveAnnouncer;
|
|
10012
|
+
private readonly translationService;
|
|
10013
|
+
private readonly isBrowser;
|
|
10014
|
+
/**
|
|
10015
|
+
* Announced by the skeleton's `role="status"` live region once the skeleton
|
|
10016
|
+
* has been on screen for `labelDelay`. Say what is loading: "Loading search
|
|
10017
|
+
* results" carries more than the generic fallback.
|
|
10018
|
+
* @default the translated `skeleton.loading` label
|
|
10019
|
+
*/
|
|
10020
|
+
label: _angular_core.InputSignal<string | undefined>;
|
|
10021
|
+
/**
|
|
10022
|
+
* Announced when the skeleton is removed. The skeleton's own live region goes
|
|
10023
|
+
* with it, so this one goes through a page-level announcer. Only announced if
|
|
10024
|
+
* `label` was announced first, so content that arrives faster than
|
|
10025
|
+
* `labelDelay` stays silent.
|
|
10026
|
+
* @default the translated `skeleton.loading-completed` label
|
|
10027
|
+
*/
|
|
10028
|
+
completedLabel: _angular_core.InputSignal<string | undefined>;
|
|
10029
|
+
/**
|
|
10030
|
+
* Delay in ms before `label` is announced, so brief loads do not interrupt
|
|
10031
|
+
* the screen reader.
|
|
10032
|
+
* @default 200
|
|
10033
|
+
*/
|
|
10034
|
+
labelDelay: _angular_core.InputSignal<number>;
|
|
10035
|
+
/**
|
|
10036
|
+
* Text of the `role="status"` live region. Empty until `labelDelay` has
|
|
10037
|
+
* passed, so the region is in the DOM before it gains text: screen readers
|
|
10038
|
+
* only announce a live region they were already tracking.
|
|
10039
|
+
*/
|
|
10040
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
10041
|
+
private announceTimer?;
|
|
10042
|
+
ngOnInit(): void;
|
|
10043
|
+
ngOnDestroy(): void;
|
|
10044
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
|
|
10045
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "tedi-skeleton", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "completedLabel": { "alias": "completedLabel"; "required": false; "isSignal": true; }; "labelDelay": { "alias": "labelDelay"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10046
|
+
}
|
|
10047
|
+
|
|
10048
|
+
type SkeletonBlockWidth = number | `${number}` | "auto" | `${number}px`;
|
|
10049
|
+
type SkeletonBlockTextHeight = "p" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
10050
|
+
type SkeletonBlockHeight = SkeletonBlockTextHeight | number | `${number}`;
|
|
10051
|
+
/**
|
|
10052
|
+
* The subset of inputs that can be overridden per breakpoint via the
|
|
10053
|
+
* `xs`–`xxl` inputs. Every field is optional; only the ones you set override
|
|
10054
|
+
* the base value at that breakpoint.
|
|
10055
|
+
*/
|
|
10056
|
+
type SkeletonBlockInputs = {
|
|
10057
|
+
/** Overrides {@link SkeletonBlockComponent.width}. */
|
|
10058
|
+
width?: SkeletonBlockWidth;
|
|
10059
|
+
/** Overrides {@link SkeletonBlockComponent.height}. */
|
|
10060
|
+
height?: SkeletonBlockHeight;
|
|
10061
|
+
};
|
|
10062
|
+
declare class SkeletonBlockComponent {
|
|
10063
|
+
/**
|
|
10064
|
+
* Width of the block. A number is a percentage of the container, a `px`
|
|
10065
|
+
* string is an absolute width, and `auto` fills the container.
|
|
10066
|
+
* @default auto
|
|
10067
|
+
*/
|
|
10068
|
+
width: _angular_core.InputSignal<SkeletonBlockWidth>;
|
|
10069
|
+
/**
|
|
10070
|
+
* Height of the block. A text style (`p`, `h1`–`h6`) takes the line height of
|
|
10071
|
+
* the text the block stands in for and follows it across breakpoints, so the
|
|
10072
|
+
* real content drops in without shifting the layout. Pass a number instead
|
|
10073
|
+
* for a height in px, for blocks that stand in for something other than text.
|
|
10074
|
+
* @default p
|
|
10075
|
+
*/
|
|
10076
|
+
height: _angular_core.InputSignal<SkeletonBlockHeight>;
|
|
10077
|
+
/** Overrides applied from the `xs` breakpoint (≥ 0px) and up. */
|
|
10078
|
+
xs: _angular_core.InputSignal<SkeletonBlockInputs | undefined>;
|
|
10079
|
+
/** Overrides applied from the `sm` breakpoint (≥ 576px) and up. */
|
|
10080
|
+
sm: _angular_core.InputSignal<SkeletonBlockInputs | undefined>;
|
|
10081
|
+
/** Overrides applied from the `md` breakpoint (≥ 768px) and up. */
|
|
10082
|
+
md: _angular_core.InputSignal<SkeletonBlockInputs | undefined>;
|
|
10083
|
+
/** Overrides applied from the `lg` breakpoint (≥ 992px) and up. */
|
|
10084
|
+
lg: _angular_core.InputSignal<SkeletonBlockInputs | undefined>;
|
|
10085
|
+
/** Overrides applied from the `xl` breakpoint (≥ 1200px) and up. */
|
|
10086
|
+
xl: _angular_core.InputSignal<SkeletonBlockInputs | undefined>;
|
|
10087
|
+
/** Overrides applied from the `xxl` breakpoint (≥ 1400px) and up. */
|
|
10088
|
+
xxl: _angular_core.InputSignal<SkeletonBlockInputs | undefined>;
|
|
10089
|
+
private readonly breakpointService;
|
|
10090
|
+
protected currentProps: _angular_core.Signal<SkeletonBlockInputs>;
|
|
10091
|
+
protected classes: _angular_core.Signal<string>;
|
|
10092
|
+
protected resolvedWidth: _angular_core.Signal<string | null>;
|
|
10093
|
+
protected resolvedHeight: _angular_core.Signal<string | null>;
|
|
10094
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonBlockComponent, never>;
|
|
10095
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonBlockComponent, "tedi-skeleton-block", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "xs": { "alias": "xs"; "required": false; "isSignal": true; }; "sm": { "alias": "sm"; "required": false; "isSignal": true; }; "md": { "alias": "md"; "required": false; "isSignal": true; }; "lg": { "alias": "lg"; "required": false; "isSignal": true; }; "xl": { "alias": "xl"; "required": false; "isSignal": true; }; "xxl": { "alias": "xxl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10096
|
+
}
|
|
10097
|
+
|
|
9265
10098
|
type SpinnerSize = 10 | 16 | 48;
|
|
9266
10099
|
type SpinnerColor = "primary" | "secondary";
|
|
9267
10100
|
declare class SpinnerComponent {
|
|
@@ -9337,9 +10170,19 @@ type RenderToken = {
|
|
|
9337
10170
|
* the current page — add `aria-current="page"` to it yourself.
|
|
9338
10171
|
*
|
|
9339
10172
|
* Crumb links are underlined by default. Set `[underline]="false"` on the
|
|
9340
|
-
* `tedi-link` for non-underlined crumbs
|
|
9341
|
-
*
|
|
9342
|
-
*
|
|
10173
|
+
* `tedi-link` for non-underlined crumbs, which is recommended for the `short`
|
|
10174
|
+
* back-link. A collapsed crumb keeps its own `[underline]` setting, so it looks
|
|
10175
|
+
* the same in the ellipsis dropdown as it does in the trail. To restyle the
|
|
10176
|
+
* collapsed rows, target `.tedi-breadcrumbs__dropdown-item`, which travels with
|
|
10177
|
+
* them into the overlay.
|
|
10178
|
+
*
|
|
10179
|
+
* The ellipsis dropdown is a plain list (`dropdownRole="list"`), not a menu, so
|
|
10180
|
+
* the collapsed crumbs stay links: screen readers announce them as links and
|
|
10181
|
+
* each one is its own tab stop. Its panel renders inside the crumb it belongs
|
|
10182
|
+
* to, so the collapsed crumbs come between the ellipsis button and the next
|
|
10183
|
+
* crumb both in the tab order and for a screen reader that swipes through the
|
|
10184
|
+
* DOM. Opening it moves focus to the first collapsed crumb; Escape closes it
|
|
10185
|
+
* and returns focus to the button.
|
|
9343
10186
|
*/
|
|
9344
10187
|
declare class BreadcrumbsComponent implements BreakpointInputs<BreadcrumbsInputs> {
|
|
9345
10188
|
private readonly breakpointService;
|
|
@@ -9480,6 +10323,252 @@ interface UsePaginationArgs {
|
|
|
9480
10323
|
*/
|
|
9481
10324
|
declare function usePagination({ page, pageCount, boundaryCount, siblingCount, }: UsePaginationArgs): PaginationItem[];
|
|
9482
10325
|
|
|
10326
|
+
type TableOfContentsVariant = "default" | "transparent";
|
|
10327
|
+
type TableOfContentsHeadingLevel = "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
10328
|
+
/**
|
|
10329
|
+
* A navigation aid that lists the sections of a page and highlights the one the
|
|
10330
|
+
* reader is on. Compose it from `tedi-table-of-contents-item` elements; nest
|
|
10331
|
+
* items to build a two-level hierarchy.
|
|
10332
|
+
*
|
|
10333
|
+
* The active item is controlled via `activeId`: it gets the accent bar and active link colour.
|
|
10334
|
+
*
|
|
10335
|
+
* When `sticky` is enabled the container pins while the page scrolls. Two knobs
|
|
10336
|
+
* adapt it to the surrounding layout: `stickyOffset` moves where it pins (raise
|
|
10337
|
+
* it to clear a fixed header), and `stickyMaxHeight` overrides the height cap
|
|
10338
|
+
* for when the TOC scrolls inside a fixed-height container rather than the window.
|
|
10339
|
+
*
|
|
10340
|
+
* The gap the sticky TOC leaves above the viewport bottom has no input — override
|
|
10341
|
+
* the `--tedi-table-of-contents-sticky-bottom` CSS custom property (default
|
|
10342
|
+
* `1.5rem`) from any ancestor when you need to clear a fixed footer.
|
|
10343
|
+
*/
|
|
10344
|
+
declare class TableOfContentsComponent {
|
|
10345
|
+
/**
|
|
10346
|
+
* Heading rendered above the list. Defaults to the localised "Table of
|
|
10347
|
+
* contents" label; pass `null` (or an empty string) to render it headless —
|
|
10348
|
+
* the navigation keeps an accessible name via `aria-label`.
|
|
10349
|
+
*/
|
|
10350
|
+
readonly heading: _angular_core.InputSignal<string | null | undefined>;
|
|
10351
|
+
/**
|
|
10352
|
+
* Semantic level of the heading element (`h1`–`h6`). The visual style stays
|
|
10353
|
+
* h4 regardless; set this to match the surrounding page's heading outline
|
|
10354
|
+
* (e.g. `h2` when the TOC follows only a page `h1`).
|
|
10355
|
+
*/
|
|
10356
|
+
readonly headingLevel: _angular_core.InputSignal<TableOfContentsHeadingLevel>;
|
|
10357
|
+
/**
|
|
10358
|
+
* Visual variant:
|
|
10359
|
+
* - `default` — rendered inside a bordered card.
|
|
10360
|
+
* - `transparent` — no card chrome; the list sits on the page with a
|
|
10361
|
+
* continuous grey left rail.
|
|
10362
|
+
*/
|
|
10363
|
+
readonly variant: _angular_core.InputSignal<TableOfContentsVariant>;
|
|
10364
|
+
/**
|
|
10365
|
+
* Draws a divider under each item except the last — sub-items included — so the
|
|
10366
|
+
* list reads as a set of separated rows.
|
|
10367
|
+
* @default false
|
|
10368
|
+
*/
|
|
10369
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
10370
|
+
/** Id of the currently active item. */
|
|
10371
|
+
readonly activeId: _angular_core.InputSignal<string | undefined>;
|
|
10372
|
+
/**
|
|
10373
|
+
* Keep the active item visible inside the TOC's own scroll area. When the list
|
|
10374
|
+
* is taller than a bounded or sticky container and `activeId` changes, the TOC
|
|
10375
|
+
* scrolls its internal scroll region just enough to reveal the active item.
|
|
10376
|
+
* No-op when the list isn't scrollable (short lists, unbounded layouts).
|
|
10377
|
+
* @default false
|
|
10378
|
+
*/
|
|
10379
|
+
readonly scrollActiveIntoView: _angular_core.InputSignal<boolean>;
|
|
10380
|
+
/**
|
|
10381
|
+
* Whether nested items are expanded by default. When `true` (default) the full
|
|
10382
|
+
* outline is always visible. When `false`, a branch reveals its sub-items only
|
|
10383
|
+
* while it is on the active trail (the active item or one of its ancestors).
|
|
10384
|
+
* @default true
|
|
10385
|
+
*/
|
|
10386
|
+
readonly defaultOpen: _angular_core.InputSignal<boolean>;
|
|
10387
|
+
/** Show auto-generated hierarchical numbers (`1.`, `2.`, `2.1`, …). */
|
|
10388
|
+
readonly numbered: _angular_core.InputSignal<boolean>;
|
|
10389
|
+
/** Stick the container to the viewport while scrolling. */
|
|
10390
|
+
readonly sticky: _angular_core.InputSignal<boolean>;
|
|
10391
|
+
/**
|
|
10392
|
+
* Distance from the top of the scroll container at which the sticky TOC pins,
|
|
10393
|
+
* as any CSS length or expression. Raise it to clear a fixed header — e.g.
|
|
10394
|
+
* `"calc(var(--layout-header-height) + 1.5rem)"`. Drives both `top` and the
|
|
10395
|
+
* default `max-height`. Only applies while `sticky` is `true`.
|
|
10396
|
+
* @default "1.5rem"
|
|
10397
|
+
*/
|
|
10398
|
+
readonly stickyOffset: _angular_core.InputSignal<string | undefined>;
|
|
10399
|
+
/**
|
|
10400
|
+
* Overrides the sticky height cap. The default keeps the TOC within the
|
|
10401
|
+
* viewport (`calc(100dvh - offset - 1.5rem)`); set this when the TOC scrolls
|
|
10402
|
+
* inside a fixed-height container rather than the window — e.g.
|
|
10403
|
+
* `"calc(30rem - 3rem)"` for a 30rem scroll region. Only applies while
|
|
10404
|
+
* `sticky` is `true`.
|
|
10405
|
+
*/
|
|
10406
|
+
readonly stickyMaxHeight: _angular_core.InputSignal<string | undefined>;
|
|
10407
|
+
/**
|
|
10408
|
+
* Accessible name for the navigation landmark. Overrides the default, which is
|
|
10409
|
+
* the heading (via `aria-labelledby`) or the localised title when headless.
|
|
10410
|
+
* Useful to disambiguate multiple tables of contents on one page.
|
|
10411
|
+
*/
|
|
10412
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
10413
|
+
private readonly translations;
|
|
10414
|
+
private readonly host;
|
|
10415
|
+
private readonly platformId;
|
|
10416
|
+
constructor();
|
|
10417
|
+
/** Top-level items, used by items to compute their hierarchical numbers. */
|
|
10418
|
+
readonly items: _angular_core.Signal<readonly any[]>;
|
|
10419
|
+
private readonly titleLabel;
|
|
10420
|
+
readonly resolvedHeading: _angular_core.Signal<string | null>;
|
|
10421
|
+
readonly navLabel: _angular_core.Signal<string>;
|
|
10422
|
+
readonly headingId: string;
|
|
10423
|
+
/** Scroll the TOC's own scroll region so the active item's row is visible. */
|
|
10424
|
+
private revealActiveItem;
|
|
10425
|
+
/** Nearest scrollable ancestor within this component (e.g. the sticky `nav`). */
|
|
10426
|
+
private findScrollParent;
|
|
10427
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableOfContentsComponent, never>;
|
|
10428
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableOfContentsComponent, "tedi-table-of-contents", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "scrollActiveIntoView": { "alias": "scrollActiveIntoView"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "numbered": { "alias": "numbered"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "stickyOffset": { "alias": "stickyOffset"; "required": false; "isSignal": true; }; "stickyMaxHeight": { "alias": "stickyMaxHeight"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, ["items"], ["tedi-table-of-contents-item"], true, never>;
|
|
10429
|
+
}
|
|
10430
|
+
|
|
10431
|
+
/**
|
|
10432
|
+
* A single entry in a `tedi-table-of-contents`. Its non-item content (a
|
|
10433
|
+
* `tedi-link`, anchor or button) is the clickable label; nested
|
|
10434
|
+
* `tedi-table-of-contents-item` children become this item's sub-items and are
|
|
10435
|
+
* only revealed when the item is on the active branch.
|
|
10436
|
+
*/
|
|
10437
|
+
declare class TableOfContentsItemComponent {
|
|
10438
|
+
/**
|
|
10439
|
+
* Unique id. Required to mark the item active (via the parent's `activeId`)
|
|
10440
|
+
* and to be the parent of nested items. Named `itemId` to avoid
|
|
10441
|
+
* shadowing the native `id` attribute.
|
|
10442
|
+
*/
|
|
10443
|
+
readonly itemId: _angular_core.InputSignal<string | undefined>;
|
|
10444
|
+
/** Render a separator below the item. */
|
|
10445
|
+
readonly separator: _angular_core.InputSignal<boolean>;
|
|
10446
|
+
private readonly root;
|
|
10447
|
+
private readonly parent;
|
|
10448
|
+
/** Direct nested items (a single level down). */
|
|
10449
|
+
readonly childItems: Signal<readonly TableOfContentsItemComponent[]>;
|
|
10450
|
+
readonly numbered: Signal<boolean>;
|
|
10451
|
+
readonly depth: Signal<number>;
|
|
10452
|
+
/** CSS indent level — capped at 2, matching the design's two-level hierarchy. */
|
|
10453
|
+
readonly level: Signal<number>;
|
|
10454
|
+
readonly hasChildren: Signal<boolean>;
|
|
10455
|
+
readonly isSelected: Signal<boolean>;
|
|
10456
|
+
/** Whether the active item is this item or somewhere in its subtree. */
|
|
10457
|
+
readonly containsActive: Signal<boolean>;
|
|
10458
|
+
/**
|
|
10459
|
+
* Whether this item's nested group is expanded: always when the TOC is
|
|
10460
|
+
* `defaultOpen`, otherwise only along the branch leading to the active item.
|
|
10461
|
+
*/
|
|
10462
|
+
readonly isOpen: Signal<boolean>;
|
|
10463
|
+
private readonly siblings;
|
|
10464
|
+
private readonly index;
|
|
10465
|
+
private readonly numberPrefix;
|
|
10466
|
+
/** Hierarchical number base without trailing dot, e.g. `2` or `2.1`. */
|
|
10467
|
+
readonly numberBase: Signal<string>;
|
|
10468
|
+
/** Rendered number — `1.` at the top level, `1.1` when nested. */
|
|
10469
|
+
readonly numberLabel: Signal<string>;
|
|
10470
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableOfContentsItemComponent, never>;
|
|
10471
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableOfContentsItemComponent, "tedi-table-of-contents-item", never, { "itemId": { "alias": "itemId"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; }, {}, ["childItems"], ["*", "[tediTocItemSuffix]", "tedi-table-of-contents-item"], true, never>;
|
|
10472
|
+
}
|
|
10473
|
+
|
|
10474
|
+
/**
|
|
10475
|
+
* Marks projected content as the trailing suffix of a
|
|
10476
|
+
* `tedi-table-of-contents-item`. The item renders it right-aligned at the end of
|
|
10477
|
+
* the row — e.g. a `tedi-tag`.
|
|
10478
|
+
*/
|
|
10479
|
+
declare class TableOfContentsItemSuffixDirective {
|
|
10480
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableOfContentsItemSuffixDirective, never>;
|
|
10481
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableOfContentsItemSuffixDirective, "[tediTocItemSuffix]", never, {}, {}, never, never, true, never>;
|
|
10482
|
+
}
|
|
10483
|
+
|
|
10484
|
+
/**
|
|
10485
|
+
* Mobile variant of `tedi-table-of-contents`: a bottom bar that opens the list
|
|
10486
|
+
* in a bottom-sheet overlay. Takes the same `tedi-table-of-contents-item`
|
|
10487
|
+
* children as the desktop card; render it on small viewports.
|
|
10488
|
+
*
|
|
10489
|
+
* It provides itself as `TableOfContentsComponent` so the projected items
|
|
10490
|
+
* resolve their context (`activeId`, `numbered`, `items`) exactly as they do
|
|
10491
|
+
* inside the desktop component.
|
|
10492
|
+
*/
|
|
10493
|
+
declare class TableOfContentsCollapsibleComponent implements OnDestroy {
|
|
10494
|
+
/**
|
|
10495
|
+
* Heading shown on the bar and sheet. Defaults to the localised "Table of
|
|
10496
|
+
* contents" label.
|
|
10497
|
+
*/
|
|
10498
|
+
readonly heading: _angular_core.InputSignal<string | null | undefined>;
|
|
10499
|
+
/** Id of the currently active item. */
|
|
10500
|
+
readonly activeId: _angular_core.InputSignal<string | undefined>;
|
|
10501
|
+
/**
|
|
10502
|
+
* Whether nested items are expanded by default. When `false`, a branch reveals
|
|
10503
|
+
* its sub-items only while it is on the active trail. Mirrors
|
|
10504
|
+
* `tedi-table-of-contents` so projected items resolve it via the shared root.
|
|
10505
|
+
* @default true
|
|
10506
|
+
*/
|
|
10507
|
+
readonly defaultOpen: _angular_core.InputSignal<boolean>;
|
|
10508
|
+
/** Show auto-generated hierarchical numbers (`1.`, `2.`, `2.1`, …). */
|
|
10509
|
+
readonly numbered: _angular_core.InputSignal<boolean>;
|
|
10510
|
+
/**
|
|
10511
|
+
* Draws a divider under each item except the last — sub-items included — so the
|
|
10512
|
+
* sheet's list reads as a set of separated rows. Mirrors `tedi-table-of-contents`.
|
|
10513
|
+
* @default false
|
|
10514
|
+
*/
|
|
10515
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
10516
|
+
/**
|
|
10517
|
+
* Pin the bar to the bottom of the viewport. Set `false` to render it inline.
|
|
10518
|
+
*/
|
|
10519
|
+
readonly sticky: _angular_core.InputSignal<boolean>;
|
|
10520
|
+
/**
|
|
10521
|
+
* Hide the bar while the user scrolls down and reveal it when they scroll up,
|
|
10522
|
+
* keeping the reading area clear. Watches window scroll by default; set
|
|
10523
|
+
* `scrollContainer` to watch a scrollable element instead.
|
|
10524
|
+
* @default false
|
|
10525
|
+
*/
|
|
10526
|
+
readonly hideOnScroll: _angular_core.InputSignal<boolean>;
|
|
10527
|
+
/**
|
|
10528
|
+
* Element whose scroll drives `hideOnScroll`. Defaults to the window; set it to
|
|
10529
|
+
* the scrollable container when the content scrolls inside a region rather than
|
|
10530
|
+
* the whole page.
|
|
10531
|
+
*/
|
|
10532
|
+
readonly scrollContainer: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
10533
|
+
/**
|
|
10534
|
+
* Accessible name for the sheet's navigation landmark and dialog. Defaults to
|
|
10535
|
+
* the visible title.
|
|
10536
|
+
*/
|
|
10537
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
10538
|
+
/** Top-level items, read by items to compute their hierarchical numbers. */
|
|
10539
|
+
readonly items: _angular_core.Signal<readonly any[]>;
|
|
10540
|
+
private readonly dialog;
|
|
10541
|
+
private readonly overlay;
|
|
10542
|
+
private readonly translations;
|
|
10543
|
+
private readonly platformId;
|
|
10544
|
+
private readonly zone;
|
|
10545
|
+
private readonly sheet;
|
|
10546
|
+
private dialogRef?;
|
|
10547
|
+
readonly open: _angular_core.WritableSignal<boolean>;
|
|
10548
|
+
/** True while the sticky bar is hidden by a scroll-down gesture. */
|
|
10549
|
+
readonly barHidden: _angular_core.WritableSignal<boolean>;
|
|
10550
|
+
private lastScrollY;
|
|
10551
|
+
private ticking;
|
|
10552
|
+
private scrollTarget?;
|
|
10553
|
+
private readonly onScroll;
|
|
10554
|
+
constructor();
|
|
10555
|
+
private currentScrollY;
|
|
10556
|
+
private readonly titleLabel;
|
|
10557
|
+
readonly openLabel: _angular_core.Signal<string>;
|
|
10558
|
+
readonly closeLabel: _angular_core.Signal<string>;
|
|
10559
|
+
readonly title: _angular_core.Signal<string>;
|
|
10560
|
+
/** Accessible name for the nav/dialog — the `ariaLabel` override or the title. */
|
|
10561
|
+
readonly navLabel: _angular_core.Signal<string>;
|
|
10562
|
+
toggle(open: boolean): void;
|
|
10563
|
+
close(): void;
|
|
10564
|
+
ngOnDestroy(): void;
|
|
10565
|
+
private handleScroll;
|
|
10566
|
+
onListClick(event: Event): void;
|
|
10567
|
+
private openSheet;
|
|
10568
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableOfContentsCollapsibleComponent, never>;
|
|
10569
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableOfContentsCollapsibleComponent, "tedi-table-of-contents-collapsible", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "numbered": { "alias": "numbered"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "scrollContainer": { "alias": "scrollContainer"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, ["items"], ["tedi-table-of-contents-item"], true, never>;
|
|
10570
|
+
}
|
|
10571
|
+
|
|
9483
10572
|
/**
|
|
9484
10573
|
* Root of the Tabs compound component. Wraps `tedi-tabs-list` and
|
|
9485
10574
|
* `tedi-tabs-content` elements and owns the active-tab state, which the list,
|
|
@@ -9640,9 +10729,21 @@ declare class ModalComponent implements AfterViewInit, OnDestroy {
|
|
|
9640
10729
|
readonly position: _angular_core.InputSignal<ModalPosition>;
|
|
9641
10730
|
/** @deprecated Whether clicking the backdrop closes the modal. Only used in standalone mode. */
|
|
9642
10731
|
readonly closeOnBackdropClick: _angular_core.InputSignal<boolean>;
|
|
10732
|
+
/**
|
|
10733
|
+
* Accessible name for the dialog. Only needed when the modal has no heading
|
|
10734
|
+
* in `<tedi-modal-header>`, or that heading is not the name to announce.
|
|
10735
|
+
* Standalone mode only; service mode uses `ModalConfig.ariaLabel`.
|
|
10736
|
+
*/
|
|
10737
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
10738
|
+
/**
|
|
10739
|
+
* Id of an element labelling the dialog, for a label outside
|
|
10740
|
+
* `<tedi-modal-header>`. Ignored when `ariaLabel` is set.
|
|
10741
|
+
*/
|
|
10742
|
+
readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
|
|
9643
10743
|
private readonly document;
|
|
9644
10744
|
private readonly host;
|
|
9645
10745
|
private readonly platformId;
|
|
10746
|
+
private readonly idGenerator;
|
|
9646
10747
|
/**
|
|
9647
10748
|
* When a ModalRef is available, this component is inside a CDK Dialog
|
|
9648
10749
|
* and should act as a layout-only wrapper.
|
|
@@ -9653,17 +10754,29 @@ declare class ModalComponent implements AfterViewInit, OnDestroy {
|
|
|
9653
10754
|
private readonly isPresetWidth;
|
|
9654
10755
|
/** Custom width for non-preset widths (legacy mode only). */
|
|
9655
10756
|
readonly customWidth: Signal<ModalWidth | null>;
|
|
10757
|
+
/** Re-resolved on every open, since the heading is projected content. */
|
|
10758
|
+
private readonly headingLabelId;
|
|
10759
|
+
/** @internal */
|
|
10760
|
+
protected readonly dialogAriaLabel: Signal<string | null>;
|
|
10761
|
+
/** @internal `aria-label` wins, so it is never paired with a labelledby. */
|
|
10762
|
+
protected readonly dialogAriaLabelledBy: Signal<string | null>;
|
|
9656
10763
|
readonly classes: Signal<string>;
|
|
9657
10764
|
constructor();
|
|
9658
10765
|
ngAfterViewInit(): void;
|
|
9659
10766
|
ngOnDestroy(): void;
|
|
9660
10767
|
private onOpen;
|
|
10768
|
+
/**
|
|
10769
|
+
* A DOM query rather than a `contentChild`, because the header injects this
|
|
10770
|
+
* component (importing it back would close a cycle) and the heading is
|
|
10771
|
+
* double-projected, out of reach of any query here.
|
|
10772
|
+
*/
|
|
10773
|
+
private resolveHeadingLabel;
|
|
9661
10774
|
private onClose;
|
|
9662
10775
|
/** @internal */
|
|
9663
10776
|
onBackdropClick(): void;
|
|
9664
10777
|
private handleKeydown;
|
|
9665
10778
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
9666
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "tedi-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["tedi-modal-header", "tedi-modal-content", "tedi-modal-footer"], true, never>;
|
|
10779
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "tedi-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["tedi-modal-header", "tedi-modal-content", "tedi-modal-footer"], true, never>;
|
|
9667
10780
|
}
|
|
9668
10781
|
|
|
9669
10782
|
/**
|
|
@@ -9688,6 +10801,8 @@ declare class ModalRef<R = unknown> {
|
|
|
9688
10801
|
declare class ModalService {
|
|
9689
10802
|
private readonly dialog;
|
|
9690
10803
|
private readonly overlay;
|
|
10804
|
+
private readonly injector;
|
|
10805
|
+
private readonly idGenerator;
|
|
9691
10806
|
/**
|
|
9692
10807
|
* Open a modal dialog with the given component as content.
|
|
9693
10808
|
*
|
|
@@ -9709,6 +10824,16 @@ declare class ModalService {
|
|
|
9709
10824
|
open<R = unknown, D = unknown>(component: ComponentType<unknown>, config?: ModalConfig<D>): ModalRef<R>;
|
|
9710
10825
|
/** Close all open modals. */
|
|
9711
10826
|
closeAll(): void;
|
|
10827
|
+
/**
|
|
10828
|
+
* Names the dialog from the heading in its `<tedi-modal-header>` when the
|
|
10829
|
+
* caller passed no label of their own. Deferred, because `Dialog.open`
|
|
10830
|
+
* returns before the content renders and the heading does not exist yet.
|
|
10831
|
+
*
|
|
10832
|
+
* Written onto the container rather than passed as
|
|
10833
|
+
* `DialogConfig.ariaLabelledBy`, which would commit to an id before knowing
|
|
10834
|
+
* whether a heading exists and leave a dangling reference when none does.
|
|
10835
|
+
*/
|
|
10836
|
+
private labelFromHeading;
|
|
9712
10837
|
private buildPanelClasses;
|
|
9713
10838
|
private setupDialogBehavior;
|
|
9714
10839
|
private buildPositionStrategy;
|
|
@@ -9965,7 +11090,7 @@ declare class StatusBadgeComponent {
|
|
|
9965
11090
|
*/
|
|
9966
11091
|
icon: _angular_core.InputSignal<string>;
|
|
9967
11092
|
classes: _angular_core.Signal<string[]>;
|
|
9968
|
-
ariaLive: _angular_core.Signal<"
|
|
11093
|
+
ariaLive: _angular_core.Signal<"polite" | "assertive" | null>;
|
|
9969
11094
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusBadgeComponent, never>;
|
|
9970
11095
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusBadgeComponent, "tedi-status-badge", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9971
11096
|
}
|
|
@@ -10089,6 +11214,6 @@ declare function isValidTime(time: string | null | undefined): boolean;
|
|
|
10089
11214
|
*/
|
|
10090
11215
|
declare function normalizeTime(input: string): string | null;
|
|
10091
11216
|
|
|
10092
|
-
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, FormFieldExtraDirective, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HeaderTopComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FIELD_CONTEXT, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, TextareaComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, cookieSignal, createTablePersistence, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination };
|
|
10093
|
-
export type { AccordionInputs, AlertRole, AlertSize, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, BreadcrumbsInputs, BreadcrumbsVariant, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CalendarView, CardBackground, CardBorderPlacement, CardBorderRadius, CardBorderType, CardContentInputs, CardIconSize, CardIconType, CardInputs, CardPadding, CardPaddingNumber, CardResolvedCorners, CardRowDirection, CardRowInputs, CarouselIndicatorsVariant, CheckboxCardVariant, CheckboxGroupDirection, CheckboxSize, ClosingButtonIconSize, ClosingButtonSize, ColInputs, ColWidth, CollapseButtonArrowType, CollapseButtonSize, CollapseSize, Cols, ColumnReorderPhase, CompareWithFn, ComponentInputs, DateAfter, DateBefore, DateFieldMode, DateInterval, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DateRange, DayOfWeek, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FieldContext, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLanguageLabelPosition, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HeaderTopAlignment, HeaderTopInputs, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputGroupContext, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, LabelVisuallyHidden, Language, LinkInputs, LinkSize, LinkVariant, Matcher, ModalConfig, ModalFullscreen, ModalPosition, ModalScrollBehavior, ModalSize, ModalWidth, ModalWidthPreset, NumberFieldSize, OverlayPosition, OverlaySide, PaginationBackground, PaginationDividerPosition, PaginationItem, PaginationItemType, PaginationLabels, PaginationVisibility, PopoverPosition, PopoverWidth, PopoverWidthPreset, ProgressBarAnnounce, ProgressBarInputs, ProgressBarLabelPosition, ProgressBarSize, ProgressBarValuePosition, RadioCardVariant, RadioGroupDirection, RadioSize, Representative, RepresentativeIcon, RowInputs, ScrollFadePosition, ScrollFadeScrollbar, ScrollFadeSize, SearchButton, SearchSize, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SliderHideLabel, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableControlColumn, TableControlColumnOrder, TableExpandTrigger, TableFilterModalData, TableFilterOptions, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TabsOverflowMode, TagEllipsis, TagOverflowOptions, TagType, TediColumnDef, TediConfig, TediTableContextValue, TediTableFilterContext, TextColor, TextGroupInputs, TextGroupType, TextModifiers, TextareaSize, Theme, TimeFieldFullscreen, TimeFieldModal, TimeFieldPickerTrigger, TimeFieldPickerVariant, TimeFieldUseNativePicker, TimePickerVariant, TimelineCardPadding, TimelineVariant, ToastConfig, ToastPosition, ToastRole, ToastType, ToggleSize, ToggleType, ToggleVariant, TooltipOpenWith, TooltipPosition, TooltipWidth, UsePaginationArgs, VerticalSpacingSize, VirtualRow };
|
|
11217
|
+
export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FloatingButtonComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, FormFieldExtraDirective, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HeaderTopComponent, HeadingWithIconComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SearchFooterActionsComponent, SearchFooterTemplateDirective, SearchSuggestionComponent, SearchSuggestionTemplateDirective, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SkeletonBlockComponent, SkeletonComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FIELD_CONTEXT, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TableOfContentsCollapsibleComponent, TableOfContentsComponent, TableOfContentsItemComponent, TableOfContentsItemSuffixDirective, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, TextareaComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, TruncateComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, controlDescribedBy, cookieSignal, createTablePersistence, deriveControlState, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, highlightParts, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination };
|
|
11218
|
+
export type { AccordionInputs, AlertRole, AlertSize, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, BreadcrumbsInputs, BreadcrumbsVariant, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CalendarView, CardBackground, CardBorderPlacement, CardBorderRadius, CardBorderType, CardContentInputs, CardIconSize, CardIconType, CardInputs, CardPadding, CardPaddingNumber, CardResolvedCorners, CardRowDirection, CardRowInputs, CarouselIndicatorsVariant, CheckboxCardVariant, CheckboxGroupDirection, CheckboxSize, ClosingButtonIconSize, ClosingButtonSize, ColInputs, ColWidth, CollapseButtonArrowType, CollapseButtonSize, CollapseSize, Cols, ColumnReorderPhase, CompareWithFn, ComponentInputs, ControlDescribedBy, DateAfter, DateBefore, DateFieldMode, DateInterval, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DateRange, DayOfWeek, DerivedControlState, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FieldContext, FilterOption, FilterSize, FilterVariant, FloatingButtonAxis, FloatingButtonOffset, FloatingButtonPlacement, FloatingButtonPosition, FloatingButtonSize, FloatingButtonVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLanguageLabelPosition, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HeaderTopAlignment, HeaderTopInputs, HeadingLevel, HeadingModifiers, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputGroupContext, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, LabelVisuallyHidden, Language, LinkInputs, LinkSize, LinkVariant, Matcher, ModalConfig, ModalFullscreen, ModalPosition, ModalScrollBehavior, ModalSize, ModalWidth, ModalWidthPreset, NumberFieldSize, OverlayPosition, OverlaySide, PaginationBackground, PaginationDividerPosition, PaginationItem, PaginationItemType, PaginationLabels, PaginationVisibility, PopoverPosition, PopoverWidth, PopoverWidthPreset, ProgressBarAnnounce, ProgressBarInputs, ProgressBarLabelPosition, ProgressBarSize, ProgressBarValuePosition, RadioCardVariant, RadioGroupDirection, RadioSize, Representative, RepresentativeIcon, RowInputs, ScrollFadePosition, ScrollFadeScrollbar, ScrollFadeSize, SearchButton, SearchHighlightPart, SearchSize, SearchSuggestionContext, SearchSuggestionView, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SkeletonBlockHeight, SkeletonBlockInputs, SkeletonBlockTextHeight, SkeletonBlockWidth, SliderHideLabel, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableControlColumn, TableControlColumnOrder, TableExpandTrigger, TableFilterModalData, TableFilterOptions, TableOfContentsHeadingLevel, TableOfContentsVariant, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TabsOverflowMode, TagEllipsis, TagOverflowOptions, TagType, TediColumnDef, TediConfig, TediTableContextValue, TediTableFilterContext, TextColor, TextGroupInputs, TextGroupType, TextModifiers, TextareaSize, Theme, TimeFieldFullscreen, TimeFieldModal, TimeFieldPickerTrigger, TimeFieldPickerVariant, TimeFieldUseNativePicker, TimePickerVariant, TimelineCardPadding, TimelineVariant, ToastConfig, ToastPosition, ToastRole, ToastType, ToggleSize, ToggleType, ToggleVariant, TooltipOpenWith, TooltipPosition, TooltipWidth, UsePaginationArgs, VerticalSpacingSize, VirtualRow };
|
|
10094
11219
|
//# sourceMappingURL=index.d.ts.map
|