@angular/aria 21.0.0-rc.1 → 21.0.0-rc.3
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/_adev_assets/aria-accordion.json +429 -59
- package/_adev_assets/aria-combobox.json +261 -41
- package/_adev_assets/aria-grid.json +339 -85
- package/_adev_assets/aria-listbox.json +99 -70
- package/_adev_assets/aria-menu.json +355 -158
- package/_adev_assets/aria-tabs.json +198 -305
- package/_adev_assets/aria-toolbar.json +70 -221
- package/_adev_assets/aria-tree.json +153 -363
- package/fesm2022/_widget-chunk.mjs +388 -57
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +125 -72
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +129 -24
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +203 -65
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs +50 -39
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +179 -71
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +418 -440
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +105 -73
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +52 -44
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs +106 -63
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -2
- package/types/_grid-chunk.d.ts +216 -35
- package/types/accordion.d.ts +134 -35
- package/types/combobox.d.ts +141 -12
- package/types/grid.d.ts +150 -32
- package/types/listbox.d.ts +60 -28
- package/types/menu.d.ts +133 -49
- package/types/private.d.ts +210 -250
- package/types/tabs.d.ts +124 -44
- package/types/toolbar.d.ts +58 -36
- package/types/tree.d.ts +121 -49
package/fesm2022/toolbar.mjs
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, signal, computed, input, booleanAttribute, afterRenderEffect, Directive, contentChildren } from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, signal, computed, input, booleanAttribute, model, afterRenderEffect, Directive, contentChildren } from '@angular/core';
|
|
3
3
|
import { ToolbarPattern, ToolbarWidgetPattern, ToolbarWidgetGroupPattern } from '@angular/aria/private';
|
|
4
4
|
import { Directionality } from '@angular/cdk/bidi';
|
|
5
5
|
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
6
6
|
|
|
7
7
|
function sortDirectives(a, b) {
|
|
8
|
-
return (a.element
|
|
8
|
+
return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
|
|
9
9
|
}
|
|
10
10
|
class Toolbar {
|
|
11
11
|
_elementRef = inject(ElementRef);
|
|
12
|
+
element = this._elementRef.nativeElement;
|
|
12
13
|
_widgets = signal(new Set(), ...(ngDevMode ? [{
|
|
13
14
|
debugName: "_widgets"
|
|
14
15
|
}] : []));
|
|
15
16
|
textDirection = inject(Directionality).valueSignal;
|
|
16
|
-
|
|
17
|
-
debugName: "
|
|
17
|
+
_itemPatterns = computed(() => [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern), ...(ngDevMode ? [{
|
|
18
|
+
debugName: "_itemPatterns"
|
|
18
19
|
}] : []));
|
|
19
20
|
orientation = input('horizontal', ...(ngDevMode ? [{
|
|
20
21
|
debugName: "orientation"
|
|
@@ -37,12 +38,17 @@ class Toolbar {
|
|
|
37
38
|
}] : [{
|
|
38
39
|
transform: booleanAttribute
|
|
39
40
|
}]));
|
|
41
|
+
values = model([], ...(ngDevMode ? [{
|
|
42
|
+
debugName: "values"
|
|
43
|
+
}] : []));
|
|
40
44
|
_pattern = new ToolbarPattern({
|
|
41
45
|
...this,
|
|
46
|
+
items: this._itemPatterns,
|
|
42
47
|
activeItem: signal(undefined),
|
|
43
48
|
textDirection: this.textDirection,
|
|
44
49
|
element: () => this._elementRef.nativeElement,
|
|
45
|
-
getItem: e => this._getItem(e)
|
|
50
|
+
getItem: e => this._getItem(e),
|
|
51
|
+
values: this.values
|
|
46
52
|
});
|
|
47
53
|
_hasBeenFocused = signal(false, ...(ngDevMode ? [{
|
|
48
54
|
debugName: "_hasBeenFocused"
|
|
@@ -62,25 +68,24 @@ class Toolbar {
|
|
|
62
68
|
}
|
|
63
69
|
});
|
|
64
70
|
}
|
|
65
|
-
|
|
71
|
+
_onFocus() {
|
|
66
72
|
this._hasBeenFocused.set(true);
|
|
67
73
|
}
|
|
68
|
-
|
|
74
|
+
_register(widget) {
|
|
69
75
|
const widgets = this._widgets();
|
|
70
76
|
if (!widgets.has(widget)) {
|
|
71
77
|
widgets.add(widget);
|
|
72
78
|
this._widgets.set(new Set(widgets));
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
|
-
|
|
81
|
+
_unregister(widget) {
|
|
76
82
|
const widgets = this._widgets();
|
|
77
83
|
if (widgets.delete(widget)) {
|
|
78
84
|
this._widgets.set(new Set(widgets));
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
_getItem(element) {
|
|
82
|
-
|
|
83
|
-
return this.items().find(widget => widget.element() === widgetTarget);
|
|
88
|
+
return this._itemPatterns().find(item => item.element()?.contains(element));
|
|
84
89
|
}
|
|
85
90
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
86
91
|
minVersion: "12.0.0",
|
|
@@ -124,8 +129,18 @@ class Toolbar {
|
|
|
124
129
|
isSignal: true,
|
|
125
130
|
isRequired: false,
|
|
126
131
|
transformFunction: null
|
|
132
|
+
},
|
|
133
|
+
values: {
|
|
134
|
+
classPropertyName: "values",
|
|
135
|
+
publicName: "values",
|
|
136
|
+
isSignal: true,
|
|
137
|
+
isRequired: false,
|
|
138
|
+
transformFunction: null
|
|
127
139
|
}
|
|
128
140
|
},
|
|
141
|
+
outputs: {
|
|
142
|
+
values: "valuesChange"
|
|
143
|
+
},
|
|
129
144
|
host: {
|
|
130
145
|
attributes: {
|
|
131
146
|
"role": "toolbar"
|
|
@@ -134,14 +149,13 @@ class Toolbar {
|
|
|
134
149
|
"keydown": "_pattern.onKeydown($event)",
|
|
135
150
|
"click": "_pattern.onClick($event)",
|
|
136
151
|
"pointerdown": "_pattern.onPointerdown($event)",
|
|
137
|
-
"focusin": "
|
|
152
|
+
"focusin": "_onFocus()"
|
|
138
153
|
},
|
|
139
154
|
properties: {
|
|
140
155
|
"attr.tabindex": "_pattern.tabIndex()",
|
|
141
156
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
142
157
|
"attr.aria-orientation": "_pattern.orientation()"
|
|
143
|
-
}
|
|
144
|
-
classAttribute: "ng-toolbar"
|
|
158
|
+
}
|
|
145
159
|
},
|
|
146
160
|
exportAs: ["ngToolbar"],
|
|
147
161
|
ngImport: i0
|
|
@@ -159,14 +173,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
159
173
|
exportAs: 'ngToolbar',
|
|
160
174
|
host: {
|
|
161
175
|
'role': 'toolbar',
|
|
162
|
-
'class': 'ng-toolbar',
|
|
163
176
|
'[attr.tabindex]': '_pattern.tabIndex()',
|
|
164
177
|
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
165
178
|
'[attr.aria-orientation]': '_pattern.orientation()',
|
|
166
179
|
'(keydown)': '_pattern.onKeydown($event)',
|
|
167
180
|
'(click)': '_pattern.onClick($event)',
|
|
168
181
|
'(pointerdown)': '_pattern.onPointerdown($event)',
|
|
169
|
-
'(focusin)': '
|
|
182
|
+
'(focusin)': '_onFocus()'
|
|
170
183
|
}
|
|
171
184
|
}]
|
|
172
185
|
}],
|
|
@@ -174,16 +187,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
174
187
|
});
|
|
175
188
|
class ToolbarWidget {
|
|
176
189
|
_elementRef = inject(ElementRef);
|
|
190
|
+
element = this._elementRef.nativeElement;
|
|
177
191
|
_toolbar = inject(Toolbar);
|
|
178
|
-
|
|
179
|
-
id = input(this._generatedId, ...(ngDevMode ? [{
|
|
192
|
+
id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true), ...(ngDevMode ? [{
|
|
180
193
|
debugName: "id"
|
|
181
194
|
}] : []));
|
|
182
|
-
|
|
183
|
-
debugName: "
|
|
184
|
-
}] : []));
|
|
185
|
-
element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{
|
|
186
|
-
debugName: "element"
|
|
195
|
+
_toolbarPattern = computed(() => this._toolbar._pattern, ...(ngDevMode ? [{
|
|
196
|
+
debugName: "_toolbarPattern"
|
|
187
197
|
}] : []));
|
|
188
198
|
disabled = input(false, ...(ngDevMode ? [{
|
|
189
199
|
debugName: "disabled",
|
|
@@ -204,18 +214,20 @@ class ToolbarWidget {
|
|
|
204
214
|
debugName: "active"
|
|
205
215
|
}] : []));
|
|
206
216
|
selected = () => this._pattern.selected();
|
|
207
|
-
|
|
217
|
+
_groupPattern = () => this._group?._pattern;
|
|
208
218
|
_pattern = new ToolbarWidgetPattern({
|
|
209
219
|
...this,
|
|
220
|
+
group: this._groupPattern,
|
|
221
|
+
toolbar: this._toolbarPattern,
|
|
210
222
|
id: this.id,
|
|
211
223
|
value: this.value,
|
|
212
|
-
element: this.element
|
|
224
|
+
element: () => this.element
|
|
213
225
|
});
|
|
214
226
|
ngOnInit() {
|
|
215
|
-
this._toolbar.
|
|
227
|
+
this._toolbar._register(this);
|
|
216
228
|
}
|
|
217
229
|
ngOnDestroy() {
|
|
218
|
-
this._toolbar.
|
|
230
|
+
this._toolbar._unregister(this);
|
|
219
231
|
}
|
|
220
232
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
221
233
|
minVersion: "12.0.0",
|
|
@@ -256,14 +268,13 @@ class ToolbarWidget {
|
|
|
256
268
|
},
|
|
257
269
|
host: {
|
|
258
270
|
properties: {
|
|
259
|
-
"attr.data-active": "
|
|
271
|
+
"attr.data-active": "active()",
|
|
260
272
|
"attr.tabindex": "_pattern.tabIndex()",
|
|
261
273
|
"attr.inert": "hardDisabled() ? true : null",
|
|
262
274
|
"attr.disabled": "hardDisabled() ? true : null",
|
|
263
275
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
264
276
|
"id": "_pattern.id()"
|
|
265
|
-
}
|
|
266
|
-
classAttribute: "ng-toolbar-widget"
|
|
277
|
+
}
|
|
267
278
|
},
|
|
268
279
|
exportAs: ["ngToolbarWidget"],
|
|
269
280
|
ngImport: i0
|
|
@@ -280,8 +291,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
280
291
|
selector: '[ngToolbarWidget]',
|
|
281
292
|
exportAs: 'ngToolbarWidget',
|
|
282
293
|
host: {
|
|
283
|
-
'
|
|
284
|
-
'[attr.data-active]': '_pattern.active()',
|
|
294
|
+
'[attr.data-active]': 'active()',
|
|
285
295
|
'[attr.tabindex]': '_pattern.tabIndex()',
|
|
286
296
|
'[attr.inert]': 'hardDisabled() ? true : null',
|
|
287
297
|
'[attr.disabled]': 'hardDisabled() ? true : null',
|
|
@@ -292,6 +302,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
292
302
|
}]
|
|
293
303
|
});
|
|
294
304
|
class ToolbarWidgetGroup {
|
|
305
|
+
_elementRef = inject(ElementRef);
|
|
306
|
+
element = this._elementRef.nativeElement;
|
|
295
307
|
_toolbar = inject(Toolbar, {
|
|
296
308
|
optional: true
|
|
297
309
|
});
|
|
@@ -301,8 +313,8 @@ class ToolbarWidgetGroup {
|
|
|
301
313
|
}] : [{
|
|
302
314
|
descendants: true
|
|
303
315
|
}]));
|
|
304
|
-
|
|
305
|
-
debugName: "
|
|
316
|
+
_toolbarPattern = computed(() => this._toolbar?._pattern, ...(ngDevMode ? [{
|
|
317
|
+
debugName: "_toolbarPattern"
|
|
306
318
|
}] : []));
|
|
307
319
|
disabled = input(false, ...(ngDevMode ? [{
|
|
308
320
|
debugName: "disabled",
|
|
@@ -310,14 +322,18 @@ class ToolbarWidgetGroup {
|
|
|
310
322
|
}] : [{
|
|
311
323
|
transform: booleanAttribute
|
|
312
324
|
}]));
|
|
313
|
-
|
|
325
|
+
_itemPatterns = () => this._widgets().map(w => w._pattern);
|
|
314
326
|
multi = input(false, ...(ngDevMode ? [{
|
|
315
327
|
debugName: "multi",
|
|
316
328
|
transform: booleanAttribute
|
|
317
329
|
}] : [{
|
|
318
330
|
transform: booleanAttribute
|
|
319
331
|
}]));
|
|
320
|
-
_pattern = new ToolbarWidgetGroupPattern(
|
|
332
|
+
_pattern = new ToolbarWidgetGroupPattern({
|
|
333
|
+
...this,
|
|
334
|
+
items: this._itemPatterns,
|
|
335
|
+
toolbar: this._toolbarPattern
|
|
336
|
+
});
|
|
321
337
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
322
338
|
minVersion: "12.0.0",
|
|
323
339
|
version: "20.2.0-next.2",
|
|
@@ -348,11 +364,6 @@ class ToolbarWidgetGroup {
|
|
|
348
364
|
transformFunction: null
|
|
349
365
|
}
|
|
350
366
|
},
|
|
351
|
-
host: {
|
|
352
|
-
properties: {
|
|
353
|
-
"class.ng-toolbar-widget-group": "!!toolbar()"
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
367
|
queries: [{
|
|
357
368
|
propertyName: "_widgets",
|
|
358
369
|
predicate: ToolbarWidget,
|
|
@@ -372,10 +383,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
372
383
|
type: Directive,
|
|
373
384
|
args: [{
|
|
374
385
|
selector: '[ngToolbarWidgetGroup]',
|
|
375
|
-
exportAs: 'ngToolbarWidgetGroup'
|
|
376
|
-
host: {
|
|
377
|
-
'[class.ng-toolbar-widget-group]': '!!toolbar()'
|
|
378
|
-
}
|
|
386
|
+
exportAs: 'ngToolbarWidgetGroup'
|
|
379
387
|
}]
|
|
380
388
|
}]
|
|
381
389
|
});
|
package/fesm2022/toolbar.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/toolbar/toolbar.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n Directive,\n ElementRef,\n inject,\n computed,\n input,\n booleanAttribute,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n contentChildren,\n} from '@angular/core';\nimport {\n ToolbarPattern,\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A toolbar widget container.\n *\n * Widgets such as radio groups or buttons are nested within a toolbar to allow for a single\n * place of reference for focus and navigation. The Toolbar is meant to be used in conjunction\n * with ToolbarWidget and RadioGroup as follows:\n *\n * ```html\n * <div ngToolbar>\n * <button ngToolbarWidget>Button</button>\n * <div ngRadioGroup>\n * <label ngRadioButton value=\"1\">Option 1</label>\n * <label ngRadioButton value=\"2\">Option 2</label>\n * <label ngRadioButton value=\"3\">Option 3</label>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n 'class': 'ng-toolbar',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the toolbar element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V>>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly items = computed(() =>\n [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether to allow disabled items to receive focus. */\n softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasBeenFocused.set(true);\n }\n\n register(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._widgets.set(new Set(widgets));\n }\n }\n\n unregister(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (widgets.delete(widget)) {\n this._widgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n const widgetTarget = element.closest('.ng-toolbar-widget');\n return this.items().find(widget => widget.element() === widgetTarget);\n }\n}\n\n/**\n * A widget within a toolbar.\n *\n * A widget is anything that is within a toolbar. It should be applied to any native HTML element\n * that has the purpose of acting as a widget navigatable within a toolbar.\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n 'class': 'ng-toolbar-widget',\n '[attr.data-active]': '_pattern.active()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[id]': '_pattern.id()',\n },\n})\nexport class ToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the widget element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar);\n\n /** A unique identifier for the widget. */\n private readonly _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-', true);\n\n /** A unique identifier for the widget. */\n readonly id = input<string>(this._generatedId);\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._toolbar._pattern);\n\n /** A reference to the widget element to be focused on navigation. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled());\n\n /** The optional ToolbarWidgetGroup this widget belongs to. */\n readonly _group = inject(ToolbarWidgetGroup, {optional: true});\n\n /** The value associated with the widget. */\n readonly value = input.required<V>();\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = () => this._pattern.selected();\n\n readonly group: SignalLike<ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined> =\n () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n element: this.element,\n });\n\n ngOnInit() {\n this._toolbar.register(this);\n }\n\n ngOnDestroy() {\n this._toolbar.unregister(this);\n }\n}\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups that\n * have their own internal navigation.\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n host: {\n '[class.ng-toolbar-widget-group]': '!!toolbar()',\n },\n})\nexport class ToolbarWidgetGroup<V> {\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget<V>, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._toolbar?._pattern);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The list of toolbar items within the group. */\n readonly items = () => this._widgets().map(w => w._pattern);\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>(this);\n}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Toolbar","_elementRef","inject","ElementRef","_widgets","signal","Set","textDirection","Directionality","valueSignal","items","computed","sort","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","ToolbarPattern","activeItem","undefined","nativeElement","getItem","e","_getItem","_hasBeenFocused","constructor","afterRenderEffect","ngDevMode","violations","validate","violation","console","error","setDefaultState","onFocus","set","register","widgets","has","add","unregister","delete","widgetTarget","closest","find","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","listeners","properties","classAttribute","exportAs","ngImport","decorators","args","ToolbarWidget","_toolbar","_generatedId","_IdGenerator","getId","id","toolbar","debugName","hardDisabled","_group","ToolbarWidgetGroup","optional","value","required","active","selected","group","ToolbarWidgetPattern","ngOnInit","ngOnDestroy","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","queries","propertyName","predicate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolbar.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/toolbar/toolbar.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n Directive,\n ElementRef,\n inject,\n computed,\n input,\n booleanAttribute,\n signal,\n OnInit,\n OnDestroy,\n contentChildren,\n model,\n} from '@angular/core';\nimport {\n ToolbarPattern,\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\ninterface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A toolbar widget container for a group of interactive widgets, such as\n * buttons or radio groups. It provides a single point of reference for keyboard navigation\n * and focus management. It supports various orientations and disabled states.\n *\n * ```html\n * <div ngToolbar orientation=\"horizontal\" [wrap]=\"true\">\n * <button ngToolbarWidget value=\"save\">Save</button>\n * <button ngToolbarWidget value=\"print\">Print</button>\n *\n * <div ngToolbarWidgetGroup [(value)]=\"selectedAlignment\">\n * <button ngToolbarWidget value=\"left\">Left</button>\n * <button ngToolbarWidget value=\"center\">Center</button>\n * <button ngToolbarWidget value=\"right\">Right</button>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V>>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly _itemPatterns = computed(() =>\n [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The values of the selected widgets within the toolbar. */\n readonly values = model<V[]>([]);\n\n /** The toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n items: this._itemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n values: this.values,\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n _onFocus() {\n this._hasBeenFocused.set(true);\n }\n\n _register(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._widgets.set(new Set(widgets));\n }\n }\n\n _unregister(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (widgets.delete(widget)) {\n this._widgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n return this._itemPatterns().find(item => item.element()?.contains(element));\n }\n}\n\n/**\n * A widget within a toolbar.\n *\n * The `ngToolbarWidget` directive should be applied to any native HTML element that acts\n * as an interactive widget within an `ngToolbar` or `ngToolbarWidgetGroup`. It enables\n * keyboard navigation and selection within the toolbar.\n *\n * ```html\n * <button ngToolbarWidget value=\"action-id\" [disabled]=\"isDisabled\">\n * Perform Action\n * </button>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[id]': '_pattern.id()',\n },\n})\nexport class ToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true));\n\n /** The parent Toolbar UIPattern. */\n readonly _toolbarPattern = computed(() => this._toolbar._pattern);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled());\n\n /** The optional ToolbarWidgetGroup this widget belongs to. */\n readonly _group = inject(ToolbarWidgetGroup, {optional: true});\n\n /** The value associated with the widget. */\n readonly value = input.required<V>();\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = () => this._pattern.selected();\n\n private readonly _groupPattern: SignalLike<\n ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined\n > = () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n group: this._groupPattern,\n toolbar: this._toolbarPattern,\n id: this.id,\n value: this.value,\n element: () => this.element,\n });\n\n ngOnInit() {\n this._toolbar._register(this);\n }\n\n ngOnDestroy() {\n this._toolbar._unregister(this);\n }\n}\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n})\nexport class ToolbarWidgetGroup<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget<V>, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n private readonly _toolbarPattern = computed(() => this._toolbar?._pattern);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The list of toolbar items within the group. */\n private readonly _itemPatterns = () => this._widgets().map(w => w._pattern);\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>({\n ...this,\n items: this._itemPatterns,\n toolbar: this._toolbarPattern,\n });\n}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Toolbar","_elementRef","inject","ElementRef","nativeElement","_widgets","signal","Set","textDirection","Directionality","valueSignal","_itemPatterns","computed","sort","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","values","model","ToolbarPattern","items","activeItem","undefined","getItem","e","_getItem","_hasBeenFocused","constructor","afterRenderEffect","ngDevMode","violations","validate","violation","console","error","setDefaultState","_onFocus","set","_register","widgets","has","add","_unregister","delete","find","item","contains","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","ToolbarWidget","_toolbar","id","_IdGenerator","getId","_toolbarPattern","debugName","hardDisabled","_group","ToolbarWidgetGroup","optional","value","required","active","selected","_groupPattern","ToolbarWidgetPattern","group","toolbar","ngOnInit","ngOnDestroy","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","queries","propertyName","predicate"],"mappings":"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"}
|