@angular/aria 21.1.0-next.1 → 21.1.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/_accordion-chunk.mjs +108 -0
- package/fesm2022/_accordion-chunk.mjs.map +1 -0
- package/fesm2022/_combobox-chunk.mjs +425 -0
- package/fesm2022/_combobox-chunk.mjs.map +1 -0
- package/fesm2022/_combobox-listbox-chunk.mjs +240 -0
- package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -0
- package/fesm2022/_combobox-tree-chunk.mjs +331 -0
- package/fesm2022/_combobox-tree-chunk.mjs.map +1 -0
- package/fesm2022/_deferred-content-chunk.mjs +124 -0
- package/fesm2022/_deferred-content-chunk.mjs.map +1 -0
- package/fesm2022/_expansion-chunk.mjs +41 -0
- package/fesm2022/_expansion-chunk.mjs.map +1 -0
- package/fesm2022/_list-chunk.mjs +287 -0
- package/fesm2022/_list-chunk.mjs.map +1 -0
- package/fesm2022/_list-navigation-chunk.mjs +116 -0
- package/fesm2022/_list-navigation-chunk.mjs.map +1 -0
- package/fesm2022/_menu-chunk.mjs +515 -0
- package/fesm2022/_menu-chunk.mjs.map +1 -0
- package/fesm2022/_pointer-event-manager-chunk.mjs +54 -0
- package/fesm2022/_pointer-event-manager-chunk.mjs.map +1 -0
- package/fesm2022/_signal-like-chunk.mjs +118 -0
- package/fesm2022/_signal-like-chunk.mjs.map +1 -0
- package/fesm2022/_tabs-chunk.mjs +159 -0
- package/fesm2022/_tabs-chunk.mjs.map +1 -0
- package/fesm2022/_toolbar-widget-group-chunk.mjs +148 -0
- package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -0
- package/fesm2022/_widget-chunk.mjs +5 -246
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +73 -55
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +166 -153
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +287 -261
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs +211 -197
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +308 -286
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +15 -2329
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +221 -199
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +64 -48
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs +54 -44
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -2
- package/types/_accordion-chunk.d.ts +100 -0
- package/types/_combobox-chunk.d.ts +194 -0
- package/types/_deferred-content-chunk.d.ts +42 -0
- package/types/_expansion-chunk.d.ts +40 -0
- package/types/_grid-chunk.d.ts +43 -250
- package/types/_keyboard-event-manager-chunk.d.ts +68 -0
- package/types/_list-chunk.d.ts +211 -0
- package/types/_list-navigation-chunk.d.ts +119 -0
- package/types/_listbox-chunk.d.ts +107 -0
- package/types/_menu-chunk.d.ts +267 -0
- package/types/_pointer-event-manager-chunk.d.ts +34 -0
- package/types/_tabs-chunk.d.ts +153 -0
- package/types/_toolbar-chunk.d.ts +124 -0
- package/types/_tree-chunk.d.ts +185 -0
- package/types/accordion.d.ts +65 -54
- package/types/aria.d.ts +1 -1
- package/types/combobox.d.ts +86 -56
- package/types/grid.d.ts +47 -32
- package/types/listbox.d.ts +22 -7
- package/types/menu.d.ts +135 -117
- package/types/private.d.ts +28 -1376
- package/types/tabs.d.ts +109 -88
- package/types/toolbar.d.ts +77 -66
- package/types/tree.d.ts +118 -104
- package/_adev_assets/aria-accordion.json +0 -743
- package/_adev_assets/aria-combobox.json +0 -603
- package/_adev_assets/aria-grid.json +0 -893
- package/_adev_assets/aria-listbox.json +0 -540
- package/_adev_assets/aria-menu.json +0 -1049
- package/_adev_assets/aria-tabs.json +0 -880
- package/_adev_assets/aria-toolbar.json +0 -545
- package/_adev_assets/aria-tree.json +0 -853
package/fesm2022/combobox.mjs
CHANGED
|
@@ -1,50 +1,90 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, contentChild,
|
|
3
|
-
import * as i1 from '@angular/aria/private';
|
|
4
|
-
import { DeferredContentAware, ComboboxPattern, ComboboxDialogPattern, DeferredContent } from '@angular/aria/private';
|
|
2
|
+
import { InjectionToken, inject, signal, Directive, ElementRef, contentChild, input, booleanAttribute, computed, afterRenderEffect, model, untracked } from '@angular/core';
|
|
5
3
|
import { Directionality } from '@angular/cdk/bidi';
|
|
6
|
-
import {
|
|
4
|
+
import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.mjs';
|
|
5
|
+
import { ComboboxPattern, ComboboxDialogPattern } from './_combobox-chunk.mjs';
|
|
6
|
+
import './_signal-like-chunk.mjs';
|
|
7
|
+
import '@angular/core/primitives/signals';
|
|
8
|
+
import './_pointer-event-manager-chunk.mjs';
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const COMBOBOX = new InjectionToken('COMBOBOX');
|
|
11
|
+
|
|
12
|
+
class ComboboxPopup {
|
|
13
|
+
combobox = inject(COMBOBOX, {
|
|
14
|
+
optional: true
|
|
12
15
|
});
|
|
16
|
+
_controls = signal(undefined, ...(ngDevMode ? [{
|
|
17
|
+
debugName: "_controls"
|
|
18
|
+
}] : []));
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
20
|
+
minVersion: "12.0.0",
|
|
21
|
+
version: "21.0.3",
|
|
22
|
+
ngImport: i0,
|
|
23
|
+
type: ComboboxPopup,
|
|
24
|
+
deps: [],
|
|
25
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
26
|
+
});
|
|
27
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
28
|
+
minVersion: "14.0.0",
|
|
29
|
+
version: "21.0.3",
|
|
30
|
+
type: ComboboxPopup,
|
|
31
|
+
isStandalone: true,
|
|
32
|
+
selector: "[ngComboboxPopup]",
|
|
33
|
+
exportAs: ["ngComboboxPopup"],
|
|
34
|
+
ngImport: i0
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
38
|
+
minVersion: "12.0.0",
|
|
39
|
+
version: "21.0.3",
|
|
40
|
+
ngImport: i0,
|
|
41
|
+
type: ComboboxPopup,
|
|
42
|
+
decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: '[ngComboboxPopup]',
|
|
46
|
+
exportAs: 'ngComboboxPopup'
|
|
47
|
+
}]
|
|
48
|
+
}]
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
class Combobox {
|
|
52
|
+
textDirection = inject(Directionality).valueSignal.asReadonly();
|
|
13
53
|
_elementRef = inject(ElementRef);
|
|
14
54
|
element = this._elementRef.nativeElement;
|
|
15
55
|
_deferredContentAware = inject(DeferredContentAware, {
|
|
16
56
|
optional: true
|
|
17
57
|
});
|
|
18
|
-
popup = contentChild(
|
|
58
|
+
popup = contentChild(ComboboxPopup, ...(ngDevMode ? [{
|
|
19
59
|
debugName: "popup"
|
|
20
60
|
}] : []));
|
|
21
61
|
filterMode = input('manual', ...(ngDevMode ? [{
|
|
22
62
|
debugName: "filterMode"
|
|
23
63
|
}] : []));
|
|
24
|
-
disabled = input(false,
|
|
25
|
-
|
|
64
|
+
disabled = input(false, {
|
|
65
|
+
...(ngDevMode ? {
|
|
66
|
+
debugName: "disabled"
|
|
67
|
+
} : {}),
|
|
26
68
|
transform: booleanAttribute
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
transform: booleanAttribute
|
|
33
|
-
}] : [{
|
|
69
|
+
});
|
|
70
|
+
readonly = input(false, {
|
|
71
|
+
...(ngDevMode ? {
|
|
72
|
+
debugName: "readonly"
|
|
73
|
+
} : {}),
|
|
34
74
|
transform: booleanAttribute
|
|
35
|
-
}
|
|
75
|
+
});
|
|
36
76
|
firstMatch = input(undefined, ...(ngDevMode ? [{
|
|
37
77
|
debugName: "firstMatch"
|
|
38
78
|
}] : []));
|
|
39
79
|
expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded(), ...(ngDevMode ? [{
|
|
40
80
|
debugName: "expanded"
|
|
41
81
|
}] : []));
|
|
42
|
-
alwaysExpanded = input(false,
|
|
43
|
-
|
|
82
|
+
alwaysExpanded = input(false, {
|
|
83
|
+
...(ngDevMode ? {
|
|
84
|
+
debugName: "alwaysExpanded"
|
|
85
|
+
} : {}),
|
|
44
86
|
transform: booleanAttribute
|
|
45
|
-
}
|
|
46
|
-
transform: booleanAttribute
|
|
47
|
-
}]));
|
|
87
|
+
});
|
|
48
88
|
inputElement = computed(() => this._pattern.inputs.inputEl(), ...(ngDevMode ? [{
|
|
49
89
|
debugName: "inputElement"
|
|
50
90
|
}] : []));
|
|
@@ -80,7 +120,7 @@ class Combobox {
|
|
|
80
120
|
}
|
|
81
121
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
82
122
|
minVersion: "12.0.0",
|
|
83
|
-
version: "21.0.
|
|
123
|
+
version: "21.0.3",
|
|
84
124
|
ngImport: i0,
|
|
85
125
|
type: Combobox,
|
|
86
126
|
deps: [],
|
|
@@ -88,7 +128,7 @@ class Combobox {
|
|
|
88
128
|
});
|
|
89
129
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
90
130
|
minVersion: "17.2.0",
|
|
91
|
-
version: "21.0.
|
|
131
|
+
version: "21.0.3",
|
|
92
132
|
type: Combobox,
|
|
93
133
|
isStandalone: true,
|
|
94
134
|
selector: "[ngCombobox]",
|
|
@@ -141,16 +181,20 @@ class Combobox {
|
|
|
141
181
|
"attr.data-expanded": "expanded()"
|
|
142
182
|
}
|
|
143
183
|
},
|
|
184
|
+
providers: [{
|
|
185
|
+
provide: COMBOBOX,
|
|
186
|
+
useExisting: Combobox
|
|
187
|
+
}],
|
|
144
188
|
queries: [{
|
|
145
189
|
propertyName: "popup",
|
|
146
190
|
first: true,
|
|
147
|
-
predicate:
|
|
191
|
+
predicate: ComboboxPopup,
|
|
148
192
|
descendants: true,
|
|
149
193
|
isSignal: true
|
|
150
194
|
}],
|
|
151
195
|
exportAs: ["ngCombobox"],
|
|
152
196
|
hostDirectives: [{
|
|
153
|
-
directive:
|
|
197
|
+
directive: DeferredContentAware,
|
|
154
198
|
inputs: ["preserveContent", "preserveContent"]
|
|
155
199
|
}],
|
|
156
200
|
ngImport: i0
|
|
@@ -158,7 +202,7 @@ class Combobox {
|
|
|
158
202
|
}
|
|
159
203
|
i0.ɵɵngDeclareClassMetadata({
|
|
160
204
|
minVersion: "12.0.0",
|
|
161
|
-
version: "21.0.
|
|
205
|
+
version: "21.0.3",
|
|
162
206
|
ngImport: i0,
|
|
163
207
|
type: Combobox,
|
|
164
208
|
decorators: [{
|
|
@@ -177,14 +221,18 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
177
221
|
'(click)': '_pattern.onClick($event)',
|
|
178
222
|
'(focusin)': '_pattern.onFocusIn()',
|
|
179
223
|
'(focusout)': '_pattern.onFocusOut($event)'
|
|
180
|
-
}
|
|
224
|
+
},
|
|
225
|
+
providers: [{
|
|
226
|
+
provide: COMBOBOX,
|
|
227
|
+
useExisting: Combobox
|
|
228
|
+
}]
|
|
181
229
|
}]
|
|
182
230
|
}],
|
|
183
231
|
ctorParameters: () => [],
|
|
184
232
|
propDecorators: {
|
|
185
233
|
popup: [{
|
|
186
234
|
type: i0.ContentChild,
|
|
187
|
-
args: [forwardRef(() => ComboboxPopup), {
|
|
235
|
+
args: [i0.forwardRef(() => ComboboxPopup), {
|
|
188
236
|
isSignal: true
|
|
189
237
|
}]
|
|
190
238
|
}],
|
|
@@ -230,6 +278,84 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
230
278
|
}]
|
|
231
279
|
}
|
|
232
280
|
});
|
|
281
|
+
|
|
282
|
+
class ComboboxDialog {
|
|
283
|
+
_elementRef = inject(ElementRef);
|
|
284
|
+
element = this._elementRef.nativeElement;
|
|
285
|
+
combobox = inject(Combobox);
|
|
286
|
+
_popup = inject(ComboboxPopup, {
|
|
287
|
+
optional: true
|
|
288
|
+
});
|
|
289
|
+
_pattern;
|
|
290
|
+
constructor() {
|
|
291
|
+
this._pattern = new ComboboxDialogPattern({
|
|
292
|
+
id: () => '',
|
|
293
|
+
element: () => this._elementRef.nativeElement,
|
|
294
|
+
combobox: this.combobox._pattern
|
|
295
|
+
});
|
|
296
|
+
if (this._popup) {
|
|
297
|
+
this._popup._controls.set(this._pattern);
|
|
298
|
+
}
|
|
299
|
+
afterRenderEffect(() => {
|
|
300
|
+
if (this._elementRef) {
|
|
301
|
+
this.combobox._pattern.expanded() ? this._elementRef.nativeElement.showModal() : this._elementRef.nativeElement.close();
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
close() {
|
|
306
|
+
this._popup?.combobox?._pattern.close();
|
|
307
|
+
}
|
|
308
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
309
|
+
minVersion: "12.0.0",
|
|
310
|
+
version: "21.0.3",
|
|
311
|
+
ngImport: i0,
|
|
312
|
+
type: ComboboxDialog,
|
|
313
|
+
deps: [],
|
|
314
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
315
|
+
});
|
|
316
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
317
|
+
minVersion: "14.0.0",
|
|
318
|
+
version: "21.0.3",
|
|
319
|
+
type: ComboboxDialog,
|
|
320
|
+
isStandalone: true,
|
|
321
|
+
selector: "dialog[ngComboboxDialog]",
|
|
322
|
+
host: {
|
|
323
|
+
listeners: {
|
|
324
|
+
"keydown": "_pattern.onKeydown($event)",
|
|
325
|
+
"click": "_pattern.onClick($event)"
|
|
326
|
+
},
|
|
327
|
+
properties: {
|
|
328
|
+
"attr.data-open": "combobox._pattern.expanded()"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
exportAs: ["ngComboboxDialog"],
|
|
332
|
+
hostDirectives: [{
|
|
333
|
+
directive: ComboboxPopup
|
|
334
|
+
}],
|
|
335
|
+
ngImport: i0
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
339
|
+
minVersion: "12.0.0",
|
|
340
|
+
version: "21.0.3",
|
|
341
|
+
ngImport: i0,
|
|
342
|
+
type: ComboboxDialog,
|
|
343
|
+
decorators: [{
|
|
344
|
+
type: Directive,
|
|
345
|
+
args: [{
|
|
346
|
+
selector: 'dialog[ngComboboxDialog]',
|
|
347
|
+
exportAs: 'ngComboboxDialog',
|
|
348
|
+
host: {
|
|
349
|
+
'[attr.data-open]': 'combobox._pattern.expanded()',
|
|
350
|
+
'(keydown)': '_pattern.onKeydown($event)',
|
|
351
|
+
'(click)': '_pattern.onClick($event)'
|
|
352
|
+
},
|
|
353
|
+
hostDirectives: [ComboboxPopup]
|
|
354
|
+
}]
|
|
355
|
+
}],
|
|
356
|
+
ctorParameters: () => []
|
|
357
|
+
});
|
|
358
|
+
|
|
233
359
|
class ComboboxInput {
|
|
234
360
|
_elementRef = inject(ElementRef);
|
|
235
361
|
element = this._elementRef.nativeElement;
|
|
@@ -252,7 +378,7 @@ class ComboboxInput {
|
|
|
252
378
|
}
|
|
253
379
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
254
380
|
minVersion: "12.0.0",
|
|
255
|
-
version: "21.0.
|
|
381
|
+
version: "21.0.3",
|
|
256
382
|
ngImport: i0,
|
|
257
383
|
type: ComboboxInput,
|
|
258
384
|
deps: [],
|
|
@@ -260,7 +386,7 @@ class ComboboxInput {
|
|
|
260
386
|
});
|
|
261
387
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
262
388
|
minVersion: "17.1.0",
|
|
263
|
-
version: "21.0.
|
|
389
|
+
version: "21.0.3",
|
|
264
390
|
type: ComboboxInput,
|
|
265
391
|
isStandalone: true,
|
|
266
392
|
selector: "input[ngComboboxInput]",
|
|
@@ -297,7 +423,7 @@ class ComboboxInput {
|
|
|
297
423
|
}
|
|
298
424
|
i0.ɵɵngDeclareClassMetadata({
|
|
299
425
|
minVersion: "12.0.0",
|
|
300
|
-
version: "21.0.
|
|
426
|
+
version: "21.0.3",
|
|
301
427
|
ngImport: i0,
|
|
302
428
|
type: ComboboxInput,
|
|
303
429
|
decorators: [{
|
|
@@ -333,10 +459,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
333
459
|
}]
|
|
334
460
|
}
|
|
335
461
|
});
|
|
462
|
+
|
|
336
463
|
class ComboboxPopupContainer {
|
|
337
464
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
338
465
|
minVersion: "12.0.0",
|
|
339
|
-
version: "21.0.
|
|
466
|
+
version: "21.0.3",
|
|
340
467
|
ngImport: i0,
|
|
341
468
|
type: ComboboxPopupContainer,
|
|
342
469
|
deps: [],
|
|
@@ -344,20 +471,20 @@ class ComboboxPopupContainer {
|
|
|
344
471
|
});
|
|
345
472
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
346
473
|
minVersion: "14.0.0",
|
|
347
|
-
version: "21.0.
|
|
474
|
+
version: "21.0.3",
|
|
348
475
|
type: ComboboxPopupContainer,
|
|
349
476
|
isStandalone: true,
|
|
350
477
|
selector: "ng-template[ngComboboxPopupContainer]",
|
|
351
478
|
exportAs: ["ngComboboxPopupContainer"],
|
|
352
479
|
hostDirectives: [{
|
|
353
|
-
directive:
|
|
480
|
+
directive: DeferredContent
|
|
354
481
|
}],
|
|
355
482
|
ngImport: i0
|
|
356
483
|
});
|
|
357
484
|
}
|
|
358
485
|
i0.ɵɵngDeclareClassMetadata({
|
|
359
486
|
minVersion: "12.0.0",
|
|
360
|
-
version: "21.0.
|
|
487
|
+
version: "21.0.3",
|
|
361
488
|
ngImport: i0,
|
|
362
489
|
type: ComboboxPopupContainer,
|
|
363
490
|
decorators: [{
|
|
@@ -369,120 +496,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
369
496
|
}]
|
|
370
497
|
}]
|
|
371
498
|
});
|
|
372
|
-
class ComboboxPopup {
|
|
373
|
-
combobox = inject(Combobox, {
|
|
374
|
-
optional: true
|
|
375
|
-
});
|
|
376
|
-
_controls = signal(undefined, ...(ngDevMode ? [{
|
|
377
|
-
debugName: "_controls"
|
|
378
|
-
}] : []));
|
|
379
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
380
|
-
minVersion: "12.0.0",
|
|
381
|
-
version: "21.0.0",
|
|
382
|
-
ngImport: i0,
|
|
383
|
-
type: ComboboxPopup,
|
|
384
|
-
deps: [],
|
|
385
|
-
target: i0.ɵɵFactoryTarget.Directive
|
|
386
|
-
});
|
|
387
|
-
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
388
|
-
minVersion: "14.0.0",
|
|
389
|
-
version: "21.0.0",
|
|
390
|
-
type: ComboboxPopup,
|
|
391
|
-
isStandalone: true,
|
|
392
|
-
selector: "[ngComboboxPopup]",
|
|
393
|
-
exportAs: ["ngComboboxPopup"],
|
|
394
|
-
ngImport: i0
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
398
|
-
minVersion: "12.0.0",
|
|
399
|
-
version: "21.0.0",
|
|
400
|
-
ngImport: i0,
|
|
401
|
-
type: ComboboxPopup,
|
|
402
|
-
decorators: [{
|
|
403
|
-
type: Directive,
|
|
404
|
-
args: [{
|
|
405
|
-
selector: '[ngComboboxPopup]',
|
|
406
|
-
exportAs: 'ngComboboxPopup'
|
|
407
|
-
}]
|
|
408
|
-
}]
|
|
409
|
-
});
|
|
410
|
-
class ComboboxDialog {
|
|
411
|
-
_elementRef = inject(ElementRef);
|
|
412
|
-
element = this._elementRef.nativeElement;
|
|
413
|
-
combobox = inject(Combobox);
|
|
414
|
-
_popup = inject(ComboboxPopup, {
|
|
415
|
-
optional: true
|
|
416
|
-
});
|
|
417
|
-
_pattern;
|
|
418
|
-
constructor() {
|
|
419
|
-
this._pattern = new ComboboxDialogPattern({
|
|
420
|
-
id: () => '',
|
|
421
|
-
element: () => this._elementRef.nativeElement,
|
|
422
|
-
combobox: this.combobox._pattern
|
|
423
|
-
});
|
|
424
|
-
if (this._popup) {
|
|
425
|
-
this._popup._controls.set(this._pattern);
|
|
426
|
-
}
|
|
427
|
-
afterRenderEffect(() => {
|
|
428
|
-
if (this._elementRef) {
|
|
429
|
-
this.combobox._pattern.expanded() ? this._elementRef.nativeElement.showModal() : this._elementRef.nativeElement.close();
|
|
430
|
-
}
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
close() {
|
|
434
|
-
this._popup?.combobox?._pattern.close();
|
|
435
|
-
}
|
|
436
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
437
|
-
minVersion: "12.0.0",
|
|
438
|
-
version: "21.0.0",
|
|
439
|
-
ngImport: i0,
|
|
440
|
-
type: ComboboxDialog,
|
|
441
|
-
deps: [],
|
|
442
|
-
target: i0.ɵɵFactoryTarget.Directive
|
|
443
|
-
});
|
|
444
|
-
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
445
|
-
minVersion: "14.0.0",
|
|
446
|
-
version: "21.0.0",
|
|
447
|
-
type: ComboboxDialog,
|
|
448
|
-
isStandalone: true,
|
|
449
|
-
selector: "dialog[ngComboboxDialog]",
|
|
450
|
-
host: {
|
|
451
|
-
listeners: {
|
|
452
|
-
"keydown": "_pattern.onKeydown($event)",
|
|
453
|
-
"click": "_pattern.onClick($event)"
|
|
454
|
-
},
|
|
455
|
-
properties: {
|
|
456
|
-
"attr.data-open": "combobox._pattern.expanded()"
|
|
457
|
-
}
|
|
458
|
-
},
|
|
459
|
-
exportAs: ["ngComboboxDialog"],
|
|
460
|
-
hostDirectives: [{
|
|
461
|
-
directive: ComboboxPopup
|
|
462
|
-
}],
|
|
463
|
-
ngImport: i0
|
|
464
|
-
});
|
|
465
|
-
}
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
467
|
-
minVersion: "12.0.0",
|
|
468
|
-
version: "21.0.0",
|
|
469
|
-
ngImport: i0,
|
|
470
|
-
type: ComboboxDialog,
|
|
471
|
-
decorators: [{
|
|
472
|
-
type: Directive,
|
|
473
|
-
args: [{
|
|
474
|
-
selector: 'dialog[ngComboboxDialog]',
|
|
475
|
-
exportAs: 'ngComboboxDialog',
|
|
476
|
-
host: {
|
|
477
|
-
'[attr.data-open]': 'combobox._pattern.expanded()',
|
|
478
|
-
'(keydown)': '_pattern.onKeydown($event)',
|
|
479
|
-
'(click)': '_pattern.onClick($event)'
|
|
480
|
-
},
|
|
481
|
-
hostDirectives: [ComboboxPopup]
|
|
482
|
-
}]
|
|
483
|
-
}],
|
|
484
|
-
ctorParameters: () => []
|
|
485
|
-
});
|
|
486
499
|
|
|
487
|
-
export { Combobox, ComboboxDialog, ComboboxInput, ComboboxPopup, ComboboxPopupContainer };
|
|
500
|
+
export { Combobox, ComboboxDialog, ComboboxInput, ComboboxPopup, ComboboxPopupContainer, DeferredContent as ɵɵDeferredContent, DeferredContentAware as ɵɵDeferredContentAware };
|
|
488
501
|
//# sourceMappingURL=combobox.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {\n DeferredContent,\n DeferredContentAware,\n ComboboxPattern,\n ComboboxListboxControls,\n ComboboxTreeControls,\n ComboboxDialogPattern,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n * <div ngCombobox filterMode=\"highlight\">\n * <input\n * ngComboboxInput\n * placeholder=\"Search for a state...\"\n * [(value)]=\"searchString\"\n * />\n *\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * @for (option of filteredOptions(); track option) {\n * <div ngOption [value]=\"option\" [label]=\"option\">\n * <span>{{option}}</span>\n * </div>\n * }\n * </div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n '[attr.data-expanded]': 'expanded()',\n '(input)': '_pattern.onInput($event)',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Combobox<V> {\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the combobox element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The combobox popup. */\n readonly popup = contentChild<ComboboxPopup<V>>(\n // We need a `forwardRef` here, because the popup class is declared further down\n // in the same file. When the reference is written to Angular's metadata this can\n // cause an attempt to access the class before it's defined.\n forwardRef(() => ComboboxPopup),\n );\n\n /**\n * The filter mode for the combobox.\n * - `manual`: The consumer is responsible for filtering the options.\n * - `auto-select`: The combobox automatically selects the first matching option.\n * - `highlight`: The combobox highlights matching text in the options without changing selection.\n */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The value of the first matching item in the popup. */\n readonly firstMatch = input<V | undefined>(undefined);\n\n /** Whether the combobox is expanded. */\n readonly expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded());\n\n // TODO: Maybe make expanded a signal that can be passed in?\n // Or an \"always expanded\" option?\n\n /** Whether the combobox popup should always be expanded, regardless of user interaction. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** Input element connected to the combobox, if any. */\n readonly inputElement = computed(() => this._pattern.inputs.inputEl());\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern<any, V>({\n ...this,\n textDirection: this.textDirection,\n disabled: this.disabled,\n readonly: this.readonly,\n inputValue: signal(''),\n inputEl: signal(undefined),\n containerEl: () => this._elementRef.nativeElement,\n popupControls: () => this.popup()?._controls(),\n });\n\n constructor() {\n afterRenderEffect(() => {\n if (this.alwaysExpanded()) {\n this._pattern.expanded.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._deferredContentAware?.contentVisible() &&\n (this._pattern.isFocused() || this.alwaysExpanded())\n ) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n }\n\n /** Opens the combobox to the selected item. */\n open() {\n this._pattern.open({selected: true});\n }\n\n /** Closes the combobox. */\n close() {\n this._pattern.close();\n }\n}\n\n/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `<input>` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * <input\n * ngComboboxInput\n * placeholder=\"Search...\"\n * [(value)]=\"searchString\"\n * />\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\n '[attr.aria-disabled]': 'combobox._pattern.disabled()',\n '[attr.aria-expanded]': 'combobox._pattern.expanded()',\n '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',\n '[attr.aria-controls]': 'combobox._pattern.popupId()',\n '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',\n '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',\n '[attr.readonly]': 'combobox._pattern.readonly()',\n },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the input belongs to. */\n readonly combobox = inject(Combobox);\n\n /** The value of the input. */\n value = model<string>('');\n\n constructor() {\n (this.combobox._pattern.inputs.inputEl as WritableSignal<HTMLInputElement>).set(\n this._elementRef.nativeElement,\n );\n this.combobox._pattern.inputs.inputValue = this.value;\n\n const controls = this.combobox.popup()?._controls();\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n controls?.items();\n untracked(() => this.combobox._pattern.onFilter());\n });\n }\n}\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 a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * <ng-template\n * [cdkConnectedOverlay]=\"{origin: inputElement, usePopover: 'inline' matchWidth: true}\"\n * [cdkConnectedOverlayOpen]=\"combobox.expanded()\">\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n\n/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n})\nexport class ComboboxPopup<V> {\n /** The combobox that the popup belongs to. */\n readonly combobox = inject<Combobox<V>>(Combobox, {optional: true});\n\n /** The popup controls exposed to the combobox. */\n readonly _controls = signal<\n | ComboboxListboxControls<any, V>\n | ComboboxTreeControls<any, V>\n | ComboboxDialogPattern\n | undefined\n >(undefined);\n}\n\n/**\n * Integrates a native `<dialog>` element with the combobox, allowing for\n * a modal or non-modal popup experience. It handles the opening and closing of the dialog\n * based on the combobox's expanded state.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <dialog ngComboboxDialog class=\"example-dialog\">\n * <!-- ... dialog content ... -->\n * </dialog>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'dialog[ngComboboxDialog]',\n exportAs: 'ngComboboxDialog',\n host: {\n '[attr.data-open]': 'combobox._pattern.expanded()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class ComboboxDialog {\n /** The dialog element. */\n private readonly _elementRef = inject(ElementRef<HTMLDialogElement>);\n\n /** A reference to the dialog element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the dialog belongs to. */\n readonly combobox = inject(Combobox);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<unknown>>(ComboboxPopup, {\n optional: true,\n });\n\n _pattern: ComboboxDialogPattern;\n\n constructor() {\n this._pattern = new ComboboxDialogPattern({\n id: () => '',\n element: () => this._elementRef.nativeElement,\n combobox: this.combobox._pattern,\n });\n\n if (this._popup) {\n this._popup._controls.set(this._pattern);\n }\n\n afterRenderEffect(() => {\n if (this._elementRef) {\n this.combobox._pattern.expanded()\n ? this._elementRef.nativeElement.showModal()\n : this._elementRef.nativeElement.close();\n }\n });\n }\n\n close() {\n this._popup?.combobox?._pattern.close();\n }\n}\n"],"names":["Combobox","_directionality","inject","Directionality","textDirection","toSignal","change","initialValue","value","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","optional","popup","contentChild","forwardRef","ComboboxPopup","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","undefined","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","signal","containerEl","popupControls","_controls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","Input","alias","required","ComboboxInput","combobox","model","controls","ComboboxDialogPattern","items","untracked","onFilter","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","attributes","properties","ComboboxPopupContainer","DeferredContent","ComboboxDialog","_popup","id","showModal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox.mjs","sources":["../../../../../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.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-dialog.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-input.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup-container.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 {Combobox} from './combobox';\n\n/** Token used to provide the combobox to child components. */\nexport const COMBOBOX = new InjectionToken<Combobox<unknown>>('COMBOBOX');\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, inject, signal} from '@angular/core';\nimport {ComboboxListboxControls, ComboboxTreeControls, ComboboxDialogPattern} from '../private';\nimport type {Combobox} from './combobox';\nimport {COMBOBOX} from './combobox-tokens';\n\n/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n *\n * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: '[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n})\nexport class ComboboxPopup<V> {\n /** The combobox that the popup belongs to. */\n readonly combobox = inject<Combobox<V>>(COMBOBOX, {optional: true});\n\n /** The popup controls exposed to the combobox. */\n readonly _controls = signal<\n | ComboboxListboxControls<any, V>\n | ComboboxTreeControls<any, V>\n | ComboboxDialogPattern\n | undefined\n >(undefined);\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 afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {COMBOBOX} from './combobox-tokens';\nimport {ComboboxPopup} from './combobox-popup';\n\n/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n * <div ngCombobox filterMode=\"highlight\">\n * <input\n * ngComboboxInput\n * placeholder=\"Search for a state...\"\n * [(value)]=\"searchString\"\n * />\n *\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * @for (option of filteredOptions(); track option) {\n * <div ngOption [value]=\"option\" [label]=\"option\">\n * <span>{{option}}</span>\n * </div>\n * }\n * </div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n '[attr.data-expanded]': 'expanded()',\n '(input)': '_pattern.onInput($event)',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n providers: [{provide: COMBOBOX, useExisting: Combobox}],\n})\nexport class Combobox<V> {\n /** A signal wrapper for directionality. */\n protected textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the combobox element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The combobox popup. */\n readonly popup = contentChild<ComboboxPopup<V>>(ComboboxPopup);\n\n /**\n * The filter mode for the combobox.\n * - `manual`: The consumer is responsible for filtering the options.\n * - `auto-select`: The combobox automatically selects the first matching option.\n * - `highlight`: The combobox highlights matching text in the options without changing selection.\n */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The value of the first matching item in the popup. */\n readonly firstMatch = input<V | undefined>(undefined);\n\n /** Whether the combobox is expanded. */\n readonly expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded());\n\n // TODO: Maybe make expanded a signal that can be passed in?\n // Or an \"always expanded\" option?\n\n /** Whether the combobox popup should always be expanded, regardless of user interaction. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** Input element connected to the combobox, if any. */\n readonly inputElement = computed(() => this._pattern.inputs.inputEl());\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern<any, V>({\n ...this,\n textDirection: this.textDirection,\n disabled: this.disabled,\n readonly: this.readonly,\n inputValue: signal(''),\n inputEl: signal(undefined),\n containerEl: () => this._elementRef.nativeElement,\n popupControls: () => this.popup()?._controls(),\n });\n\n constructor() {\n afterRenderEffect(() => {\n if (this.alwaysExpanded()) {\n this._pattern.expanded.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._deferredContentAware?.contentVisible() &&\n (this._pattern.isFocused() || this.alwaysExpanded())\n ) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n }\n\n /** Opens the combobox to the selected item. */\n open() {\n this._pattern.open({selected: true});\n }\n\n /** Closes the combobox. */\n close() {\n this._pattern.close();\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 {afterRenderEffect, Directive, ElementRef, inject} from '@angular/core';\nimport {ComboboxDialogPattern} from '../private';\nimport {Combobox} from './combobox';\nimport {ComboboxPopup} from './combobox-popup';\n\n/**\n * Integrates a native `<dialog>` element with the combobox, allowing for\n * a modal or non-modal popup experience. It handles the opening and closing of the dialog\n * based on the combobox's expanded state.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <dialog ngComboboxDialog class=\"example-dialog\">\n * <!-- ... dialog content ... -->\n * </dialog>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: 'dialog[ngComboboxDialog]',\n exportAs: 'ngComboboxDialog',\n host: {\n '[attr.data-open]': 'combobox._pattern.expanded()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class ComboboxDialog {\n /** The dialog element. */\n private readonly _elementRef = inject(ElementRef<HTMLDialogElement>);\n\n /** A reference to the dialog element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the dialog belongs to. */\n readonly combobox = inject(Combobox);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<unknown>>(ComboboxPopup, {\n optional: true,\n });\n\n _pattern: ComboboxDialogPattern;\n\n constructor() {\n this._pattern = new ComboboxDialogPattern({\n id: () => '',\n element: () => this._elementRef.nativeElement,\n combobox: this.combobox._pattern,\n });\n\n if (this._popup) {\n this._popup._controls.set(this._pattern);\n }\n\n afterRenderEffect(() => {\n if (this._elementRef) {\n this.combobox._pattern.expanded()\n ? this._elementRef.nativeElement.showModal()\n : this._elementRef.nativeElement.close();\n }\n });\n }\n\n close() {\n this._popup?.combobox?._pattern.close();\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 afterRenderEffect,\n Directive,\n ElementRef,\n inject,\n model,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {ComboboxDialogPattern} from '../private';\nimport {Combobox} from './combobox';\n\n/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `<input>` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * <input\n * ngComboboxInput\n * placeholder=\"Search...\"\n * [(value)]=\"searchString\"\n * />\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\n '[attr.aria-disabled]': 'combobox._pattern.disabled()',\n '[attr.aria-expanded]': 'combobox._pattern.expanded()',\n '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',\n '[attr.aria-controls]': 'combobox._pattern.popupId()',\n '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',\n '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',\n '[attr.readonly]': 'combobox._pattern.readonly()',\n },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the input belongs to. */\n readonly combobox = inject(Combobox);\n\n /** The value of the input. */\n value = model<string>('');\n\n constructor() {\n (this.combobox._pattern.inputs.inputEl as WritableSignal<HTMLInputElement>).set(\n this._elementRef.nativeElement,\n );\n this.combobox._pattern.inputs.inputValue = this.value;\n\n const controls = this.combobox.popup()?._controls();\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n controls?.items();\n untracked(() => this.combobox._pattern.onFilter());\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\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 a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * <ng-template\n * [cdkConnectedOverlay]=\"{origin: inputElement, usePopover: 'inline' matchWidth: true}\"\n * [cdkConnectedOverlayOpen]=\"combobox.expanded()\">\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n"],"names":["COMBOBOX","InjectionToken","ComboboxPopup","combobox","inject","optional","_controls","signal","undefined","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","exportAs","ngImport","decorators","args","Combobox","textDirection","Directionality","valueSignal","asReadonly","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","popup","contentChild","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","containerEl","popupControls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","providers","provide","useExisting","descendants","hostDirectives","directive","i1","Input","alias","required","ComboboxDialog","_popup","ComboboxDialogPattern","id","showModal","ComboboxInput","value","model","controls","items","untracked","onFilter","outputs","attributes","ComboboxPopupContainer","DeferredContent"],"mappings":"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"}
|