@angular/aria 21.0.0-rc.0 → 21.0.0-rc.1

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.
Files changed (48) hide show
  1. package/_adev_assets/aria-accordion.json +14 -14
  2. package/_adev_assets/aria-combobox.json +10 -10
  3. package/_adev_assets/aria-grid.json +81 -12
  4. package/_adev_assets/aria-listbox.json +3 -3
  5. package/_adev_assets/aria-menu.json +174 -74
  6. package/_adev_assets/aria-tabs.json +22 -22
  7. package/_adev_assets/aria-toolbar.json +99 -120
  8. package/_adev_assets/aria-tree.json +20 -16
  9. package/fesm2022/_widget-chunk.mjs +266 -144
  10. package/fesm2022/_widget-chunk.mjs.map +1 -1
  11. package/fesm2022/accordion.mjs +12 -13
  12. package/fesm2022/accordion.mjs.map +1 -1
  13. package/fesm2022/aria.mjs +1 -1
  14. package/fesm2022/aria.mjs.map +1 -1
  15. package/fesm2022/combobox.mjs +9 -7
  16. package/fesm2022/combobox.mjs.map +1 -1
  17. package/fesm2022/grid.mjs +61 -12
  18. package/fesm2022/grid.mjs.map +1 -1
  19. package/fesm2022/listbox.mjs +14 -15
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +117 -61
  22. package/fesm2022/menu.mjs.map +1 -1
  23. package/fesm2022/private.mjs +390 -399
  24. package/fesm2022/private.mjs.map +1 -1
  25. package/fesm2022/tabs.mjs +16 -17
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs +79 -44
  28. package/fesm2022/toolbar.mjs.map +1 -1
  29. package/fesm2022/tree.mjs +22 -19
  30. package/fesm2022/tree.mjs.map +1 -1
  31. package/package.json +2 -10
  32. package/types/_grid-chunk.d.ts +115 -53
  33. package/types/accordion.d.ts +4 -4
  34. package/types/combobox.d.ts +2 -2
  35. package/types/grid.d.ts +12 -3
  36. package/types/listbox.d.ts +3 -4
  37. package/types/menu.d.ts +33 -21
  38. package/types/private.d.ts +263 -341
  39. package/types/tabs.d.ts +4 -4
  40. package/types/toolbar.d.ts +29 -26
  41. package/types/tree.d.ts +5 -6
  42. package/_adev_assets/aria-radio-group.json +0 -389
  43. package/fesm2022/deferred-content.mjs +0 -99
  44. package/fesm2022/deferred-content.mjs.map +0 -1
  45. package/fesm2022/radio-group.mjs +0 -338
  46. package/fesm2022/radio-group.mjs.map +0 -1
  47. package/types/deferred-content.d.ts +0 -38
  48. package/types/radio-group.d.ts +0 -84
package/types/tabs.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Signal, OnInit, OnDestroy } from '@angular/core';
3
3
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
4
+ import * as i1 from '@angular/aria/private';
4
5
  import { TabPattern, TabPanelPattern, TabListPattern } from '@angular/aria/private';
5
- import * as i1 from '@angular/aria/deferred-content';
6
6
 
7
7
  interface HasElement {
8
8
  element: Signal<HTMLElement>;
@@ -68,8 +68,8 @@ declare class TabList implements OnInit, OnDestroy {
68
68
  readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
69
69
  /** Whether focus should wrap when navigating. */
70
70
  readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
71
- /** Whether disabled items in the list should be skipped when navigating. */
72
- readonly skipDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
71
+ /** Whether to allow disabled items to receive focus. */
72
+ readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
73
73
  /** The focus strategy used by the tablist. */
74
74
  readonly focusMode: _angular_core.InputSignal<"roving" | "activedescendant">;
75
75
  /** The selection strategy used by the tablist. */
@@ -89,7 +89,7 @@ declare class TabList implements OnInit, OnDestroy {
89
89
  register(child: Tab): void;
90
90
  deregister(child: Tab): void;
91
91
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabList, never>;
92
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabList, "[ngTabList]", ["ngTabList"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "skipDisabled": { "alias": "skipDisabled"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectedTab": { "alias": "selectedTab"; "required": false; "isSignal": true; }; }, { "selectedTab": "selectedTabChange"; }, never, never, true, never>;
92
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabList, "[ngTabList]", ["ngTabList"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectedTab": { "alias": "selectedTab"; "required": false; "isSignal": true; }; }, { "selectedTab": "selectedTabChange"; }, never, never, true, never>;
93
93
  }
94
94
  /** A selectable tab in a TabList. */
95
95
  declare class Tab implements HasElement, OnInit, OnDestroy {
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Signal, OnInit, OnDestroy } from '@angular/core';
3
3
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
4
- import { ToolbarWidgetPattern, ToolbarWidgetGroupPattern, ToolbarPattern, ToolbarWidgetGroupControls } from '@angular/aria/private';
4
+ import { ToolbarWidgetPattern, ToolbarPattern, SignalLike, ToolbarWidgetGroupPattern } from '@angular/aria/private';
5
5
 
6
6
  /**
7
7
  * A toolbar widget container.
@@ -26,14 +26,14 @@ declare class Toolbar<V> {
26
26
  private readonly _elementRef;
27
27
  /** The TabList nested inside of the container. */
28
28
  private readonly _widgets;
29
- /** A signal wrapper for directionality. */
29
+ /** Text direction. */
30
30
  readonly textDirection: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
31
31
  /** Sorted UIPatterns of the child widgets */
32
- readonly items: Signal<(ToolbarWidgetPattern<V> | ToolbarWidgetGroupPattern<V>)[]>;
32
+ readonly items: Signal<ToolbarWidgetPattern<V>[]>;
33
33
  /** Whether the toolbar is vertically or horizontally oriented. */
34
34
  readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
35
- /** Whether disabled items in the group should be skipped when navigating. */
36
- readonly skipDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
35
+ /** Whether to allow disabled items to receive focus. */
36
+ softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
37
37
  /** Whether the toolbar is disabled. */
38
38
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
39
39
  /** Whether focus should wrap when navigating. */
@@ -41,15 +41,15 @@ declare class Toolbar<V> {
41
41
  /** The toolbar UIPattern. */
42
42
  readonly _pattern: ToolbarPattern<V>;
43
43
  /** Whether the toolbar has received focus yet. */
44
- private _hasFocused;
44
+ private _hasBeenFocused;
45
45
  constructor();
46
46
  onFocus(): void;
47
- register(widget: ToolbarWidget<V> | ToolbarWidgetGroup<V>): void;
48
- unregister(widget: ToolbarWidget<V> | ToolbarWidgetGroup<V>): void;
47
+ register(widget: ToolbarWidget<V>): void;
48
+ unregister(widget: ToolbarWidget<V>): void;
49
49
  /** Finds the toolbar item associated with a given element. */
50
50
  private _getItem;
51
51
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Toolbar<any>, never>;
52
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Toolbar<any>, "[ngToolbar]", ["ngToolbar"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "skipDisabled": { "alias": "skipDisabled"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
52
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Toolbar<any>, "[ngToolbar]", ["ngToolbar"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
53
53
  }
54
54
  /**
55
55
  * A widget within a toolbar.
@@ -65,7 +65,7 @@ declare class ToolbarWidget<V> implements OnInit, OnDestroy {
65
65
  /** A unique identifier for the widget. */
66
66
  private readonly _generatedId;
67
67
  /** A unique identifier for the widget. */
68
- readonly id: Signal<string>;
68
+ readonly id: _angular_core.InputSignal<string>;
69
69
  /** The parent Toolbar UIPattern. */
70
70
  readonly toolbar: Signal<ToolbarPattern<any>>;
71
71
  /** A reference to the widget element to be focused on navigation. */
@@ -74,40 +74,43 @@ declare class ToolbarWidget<V> implements OnInit, OnDestroy {
74
74
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
75
75
  /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */
76
76
  readonly hardDisabled: Signal<boolean>;
77
+ /** The optional ToolbarWidgetGroup this widget belongs to. */
78
+ readonly _group: ToolbarWidgetGroup<any> | null;
79
+ /** The value associated with the widget. */
80
+ readonly value: _angular_core.InputSignal<V>;
81
+ /** Whether the widget is currently active (focused). */
82
+ readonly active: Signal<boolean>;
83
+ /** Whether the widget is selected (only relevant in a selection group). */
84
+ readonly selected: () => boolean;
85
+ readonly group: SignalLike<ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined>;
77
86
  /** The ToolbarWidget UIPattern. */
78
87
  readonly _pattern: ToolbarWidgetPattern<V>;
79
88
  ngOnInit(): void;
80
89
  ngOnDestroy(): void;
81
90
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToolbarWidget<any>, never>;
82
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToolbarWidget<any>, "[ngToolbarWidget]", ["ngToolbarWidget"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
91
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToolbarWidget<any>, "[ngToolbarWidget]", ["ngToolbarWidget"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
83
92
  }
84
93
  /**
85
94
  * A directive that groups toolbar widgets, used for more complex widgets like radio groups that
86
95
  * have their own internal navigation.
87
96
  */
88
- declare class ToolbarWidgetGroup<V> implements OnInit, OnDestroy {
89
- /** A reference to the widget element. */
90
- private readonly _elementRef;
97
+ declare class ToolbarWidgetGroup<V> {
91
98
  /** The parent Toolbar. */
92
99
  private readonly _toolbar;
93
- /** A unique identifier for the widget. */
94
- private readonly _generatedId;
95
- /** A unique identifier for the widget. */
96
- readonly id: Signal<string>;
100
+ /** The list of child widgets within the group. */
101
+ private readonly _widgets;
97
102
  /** The parent Toolbar UIPattern. */
98
103
  readonly toolbar: Signal<ToolbarPattern<any> | undefined>;
99
- /** A reference to the widget element to be focused on navigation. */
100
- readonly element: Signal<any>;
101
104
  /** Whether the widget group is disabled. */
102
105
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
103
- /** The controls that can be performed on the widget group. */
104
- readonly controls: _angular_core.WritableSignal<ToolbarWidgetGroupControls | undefined>;
106
+ /** The list of toolbar items within the group. */
107
+ readonly items: () => ToolbarWidgetPattern<any>[];
108
+ /** Whether the group allows multiple widgets to be selected. */
109
+ readonly multi: _angular_core.InputSignalWithTransform<boolean, unknown>;
105
110
  /** The ToolbarWidgetGroup UIPattern. */
106
- readonly _pattern: ToolbarWidgetGroupPattern<V>;
107
- ngOnInit(): void;
108
- ngOnDestroy(): void;
111
+ readonly _pattern: ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>;
109
112
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToolbarWidgetGroup<any>, never>;
110
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToolbarWidgetGroup<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
113
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToolbarWidgetGroup<any>, "[ngToolbarWidgetGroup]", ["ngToolbarWidgetGroup"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; }, {}, ["_widgets"], never, true, never>;
111
114
  }
112
115
 
113
116
  export { Toolbar, ToolbarWidget, ToolbarWidgetGroup };
package/types/tree.d.ts CHANGED
@@ -1,9 +1,8 @@
1
1
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { Signal, OnInit, OnDestroy } from '@angular/core';
4
- import * as i1 from '@angular/aria/deferred-content';
5
- import { DeferredContentAware } from '@angular/aria/deferred-content';
6
- import { TreePattern, TreeItemPattern } from '@angular/aria/private';
4
+ import * as i1 from '@angular/aria/private';
5
+ import { TreePattern, DeferredContentAware, TreeItemPattern } from '@angular/aria/private';
7
6
  import { ComboboxPopup } from './combobox.js';
8
7
 
9
8
  interface HasElement {
@@ -53,8 +52,8 @@ declare class Tree<V> {
53
52
  readonly focusMode: _angular_core.InputSignal<"roving" | "activedescendant">;
54
53
  /** Whether navigation wraps. */
55
54
  readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
56
- /** Whether to skip disabled items during navigation. */
57
- readonly skipDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
55
+ /** Whether to allow disabled items to receive focus. */
56
+ readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
58
57
  /** Typeahead delay. */
59
58
  readonly typeaheadDelay: _angular_core.InputSignal<number>;
60
59
  /** Selected item values. */
@@ -75,7 +74,7 @@ declare class Tree<V> {
75
74
  unregister(child: TreeItem<V>): void;
76
75
  scrollActiveItemIntoView(options?: ScrollIntoViewOptions): void;
77
76
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree<any>, never>;
78
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Tree<any>, "[ngTree]", ["ngTree"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "skipDisabled": { "alias": "skipDisabled"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "nav": { "alias": "nav"; "required": false; "isSignal": true; }; "currentType": { "alias": "currentType"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, [{ directive: typeof ComboboxPopup; inputs: {}; outputs: {}; }]>;
77
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Tree<any>, "[ngTree]", ["ngTree"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "nav": { "alias": "nav"; "required": false; "isSignal": true; }; "currentType": { "alias": "currentType"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, [{ directive: typeof ComboboxPopup; inputs: {}; outputs: {}; }]>;
79
78
  }
80
79
  /**
81
80
  * A selectable and expandable Tree Item in a Tree.
@@ -1,389 +0,0 @@
1
- {
2
- "repo": "angular/components",
3
- "moduleLabel": "@angular/aria/radio-group",
4
- "moduleName": "@angular/aria/radio-group",
5
- "normalizedModuleName": "angular_aria_radio-group",
6
- "entries": [
7
- {
8
- "name": "RadioGroup",
9
- "isAbstract": false,
10
- "entryType": "undecorated_class",
11
- "members": [
12
- {
13
- "name": "textDirection",
14
- "type": "any",
15
- "memberType": "property",
16
- "memberTags": [
17
- "protected"
18
- ],
19
- "description": "A signal wrapper for directionality.",
20
- "jsdocTags": []
21
- },
22
- {
23
- "name": "items",
24
- "type": "any",
25
- "memberType": "property",
26
- "memberTags": [
27
- "protected"
28
- ],
29
- "description": "The RadioButton UIPatterns of the child RadioButtons.",
30
- "jsdocTags": []
31
- },
32
- {
33
- "name": "orientation",
34
- "type": "any",
35
- "memberType": "property",
36
- "memberTags": [
37
- "readonly"
38
- ],
39
- "description": "Whether the radio group is vertically or horizontally oriented.",
40
- "jsdocTags": []
41
- },
42
- {
43
- "name": "skipDisabled",
44
- "type": "any",
45
- "memberType": "property",
46
- "memberTags": [
47
- "readonly"
48
- ],
49
- "description": "Whether disabled items in the group should be skipped when navigating.",
50
- "jsdocTags": []
51
- },
52
- {
53
- "name": "focusMode",
54
- "type": "any",
55
- "memberType": "property",
56
- "memberTags": [
57
- "readonly"
58
- ],
59
- "description": "The focus strategy used by the radio group.",
60
- "jsdocTags": []
61
- },
62
- {
63
- "name": "disabled",
64
- "type": "any",
65
- "memberType": "property",
66
- "memberTags": [
67
- "readonly"
68
- ],
69
- "description": "Whether the radio group is disabled.",
70
- "jsdocTags": []
71
- },
72
- {
73
- "name": "readonly",
74
- "type": "any",
75
- "memberType": "property",
76
- "memberTags": [
77
- "readonly"
78
- ],
79
- "description": "Whether the radio group is readonly.",
80
- "jsdocTags": []
81
- },
82
- {
83
- "name": "value",
84
- "type": "any",
85
- "memberType": "property",
86
- "memberTags": [
87
- "readonly"
88
- ],
89
- "description": "The value of the currently selected radio button.",
90
- "jsdocTags": []
91
- },
92
- {
93
- "name": "onFocus",
94
- "signatures": [
95
- {
96
- "name": "onFocus",
97
- "entryType": "function",
98
- "description": "",
99
- "generics": [],
100
- "isNewType": false,
101
- "jsdocTags": [],
102
- "params": [],
103
- "rawComment": "",
104
- "returnType": "void"
105
- }
106
- ],
107
- "implementation": {
108
- "params": [],
109
- "isNewType": false,
110
- "returnType": "void",
111
- "generics": [],
112
- "name": "onFocus",
113
- "description": "",
114
- "entryType": "function",
115
- "jsdocTags": [],
116
- "rawComment": ""
117
- },
118
- "entryType": "function",
119
- "description": "",
120
- "jsdocTags": [],
121
- "rawComment": "",
122
- "memberType": "method",
123
- "memberTags": []
124
- }
125
- ],
126
- "generics": [
127
- {
128
- "name": "V"
129
- }
130
- ],
131
- "description": "A radio button group container.\n\nRadio groups are used to group multiple radio buttons or radio group labels so they function as\na single form control. The RadioGroup is meant to be used in conjunction with RadioButton\nas follows:\n\n```html\n<div ngRadioGroup>\n <div ngRadioButton value=\"1\">Option 1</div>\n <div ngRadioButton value=\"2\">Option 2</div>\n <div ngRadioButton value=\"3\">Option 3</div>\n</div>\n```",
132
- "jsdocTags": [],
133
- "rawComment": "/**\n * A radio button group container.\n *\n * Radio groups are used to group multiple radio buttons or radio group labels so they function as\n * a single form control. The RadioGroup is meant to be used in conjunction with RadioButton\n * as follows:\n *\n * ```html\n * <div ngRadioGroup>\n * <div ngRadioButton value=\"1\">Option 1</div>\n * <div ngRadioButton value=\"2\">Option 2</div>\n * <div ngRadioButton value=\"3\">Option 3</div>\n * </div>\n * ```\n */",
134
- "implements": [],
135
- "source": {
136
- "filePath": "/src/aria/radio-group/radio-group.ts",
137
- "startLine": 84,
138
- "endLine": 200
139
- }
140
- },
141
- {
142
- "name": "RadioButton",
143
- "isAbstract": false,
144
- "entryType": "directive",
145
- "members": [
146
- {
147
- "name": "id",
148
- "type": "any",
149
- "memberType": "property",
150
- "memberTags": [
151
- "readonly"
152
- ],
153
- "description": "A unique identifier for the radio button.",
154
- "jsdocTags": []
155
- },
156
- {
157
- "name": "value",
158
- "type": "any",
159
- "memberType": "property",
160
- "memberTags": [
161
- "readonly",
162
- "input"
163
- ],
164
- "description": "The value associated with the radio button.",
165
- "jsdocTags": [],
166
- "inputAlias": "value",
167
- "isRequiredInput": true
168
- },
169
- {
170
- "name": "group",
171
- "type": "any",
172
- "memberType": "property",
173
- "memberTags": [
174
- "readonly"
175
- ],
176
- "description": "The parent RadioGroup UIPattern.",
177
- "jsdocTags": []
178
- },
179
- {
180
- "name": "element",
181
- "type": "any",
182
- "memberType": "property",
183
- "memberTags": [],
184
- "description": "A reference to the radio button element to be focused on navigation.",
185
- "jsdocTags": []
186
- },
187
- {
188
- "name": "disabled",
189
- "type": "any",
190
- "memberType": "property",
191
- "memberTags": [
192
- "input"
193
- ],
194
- "description": "Whether the radio button is disabled.",
195
- "jsdocTags": [],
196
- "inputAlias": "disabled",
197
- "isRequiredInput": false
198
- },
199
- {
200
- "name": "selected",
201
- "type": "any",
202
- "memberType": "property",
203
- "memberTags": [
204
- "readonly"
205
- ],
206
- "description": "Whether the radio button is selected.",
207
- "jsdocTags": []
208
- }
209
- ],
210
- "generics": [
211
- {
212
- "name": "V"
213
- }
214
- ],
215
- "description": "A selectable radio button in a RadioGroup.",
216
- "jsdocTags": [],
217
- "rawComment": "/** A selectable radio button in a RadioGroup. */",
218
- "implements": [],
219
- "isStandalone": true,
220
- "selector": "[ngRadioButton]",
221
- "exportAs": [
222
- "ngRadioButton"
223
- ],
224
- "source": {
225
- "filePath": "/src/aria/radio-group/radio-group.ts",
226
- "startLine": 203,
227
- "endLine": 252
228
- }
229
- }
230
- ],
231
- "symbols": [
232
- [
233
- "afterRenderEffect",
234
- "@angular/core"
235
- ],
236
- [
237
- "booleanAttribute",
238
- "@angular/core"
239
- ],
240
- [
241
- "computed",
242
- "@angular/core"
243
- ],
244
- [
245
- "contentChildren",
246
- "@angular/core"
247
- ],
248
- [
249
- "Directive",
250
- "@angular/core"
251
- ],
252
- [
253
- "ElementRef",
254
- "@angular/core"
255
- ],
256
- [
257
- "inject",
258
- "@angular/core"
259
- ],
260
- [
261
- "input",
262
- "@angular/core"
263
- ],
264
- [
265
- "linkedSignal",
266
- "@angular/core"
267
- ],
268
- [
269
- "model",
270
- "@angular/core"
271
- ],
272
- [
273
- "signal",
274
- "@angular/core"
275
- ],
276
- [
277
- "WritableSignal",
278
- "@angular/core"
279
- ],
280
- [
281
- "RadioButtonPattern",
282
- "@angular/aria/private"
283
- ],
284
- [
285
- "RadioGroupInputs",
286
- "@angular/aria/private"
287
- ],
288
- [
289
- "RadioGroupPattern",
290
- "@angular/aria/private"
291
- ],
292
- [
293
- "ToolbarRadioGroupInputs",
294
- "@angular/aria/private"
295
- ],
296
- [
297
- "ToolbarRadioGroupPattern",
298
- "@angular/aria/private"
299
- ],
300
- [
301
- "Directionality",
302
- "@angular/cdk/bidi"
303
- ],
304
- [
305
- "_IdGenerator",
306
- "@angular/cdk/a11y"
307
- ],
308
- [
309
- "ToolbarWidgetGroup",
310
- "@angular/aria/toolbar"
311
- ],
312
- [
313
- "RadioGroup",
314
- "@angular/aria/radio-group"
315
- ],
316
- [
317
- "RadioButton",
318
- "@angular/aria/radio-group"
319
- ],
320
- [
321
- "RadioGroup",
322
- "@angular/aria/radio-group"
323
- ],
324
- [
325
- "RadioGroup.textDirection",
326
- "@angular/aria/radio-group"
327
- ],
328
- [
329
- "RadioGroup.items",
330
- "@angular/aria/radio-group"
331
- ],
332
- [
333
- "RadioGroup.orientation",
334
- "@angular/aria/radio-group"
335
- ],
336
- [
337
- "RadioGroup.skipDisabled",
338
- "@angular/aria/radio-group"
339
- ],
340
- [
341
- "RadioGroup.focusMode",
342
- "@angular/aria/radio-group"
343
- ],
344
- [
345
- "RadioGroup.disabled",
346
- "@angular/aria/radio-group"
347
- ],
348
- [
349
- "RadioGroup.readonly",
350
- "@angular/aria/radio-group"
351
- ],
352
- [
353
- "RadioGroup.value",
354
- "@angular/aria/radio-group"
355
- ],
356
- [
357
- "RadioGroup.onFocus",
358
- "@angular/aria/radio-group"
359
- ],
360
- [
361
- "RadioButton",
362
- "@angular/aria/radio-group"
363
- ],
364
- [
365
- "RadioButton.id",
366
- "@angular/aria/radio-group"
367
- ],
368
- [
369
- "RadioButton.value",
370
- "@angular/aria/radio-group"
371
- ],
372
- [
373
- "RadioButton.group",
374
- "@angular/aria/radio-group"
375
- ],
376
- [
377
- "RadioButton.element",
378
- "@angular/aria/radio-group"
379
- ],
380
- [
381
- "RadioButton.disabled",
382
- "@angular/aria/radio-group"
383
- ],
384
- [
385
- "RadioButton.selected",
386
- "@angular/aria/radio-group"
387
- ]
388
- ]
389
- }
@@ -1,99 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { signal, model, Directive, inject, TemplateRef, ViewContainerRef, afterRenderEffect } from '@angular/core';
3
-
4
- class DeferredContentAware {
5
- contentVisible = signal(false, ...(ngDevMode ? [{
6
- debugName: "contentVisible"
7
- }] : []));
8
- preserveContent = model(false, ...(ngDevMode ? [{
9
- debugName: "preserveContent"
10
- }] : []));
11
- static ɵfac = i0.ɵɵngDeclareFactory({
12
- minVersion: "12.0.0",
13
- version: "20.2.0-next.2",
14
- ngImport: i0,
15
- type: DeferredContentAware,
16
- deps: [],
17
- target: i0.ɵɵFactoryTarget.Directive
18
- });
19
- static ɵdir = i0.ɵɵngDeclareDirective({
20
- minVersion: "17.1.0",
21
- version: "20.2.0-next.2",
22
- type: DeferredContentAware,
23
- isStandalone: true,
24
- inputs: {
25
- preserveContent: {
26
- classPropertyName: "preserveContent",
27
- publicName: "preserveContent",
28
- isSignal: true,
29
- isRequired: false,
30
- transformFunction: null
31
- }
32
- },
33
- outputs: {
34
- preserveContent: "preserveContentChange"
35
- },
36
- ngImport: i0
37
- });
38
- }
39
- i0.ɵɵngDeclareClassMetadata({
40
- minVersion: "12.0.0",
41
- version: "20.2.0-next.2",
42
- ngImport: i0,
43
- type: DeferredContentAware,
44
- decorators: [{
45
- type: Directive
46
- }]
47
- });
48
- class DeferredContent {
49
- _deferredContentAware = inject(DeferredContentAware, {
50
- optional: true
51
- });
52
- _templateRef = inject(TemplateRef);
53
- _viewContainerRef = inject(ViewContainerRef);
54
- _isRendered = false;
55
- deferredContentAware = signal(this._deferredContentAware, ...(ngDevMode ? [{
56
- debugName: "deferredContentAware"
57
- }] : []));
58
- constructor() {
59
- afterRenderEffect(() => {
60
- if (this.deferredContentAware()?.contentVisible()) {
61
- if (this._isRendered) return;
62
- this._viewContainerRef.clear();
63
- this._viewContainerRef.createEmbeddedView(this._templateRef);
64
- this._isRendered = true;
65
- } else if (!this.deferredContentAware()?.preserveContent()) {
66
- this._viewContainerRef.clear();
67
- this._isRendered = false;
68
- }
69
- });
70
- }
71
- static ɵfac = i0.ɵɵngDeclareFactory({
72
- minVersion: "12.0.0",
73
- version: "20.2.0-next.2",
74
- ngImport: i0,
75
- type: DeferredContent,
76
- deps: [],
77
- target: i0.ɵɵFactoryTarget.Directive
78
- });
79
- static ɵdir = i0.ɵɵngDeclareDirective({
80
- minVersion: "14.0.0",
81
- version: "20.2.0-next.2",
82
- type: DeferredContent,
83
- isStandalone: true,
84
- ngImport: i0
85
- });
86
- }
87
- i0.ɵɵngDeclareClassMetadata({
88
- minVersion: "12.0.0",
89
- version: "20.2.0-next.2",
90
- ngImport: i0,
91
- type: DeferredContent,
92
- decorators: [{
93
- type: Directive
94
- }],
95
- ctorParameters: () => []
96
- });
97
-
98
- export { DeferredContent, DeferredContentAware };
99
- //# sourceMappingURL=deferred-content.mjs.map