@angular/aria 22.0.2 → 22.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/_deferred-content-chunk.mjs +6 -6
- package/fesm2022/accordion.mjs +12 -12
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +12 -10
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +12 -12
- package/fesm2022/listbox.mjs +17 -10
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +15 -15
- package/fesm2022/private.mjs +2 -1
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +15 -15
- package/fesm2022/toolbar.mjs +9 -9
- package/fesm2022/tree.mjs +9 -9
- package/package.json +2 -2
- package/types/listbox.d.ts +3 -0
|
@@ -10,7 +10,7 @@ class DeferredContentAware {
|
|
|
10
10
|
}] : []));
|
|
11
11
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
12
12
|
minVersion: "12.0.0",
|
|
13
|
-
version: "22.0.
|
|
13
|
+
version: "22.0.5",
|
|
14
14
|
ngImport: i0,
|
|
15
15
|
type: DeferredContentAware,
|
|
16
16
|
deps: [],
|
|
@@ -18,7 +18,7 @@ class DeferredContentAware {
|
|
|
18
18
|
});
|
|
19
19
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
20
20
|
minVersion: "17.1.0",
|
|
21
|
-
version: "22.0.
|
|
21
|
+
version: "22.0.5",
|
|
22
22
|
type: DeferredContentAware,
|
|
23
23
|
isStandalone: true,
|
|
24
24
|
inputs: {
|
|
@@ -38,7 +38,7 @@ class DeferredContentAware {
|
|
|
38
38
|
}
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({
|
|
40
40
|
minVersion: "12.0.0",
|
|
41
|
-
version: "22.0.
|
|
41
|
+
version: "22.0.5",
|
|
42
42
|
ngImport: i0,
|
|
43
43
|
type: DeferredContentAware,
|
|
44
44
|
decorators: [{
|
|
@@ -97,7 +97,7 @@ class DeferredContent {
|
|
|
97
97
|
}
|
|
98
98
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
99
99
|
minVersion: "12.0.0",
|
|
100
|
-
version: "22.0.
|
|
100
|
+
version: "22.0.5",
|
|
101
101
|
ngImport: i0,
|
|
102
102
|
type: DeferredContent,
|
|
103
103
|
deps: [],
|
|
@@ -105,7 +105,7 @@ class DeferredContent {
|
|
|
105
105
|
});
|
|
106
106
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
107
107
|
minVersion: "14.0.0",
|
|
108
|
-
version: "22.0.
|
|
108
|
+
version: "22.0.5",
|
|
109
109
|
type: DeferredContent,
|
|
110
110
|
isStandalone: true,
|
|
111
111
|
ngImport: i0
|
|
@@ -113,7 +113,7 @@ class DeferredContent {
|
|
|
113
113
|
}
|
|
114
114
|
i0.ɵɵngDeclareClassMetadata({
|
|
115
115
|
minVersion: "12.0.0",
|
|
116
|
-
version: "22.0.
|
|
116
|
+
version: "22.0.5",
|
|
117
117
|
ngImport: i0,
|
|
118
118
|
type: DeferredContent,
|
|
119
119
|
decorators: [{
|
package/fesm2022/accordion.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import './_click-event-manager-chunk.mjs';
|
|
|
13
13
|
class AccordionContent {
|
|
14
14
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
15
15
|
minVersion: "12.0.0",
|
|
16
|
-
version: "22.0.
|
|
16
|
+
version: "22.0.5",
|
|
17
17
|
ngImport: i0,
|
|
18
18
|
type: AccordionContent,
|
|
19
19
|
deps: [],
|
|
@@ -21,7 +21,7 @@ class AccordionContent {
|
|
|
21
21
|
});
|
|
22
22
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
23
23
|
minVersion: "14.0.0",
|
|
24
|
-
version: "22.0.
|
|
24
|
+
version: "22.0.5",
|
|
25
25
|
type: AccordionContent,
|
|
26
26
|
isStandalone: true,
|
|
27
27
|
selector: "ng-template[ngAccordionContent]",
|
|
@@ -33,7 +33,7 @@ class AccordionContent {
|
|
|
33
33
|
}
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({
|
|
35
35
|
minVersion: "12.0.0",
|
|
36
|
-
version: "22.0.
|
|
36
|
+
version: "22.0.5",
|
|
37
37
|
ngImport: i0,
|
|
38
38
|
type: AccordionContent,
|
|
39
39
|
decorators: [{
|
|
@@ -91,7 +91,7 @@ class AccordionPanel {
|
|
|
91
91
|
}
|
|
92
92
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
93
93
|
minVersion: "12.0.0",
|
|
94
|
-
version: "22.0.
|
|
94
|
+
version: "22.0.5",
|
|
95
95
|
ngImport: i0,
|
|
96
96
|
type: AccordionPanel,
|
|
97
97
|
deps: [],
|
|
@@ -99,7 +99,7 @@ class AccordionPanel {
|
|
|
99
99
|
});
|
|
100
100
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
101
101
|
minVersion: "17.2.0",
|
|
102
|
-
version: "22.0.
|
|
102
|
+
version: "22.0.5",
|
|
103
103
|
type: AccordionPanel,
|
|
104
104
|
isStandalone: true,
|
|
105
105
|
selector: "[ngAccordionPanel]",
|
|
@@ -139,7 +139,7 @@ class AccordionPanel {
|
|
|
139
139
|
}
|
|
140
140
|
i0.ɵɵngDeclareClassMetadata({
|
|
141
141
|
minVersion: "12.0.0",
|
|
142
|
-
version: "22.0.
|
|
142
|
+
version: "22.0.5",
|
|
143
143
|
ngImport: i0,
|
|
144
144
|
type: AccordionPanel,
|
|
145
145
|
decorators: [{
|
|
@@ -244,7 +244,7 @@ class AccordionGroup {
|
|
|
244
244
|
}
|
|
245
245
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
246
246
|
minVersion: "12.0.0",
|
|
247
|
-
version: "22.0.
|
|
247
|
+
version: "22.0.5",
|
|
248
248
|
ngImport: i0,
|
|
249
249
|
type: AccordionGroup,
|
|
250
250
|
deps: [],
|
|
@@ -252,7 +252,7 @@ class AccordionGroup {
|
|
|
252
252
|
});
|
|
253
253
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
254
254
|
minVersion: "17.1.0",
|
|
255
|
-
version: "22.0.
|
|
255
|
+
version: "22.0.5",
|
|
256
256
|
type: AccordionGroup,
|
|
257
257
|
isStandalone: true,
|
|
258
258
|
selector: "[ngAccordionGroup]",
|
|
@@ -303,7 +303,7 @@ class AccordionGroup {
|
|
|
303
303
|
}
|
|
304
304
|
i0.ɵɵngDeclareClassMetadata({
|
|
305
305
|
minVersion: "12.0.0",
|
|
306
|
-
version: "22.0.
|
|
306
|
+
version: "22.0.5",
|
|
307
307
|
ngImport: i0,
|
|
308
308
|
type: AccordionGroup,
|
|
309
309
|
decorators: [{
|
|
@@ -429,7 +429,7 @@ class AccordionTrigger {
|
|
|
429
429
|
}
|
|
430
430
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
431
431
|
minVersion: "12.0.0",
|
|
432
|
-
version: "22.0.
|
|
432
|
+
version: "22.0.5",
|
|
433
433
|
ngImport: i0,
|
|
434
434
|
type: AccordionTrigger,
|
|
435
435
|
deps: [],
|
|
@@ -437,7 +437,7 @@ class AccordionTrigger {
|
|
|
437
437
|
});
|
|
438
438
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
439
439
|
minVersion: "17.1.0",
|
|
440
|
-
version: "22.0.
|
|
440
|
+
version: "22.0.5",
|
|
441
441
|
type: AccordionTrigger,
|
|
442
442
|
isStandalone: true,
|
|
443
443
|
selector: "[ngAccordionTrigger]",
|
|
@@ -494,7 +494,7 @@ class AccordionTrigger {
|
|
|
494
494
|
}
|
|
495
495
|
i0.ɵɵngDeclareClassMetadata({
|
|
496
496
|
minVersion: "12.0.0",
|
|
497
|
-
version: "22.0.
|
|
497
|
+
version: "22.0.5",
|
|
498
498
|
ngImport: i0,
|
|
499
499
|
type: AccordionTrigger,
|
|
500
500
|
decorators: [{
|
package/fesm2022/aria.mjs
CHANGED
package/fesm2022/aria.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aria.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/version.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 {Version} from '@angular/core';\n\n/** Current version of the Aria package. */\nexport const VERSION = new Version('22.0.
|
|
1
|
+
{"version":3,"file":"aria.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/version.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 {Version} from '@angular/core';\n\n/** Current version of the Aria package. */\nexport const VERSION = new Version('22.0.4');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
|
package/fesm2022/combobox.mjs
CHANGED
|
@@ -53,7 +53,9 @@ class Combobox extends DeferredContentAware {
|
|
|
53
53
|
});
|
|
54
54
|
constructor() {
|
|
55
55
|
super();
|
|
56
|
-
afterRenderEffect(
|
|
56
|
+
afterRenderEffect({
|
|
57
|
+
write: () => this._pattern.keyboardEventRelayEffect()
|
|
58
|
+
});
|
|
57
59
|
afterRenderEffect(() => this._pattern.closePopupOnBlurEffect());
|
|
58
60
|
afterRenderEffect(() => {
|
|
59
61
|
this.contentVisible.set(this._pattern.isExpanded());
|
|
@@ -80,7 +82,7 @@ class Combobox extends DeferredContentAware {
|
|
|
80
82
|
}
|
|
81
83
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
82
84
|
minVersion: "12.0.0",
|
|
83
|
-
version: "22.0.
|
|
85
|
+
version: "22.0.5",
|
|
84
86
|
ngImport: i0,
|
|
85
87
|
type: Combobox,
|
|
86
88
|
deps: [],
|
|
@@ -88,7 +90,7 @@ class Combobox extends DeferredContentAware {
|
|
|
88
90
|
});
|
|
89
91
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
90
92
|
minVersion: "17.1.0",
|
|
91
|
-
version: "22.0.
|
|
93
|
+
version: "22.0.5",
|
|
92
94
|
type: Combobox,
|
|
93
95
|
isStandalone: true,
|
|
94
96
|
selector: "[ngCombobox]",
|
|
@@ -177,7 +179,7 @@ class Combobox extends DeferredContentAware {
|
|
|
177
179
|
}
|
|
178
180
|
i0.ɵɵngDeclareClassMetadata({
|
|
179
181
|
minVersion: "12.0.0",
|
|
180
|
-
version: "22.0.
|
|
182
|
+
version: "22.0.5",
|
|
181
183
|
ngImport: i0,
|
|
182
184
|
type: Combobox,
|
|
183
185
|
decorators: [{
|
|
@@ -311,7 +313,7 @@ class ComboboxPopup {
|
|
|
311
313
|
}
|
|
312
314
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
313
315
|
minVersion: "12.0.0",
|
|
314
|
-
version: "22.0.
|
|
316
|
+
version: "22.0.5",
|
|
315
317
|
ngImport: i0,
|
|
316
318
|
type: ComboboxPopup,
|
|
317
319
|
deps: [],
|
|
@@ -319,7 +321,7 @@ class ComboboxPopup {
|
|
|
319
321
|
});
|
|
320
322
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
321
323
|
minVersion: "17.1.0",
|
|
322
|
-
version: "22.0.
|
|
324
|
+
version: "22.0.5",
|
|
323
325
|
type: ComboboxPopup,
|
|
324
326
|
isStandalone: true,
|
|
325
327
|
selector: "ng-template[ngComboboxPopup]",
|
|
@@ -352,7 +354,7 @@ class ComboboxPopup {
|
|
|
352
354
|
}
|
|
353
355
|
i0.ɵɵngDeclareClassMetadata({
|
|
354
356
|
minVersion: "12.0.0",
|
|
355
|
-
version: "22.0.
|
|
357
|
+
version: "22.0.5",
|
|
356
358
|
ngImport: i0,
|
|
357
359
|
type: ComboboxPopup,
|
|
358
360
|
decorators: [{
|
|
@@ -428,7 +430,7 @@ class ComboboxWidget {
|
|
|
428
430
|
}
|
|
429
431
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
430
432
|
minVersion: "12.0.0",
|
|
431
|
-
version: "22.0.
|
|
433
|
+
version: "22.0.5",
|
|
432
434
|
ngImport: i0,
|
|
433
435
|
type: ComboboxWidget,
|
|
434
436
|
deps: [],
|
|
@@ -436,7 +438,7 @@ class ComboboxWidget {
|
|
|
436
438
|
});
|
|
437
439
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
438
440
|
minVersion: "17.1.0",
|
|
439
|
-
version: "22.0.
|
|
441
|
+
version: "22.0.5",
|
|
440
442
|
type: ComboboxWidget,
|
|
441
443
|
isStandalone: true,
|
|
442
444
|
selector: "[ngComboboxWidget]",
|
|
@@ -461,7 +463,7 @@ class ComboboxWidget {
|
|
|
461
463
|
}
|
|
462
464
|
i0.ɵɵngDeclareClassMetadata({
|
|
463
465
|
minVersion: "12.0.0",
|
|
464
|
-
version: "22.0.
|
|
466
|
+
version: "22.0.5",
|
|
465
467
|
ngImport: i0,
|
|
466
468
|
type: ComboboxWidget,
|
|
467
469
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-widget.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 booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal,\n Renderer2,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern, tabIndexTransform} from '@angular/aria/private';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/**\n * A directive that coordinates a combobox trigger element and its associated popup widget.\n *\n * The `ngCombobox` directive is applied directly to the interactive trigger element, which can be\n * either an editable `<input>` (for search/autocomplete behaviors) or a non-editable element like\n * a `<div>` (for custom select dropdowns). It manages focus and expansion states, coordinates autocomplete\n * suggestions (if editable), and forwards navigation keys down into the active popup.\n *\n * ### Example 1: Editable Autocomplete Input\n * ```html\n * <input ngCombobox #combobox=\"ngCombobox\" [(value)]=\"searchQuery\" [(expanded)]=\"isExpanded\" />\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n *\n * ### Example 2: Non-Editable Custom Select Dropdown\n * ```html\n * <div ngCombobox #combobox=\"ngCombobox\" [(expanded)]=\"isExpanded\" class=\"select-trigger\">\n * {{selectedValue}}\n * </div>\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n host: {\n 'role': 'combobox',\n '[attr.aria-autocomplete]': '_pattern.autocomplete()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-expanded]': '_pattern.isExpanded()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[attr.aria-controls]': '_pattern.popupId()',\n '[attr.aria-haspopup]': '_pattern.popupType()',\n '[attr.tabindex]':\n 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',\n '[attr.disabled]': 'disabled() && !softDisabled() ? \"\" : null',\n '[attr.readonly]': 'disabled() && _pattern.isEditable() ? \"\" : null',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusin)': '_pattern.onFocusin()',\n '(focusout)': '_pattern.onFocusout($event)',\n '(click)': '_pattern.onClick($event)',\n '(input)': '_pattern.onInput($event)',\n },\n})\nexport class Combobox extends DeferredContentAware implements OnInit {\n private readonly _renderer = inject(Renderer2);\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The popup associated with the combobox. */\n readonly _popup = signal<ComboboxPopup | undefined>(undefined);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is soft disabled (remains focusable). */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the combobox should always remain expanded. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the combobox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** Whether the combobox is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** The value of the combobox input. */\n readonly value = model<string>('');\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = input<string | undefined>(undefined);\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern({\n ...this,\n element: () => this.element,\n expandable: () => true,\n popup: computed(() => this._popup()?._pattern),\n });\n\n constructor() {\n super();\n\n afterRenderEffect(() => this._pattern.keyboardEventRelayEffect());\n afterRenderEffect(() => this._pattern.closePopupOnBlurEffect());\n afterRenderEffect(() => {\n this.contentVisible.set(this._pattern.isExpanded());\n });\n\n if (this._pattern.isEditable()) {\n afterRenderEffect(() => {\n this._renderer.setProperty(this.element, 'value', this.value());\n });\n afterRenderEffect(() => {\n this._pattern.highlightEffect();\n });\n }\n }\n\n ngOnInit() {\n if (this.alwaysExpanded()) {\n this.expanded.set(true);\n }\n }\n\n /** Registers a popup with the combobox. */\n _registerPopup(popup: ComboboxPopup) {\n this._popup.set(popup);\n }\n\n /** Unregisters the popup from the combobox. */\n _unregisterPopup() {\n this._popup.set(undefined);\n }\n}\n","/**\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 {InjectionToken} from '@angular/core';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/** Token used to expose the combobox popup. */\nexport const COMBOBOX_POPUP = new InjectionToken<ComboboxPopup>('COMBOBOX_POPUP');\n","/**\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 {computed, Directive, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {DeferredContent, ComboboxPopupPattern} from '@angular/aria/private';\nimport type {Combobox} from './combobox';\nimport type {ComboboxWidget} from './combobox-widget';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be any element with the `ngComboboxWidget` directive.\n *\n * ```html\n * <ng-template ngComboboxPopup>\n * <div ngComboboxWidget>\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n hostDirectives: [DeferredContent],\n providers: [{provide: COMBOBOX_POPUP, useExisting: ComboboxPopup}],\n})\nexport class ComboboxPopup implements OnInit, OnDestroy {\n private readonly _deferredContent = inject(DeferredContent);\n\n /** The combobox that the popup belongs to. */\n readonly combobox = input.required<Combobox>();\n\n /** The widget contained within the popup. */\n readonly _widget = signal<ComboboxWidget | undefined>(undefined);\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = computed(() => this._widget()?.element);\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this._widget()?.popupId());\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this._widget()?.activeDescendant());\n\n /** The type of the popup (e.g., listbox, tree, grid, dialog). */\n readonly popupType = input<'listbox' | 'tree' | 'grid' | 'dialog'>('listbox');\n\n /** The popup pattern. */\n readonly _pattern = new ComboboxPopupPattern({\n ...this,\n });\n\n ngOnInit() {\n this.combobox()._registerPopup(this);\n this._deferredContent.deferredContentAware.set(this.combobox());\n }\n\n ngOnDestroy() {\n this.combobox()._unregisterPopup();\n }\n\n /** Registers a widget with the popup. */\n _registerWidget(widget: ComboboxWidget) {\n this._widget.set(widget);\n }\n\n /** Unregisters the widget from the popup. */\n _unregisterWidget() {\n this._widget.set(undefined);\n }\n}\n","/**\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 {Directive, ElementRef, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * Identifies an element as a widget within a combobox popup.\n *\n * This directive should be applied to the element that contains the options or content\n * of the popup. It handles the communication of ID and active descendant information\n * to the combobox.\n */\n@Directive({\n selector: '[ngComboboxWidget]',\n exportAs: 'ngComboboxWidget',\n host: {\n '(focusin)': 'onFocusin()',\n '(focusout)': 'onFocusout($event)',\n },\n})\nexport class ComboboxWidget implements OnInit, OnDestroy {\n /** The element that the popup widget is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _popup = inject(COMBOBOX_POPUP);\n\n /** A reference to the popup widget element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The ID of the popup widget. */\n readonly popupId = signal<string | undefined>(undefined);\n\n /** The ID of the active descendant in the widget. */\n readonly activeDescendant = input<string | undefined>(undefined);\n\n private _observer: MutationObserver | undefined;\n\n constructor() {\n const el = this.element;\n this._observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'id') {\n this.popupId.set(el.id);\n }\n }\n });\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: ['id'],\n });\n }\n\n ngOnInit() {\n this.popupId.set(this.element.id);\n this._popup._registerWidget(this);\n }\n\n ngOnDestroy(): void {\n this._observer?.disconnect();\n this._popup._unregisterWidget();\n }\n\n /** Handles focus in events for the widget. */\n onFocusin() {\n this._popup._pattern.onFocusin();\n }\n\n /** Handles focus out events for the widget. */\n onFocusout(event: FocusEvent) {\n this._popup._pattern.onFocusout(event);\n }\n}\n"],"names":["Combobox","DeferredContentAware","_renderer","inject","Renderer2","_elementRef","ElementRef","element","nativeElement","_popup","signal","undefined","disabled","input","transform","booleanAttribute","softDisabled","alwaysExpanded","tabIndex","ngDevMode","debugName","alias","tabIndexTransform","expanded","model","value","inlineSuggestion","_pattern","ComboboxPattern","expandable","popup","computed","constructor","afterRenderEffect","keyboardEventRelayEffect","closePopupOnBlurEffect","contentVisible","set","isExpanded","isEditable","setProperty","highlightEffect","ngOnInit","_registerPopup","_unregisterPopup","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","usesInheritance","ngImport","decorators","args","COMBOBOX_POPUP","InjectionToken","ComboboxPopup","_deferredContent","DeferredContent","combobox","required","_widget","controlTarget","popupId","activeDescendant","popupType","ComboboxPopupPattern","deferredContentAware","ngOnDestroy","_registerWidget","widget","_unregisterWidget","providers","provide","useExisting","hostDirectives","directive","i1","ComboboxWidget","_observer","el","MutationObserver","mutations","mutation","attributeName","id","observe","attributeFilter","disconnect","onFocusin","onFocusout","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-widget.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 booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal,\n Renderer2,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern, tabIndexTransform} from '@angular/aria/private';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/**\n * A directive that coordinates a combobox trigger element and its associated popup widget.\n *\n * The `ngCombobox` directive is applied directly to the interactive trigger element, which can be\n * either an editable `<input>` (for search/autocomplete behaviors) or a non-editable element like\n * a `<div>` (for custom select dropdowns). It manages focus and expansion states, coordinates autocomplete\n * suggestions (if editable), and forwards navigation keys down into the active popup.\n *\n * ### Example 1: Editable Autocomplete Input\n * ```html\n * <input ngCombobox #combobox=\"ngCombobox\" [(value)]=\"searchQuery\" [(expanded)]=\"isExpanded\" />\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n *\n * ### Example 2: Non-Editable Custom Select Dropdown\n * ```html\n * <div ngCombobox #combobox=\"ngCombobox\" [(expanded)]=\"isExpanded\" class=\"select-trigger\">\n * {{selectedValue}}\n * </div>\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n host: {\n 'role': 'combobox',\n '[attr.aria-autocomplete]': '_pattern.autocomplete()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-expanded]': '_pattern.isExpanded()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[attr.aria-controls]': '_pattern.popupId()',\n '[attr.aria-haspopup]': '_pattern.popupType()',\n '[attr.tabindex]':\n 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',\n '[attr.disabled]': 'disabled() && !softDisabled() ? \"\" : null',\n '[attr.readonly]': 'disabled() && _pattern.isEditable() ? \"\" : null',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusin)': '_pattern.onFocusin()',\n '(focusout)': '_pattern.onFocusout($event)',\n '(click)': '_pattern.onClick($event)',\n '(input)': '_pattern.onInput($event)',\n },\n})\nexport class Combobox extends DeferredContentAware implements OnInit {\n private readonly _renderer = inject(Renderer2);\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The popup associated with the combobox. */\n readonly _popup = signal<ComboboxPopup | undefined>(undefined);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is soft disabled (remains focusable). */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the combobox should always remain expanded. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the combobox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** Whether the combobox is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** The value of the combobox input. */\n readonly value = model<string>('');\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = input<string | undefined>(undefined);\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern({\n ...this,\n element: () => this.element,\n expandable: () => true,\n popup: computed(() => this._popup()?._pattern),\n });\n\n constructor() {\n super();\n\n afterRenderEffect({write: () => this._pattern.keyboardEventRelayEffect()});\n afterRenderEffect(() => this._pattern.closePopupOnBlurEffect());\n afterRenderEffect(() => {\n this.contentVisible.set(this._pattern.isExpanded());\n });\n\n if (this._pattern.isEditable()) {\n afterRenderEffect(() => {\n this._renderer.setProperty(this.element, 'value', this.value());\n });\n afterRenderEffect(() => {\n this._pattern.highlightEffect();\n });\n }\n }\n\n ngOnInit() {\n if (this.alwaysExpanded()) {\n this.expanded.set(true);\n }\n }\n\n /** Registers a popup with the combobox. */\n _registerPopup(popup: ComboboxPopup) {\n this._popup.set(popup);\n }\n\n /** Unregisters the popup from the combobox. */\n _unregisterPopup() {\n this._popup.set(undefined);\n }\n}\n","/**\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 {InjectionToken} from '@angular/core';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/** Token used to expose the combobox popup. */\nexport const COMBOBOX_POPUP = new InjectionToken<ComboboxPopup>('COMBOBOX_POPUP');\n","/**\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 {computed, Directive, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {DeferredContent, ComboboxPopupPattern} from '@angular/aria/private';\nimport type {Combobox} from './combobox';\nimport type {ComboboxWidget} from './combobox-widget';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be any element with the `ngComboboxWidget` directive.\n *\n * ```html\n * <ng-template ngComboboxPopup>\n * <div ngComboboxWidget>\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n hostDirectives: [DeferredContent],\n providers: [{provide: COMBOBOX_POPUP, useExisting: ComboboxPopup}],\n})\nexport class ComboboxPopup implements OnInit, OnDestroy {\n private readonly _deferredContent = inject(DeferredContent);\n\n /** The combobox that the popup belongs to. */\n readonly combobox = input.required<Combobox>();\n\n /** The widget contained within the popup. */\n readonly _widget = signal<ComboboxWidget | undefined>(undefined);\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = computed(() => this._widget()?.element);\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this._widget()?.popupId());\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this._widget()?.activeDescendant());\n\n /** The type of the popup (e.g., listbox, tree, grid, dialog). */\n readonly popupType = input<'listbox' | 'tree' | 'grid' | 'dialog'>('listbox');\n\n /** The popup pattern. */\n readonly _pattern = new ComboboxPopupPattern({\n ...this,\n });\n\n ngOnInit() {\n this.combobox()._registerPopup(this);\n this._deferredContent.deferredContentAware.set(this.combobox());\n }\n\n ngOnDestroy() {\n this.combobox()._unregisterPopup();\n }\n\n /** Registers a widget with the popup. */\n _registerWidget(widget: ComboboxWidget) {\n this._widget.set(widget);\n }\n\n /** Unregisters the widget from the popup. */\n _unregisterWidget() {\n this._widget.set(undefined);\n }\n}\n","/**\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 {Directive, ElementRef, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * Identifies an element as a widget within a combobox popup.\n *\n * This directive should be applied to the element that contains the options or content\n * of the popup. It handles the communication of ID and active descendant information\n * to the combobox.\n */\n@Directive({\n selector: '[ngComboboxWidget]',\n exportAs: 'ngComboboxWidget',\n host: {\n '(focusin)': 'onFocusin()',\n '(focusout)': 'onFocusout($event)',\n },\n})\nexport class ComboboxWidget implements OnInit, OnDestroy {\n /** The element that the popup widget is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _popup = inject(COMBOBOX_POPUP);\n\n /** A reference to the popup widget element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The ID of the popup widget. */\n readonly popupId = signal<string | undefined>(undefined);\n\n /** The ID of the active descendant in the widget. */\n readonly activeDescendant = input<string | undefined>(undefined);\n\n private _observer: MutationObserver | undefined;\n\n constructor() {\n const el = this.element;\n this._observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'id') {\n this.popupId.set(el.id);\n }\n }\n });\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: ['id'],\n });\n }\n\n ngOnInit() {\n this.popupId.set(this.element.id);\n this._popup._registerWidget(this);\n }\n\n ngOnDestroy(): void {\n this._observer?.disconnect();\n this._popup._unregisterWidget();\n }\n\n /** Handles focus in events for the widget. */\n onFocusin() {\n this._popup._pattern.onFocusin();\n }\n\n /** Handles focus out events for the widget. */\n onFocusout(event: FocusEvent) {\n this._popup._pattern.onFocusout(event);\n }\n}\n"],"names":["Combobox","DeferredContentAware","_renderer","inject","Renderer2","_elementRef","ElementRef","element","nativeElement","_popup","signal","undefined","disabled","input","transform","booleanAttribute","softDisabled","alwaysExpanded","tabIndex","ngDevMode","debugName","alias","tabIndexTransform","expanded","model","value","inlineSuggestion","_pattern","ComboboxPattern","expandable","popup","computed","constructor","afterRenderEffect","write","keyboardEventRelayEffect","closePopupOnBlurEffect","contentVisible","set","isExpanded","isEditable","setProperty","highlightEffect","ngOnInit","_registerPopup","_unregisterPopup","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","usesInheritance","ngImport","decorators","args","COMBOBOX_POPUP","InjectionToken","ComboboxPopup","_deferredContent","DeferredContent","combobox","required","_widget","controlTarget","popupId","activeDescendant","popupType","ComboboxPopupPattern","deferredContentAware","ngOnDestroy","_registerWidget","widget","_unregisterWidget","providers","provide","useExisting","hostDirectives","directive","i1","ComboboxWidget","_observer","el","MutationObserver","mutations","mutation","attributeName","id","observe","attributeFilter","disconnect","onFocusin","onFocusout","event"],"mappings":"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"}
|
package/fesm2022/grid.mjs
CHANGED
|
@@ -123,7 +123,7 @@ class Grid {
|
|
|
123
123
|
}
|
|
124
124
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
125
125
|
minVersion: "12.0.0",
|
|
126
|
-
version: "22.0.
|
|
126
|
+
version: "22.0.5",
|
|
127
127
|
ngImport: i0,
|
|
128
128
|
type: Grid,
|
|
129
129
|
deps: [],
|
|
@@ -131,7 +131,7 @@ class Grid {
|
|
|
131
131
|
});
|
|
132
132
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
133
133
|
minVersion: "17.1.0",
|
|
134
|
-
version: "22.0.
|
|
134
|
+
version: "22.0.5",
|
|
135
135
|
type: Grid,
|
|
136
136
|
isStandalone: true,
|
|
137
137
|
selector: "[ngGrid]",
|
|
@@ -227,7 +227,7 @@ class Grid {
|
|
|
227
227
|
}
|
|
228
228
|
i0.ɵɵngDeclareClassMetadata({
|
|
229
229
|
minVersion: "12.0.0",
|
|
230
|
-
version: "22.0.
|
|
230
|
+
version: "22.0.5",
|
|
231
231
|
ngImport: i0,
|
|
232
232
|
type: Grid,
|
|
233
233
|
decorators: [{
|
|
@@ -385,7 +385,7 @@ class GridCellWidget {
|
|
|
385
385
|
}
|
|
386
386
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
387
387
|
minVersion: "12.0.0",
|
|
388
|
-
version: "22.0.
|
|
388
|
+
version: "22.0.5",
|
|
389
389
|
ngImport: i0,
|
|
390
390
|
type: GridCellWidget,
|
|
391
391
|
deps: [],
|
|
@@ -393,7 +393,7 @@ class GridCellWidget {
|
|
|
393
393
|
});
|
|
394
394
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
395
395
|
minVersion: "17.1.0",
|
|
396
|
-
version: "22.0.
|
|
396
|
+
version: "22.0.5",
|
|
397
397
|
type: GridCellWidget,
|
|
398
398
|
isStandalone: true,
|
|
399
399
|
selector: "[ngGridCellWidget]",
|
|
@@ -452,7 +452,7 @@ class GridCellWidget {
|
|
|
452
452
|
}
|
|
453
453
|
i0.ɵɵngDeclareClassMetadata({
|
|
454
454
|
minVersion: "12.0.0",
|
|
455
|
-
version: "22.0.
|
|
455
|
+
version: "22.0.5",
|
|
456
456
|
ngImport: i0,
|
|
457
457
|
type: GridCellWidget,
|
|
458
458
|
decorators: [{
|
|
@@ -635,7 +635,7 @@ class GridCell {
|
|
|
635
635
|
}
|
|
636
636
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
637
637
|
minVersion: "12.0.0",
|
|
638
|
-
version: "22.0.
|
|
638
|
+
version: "22.0.5",
|
|
639
639
|
ngImport: i0,
|
|
640
640
|
type: GridCell,
|
|
641
641
|
deps: [],
|
|
@@ -643,7 +643,7 @@ class GridCell {
|
|
|
643
643
|
});
|
|
644
644
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
645
645
|
minVersion: "17.2.0",
|
|
646
|
-
version: "22.0.
|
|
646
|
+
version: "22.0.5",
|
|
647
647
|
type: GridCell,
|
|
648
648
|
isStandalone: true,
|
|
649
649
|
selector: "[ngGridCell]",
|
|
@@ -739,7 +739,7 @@ class GridCell {
|
|
|
739
739
|
}
|
|
740
740
|
i0.ɵɵngDeclareClassMetadata({
|
|
741
741
|
minVersion: "12.0.0",
|
|
742
|
-
version: "22.0.
|
|
742
|
+
version: "22.0.5",
|
|
743
743
|
ngImport: i0,
|
|
744
744
|
type: GridCell,
|
|
745
745
|
decorators: [{
|
|
@@ -883,7 +883,7 @@ class GridRow {
|
|
|
883
883
|
}
|
|
884
884
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
885
885
|
minVersion: "12.0.0",
|
|
886
|
-
version: "22.0.
|
|
886
|
+
version: "22.0.5",
|
|
887
887
|
ngImport: i0,
|
|
888
888
|
type: GridRow,
|
|
889
889
|
deps: [],
|
|
@@ -891,7 +891,7 @@ class GridRow {
|
|
|
891
891
|
});
|
|
892
892
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
893
893
|
minVersion: "17.1.0",
|
|
894
|
-
version: "22.0.
|
|
894
|
+
version: "22.0.5",
|
|
895
895
|
type: GridRow,
|
|
896
896
|
isStandalone: true,
|
|
897
897
|
selector: "[ngGridRow]",
|
|
@@ -922,7 +922,7 @@ class GridRow {
|
|
|
922
922
|
}
|
|
923
923
|
i0.ɵɵngDeclareClassMetadata({
|
|
924
924
|
minVersion: "12.0.0",
|
|
925
|
-
version: "22.0.
|
|
925
|
+
version: "22.0.5",
|
|
926
926
|
ngImport: i0,
|
|
927
927
|
type: GridRow,
|
|
928
928
|
decorators: [{
|
package/fesm2022/listbox.mjs
CHANGED
|
@@ -75,14 +75,14 @@ class Listbox {
|
|
|
75
75
|
}] : []));
|
|
76
76
|
_pattern;
|
|
77
77
|
activeDescendant;
|
|
78
|
+
_orderedItemPatterns = computed(() => this._collection.orderedItems().map(option => option._pattern), ...(ngDevMode ? [{
|
|
79
|
+
debugName: "_orderedItemPatterns"
|
|
80
|
+
}] : []));
|
|
78
81
|
constructor() {
|
|
79
|
-
const orderedItemPatterns = computed(() => this._collection.orderedItems().map(option => option._pattern), ...(ngDevMode ? [{
|
|
80
|
-
debugName: "orderedItemPatterns"
|
|
81
|
-
}] : []));
|
|
82
82
|
const inputs = {
|
|
83
83
|
...this,
|
|
84
84
|
id: this.id,
|
|
85
|
-
items:
|
|
85
|
+
items: this._orderedItemPatterns,
|
|
86
86
|
activeItem: signal(undefined),
|
|
87
87
|
textDirection: this.textDirection,
|
|
88
88
|
element: () => this._elementRef.nativeElement
|
|
@@ -135,9 +135,16 @@ class Listbox {
|
|
|
135
135
|
gotoFirst() {
|
|
136
136
|
this._pattern.listBehavior.first();
|
|
137
137
|
}
|
|
138
|
+
gotoIndex(index) {
|
|
139
|
+
const patterns = this._orderedItemPatterns();
|
|
140
|
+
const item = patterns[Math.min(Math.max(index, 0), patterns.length - 1)];
|
|
141
|
+
if (item) {
|
|
142
|
+
this._pattern.listBehavior.goto(item);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
138
145
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
139
146
|
minVersion: "12.0.0",
|
|
140
|
-
version: "22.0.
|
|
147
|
+
version: "22.0.5",
|
|
141
148
|
ngImport: i0,
|
|
142
149
|
type: Listbox,
|
|
143
150
|
deps: [],
|
|
@@ -145,7 +152,7 @@ class Listbox {
|
|
|
145
152
|
});
|
|
146
153
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
147
154
|
minVersion: "17.1.0",
|
|
148
|
-
version: "22.0.
|
|
155
|
+
version: "22.0.5",
|
|
149
156
|
type: Listbox,
|
|
150
157
|
isStandalone: true,
|
|
151
158
|
selector: "[ngListbox]",
|
|
@@ -267,7 +274,7 @@ class Listbox {
|
|
|
267
274
|
}
|
|
268
275
|
i0.ɵɵngDeclareClassMetadata({
|
|
269
276
|
minVersion: "12.0.0",
|
|
270
|
-
version: "22.0.
|
|
277
|
+
version: "22.0.5",
|
|
271
278
|
ngImport: i0,
|
|
272
279
|
type: Listbox,
|
|
273
280
|
decorators: [{
|
|
@@ -441,7 +448,7 @@ class Option {
|
|
|
441
448
|
}
|
|
442
449
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
443
450
|
minVersion: "12.0.0",
|
|
444
|
-
version: "22.0.
|
|
451
|
+
version: "22.0.5",
|
|
445
452
|
ngImport: i0,
|
|
446
453
|
type: Option,
|
|
447
454
|
deps: [],
|
|
@@ -449,7 +456,7 @@ class Option {
|
|
|
449
456
|
});
|
|
450
457
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
451
458
|
minVersion: "17.1.0",
|
|
452
|
-
version: "22.0.
|
|
459
|
+
version: "22.0.5",
|
|
453
460
|
type: Option,
|
|
454
461
|
isStandalone: true,
|
|
455
462
|
selector: "[ngOption]",
|
|
@@ -501,7 +508,7 @@ class Option {
|
|
|
501
508
|
}
|
|
502
509
|
i0.ɵɵngDeclareClassMetadata({
|
|
503
510
|
minVersion: "12.0.0",
|
|
504
|
-
version: "22.0.
|
|
511
|
+
version: "22.0.5",
|
|
505
512
|
ngImport: i0,
|
|
506
513
|
type: Option,
|
|
507
514
|
decorators: [{
|
package/fesm2022/listbox.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/listbox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/option.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 {InjectionToken} from '@angular/core';\nimport type {Listbox} from './listbox';\n\nexport const LISTBOX = new InjectionToken<Listbox<any>>('LISTBOX');\n","/**\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 afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n Signal,\n untracked,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ListboxPattern, SortedCollection, tabIndexTransform, reportViolations} from '../private';\nimport {Option} from './option';\nimport {LISTBOX} from './tokens';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n providers: [{provide: LISTBOX, useExisting: Listbox}],\n})\nexport class Listbox<V> implements OnDestroy {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\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 collection of Options. */\n readonly _collection = new SortedCollection<Option<V>>();\n\n /** A signal wrapper for directionality. */\n protected readonly textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** Whether the list is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\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 readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the listbox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** The values of the currently selected items. */\n readonly value = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** The ID of the active descendant in the listbox. */\n readonly activeDescendant: Signal<string | undefined>;\n\n constructor() {\n // Map directives to their patterns for the ListboxPattern\n const orderedItemPatterns = computed(() =>\n this._collection.orderedItems().map(option => option._pattern),\n );\n\n const inputs = {\n ...this,\n id: this.id,\n items: orderedItemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n };\n\n this._pattern = new ListboxPattern<V>(inputs);\n\n this.activeDescendant = computed(() => this._pattern.activeDescendant());\n\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (activeItem && !items.some(i => i === activeItem)) {\n this._pattern.listBehavior.unfocus();\n this._pattern.setDefaultState();\n }\n },\n });\n\n // Ensure that the value is always in sync with the available options.\n // This needs to be after the render for the value to always be available.\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const value = untracked(() => this.value());\n\n if (items && value.some(v => !items.some(i => i.value() === v))) {\n this.value.set(value.filter(v => items.some(i => i.value() === v)));\n }\n },\n });\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n","/**\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 booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {OptionPattern} from '../private';\nimport {LISTBOX} from './tokens';\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n readonly element = inject(ElementRef).nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(LISTBOX);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n readonly value = input.required<V>();\n\n /** Whether an item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n readonly label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.label() ?? '',\n });\n\n ngOnInit() {\n this._listbox._collection.register(this);\n }\n\n ngOnDestroy() {\n this._listbox._collection.unregister(this);\n }\n}\n"],"names":["LISTBOX","InjectionToken","Listbox","id","input","inject","_IdGenerator","getId","_elementRef","ElementRef","element","nativeElement","_collection","SortedCollection","textDirection","Directionality","valueSignal","asReadonly","orientation","multi","transform","booleanAttribute","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","ngDevMode","debugName","disabled","readonly","tabIndex","undefined","alias","tabIndexTransform","value","model","_pattern","activeDescendant","constructor","orderedItemPatterns","computed","orderedItems","map","option","inputs","items","activeItem","signal","ListboxPattern","afterNextRender","startObserving","afterRenderEffect","read","reportViolations","validate","write","setDefaultStateEffect","untracked","some","i","listBehavior","unfocus","setDefaultState","v","set","filter","ngOnDestroy","stopObserving","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","providers","provide","useExisting","exportAs","ngImport","decorators","args","Option","active","_listbox","_listboxPattern","required","label","selected","OptionPattern","listbox","searchTerm","ngOnInit","register","unregister"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/listbox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/option.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 {InjectionToken} from '@angular/core';\nimport type {Listbox} from './listbox';\n\nexport const LISTBOX = new InjectionToken<Listbox<any>>('LISTBOX');\n","/**\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 afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n signal,\n Signal,\n untracked,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ListboxPattern, SortedCollection, tabIndexTransform, reportViolations} from '../private';\nimport {Option} from './option';\nimport {LISTBOX} from './tokens';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n providers: [{provide: LISTBOX, useExisting: Listbox}],\n})\nexport class Listbox<V> implements OnDestroy {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\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 collection of Options. */\n readonly _collection = new SortedCollection<Option<V>>();\n\n /** A signal wrapper for directionality. */\n protected readonly textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** Whether the list is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\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 readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the listbox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** The values of the currently selected items. */\n readonly value = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** The ID of the active descendant in the listbox. */\n readonly activeDescendant: Signal<string | undefined>;\n\n private readonly _orderedItemPatterns = computed(() =>\n this._collection.orderedItems().map(option => option._pattern),\n );\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this._orderedItemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n };\n\n this._pattern = new ListboxPattern<V>(inputs);\n\n this.activeDescendant = computed(() => this._pattern.activeDescendant());\n\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (activeItem && !items.some(i => i === activeItem)) {\n this._pattern.listBehavior.unfocus();\n this._pattern.setDefaultState();\n }\n },\n });\n\n // Ensure that the value is always in sync with the available options.\n // This needs to be after the render for the value to always be available.\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const value = untracked(() => this.value());\n\n if (items && value.some(v => !items.some(i => i.value() === v))) {\n this.value.set(value.filter(v => items.some(i => i.value() === v)));\n }\n },\n });\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n\n /** Navigates to an item at a specific index in the listbox. */\n gotoIndex(index: number) {\n const patterns = this._orderedItemPatterns();\n const item = patterns[Math.min(Math.max(index, 0), patterns.length - 1)];\n\n if (item) {\n this._pattern.listBehavior.goto(item);\n }\n }\n}\n","/**\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 booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {OptionPattern} from '../private';\nimport {LISTBOX} from './tokens';\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n readonly element = inject(ElementRef).nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(LISTBOX);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n readonly value = input.required<V>();\n\n /** Whether an item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n readonly label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.label() ?? '',\n });\n\n ngOnInit() {\n this._listbox._collection.register(this);\n }\n\n ngOnDestroy() {\n this._listbox._collection.unregister(this);\n }\n}\n"],"names":["LISTBOX","InjectionToken","Listbox","id","input","inject","_IdGenerator","getId","_elementRef","ElementRef","element","nativeElement","_collection","SortedCollection","textDirection","Directionality","valueSignal","asReadonly","orientation","multi","transform","booleanAttribute","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","ngDevMode","debugName","disabled","readonly","tabIndex","undefined","alias","tabIndexTransform","value","model","_pattern","activeDescendant","_orderedItemPatterns","computed","orderedItems","map","option","constructor","inputs","items","activeItem","signal","ListboxPattern","afterNextRender","startObserving","afterRenderEffect","read","reportViolations","validate","write","setDefaultStateEffect","untracked","some","i","listBehavior","unfocus","setDefaultState","v","set","filter","ngOnDestroy","stopObserving","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","gotoIndex","index","patterns","item","Math","min","max","length","goto","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","providers","provide","useExisting","exportAs","ngImport","decorators","args","Option","active","_listbox","_listboxPattern","required","label","selected","OptionPattern","listbox","searchTerm","ngOnInit","register","unregister"],"mappings":"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"}
|
package/fesm2022/menu.mjs
CHANGED
|
@@ -58,7 +58,7 @@ class MenuTrigger {
|
|
|
58
58
|
}
|
|
59
59
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
60
60
|
minVersion: "12.0.0",
|
|
61
|
-
version: "22.0.
|
|
61
|
+
version: "22.0.5",
|
|
62
62
|
ngImport: i0,
|
|
63
63
|
type: MenuTrigger,
|
|
64
64
|
deps: [],
|
|
@@ -66,7 +66,7 @@ class MenuTrigger {
|
|
|
66
66
|
});
|
|
67
67
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
68
68
|
minVersion: "17.1.0",
|
|
69
|
-
version: "22.0.
|
|
69
|
+
version: "22.0.5",
|
|
70
70
|
type: MenuTrigger,
|
|
71
71
|
isStandalone: true,
|
|
72
72
|
selector: "[ngMenuTrigger]",
|
|
@@ -115,7 +115,7 @@ class MenuTrigger {
|
|
|
115
115
|
}
|
|
116
116
|
i0.ɵɵngDeclareClassMetadata({
|
|
117
117
|
minVersion: "12.0.0",
|
|
118
|
-
version: "22.0.
|
|
118
|
+
version: "22.0.5",
|
|
119
119
|
ngImport: i0,
|
|
120
120
|
type: MenuTrigger,
|
|
121
121
|
decorators: [{
|
|
@@ -241,7 +241,7 @@ class MenuItem {
|
|
|
241
241
|
}
|
|
242
242
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
243
243
|
minVersion: "12.0.0",
|
|
244
|
-
version: "22.0.
|
|
244
|
+
version: "22.0.5",
|
|
245
245
|
ngImport: i0,
|
|
246
246
|
type: MenuItem,
|
|
247
247
|
deps: [],
|
|
@@ -249,7 +249,7 @@ class MenuItem {
|
|
|
249
249
|
});
|
|
250
250
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
251
251
|
minVersion: "17.1.0",
|
|
252
|
-
version: "22.0.
|
|
252
|
+
version: "22.0.5",
|
|
253
253
|
type: MenuItem,
|
|
254
254
|
isStandalone: true,
|
|
255
255
|
selector: "[ngMenuItem]",
|
|
@@ -320,7 +320,7 @@ class MenuItem {
|
|
|
320
320
|
}
|
|
321
321
|
i0.ɵɵngDeclareClassMetadata({
|
|
322
322
|
minVersion: "12.0.0",
|
|
323
|
-
version: "22.0.
|
|
323
|
+
version: "22.0.5",
|
|
324
324
|
ngImport: i0,
|
|
325
325
|
type: MenuItem,
|
|
326
326
|
decorators: [{
|
|
@@ -458,7 +458,7 @@ class MenuBar {
|
|
|
458
458
|
}
|
|
459
459
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
460
460
|
minVersion: "12.0.0",
|
|
461
|
-
version: "22.0.
|
|
461
|
+
version: "22.0.5",
|
|
462
462
|
ngImport: i0,
|
|
463
463
|
type: MenuBar,
|
|
464
464
|
deps: [],
|
|
@@ -466,7 +466,7 @@ class MenuBar {
|
|
|
466
466
|
});
|
|
467
467
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
468
468
|
minVersion: "17.1.0",
|
|
469
|
-
version: "22.0.
|
|
469
|
+
version: "22.0.5",
|
|
470
470
|
type: MenuBar,
|
|
471
471
|
isStandalone: true,
|
|
472
472
|
selector: "[ngMenuBar]",
|
|
@@ -538,7 +538,7 @@ class MenuBar {
|
|
|
538
538
|
}
|
|
539
539
|
i0.ɵɵngDeclareClassMetadata({
|
|
540
540
|
minVersion: "12.0.0",
|
|
541
|
-
version: "22.0.
|
|
541
|
+
version: "22.0.5",
|
|
542
542
|
ngImport: i0,
|
|
543
543
|
type: MenuBar,
|
|
544
544
|
decorators: [{
|
|
@@ -723,7 +723,7 @@ class Menu {
|
|
|
723
723
|
}
|
|
724
724
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
725
725
|
minVersion: "12.0.0",
|
|
726
|
-
version: "22.0.
|
|
726
|
+
version: "22.0.5",
|
|
727
727
|
ngImport: i0,
|
|
728
728
|
type: Menu,
|
|
729
729
|
deps: [],
|
|
@@ -731,7 +731,7 @@ class Menu {
|
|
|
731
731
|
});
|
|
732
732
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
733
733
|
minVersion: "17.1.0",
|
|
734
|
-
version: "22.0.
|
|
734
|
+
version: "22.0.5",
|
|
735
735
|
type: Menu,
|
|
736
736
|
isStandalone: true,
|
|
737
737
|
selector: "[ngMenu]",
|
|
@@ -815,7 +815,7 @@ class Menu {
|
|
|
815
815
|
}
|
|
816
816
|
i0.ɵɵngDeclareClassMetadata({
|
|
817
817
|
minVersion: "12.0.0",
|
|
818
|
-
version: "22.0.
|
|
818
|
+
version: "22.0.5",
|
|
819
819
|
ngImport: i0,
|
|
820
820
|
type: Menu,
|
|
821
821
|
decorators: [{
|
|
@@ -906,7 +906,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
906
906
|
class MenuContent {
|
|
907
907
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
908
908
|
minVersion: "12.0.0",
|
|
909
|
-
version: "22.0.
|
|
909
|
+
version: "22.0.5",
|
|
910
910
|
ngImport: i0,
|
|
911
911
|
type: MenuContent,
|
|
912
912
|
deps: [],
|
|
@@ -914,7 +914,7 @@ class MenuContent {
|
|
|
914
914
|
});
|
|
915
915
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
916
916
|
minVersion: "14.0.0",
|
|
917
|
-
version: "22.0.
|
|
917
|
+
version: "22.0.5",
|
|
918
918
|
type: MenuContent,
|
|
919
919
|
isStandalone: true,
|
|
920
920
|
selector: "ng-template[ngMenuContent]",
|
|
@@ -927,7 +927,7 @@ class MenuContent {
|
|
|
927
927
|
}
|
|
928
928
|
i0.ɵɵngDeclareClassMetadata({
|
|
929
929
|
minVersion: "12.0.0",
|
|
930
|
-
version: "22.0.
|
|
930
|
+
version: "22.0.5",
|
|
931
931
|
ngImport: i0,
|
|
932
932
|
type: MenuContent,
|
|
933
933
|
decorators: [{
|
package/fesm2022/private.mjs
CHANGED
|
@@ -141,7 +141,8 @@ class ComboboxPattern {
|
|
|
141
141
|
untracked(() => {
|
|
142
142
|
const popup = this.inputs.popup();
|
|
143
143
|
if (this.isExpanded()) {
|
|
144
|
-
|
|
144
|
+
const relayedEvent = new KeyboardEvent(event.type, event);
|
|
145
|
+
popup?.controlTarget()?.dispatchEvent(relayedEvent);
|
|
145
146
|
}
|
|
146
147
|
});
|
|
147
148
|
}
|
package/fesm2022/private.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/combobox/combobox.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 {KeyboardEventManager, ClickEventManager, Modifier} from '../behaviors/event-manager';\nimport {computed, signal, untracked} from '@angular/core';\nimport {SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';\nimport {ExpansionItem} from '../behaviors/expansion/expansion';\n\n/** Represents the required inputs for a simple combobox. */\nexport interface ComboboxInputs extends ExpansionItem {\n /** Whether the combobox should always remain expanded. */\n alwaysExpanded: SignalLike<boolean>;\n\n /** The value of the combobox. */\n value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n element: SignalLike<HTMLElement>;\n\n /** The popup associated with the combobox. */\n popup: SignalLike<ComboboxPopupPattern | undefined>;\n\n /** An inline suggestion to be displayed in the input. */\n inlineSuggestion: SignalLike<string | undefined>;\n\n /** Whether the combobox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the combobox is soft disabled. */\n softDisabled?: SignalLike<boolean>;\n}\n\n/** Controls the state of a simple combobox. */\nexport class ComboboxPattern {\n /** The expanded state of the combobox. */\n readonly isExpanded = computed(() => this.inputs.alwaysExpanded() || this.inputs.expanded());\n\n /** The value of the combobox. */\n readonly value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n readonly element = () => this.inputs.element();\n\n /** Whether the combobox is disabled. */\n readonly disabled = () => this.inputs.disabled();\n\n /** Whether the combobox is soft disabled. */\n readonly softDisabled = () => this.inputs.softDisabled?.() ?? true;\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = () => this.inputs.inlineSuggestion();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this.inputs.popup()?.activeDescendant());\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this.inputs.popup()?.popupId());\n\n /** The type of the popup. */\n readonly popupType = computed(() => this.inputs.popup()?.popupType());\n\n /** The autocomplete behavior of the combobox. */\n readonly autocomplete = computed<'none' | 'inline' | 'list' | 'both'>(() => {\n const popupType = this.popupType();\n const hasAutocompletePopup = !!this.inputs.popup() && popupType !== 'dialog';\n const hasInlineSuggestion = !!this.inlineSuggestion();\n if (hasAutocompletePopup && hasInlineSuggestion) {\n return 'both';\n }\n if (hasAutocompletePopup) {\n return 'list';\n }\n if (hasInlineSuggestion) {\n return 'inline';\n }\n return 'none';\n });\n\n /** A relay for keyboard events to the popup. */\n readonly keyboardEventRelay = signal<KeyboardEvent | undefined>(undefined);\n\n /** Whether the combobox is focused. */\n readonly isFocused = signal(false);\n\n /** Whether the most recent input event was a deletion. */\n readonly isDeleting = signal(false);\n\n /** Whether the combobox is editable (i.e., an input or textarea). */\n readonly isEditable = computed(\n () =>\n this.element().tagName.toLowerCase() === 'input' ||\n this.element().tagName.toLowerCase() === 'textarea',\n );\n\n /** The keydown event manager for the combobox. */\n // TODO(tjshiu): Allow combo keys in combobox (#33101).\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.isExpanded()) {\n manager.on('ArrowDown', () => this.inputs.expanded.set(true));\n\n if (!this.isEditable()) {\n manager.on('Enter', () => this.inputs.expanded.set(true));\n manager.on(' ', () => this.inputs.expanded.set(true));\n }\n\n return manager;\n }\n\n manager\n .on(\n 'ArrowLeft',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on(\n 'ArrowRight',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on('ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('Home', e => this.keyboardEventRelay.set(e))\n .on('End', e => this.keyboardEventRelay.set(e))\n .on('Enter', e => this.keyboardEventRelay.set(e))\n .on('PageUp', e => this.keyboardEventRelay.set(e))\n .on('PageDown', e => this.keyboardEventRelay.set(e))\n .on('Escape', () => {\n if (!this.inputs.alwaysExpanded()) {\n this.inputs.expanded.set(false);\n }\n });\n\n if (!this.isEditable()) {\n manager\n .on(' ', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'a', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'A', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'Home', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'End', e => this.keyboardEventRelay.set(e))\n .on(/^.$/, e => {\n this.keyboardEventRelay.set(e);\n });\n }\n\n return manager;\n });\n\n /** The click event manager for the combobox. */\n click = computed(() => {\n const manager = new ClickEventManager<PointerEvent>();\n\n if (this.isEditable()) return manager;\n\n manager.on(() => this.inputs.expanded.update(v => !v));\n\n return manager;\n });\n\n constructor(readonly inputs: ComboboxInputs) {\n this.value = inputs.value;\n }\n\n /** Handles keydown events for the combobox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles click events for the combobox. */\n onClick(event: PointerEvent) {\n if (!this.disabled()) {\n this.click().handle(event);\n }\n }\n\n /** Handles focus in events for the combobox. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the combobox. */\n onFocusout(event: FocusEvent) {\n this.isFocused.set(false);\n }\n\n /** Handles input events for the combobox. */\n onInput(event: Event) {\n if (!(event.target instanceof HTMLInputElement)) return;\n if (this.disabled()) return;\n\n this.inputs.expanded.set(true);\n this.value.set(event.target.value);\n this.isDeleting.set(event instanceof InputEvent && !!event.inputType.match(/^delete/));\n }\n\n /** Highlights the currently selected item in the combobox. */\n highlightEffect() {\n const value = this.value();\n const inlineSuggestion = this.inlineSuggestion();\n\n const isDeleting = untracked(() => this.isDeleting());\n const isFocused = untracked(() => this.isFocused());\n const isExpanded = this.isExpanded();\n\n if (!inlineSuggestion || !isFocused || !isExpanded || isDeleting) return;\n\n const inputEl = this.element() as HTMLInputElement;\n const isHighlightable = inlineSuggestion.toLowerCase().startsWith(value.toLowerCase());\n\n if (isHighlightable) {\n inputEl.value = value + inlineSuggestion.slice(value.length);\n inputEl.setSelectionRange(value.length, inlineSuggestion.length);\n }\n }\n\n /** Relays keyboard events to the popup. */\n keyboardEventRelayEffect() {\n const event = this.keyboardEventRelay();\n if (event === undefined) return;\n\n // Reset isDeleting when the user navigates, so that the highlight effect can run again.\n this.isDeleting.set(false);\n\n untracked(() => {\n const popup = this.inputs.popup();\n if (this.isExpanded()) {\n popup?.controlTarget()?.dispatchEvent(event);\n }\n });\n }\n\n /** Closes the popup when focus leaves the combobox and popup. */\n closePopupOnBlurEffect() {\n const expanded = this.isExpanded();\n const comboboxFocused = this.isFocused();\n const popupFocused = !!this.inputs.popup()?.isFocused();\n if (expanded && !this.inputs.alwaysExpanded() && !comboboxFocused && !popupFocused) {\n this.inputs.expanded.set(false);\n }\n }\n}\n\n/** Represents the required inputs for a simple combobox popup. */\nexport interface ComboboxPopupInputs {\n /** The type of the popup. */\n popupType: SignalLike<'listbox' | 'tree' | 'grid' | 'dialog'>;\n\n /** The element that serves as the control target for the popup. */\n controlTarget: SignalLike<HTMLElement | undefined>;\n\n /** The ID of the active descendant in the popup. */\n activeDescendant: SignalLike<string | undefined>;\n\n /** The ID of the popup. */\n popupId: SignalLike<string | undefined>;\n}\n\n/** Controls the state of a simple combobox popup. */\nexport class ComboboxPopupPattern {\n /** The type of the popup. */\n readonly popupType = () => this.inputs.popupType();\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = () => this.inputs.controlTarget();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = () => this.inputs.activeDescendant();\n\n /** The ID of the popup. */\n readonly popupId = () => this.inputs.popupId();\n\n /** Whether the popup is focused. */\n readonly isFocused = signal(false);\n\n constructor(readonly inputs: ComboboxPopupInputs) {}\n\n /** Handles focus in events for the popup. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the popup. */\n onFocusout(event: FocusEvent) {\n const focusTarget = event.relatedTarget as Element | null;\n if (this.controlTarget()?.contains(focusTarget)) return;\n\n this.isFocused.set(false);\n }\n}\n"],"names":["ComboboxPattern","inputs","isExpanded","computed","alwaysExpanded","expanded","value","element","disabled","softDisabled","inlineSuggestion","activeDescendant","popup","popupId","popupType","autocomplete","hasAutocompletePopup","hasInlineSuggestion","keyboardEventRelay","signal","undefined","isFocused","isDeleting","isEditable","tagName","toLowerCase","keydown","manager","KeyboardEventManager","on","set","e","preventDefault","ignoreRepeat","Modifier","Shift","Ctrl","Meta","click","ClickEventManager","update","v","constructor","onKeydown","event","handle","onClick","onFocusin","onFocusout","onInput","target","HTMLInputElement","InputEvent","inputType","match","highlightEffect","untracked","inputEl","isHighlightable","startsWith","slice","length","setSelectionRange","keyboardEventRelayEffect","controlTarget","dispatchEvent","closePopupOnBlurEffect","comboboxFocused","popupFocused","ComboboxPopupPattern","focusTarget","relatedTarget","contains"],"mappings":";;;;;;;;;;;;;;;;;;;MAsCaA,eAAe,CAAA;EAqILC,MAAA;AAnIZC,EAAAA,UAAU,GAAGC,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACG,cAAc,EAAE,IAAI,IAAI,CAACH,MAAM,CAACI,QAAQ,EAAE,CAAC;EAGnFC,KAAK;EAGLC,OAAO,GAAGA,MAAM,IAAI,CAACN,MAAM,CAACM,OAAO,EAAE;EAGrCC,QAAQ,GAAGA,MAAM,IAAI,CAACP,MAAM,CAACO,QAAQ,EAAE;EAGvCC,YAAY,GAAGA,MAAM,IAAI,CAACR,MAAM,CAACQ,YAAY,IAAI,IAAI,IAAI;EAGzDC,gBAAgB,GAAGA,MAAM,IAAI,CAACT,MAAM,CAACS,gBAAgB,EAAE;AAGvDC,EAAAA,gBAAgB,GAAGR,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACW,KAAK,EAAE,EAAED,gBAAgB,EAAE,CAAC;AAG1EE,EAAAA,OAAO,GAAGV,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACW,KAAK,EAAE,EAAEC,OAAO,EAAE,CAAC;AAGxDC,EAAAA,SAAS,GAAGX,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACW,KAAK,EAAE,EAAEE,SAAS,EAAE,CAAC;EAG5DC,YAAY,GAAGZ,QAAQ,CAAsC,MAAK;AACzE,IAAA,MAAMW,SAAS,GAAG,IAAI,CAACA,SAAS,EAAE;AAClC,IAAA,MAAME,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAACf,MAAM,CAACW,KAAK,EAAE,IAAIE,SAAS,KAAK,QAAQ;IAC5E,MAAMG,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAACP,gBAAgB,EAAE;IACrD,IAAIM,oBAAoB,IAAIC,mBAAmB,EAAE;AAC/C,MAAA,OAAO,MAAM;AACf,IAAA;AACA,IAAA,IAAID,oBAAoB,EAAE;AACxB,MAAA,OAAO,MAAM;AACf,IAAA;AACA,IAAA,IAAIC,mBAAmB,EAAE;AACvB,MAAA,OAAO,QAAQ;AACjB,IAAA;AACA,IAAA,OAAO,MAAM;AACf,EAAA,CAAC,CAAC;AAGOC,EAAAA,kBAAkB,GAAGC,MAAM,CAA4BC,SAAS,CAAC;AAGjEC,EAAAA,SAAS,GAAGF,MAAM,CAAC,KAAK,CAAC;AAGzBG,EAAAA,UAAU,GAAGH,MAAM,CAAC,KAAK,CAAC;AAG1BI,EAAAA,UAAU,GAAGpB,QAAQ,CAC5B,MACE,IAAI,CAACI,OAAO,EAAE,CAACiB,OAAO,CAACC,WAAW,EAAE,KAAK,OAAO,IAChD,IAAI,CAAClB,OAAO,EAAE,CAACiB,OAAO,CAACC,WAAW,EAAE,KAAK,UAAU,CACtD;EAIDC,OAAO,GAAGvB,QAAQ,CAAC,MAAK;AACtB,IAAA,MAAMwB,OAAO,GAAG,IAAIC,oBAAoB,EAAE;AAE1C,IAAA,IAAI,CAAC,IAAI,CAAC1B,UAAU,EAAE,EAAE;AACtByB,MAAAA,OAAO,CAACE,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC,CAAC;AAE7D,MAAA,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE,EAAE;AACtBI,QAAAA,OAAO,CAACE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC,CAAC;AACzDH,QAAAA,OAAO,CAACE,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC,CAAC;AACvD,MAAA;AAEA,MAAA,OAAOH,OAAO;AAChB,IAAA;AAEAA,IAAAA,OAAA,CACGE,EAAE,CACD,WAAW,EACXE,CAAC,IAAG;AACF,MAAA,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC;AAChC,IAAA,CAAC,EACD;AAACC,MAAAA,cAAc,EAAE,IAAI,CAAClB,SAAS,EAAE,KAAK,SAAS;AAAEmB,MAAAA,YAAY,EAAE;KAAM,CAAA,CAEtEJ,EAAE,CACD,YAAY,EACZE,CAAC,IAAG;AACF,MAAA,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC;AAChC,IAAA,CAAC,EACD;AAACC,MAAAA,cAAc,EAAE,IAAI,CAAClB,SAAS,EAAE,KAAK,SAAS;AAAEmB,MAAAA,YAAY,EAAE;KAAM,CAAA,CAEtEJ,EAAE,CAAC,SAAS,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;AAAK,KAAC,CAAA,CACxEJ,EAAE,CAAC,WAAW,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;KAAM,CAAA,CAC1EJ,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,SAAS,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;KAAM,CAAA,CACxFJ,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,WAAW,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;AAAK,KAAC,CAAA,CAC1FJ,EAAE,CAAC,MAAM,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC9CF,EAAE,CAAC,KAAK,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC7CF,EAAE,CAAC,OAAO,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC/CF,EAAE,CAAC,QAAQ,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAChDF,EAAE,CAAC,UAAU,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAClDF,EAAE,CAAC,QAAQ,EAAE,MAAK;MACjB,IAAI,CAAC,IAAI,CAAC5B,MAAM,CAACG,cAAc,EAAE,EAAE;QACjC,IAAI,CAACH,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,KAAK,CAAC;AACjC,MAAA;AACF,IAAA,CAAC,CAAC;AAEJ,IAAA,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE,EAAE;MACtBI,OAAA,CACGE,EAAE,CAAC,GAAG,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC3CF,EAAE,CAAC,CAACK,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACG,IAAI,CAAC,EAAE,GAAG,EAAEN,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC3EF,EAAE,CAAC,CAACK,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACG,IAAI,CAAC,EAAE,GAAG,EAAEN,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC3EF,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,MAAM,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC9DF,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,KAAK,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC7DF,EAAE,CAAC,KAAK,EAAEE,CAAC,IAAG;AACb,QAAA,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC;AAChC,MAAA,CAAC,CAAC;AACN,IAAA;AAEA,IAAA,OAAOJ,OAAO;AAChB,EAAA,CAAC,CAAC;EAGFW,KAAK,GAAGnC,QAAQ,CAAC,MAAK;AACpB,IAAA,MAAMwB,OAAO,GAAG,IAAIY,iBAAiB,EAAgB;AAErD,IAAA,IAAI,IAAI,CAAChB,UAAU,EAAE,EAAE,OAAOI,OAAO;AAErCA,IAAAA,OAAO,CAACE,EAAE,CAAC,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACmC,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAAC,CAAC;AAEtD,IAAA,OAAOd,OAAO;AAChB,EAAA,CAAC,CAAC;EAEFe,WAAAA,CAAqBzC,MAAsB,EAAA;IAAtB,IAAA,CAAAA,MAAM,GAANA,MAAM;AACzB,IAAA,IAAI,CAACK,KAAK,GAAGL,MAAM,CAACK,KAAK;AAC3B,EAAA;EAGAqC,SAASA,CAACC,KAAoB,EAAA;IAC5B,IAAI,CAAC,IAAI,CAAC3C,MAAM,CAACO,QAAQ,EAAE,EAAE;MAC3B,IAAI,CAACkB,OAAO,EAAE,CAACmB,MAAM,CAACD,KAAK,CAAC;AAC9B,IAAA;AACF,EAAA;EAGAE,OAAOA,CAACF,KAAmB,EAAA;AACzB,IAAA,IAAI,CAAC,IAAI,CAACpC,QAAQ,EAAE,EAAE;MACpB,IAAI,CAAC8B,KAAK,EAAE,CAACO,MAAM,CAACD,KAAK,CAAC;AAC5B,IAAA;AACF,EAAA;AAGAG,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,CAAC1B,SAAS,CAACS,GAAG,CAAC,IAAI,CAAC;AAC1B,EAAA;EAGAkB,UAAUA,CAACJ,KAAiB,EAAA;AAC1B,IAAA,IAAI,CAACvB,SAAS,CAACS,GAAG,CAAC,KAAK,CAAC;AAC3B,EAAA;EAGAmB,OAAOA,CAACL,KAAY,EAAA;AAClB,IAAA,IAAI,EAAEA,KAAK,CAACM,MAAM,YAAYC,gBAAgB,CAAC,EAAE;AACjD,IAAA,IAAI,IAAI,CAAC3C,QAAQ,EAAE,EAAE;IAErB,IAAI,CAACP,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAACxB,KAAK,CAACwB,GAAG,CAACc,KAAK,CAACM,MAAM,CAAC5C,KAAK,CAAC;AAClC,IAAA,IAAI,CAACgB,UAAU,CAACQ,GAAG,CAACc,KAAK,YAAYQ,UAAU,IAAI,CAAC,CAACR,KAAK,CAACS,SAAS,CAACC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxF,EAAA;AAGAC,EAAAA,eAAeA,GAAA;AACb,IAAA,MAAMjD,KAAK,GAAG,IAAI,CAACA,KAAK,EAAE;AAC1B,IAAA,MAAMI,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,EAAE;IAEhD,MAAMY,UAAU,GAAGkC,SAAS,CAAC,MAAM,IAAI,CAAClC,UAAU,EAAE,CAAC;IACrD,MAAMD,SAAS,GAAGmC,SAAS,CAAC,MAAM,IAAI,CAACnC,SAAS,EAAE,CAAC;AACnD,IAAA,MAAMnB,UAAU,GAAG,IAAI,CAACA,UAAU,EAAE;IAEpC,IAAI,CAACQ,gBAAgB,IAAI,CAACW,SAAS,IAAI,CAACnB,UAAU,IAAIoB,UAAU,EAAE;AAElE,IAAA,MAAMmC,OAAO,GAAG,IAAI,CAAClD,OAAO,EAAsB;AAClD,IAAA,MAAMmD,eAAe,GAAGhD,gBAAgB,CAACe,WAAW,EAAE,CAACkC,UAAU,CAACrD,KAAK,CAACmB,WAAW,EAAE,CAAC;AAEtF,IAAA,IAAIiC,eAAe,EAAE;AACnBD,MAAAA,OAAO,CAACnD,KAAK,GAAGA,KAAK,GAAGI,gBAAgB,CAACkD,KAAK,CAACtD,KAAK,CAACuD,MAAM,CAAC;MAC5DJ,OAAO,CAACK,iBAAiB,CAACxD,KAAK,CAACuD,MAAM,EAAEnD,gBAAgB,CAACmD,MAAM,CAAC;AAClE,IAAA;AACF,EAAA;AAGAE,EAAAA,wBAAwBA,GAAA;AACtB,IAAA,MAAMnB,KAAK,GAAG,IAAI,CAAC1B,kBAAkB,EAAE;IACvC,IAAI0B,KAAK,KAAKxB,SAAS,EAAE;AAGzB,IAAA,IAAI,CAACE,UAAU,CAACQ,GAAG,CAAC,KAAK,CAAC;AAE1B0B,IAAAA,SAAS,CAAC,MAAK;MACb,MAAM5C,KAAK,GAAG,IAAI,CAACX,MAAM,CAACW,KAAK,EAAE;AACjC,MAAA,IAAI,IAAI,CAACV,UAAU,EAAE,EAAE;QACrBU,KAAK,EAAEoD,aAAa,EAAE,EAAEC,aAAa,CAACrB,KAAK,CAAC;AAC9C,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;AAGAsB,EAAAA,sBAAsBA,GAAA;AACpB,IAAA,MAAM7D,QAAQ,GAAG,IAAI,CAACH,UAAU,EAAE;AAClC,IAAA,MAAMiE,eAAe,GAAG,IAAI,CAAC9C,SAAS,EAAE;AACxC,IAAA,MAAM+C,YAAY,GAAG,CAAC,CAAC,IAAI,CAACnE,MAAM,CAACW,KAAK,EAAE,EAAES,SAAS,EAAE;AACvD,IAAA,IAAIhB,QAAQ,IAAI,CAAC,IAAI,CAACJ,MAAM,CAACG,cAAc,EAAE,IAAI,CAAC+D,eAAe,IAAI,CAACC,YAAY,EAAE;MAClF,IAAI,CAACnE,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,KAAK,CAAC;AACjC,IAAA;AACF,EAAA;AACD;MAkBYuC,oBAAoB,CAAA;EAgBVpE,MAAA;EAdZa,SAAS,GAAGA,MAAM,IAAI,CAACb,MAAM,CAACa,SAAS,EAAE;EAGzCkD,aAAa,GAAGA,MAAM,IAAI,CAAC/D,MAAM,CAAC+D,aAAa,EAAE;EAGjDrD,gBAAgB,GAAGA,MAAM,IAAI,CAACV,MAAM,CAACU,gBAAgB,EAAE;EAGvDE,OAAO,GAAGA,MAAM,IAAI,CAACZ,MAAM,CAACY,OAAO,EAAE;AAGrCQ,EAAAA,SAAS,GAAGF,MAAM,CAAC,KAAK,CAAC;EAElCuB,WAAAA,CAAqBzC,MAA2B,EAAA;IAA3B,IAAA,CAAAA,MAAM,GAANA,MAAM;AAAwB,EAAA;AAGnD8C,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,CAAC1B,SAAS,CAACS,GAAG,CAAC,IAAI,CAAC;AAC1B,EAAA;EAGAkB,UAAUA,CAACJ,KAAiB,EAAA;AAC1B,IAAA,MAAM0B,WAAW,GAAG1B,KAAK,CAAC2B,aAA+B;IACzD,IAAI,IAAI,CAACP,aAAa,EAAE,EAAEQ,QAAQ,CAACF,WAAW,CAAC,EAAE;AAEjD,IAAA,IAAI,CAACjD,SAAS,CAACS,GAAG,CAAC,KAAK,CAAC;AAC3B,EAAA;AACD;;;;"}
|
|
1
|
+
{"version":3,"file":"private.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/combobox/combobox.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 {KeyboardEventManager, ClickEventManager, Modifier} from '../behaviors/event-manager';\nimport {computed, signal, untracked} from '@angular/core';\nimport {SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';\nimport {ExpansionItem} from '../behaviors/expansion/expansion';\n\n/** Represents the required inputs for a simple combobox. */\nexport interface ComboboxInputs extends ExpansionItem {\n /** Whether the combobox should always remain expanded. */\n alwaysExpanded: SignalLike<boolean>;\n\n /** The value of the combobox. */\n value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n element: SignalLike<HTMLElement>;\n\n /** The popup associated with the combobox. */\n popup: SignalLike<ComboboxPopupPattern | undefined>;\n\n /** An inline suggestion to be displayed in the input. */\n inlineSuggestion: SignalLike<string | undefined>;\n\n /** Whether the combobox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the combobox is soft disabled. */\n softDisabled?: SignalLike<boolean>;\n}\n\n/** Controls the state of a simple combobox. */\nexport class ComboboxPattern {\n /** The expanded state of the combobox. */\n readonly isExpanded = computed(() => this.inputs.alwaysExpanded() || this.inputs.expanded());\n\n /** The value of the combobox. */\n readonly value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n readonly element = () => this.inputs.element();\n\n /** Whether the combobox is disabled. */\n readonly disabled = () => this.inputs.disabled();\n\n /** Whether the combobox is soft disabled. */\n readonly softDisabled = () => this.inputs.softDisabled?.() ?? true;\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = () => this.inputs.inlineSuggestion();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this.inputs.popup()?.activeDescendant());\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this.inputs.popup()?.popupId());\n\n /** The type of the popup. */\n readonly popupType = computed(() => this.inputs.popup()?.popupType());\n\n /** The autocomplete behavior of the combobox. */\n readonly autocomplete = computed<'none' | 'inline' | 'list' | 'both'>(() => {\n const popupType = this.popupType();\n const hasAutocompletePopup = !!this.inputs.popup() && popupType !== 'dialog';\n const hasInlineSuggestion = !!this.inlineSuggestion();\n if (hasAutocompletePopup && hasInlineSuggestion) {\n return 'both';\n }\n if (hasAutocompletePopup) {\n return 'list';\n }\n if (hasInlineSuggestion) {\n return 'inline';\n }\n return 'none';\n });\n\n /** A relay for keyboard events to the popup. */\n readonly keyboardEventRelay = signal<KeyboardEvent | undefined>(undefined);\n\n /** Whether the combobox is focused. */\n readonly isFocused = signal(false);\n\n /** Whether the most recent input event was a deletion. */\n readonly isDeleting = signal(false);\n\n /** Whether the combobox is editable (i.e., an input or textarea). */\n readonly isEditable = computed(\n () =>\n this.element().tagName.toLowerCase() === 'input' ||\n this.element().tagName.toLowerCase() === 'textarea',\n );\n\n /** The keydown event manager for the combobox. */\n // TODO(tjshiu): Allow combo keys in combobox (#33101).\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.isExpanded()) {\n manager.on('ArrowDown', () => this.inputs.expanded.set(true));\n\n if (!this.isEditable()) {\n manager.on('Enter', () => this.inputs.expanded.set(true));\n manager.on(' ', () => this.inputs.expanded.set(true));\n }\n\n return manager;\n }\n\n manager\n .on(\n 'ArrowLeft',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on(\n 'ArrowRight',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on('ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('Home', e => this.keyboardEventRelay.set(e))\n .on('End', e => this.keyboardEventRelay.set(e))\n .on('Enter', e => this.keyboardEventRelay.set(e))\n .on('PageUp', e => this.keyboardEventRelay.set(e))\n .on('PageDown', e => this.keyboardEventRelay.set(e))\n .on('Escape', () => {\n if (!this.inputs.alwaysExpanded()) {\n this.inputs.expanded.set(false);\n }\n });\n\n if (!this.isEditable()) {\n manager\n .on(' ', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'a', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'A', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'Home', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'End', e => this.keyboardEventRelay.set(e))\n .on(/^.$/, e => {\n this.keyboardEventRelay.set(e);\n });\n }\n\n return manager;\n });\n\n /** The click event manager for the combobox. */\n click = computed(() => {\n const manager = new ClickEventManager<PointerEvent>();\n\n if (this.isEditable()) return manager;\n\n manager.on(() => this.inputs.expanded.update(v => !v));\n\n return manager;\n });\n\n constructor(readonly inputs: ComboboxInputs) {\n this.value = inputs.value;\n }\n\n /** Handles keydown events for the combobox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles click events for the combobox. */\n onClick(event: PointerEvent) {\n if (!this.disabled()) {\n this.click().handle(event);\n }\n }\n\n /** Handles focus in events for the combobox. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the combobox. */\n onFocusout(event: FocusEvent) {\n this.isFocused.set(false);\n }\n\n /** Handles input events for the combobox. */\n onInput(event: Event) {\n if (!(event.target instanceof HTMLInputElement)) return;\n if (this.disabled()) return;\n\n this.inputs.expanded.set(true);\n this.value.set(event.target.value);\n this.isDeleting.set(event instanceof InputEvent && !!event.inputType.match(/^delete/));\n }\n\n /** Highlights the currently selected item in the combobox. */\n highlightEffect() {\n const value = this.value();\n const inlineSuggestion = this.inlineSuggestion();\n\n const isDeleting = untracked(() => this.isDeleting());\n const isFocused = untracked(() => this.isFocused());\n const isExpanded = this.isExpanded();\n\n if (!inlineSuggestion || !isFocused || !isExpanded || isDeleting) return;\n\n const inputEl = this.element() as HTMLInputElement;\n const isHighlightable = inlineSuggestion.toLowerCase().startsWith(value.toLowerCase());\n\n if (isHighlightable) {\n inputEl.value = value + inlineSuggestion.slice(value.length);\n inputEl.setSelectionRange(value.length, inlineSuggestion.length);\n }\n }\n\n /** Relays keyboard events to the popup. */\n keyboardEventRelayEffect() {\n const event = this.keyboardEventRelay();\n if (event === undefined) return;\n\n // Reset isDeleting when the user navigates, so that the highlight effect can run again.\n this.isDeleting.set(false);\n\n untracked(() => {\n const popup = this.inputs.popup();\n if (this.isExpanded()) {\n const relayedEvent = new KeyboardEvent(event.type, event);\n popup?.controlTarget()?.dispatchEvent(relayedEvent);\n }\n });\n }\n\n /** Closes the popup when focus leaves the combobox and popup. */\n closePopupOnBlurEffect() {\n const expanded = this.isExpanded();\n const comboboxFocused = this.isFocused();\n const popupFocused = !!this.inputs.popup()?.isFocused();\n if (expanded && !this.inputs.alwaysExpanded() && !comboboxFocused && !popupFocused) {\n this.inputs.expanded.set(false);\n }\n }\n}\n\n/** Represents the required inputs for a simple combobox popup. */\nexport interface ComboboxPopupInputs {\n /** The type of the popup. */\n popupType: SignalLike<'listbox' | 'tree' | 'grid' | 'dialog'>;\n\n /** The element that serves as the control target for the popup. */\n controlTarget: SignalLike<HTMLElement | undefined>;\n\n /** The ID of the active descendant in the popup. */\n activeDescendant: SignalLike<string | undefined>;\n\n /** The ID of the popup. */\n popupId: SignalLike<string | undefined>;\n}\n\n/** Controls the state of a simple combobox popup. */\nexport class ComboboxPopupPattern {\n /** The type of the popup. */\n readonly popupType = () => this.inputs.popupType();\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = () => this.inputs.controlTarget();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = () => this.inputs.activeDescendant();\n\n /** The ID of the popup. */\n readonly popupId = () => this.inputs.popupId();\n\n /** Whether the popup is focused. */\n readonly isFocused = signal(false);\n\n constructor(readonly inputs: ComboboxPopupInputs) {}\n\n /** Handles focus in events for the popup. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the popup. */\n onFocusout(event: FocusEvent) {\n const focusTarget = event.relatedTarget as Element | null;\n if (this.controlTarget()?.contains(focusTarget)) return;\n\n this.isFocused.set(false);\n }\n}\n"],"names":["ComboboxPattern","inputs","isExpanded","computed","alwaysExpanded","expanded","value","element","disabled","softDisabled","inlineSuggestion","activeDescendant","popup","popupId","popupType","autocomplete","hasAutocompletePopup","hasInlineSuggestion","keyboardEventRelay","signal","undefined","isFocused","isDeleting","isEditable","tagName","toLowerCase","keydown","manager","KeyboardEventManager","on","set","e","preventDefault","ignoreRepeat","Modifier","Shift","Ctrl","Meta","click","ClickEventManager","update","v","constructor","onKeydown","event","handle","onClick","onFocusin","onFocusout","onInput","target","HTMLInputElement","InputEvent","inputType","match","highlightEffect","untracked","inputEl","isHighlightable","startsWith","slice","length","setSelectionRange","keyboardEventRelayEffect","relayedEvent","KeyboardEvent","type","controlTarget","dispatchEvent","closePopupOnBlurEffect","comboboxFocused","popupFocused","ComboboxPopupPattern","focusTarget","relatedTarget","contains"],"mappings":";;;;;;;;;;;;;;;;;;;MAsCaA,eAAe,CAAA;EAqILC,MAAA;AAnIZC,EAAAA,UAAU,GAAGC,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACG,cAAc,EAAE,IAAI,IAAI,CAACH,MAAM,CAACI,QAAQ,EAAE,CAAC;EAGnFC,KAAK;EAGLC,OAAO,GAAGA,MAAM,IAAI,CAACN,MAAM,CAACM,OAAO,EAAE;EAGrCC,QAAQ,GAAGA,MAAM,IAAI,CAACP,MAAM,CAACO,QAAQ,EAAE;EAGvCC,YAAY,GAAGA,MAAM,IAAI,CAACR,MAAM,CAACQ,YAAY,IAAI,IAAI,IAAI;EAGzDC,gBAAgB,GAAGA,MAAM,IAAI,CAACT,MAAM,CAACS,gBAAgB,EAAE;AAGvDC,EAAAA,gBAAgB,GAAGR,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACW,KAAK,EAAE,EAAED,gBAAgB,EAAE,CAAC;AAG1EE,EAAAA,OAAO,GAAGV,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACW,KAAK,EAAE,EAAEC,OAAO,EAAE,CAAC;AAGxDC,EAAAA,SAAS,GAAGX,QAAQ,CAAC,MAAM,IAAI,CAACF,MAAM,CAACW,KAAK,EAAE,EAAEE,SAAS,EAAE,CAAC;EAG5DC,YAAY,GAAGZ,QAAQ,CAAsC,MAAK;AACzE,IAAA,MAAMW,SAAS,GAAG,IAAI,CAACA,SAAS,EAAE;AAClC,IAAA,MAAME,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAACf,MAAM,CAACW,KAAK,EAAE,IAAIE,SAAS,KAAK,QAAQ;IAC5E,MAAMG,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAACP,gBAAgB,EAAE;IACrD,IAAIM,oBAAoB,IAAIC,mBAAmB,EAAE;AAC/C,MAAA,OAAO,MAAM;AACf,IAAA;AACA,IAAA,IAAID,oBAAoB,EAAE;AACxB,MAAA,OAAO,MAAM;AACf,IAAA;AACA,IAAA,IAAIC,mBAAmB,EAAE;AACvB,MAAA,OAAO,QAAQ;AACjB,IAAA;AACA,IAAA,OAAO,MAAM;AACf,EAAA,CAAC,CAAC;AAGOC,EAAAA,kBAAkB,GAAGC,MAAM,CAA4BC,SAAS,CAAC;AAGjEC,EAAAA,SAAS,GAAGF,MAAM,CAAC,KAAK,CAAC;AAGzBG,EAAAA,UAAU,GAAGH,MAAM,CAAC,KAAK,CAAC;AAG1BI,EAAAA,UAAU,GAAGpB,QAAQ,CAC5B,MACE,IAAI,CAACI,OAAO,EAAE,CAACiB,OAAO,CAACC,WAAW,EAAE,KAAK,OAAO,IAChD,IAAI,CAAClB,OAAO,EAAE,CAACiB,OAAO,CAACC,WAAW,EAAE,KAAK,UAAU,CACtD;EAIDC,OAAO,GAAGvB,QAAQ,CAAC,MAAK;AACtB,IAAA,MAAMwB,OAAO,GAAG,IAAIC,oBAAoB,EAAE;AAE1C,IAAA,IAAI,CAAC,IAAI,CAAC1B,UAAU,EAAE,EAAE;AACtByB,MAAAA,OAAO,CAACE,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC,CAAC;AAE7D,MAAA,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE,EAAE;AACtBI,QAAAA,OAAO,CAACE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC,CAAC;AACzDH,QAAAA,OAAO,CAACE,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC,CAAC;AACvD,MAAA;AAEA,MAAA,OAAOH,OAAO;AAChB,IAAA;AAEAA,IAAAA,OAAA,CACGE,EAAE,CACD,WAAW,EACXE,CAAC,IAAG;AACF,MAAA,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC;AAChC,IAAA,CAAC,EACD;AAACC,MAAAA,cAAc,EAAE,IAAI,CAAClB,SAAS,EAAE,KAAK,SAAS;AAAEmB,MAAAA,YAAY,EAAE;KAAM,CAAA,CAEtEJ,EAAE,CACD,YAAY,EACZE,CAAC,IAAG;AACF,MAAA,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC;AAChC,IAAA,CAAC,EACD;AAACC,MAAAA,cAAc,EAAE,IAAI,CAAClB,SAAS,EAAE,KAAK,SAAS;AAAEmB,MAAAA,YAAY,EAAE;KAAM,CAAA,CAEtEJ,EAAE,CAAC,SAAS,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;AAAK,KAAC,CAAA,CACxEJ,EAAE,CAAC,WAAW,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;KAAM,CAAA,CAC1EJ,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,SAAS,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;KAAM,CAAA,CACxFJ,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,WAAW,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,EAAE;AAACE,MAAAA,YAAY,EAAE;AAAK,KAAC,CAAA,CAC1FJ,EAAE,CAAC,MAAM,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC9CF,EAAE,CAAC,KAAK,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC7CF,EAAE,CAAC,OAAO,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC/CF,EAAE,CAAC,QAAQ,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAChDF,EAAE,CAAC,UAAU,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAClDF,EAAE,CAAC,QAAQ,EAAE,MAAK;MACjB,IAAI,CAAC,IAAI,CAAC5B,MAAM,CAACG,cAAc,EAAE,EAAE;QACjC,IAAI,CAACH,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,KAAK,CAAC;AACjC,MAAA;AACF,IAAA,CAAC,CAAC;AAEJ,IAAA,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE,EAAE;MACtBI,OAAA,CACGE,EAAE,CAAC,GAAG,EAAEE,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC3CF,EAAE,CAAC,CAACK,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACG,IAAI,CAAC,EAAE,GAAG,EAAEN,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC3EF,EAAE,CAAC,CAACK,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACG,IAAI,CAAC,EAAE,GAAG,EAAEN,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC3EF,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,MAAM,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC9DF,EAAE,CAACK,QAAQ,CAACC,KAAK,EAAE,KAAK,EAAEJ,CAAC,IAAI,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC,CAAA,CAC7DF,EAAE,CAAC,KAAK,EAAEE,CAAC,IAAG;AACb,QAAA,IAAI,CAACb,kBAAkB,CAACY,GAAG,CAACC,CAAC,CAAC;AAChC,MAAA,CAAC,CAAC;AACN,IAAA;AAEA,IAAA,OAAOJ,OAAO;AAChB,EAAA,CAAC,CAAC;EAGFW,KAAK,GAAGnC,QAAQ,CAAC,MAAK;AACpB,IAAA,MAAMwB,OAAO,GAAG,IAAIY,iBAAiB,EAAgB;AAErD,IAAA,IAAI,IAAI,CAAChB,UAAU,EAAE,EAAE,OAAOI,OAAO;AAErCA,IAAAA,OAAO,CAACE,EAAE,CAAC,MAAM,IAAI,CAAC5B,MAAM,CAACI,QAAQ,CAACmC,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAAC,CAAC;AAEtD,IAAA,OAAOd,OAAO;AAChB,EAAA,CAAC,CAAC;EAEFe,WAAAA,CAAqBzC,MAAsB,EAAA;IAAtB,IAAA,CAAAA,MAAM,GAANA,MAAM;AACzB,IAAA,IAAI,CAACK,KAAK,GAAGL,MAAM,CAACK,KAAK;AAC3B,EAAA;EAGAqC,SAASA,CAACC,KAAoB,EAAA;IAC5B,IAAI,CAAC,IAAI,CAAC3C,MAAM,CAACO,QAAQ,EAAE,EAAE;MAC3B,IAAI,CAACkB,OAAO,EAAE,CAACmB,MAAM,CAACD,KAAK,CAAC;AAC9B,IAAA;AACF,EAAA;EAGAE,OAAOA,CAACF,KAAmB,EAAA;AACzB,IAAA,IAAI,CAAC,IAAI,CAACpC,QAAQ,EAAE,EAAE;MACpB,IAAI,CAAC8B,KAAK,EAAE,CAACO,MAAM,CAACD,KAAK,CAAC;AAC5B,IAAA;AACF,EAAA;AAGAG,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,CAAC1B,SAAS,CAACS,GAAG,CAAC,IAAI,CAAC;AAC1B,EAAA;EAGAkB,UAAUA,CAACJ,KAAiB,EAAA;AAC1B,IAAA,IAAI,CAACvB,SAAS,CAACS,GAAG,CAAC,KAAK,CAAC;AAC3B,EAAA;EAGAmB,OAAOA,CAACL,KAAY,EAAA;AAClB,IAAA,IAAI,EAAEA,KAAK,CAACM,MAAM,YAAYC,gBAAgB,CAAC,EAAE;AACjD,IAAA,IAAI,IAAI,CAAC3C,QAAQ,EAAE,EAAE;IAErB,IAAI,CAACP,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAACxB,KAAK,CAACwB,GAAG,CAACc,KAAK,CAACM,MAAM,CAAC5C,KAAK,CAAC;AAClC,IAAA,IAAI,CAACgB,UAAU,CAACQ,GAAG,CAACc,KAAK,YAAYQ,UAAU,IAAI,CAAC,CAACR,KAAK,CAACS,SAAS,CAACC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxF,EAAA;AAGAC,EAAAA,eAAeA,GAAA;AACb,IAAA,MAAMjD,KAAK,GAAG,IAAI,CAACA,KAAK,EAAE;AAC1B,IAAA,MAAMI,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,EAAE;IAEhD,MAAMY,UAAU,GAAGkC,SAAS,CAAC,MAAM,IAAI,CAAClC,UAAU,EAAE,CAAC;IACrD,MAAMD,SAAS,GAAGmC,SAAS,CAAC,MAAM,IAAI,CAACnC,SAAS,EAAE,CAAC;AACnD,IAAA,MAAMnB,UAAU,GAAG,IAAI,CAACA,UAAU,EAAE;IAEpC,IAAI,CAACQ,gBAAgB,IAAI,CAACW,SAAS,IAAI,CAACnB,UAAU,IAAIoB,UAAU,EAAE;AAElE,IAAA,MAAMmC,OAAO,GAAG,IAAI,CAAClD,OAAO,EAAsB;AAClD,IAAA,MAAMmD,eAAe,GAAGhD,gBAAgB,CAACe,WAAW,EAAE,CAACkC,UAAU,CAACrD,KAAK,CAACmB,WAAW,EAAE,CAAC;AAEtF,IAAA,IAAIiC,eAAe,EAAE;AACnBD,MAAAA,OAAO,CAACnD,KAAK,GAAGA,KAAK,GAAGI,gBAAgB,CAACkD,KAAK,CAACtD,KAAK,CAACuD,MAAM,CAAC;MAC5DJ,OAAO,CAACK,iBAAiB,CAACxD,KAAK,CAACuD,MAAM,EAAEnD,gBAAgB,CAACmD,MAAM,CAAC;AAClE,IAAA;AACF,EAAA;AAGAE,EAAAA,wBAAwBA,GAAA;AACtB,IAAA,MAAMnB,KAAK,GAAG,IAAI,CAAC1B,kBAAkB,EAAE;IACvC,IAAI0B,KAAK,KAAKxB,SAAS,EAAE;AAGzB,IAAA,IAAI,CAACE,UAAU,CAACQ,GAAG,CAAC,KAAK,CAAC;AAE1B0B,IAAAA,SAAS,CAAC,MAAK;MACb,MAAM5C,KAAK,GAAG,IAAI,CAACX,MAAM,CAACW,KAAK,EAAE;AACjC,MAAA,IAAI,IAAI,CAACV,UAAU,EAAE,EAAE;QACrB,MAAM8D,YAAY,GAAG,IAAIC,aAAa,CAACrB,KAAK,CAACsB,IAAI,EAAEtB,KAAK,CAAC;QACzDhC,KAAK,EAAEuD,aAAa,EAAE,EAAEC,aAAa,CAACJ,YAAY,CAAC;AACrD,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;AAGAK,EAAAA,sBAAsBA,GAAA;AACpB,IAAA,MAAMhE,QAAQ,GAAG,IAAI,CAACH,UAAU,EAAE;AAClC,IAAA,MAAMoE,eAAe,GAAG,IAAI,CAACjD,SAAS,EAAE;AACxC,IAAA,MAAMkD,YAAY,GAAG,CAAC,CAAC,IAAI,CAACtE,MAAM,CAACW,KAAK,EAAE,EAAES,SAAS,EAAE;AACvD,IAAA,IAAIhB,QAAQ,IAAI,CAAC,IAAI,CAACJ,MAAM,CAACG,cAAc,EAAE,IAAI,CAACkE,eAAe,IAAI,CAACC,YAAY,EAAE;MAClF,IAAI,CAACtE,MAAM,CAACI,QAAQ,CAACyB,GAAG,CAAC,KAAK,CAAC;AACjC,IAAA;AACF,EAAA;AACD;MAkBY0C,oBAAoB,CAAA;EAgBVvE,MAAA;EAdZa,SAAS,GAAGA,MAAM,IAAI,CAACb,MAAM,CAACa,SAAS,EAAE;EAGzCqD,aAAa,GAAGA,MAAM,IAAI,CAAClE,MAAM,CAACkE,aAAa,EAAE;EAGjDxD,gBAAgB,GAAGA,MAAM,IAAI,CAACV,MAAM,CAACU,gBAAgB,EAAE;EAGvDE,OAAO,GAAGA,MAAM,IAAI,CAACZ,MAAM,CAACY,OAAO,EAAE;AAGrCQ,EAAAA,SAAS,GAAGF,MAAM,CAAC,KAAK,CAAC;EAElCuB,WAAAA,CAAqBzC,MAA2B,EAAA;IAA3B,IAAA,CAAAA,MAAM,GAANA,MAAM;AAAwB,EAAA;AAGnD8C,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,CAAC1B,SAAS,CAACS,GAAG,CAAC,IAAI,CAAC;AAC1B,EAAA;EAGAkB,UAAUA,CAACJ,KAAiB,EAAA;AAC1B,IAAA,MAAM6B,WAAW,GAAG7B,KAAK,CAAC8B,aAA+B;IACzD,IAAI,IAAI,CAACP,aAAa,EAAE,EAAEQ,QAAQ,CAACF,WAAW,CAAC,EAAE;AAEjD,IAAA,IAAI,CAACpD,SAAS,CAACS,GAAG,CAAC,KAAK,CAAC;AAC3B,EAAA;AACD;;;;"}
|
package/fesm2022/tabs.mjs
CHANGED
|
@@ -63,7 +63,7 @@ class Tabs {
|
|
|
63
63
|
}
|
|
64
64
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
65
65
|
minVersion: "12.0.0",
|
|
66
|
-
version: "22.0.
|
|
66
|
+
version: "22.0.5",
|
|
67
67
|
ngImport: i0,
|
|
68
68
|
type: Tabs,
|
|
69
69
|
deps: [],
|
|
@@ -71,7 +71,7 @@ class Tabs {
|
|
|
71
71
|
});
|
|
72
72
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
73
73
|
minVersion: "14.0.0",
|
|
74
|
-
version: "22.0.
|
|
74
|
+
version: "22.0.5",
|
|
75
75
|
type: Tabs,
|
|
76
76
|
isStandalone: true,
|
|
77
77
|
selector: "[ngTabs]",
|
|
@@ -85,7 +85,7 @@ class Tabs {
|
|
|
85
85
|
}
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({
|
|
87
87
|
minVersion: "12.0.0",
|
|
88
|
-
version: "22.0.
|
|
88
|
+
version: "22.0.5",
|
|
89
89
|
ngImport: i0,
|
|
90
90
|
type: Tabs,
|
|
91
91
|
decorators: [{
|
|
@@ -197,7 +197,7 @@ class TabList {
|
|
|
197
197
|
}
|
|
198
198
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
199
199
|
minVersion: "12.0.0",
|
|
200
|
-
version: "22.0.
|
|
200
|
+
version: "22.0.5",
|
|
201
201
|
ngImport: i0,
|
|
202
202
|
type: TabList,
|
|
203
203
|
deps: [],
|
|
@@ -205,7 +205,7 @@ class TabList {
|
|
|
205
205
|
});
|
|
206
206
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
207
207
|
minVersion: "17.1.0",
|
|
208
|
-
version: "22.0.
|
|
208
|
+
version: "22.0.5",
|
|
209
209
|
type: TabList,
|
|
210
210
|
isStandalone: true,
|
|
211
211
|
selector: "[ngTabList]",
|
|
@@ -289,7 +289,7 @@ class TabList {
|
|
|
289
289
|
}
|
|
290
290
|
i0.ɵɵngDeclareClassMetadata({
|
|
291
291
|
minVersion: "12.0.0",
|
|
292
|
-
version: "22.0.
|
|
292
|
+
version: "22.0.5",
|
|
293
293
|
ngImport: i0,
|
|
294
294
|
type: TabList,
|
|
295
295
|
decorators: [{
|
|
@@ -439,7 +439,7 @@ class Tab {
|
|
|
439
439
|
}
|
|
440
440
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
441
441
|
minVersion: "12.0.0",
|
|
442
|
-
version: "22.0.
|
|
442
|
+
version: "22.0.5",
|
|
443
443
|
ngImport: i0,
|
|
444
444
|
type: Tab,
|
|
445
445
|
deps: [],
|
|
@@ -447,7 +447,7 @@ class Tab {
|
|
|
447
447
|
});
|
|
448
448
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
449
449
|
minVersion: "17.1.0",
|
|
450
|
-
version: "22.0.
|
|
450
|
+
version: "22.0.5",
|
|
451
451
|
type: Tab,
|
|
452
452
|
isStandalone: true,
|
|
453
453
|
selector: "[ngTab]",
|
|
@@ -493,7 +493,7 @@ class Tab {
|
|
|
493
493
|
}
|
|
494
494
|
i0.ɵɵngDeclareClassMetadata({
|
|
495
495
|
minVersion: "12.0.0",
|
|
496
|
-
version: "22.0.
|
|
496
|
+
version: "22.0.5",
|
|
497
497
|
ngImport: i0,
|
|
498
498
|
type: Tab,
|
|
499
499
|
decorators: [{
|
|
@@ -544,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
544
544
|
class TabContent {
|
|
545
545
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
546
546
|
minVersion: "12.0.0",
|
|
547
|
-
version: "22.0.
|
|
547
|
+
version: "22.0.5",
|
|
548
548
|
ngImport: i0,
|
|
549
549
|
type: TabContent,
|
|
550
550
|
deps: [],
|
|
@@ -552,7 +552,7 @@ class TabContent {
|
|
|
552
552
|
});
|
|
553
553
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
554
554
|
minVersion: "14.0.0",
|
|
555
|
-
version: "22.0.
|
|
555
|
+
version: "22.0.5",
|
|
556
556
|
type: TabContent,
|
|
557
557
|
isStandalone: true,
|
|
558
558
|
selector: "ng-template[ngTabContent]",
|
|
@@ -565,7 +565,7 @@ class TabContent {
|
|
|
565
565
|
}
|
|
566
566
|
i0.ɵɵngDeclareClassMetadata({
|
|
567
567
|
minVersion: "12.0.0",
|
|
568
|
-
version: "22.0.
|
|
568
|
+
version: "22.0.5",
|
|
569
569
|
ngImport: i0,
|
|
570
570
|
type: TabContent,
|
|
571
571
|
decorators: [{
|
|
@@ -633,7 +633,7 @@ class TabPanel {
|
|
|
633
633
|
}
|
|
634
634
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
635
635
|
minVersion: "12.0.0",
|
|
636
|
-
version: "22.0.
|
|
636
|
+
version: "22.0.5",
|
|
637
637
|
ngImport: i0,
|
|
638
638
|
type: TabPanel,
|
|
639
639
|
deps: [],
|
|
@@ -641,7 +641,7 @@ class TabPanel {
|
|
|
641
641
|
});
|
|
642
642
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
643
643
|
minVersion: "17.2.0",
|
|
644
|
-
version: "22.0.
|
|
644
|
+
version: "22.0.5",
|
|
645
645
|
type: TabPanel,
|
|
646
646
|
isStandalone: true,
|
|
647
647
|
selector: "[ngTabPanel]",
|
|
@@ -689,7 +689,7 @@ class TabPanel {
|
|
|
689
689
|
}
|
|
690
690
|
i0.ɵɵngDeclareClassMetadata({
|
|
691
691
|
minVersion: "12.0.0",
|
|
692
|
-
version: "22.0.
|
|
692
|
+
version: "22.0.5",
|
|
693
693
|
ngImport: i0,
|
|
694
694
|
type: TabPanel,
|
|
695
695
|
decorators: [{
|
package/fesm2022/toolbar.mjs
CHANGED
|
@@ -73,7 +73,7 @@ class Toolbar {
|
|
|
73
73
|
}
|
|
74
74
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
75
75
|
minVersion: "12.0.0",
|
|
76
|
-
version: "22.0.
|
|
76
|
+
version: "22.0.5",
|
|
77
77
|
ngImport: i0,
|
|
78
78
|
type: Toolbar,
|
|
79
79
|
deps: [],
|
|
@@ -81,7 +81,7 @@ class Toolbar {
|
|
|
81
81
|
});
|
|
82
82
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
83
83
|
minVersion: "17.1.0",
|
|
84
|
-
version: "22.0.
|
|
84
|
+
version: "22.0.5",
|
|
85
85
|
type: Toolbar,
|
|
86
86
|
isStandalone: true,
|
|
87
87
|
selector: "[ngToolbar]",
|
|
@@ -147,7 +147,7 @@ class Toolbar {
|
|
|
147
147
|
}
|
|
148
148
|
i0.ɵɵngDeclareClassMetadata({
|
|
149
149
|
minVersion: "12.0.0",
|
|
150
|
-
version: "22.0.
|
|
150
|
+
version: "22.0.5",
|
|
151
151
|
ngImport: i0,
|
|
152
152
|
type: Toolbar,
|
|
153
153
|
decorators: [{
|
|
@@ -263,7 +263,7 @@ class ToolbarWidget {
|
|
|
263
263
|
}
|
|
264
264
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
265
265
|
minVersion: "12.0.0",
|
|
266
|
-
version: "22.0.
|
|
266
|
+
version: "22.0.5",
|
|
267
267
|
ngImport: i0,
|
|
268
268
|
type: ToolbarWidget,
|
|
269
269
|
deps: [],
|
|
@@ -271,7 +271,7 @@ class ToolbarWidget {
|
|
|
271
271
|
});
|
|
272
272
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
273
273
|
minVersion: "17.1.0",
|
|
274
|
-
version: "22.0.
|
|
274
|
+
version: "22.0.5",
|
|
275
275
|
type: ToolbarWidget,
|
|
276
276
|
isStandalone: true,
|
|
277
277
|
selector: "[ngToolbarWidget]",
|
|
@@ -317,7 +317,7 @@ class ToolbarWidget {
|
|
|
317
317
|
}
|
|
318
318
|
i0.ɵɵngDeclareClassMetadata({
|
|
319
319
|
minVersion: "12.0.0",
|
|
320
|
-
version: "22.0.
|
|
320
|
+
version: "22.0.5",
|
|
321
321
|
ngImport: i0,
|
|
322
322
|
type: ToolbarWidget,
|
|
323
323
|
decorators: [{
|
|
@@ -412,7 +412,7 @@ class ToolbarWidgetGroup {
|
|
|
412
412
|
}
|
|
413
413
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
414
414
|
minVersion: "12.0.0",
|
|
415
|
-
version: "22.0.
|
|
415
|
+
version: "22.0.5",
|
|
416
416
|
ngImport: i0,
|
|
417
417
|
type: ToolbarWidgetGroup,
|
|
418
418
|
deps: [],
|
|
@@ -420,7 +420,7 @@ class ToolbarWidgetGroup {
|
|
|
420
420
|
});
|
|
421
421
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
422
422
|
minVersion: "17.2.0",
|
|
423
|
-
version: "22.0.
|
|
423
|
+
version: "22.0.5",
|
|
424
424
|
type: ToolbarWidgetGroup,
|
|
425
425
|
isStandalone: true,
|
|
426
426
|
selector: "[ngToolbarWidgetGroup]",
|
|
@@ -456,7 +456,7 @@ class ToolbarWidgetGroup {
|
|
|
456
456
|
}
|
|
457
457
|
i0.ɵɵngDeclareClassMetadata({
|
|
458
458
|
minVersion: "12.0.0",
|
|
459
|
-
version: "22.0.
|
|
459
|
+
version: "22.0.5",
|
|
460
460
|
ngImport: i0,
|
|
461
461
|
type: ToolbarWidgetGroup,
|
|
462
462
|
decorators: [{
|
package/fesm2022/tree.mjs
CHANGED
|
@@ -123,7 +123,7 @@ class Tree {
|
|
|
123
123
|
}
|
|
124
124
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
125
125
|
minVersion: "12.0.0",
|
|
126
|
-
version: "22.0.
|
|
126
|
+
version: "22.0.5",
|
|
127
127
|
ngImport: i0,
|
|
128
128
|
type: Tree,
|
|
129
129
|
deps: [],
|
|
@@ -131,7 +131,7 @@ class Tree {
|
|
|
131
131
|
});
|
|
132
132
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
133
133
|
minVersion: "17.1.0",
|
|
134
|
-
version: "22.0.
|
|
134
|
+
version: "22.0.5",
|
|
135
135
|
type: Tree,
|
|
136
136
|
isStandalone: true,
|
|
137
137
|
selector: "[ngTree]",
|
|
@@ -255,7 +255,7 @@ class Tree {
|
|
|
255
255
|
}
|
|
256
256
|
i0.ɵɵngDeclareClassMetadata({
|
|
257
257
|
minVersion: "12.0.0",
|
|
258
|
-
version: "22.0.
|
|
258
|
+
version: "22.0.5",
|
|
259
259
|
ngImport: i0,
|
|
260
260
|
type: Tree,
|
|
261
261
|
decorators: [{
|
|
@@ -419,7 +419,7 @@ class TreeItemGroup {
|
|
|
419
419
|
}
|
|
420
420
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
421
421
|
minVersion: "12.0.0",
|
|
422
|
-
version: "22.0.
|
|
422
|
+
version: "22.0.5",
|
|
423
423
|
ngImport: i0,
|
|
424
424
|
type: TreeItemGroup,
|
|
425
425
|
deps: [],
|
|
@@ -427,7 +427,7 @@ class TreeItemGroup {
|
|
|
427
427
|
});
|
|
428
428
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
429
429
|
minVersion: "17.1.0",
|
|
430
|
-
version: "22.0.
|
|
430
|
+
version: "22.0.5",
|
|
431
431
|
type: TreeItemGroup,
|
|
432
432
|
isStandalone: true,
|
|
433
433
|
selector: "ng-template[ngTreeItemGroup]",
|
|
@@ -449,7 +449,7 @@ class TreeItemGroup {
|
|
|
449
449
|
}
|
|
450
450
|
i0.ɵɵngDeclareClassMetadata({
|
|
451
451
|
minVersion: "12.0.0",
|
|
452
|
-
version: "22.0.
|
|
452
|
+
version: "22.0.5",
|
|
453
453
|
ngImport: i0,
|
|
454
454
|
type: TreeItemGroup,
|
|
455
455
|
decorators: [{
|
|
@@ -577,7 +577,7 @@ class TreeItem extends DeferredContentAware {
|
|
|
577
577
|
}
|
|
578
578
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
579
579
|
minVersion: "12.0.0",
|
|
580
|
-
version: "22.0.
|
|
580
|
+
version: "22.0.5",
|
|
581
581
|
ngImport: i0,
|
|
582
582
|
type: TreeItem,
|
|
583
583
|
deps: [],
|
|
@@ -585,7 +585,7 @@ class TreeItem extends DeferredContentAware {
|
|
|
585
585
|
});
|
|
586
586
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
587
587
|
minVersion: "17.1.0",
|
|
588
|
-
version: "22.0.
|
|
588
|
+
version: "22.0.5",
|
|
589
589
|
type: TreeItem,
|
|
590
590
|
isStandalone: true,
|
|
591
591
|
selector: "[ngTreeItem]",
|
|
@@ -667,7 +667,7 @@ class TreeItem extends DeferredContentAware {
|
|
|
667
667
|
}
|
|
668
668
|
i0.ɵɵngDeclareClassMetadata({
|
|
669
669
|
minVersion: "12.0.0",
|
|
670
|
-
version: "22.0.
|
|
670
|
+
version: "22.0.5",
|
|
671
671
|
ngImport: i0,
|
|
672
672
|
type: TreeItem,
|
|
673
673
|
decorators: [{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/aria",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.4",
|
|
4
4
|
"description": "Angular Aria",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"homepage": "https://github.com/angular/components#readme",
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@angular/cdk": "22.0.
|
|
15
|
+
"@angular/cdk": "22.0.4",
|
|
16
16
|
"@angular/core": "^22.0.0 || ^23.0.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
package/types/listbox.d.ts
CHANGED
|
@@ -123,11 +123,14 @@ declare class Listbox<V> implements OnDestroy {
|
|
|
123
123
|
readonly _pattern: ListboxPattern<V>;
|
|
124
124
|
/** The ID of the active descendant in the listbox. */
|
|
125
125
|
readonly activeDescendant: Signal<string | undefined>;
|
|
126
|
+
private readonly _orderedItemPatterns;
|
|
126
127
|
constructor();
|
|
127
128
|
ngOnDestroy(): void;
|
|
128
129
|
scrollActiveItemIntoView(options?: ScrollIntoViewOptions): void;
|
|
129
130
|
/** Navigates to the first item in the listbox. */
|
|
130
131
|
gotoFirst(): void;
|
|
132
|
+
/** Navigates to an item at a specific index in the listbox. */
|
|
133
|
+
gotoIndex(index: number): void;
|
|
131
134
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Listbox<any>, never>;
|
|
132
135
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Listbox<any>, "[ngListbox]", ["ngListbox"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "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; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
133
136
|
}
|