@angular/aria 22.0.0-next.0 → 22.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/fesm2022/_accordion-chunk.mjs +24 -18
  2. package/fesm2022/_accordion-chunk.mjs.map +1 -1
  3. package/fesm2022/_combobox-chunk.mjs.map +1 -1
  4. package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -1
  5. package/fesm2022/_combobox-tree-chunk.mjs.map +1 -1
  6. package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
  7. package/fesm2022/_expansion-chunk.mjs.map +1 -1
  8. package/fesm2022/_list-chunk.mjs.map +1 -1
  9. package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
  10. package/fesm2022/_list-typeahead-chunk.mjs.map +1 -1
  11. package/fesm2022/_menu-chunk.mjs.map +1 -1
  12. package/fesm2022/_pointer-event-manager-chunk.mjs.map +1 -1
  13. package/fesm2022/_signal-like-chunk.mjs.map +1 -1
  14. package/fesm2022/_tabs-chunk.mjs.map +1 -1
  15. package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -1
  16. package/fesm2022/_widget-chunk.mjs.map +1 -1
  17. package/fesm2022/accordion.mjs +44 -111
  18. package/fesm2022/accordion.mjs.map +1 -1
  19. package/fesm2022/aria.mjs +1 -1
  20. package/fesm2022/aria.mjs.map +1 -1
  21. package/fesm2022/combobox.mjs.map +1 -1
  22. package/fesm2022/grid.mjs.map +1 -1
  23. package/fesm2022/listbox.mjs.map +1 -1
  24. package/fesm2022/menu.mjs.map +1 -1
  25. package/fesm2022/private.mjs +1 -1
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs.map +1 -1
  28. package/fesm2022/tree.mjs.map +1 -1
  29. package/package.json +2 -2
  30. package/resources/code-examples.db +0 -0
  31. package/types/_accordion-chunk.d.ts +11 -31
  32. package/types/_list-navigation-chunk.d.ts +0 -2
  33. package/types/accordion.d.ts +31 -35
  34. package/types/private.d.ts +1 -1
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, input, computed, signal, afterRenderEffect, Directive, InjectionToken, ElementRef, booleanAttribute, model, contentChildren } from '@angular/core';
2
+ import { inject, input, computed, afterRenderEffect, Directive, InjectionToken, ElementRef, booleanAttribute, model, contentChildren, signal } from '@angular/core';
3
3
  import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.mjs';
5
- import { AccordionPanelPattern, AccordionTriggerPattern, AccordionGroupPattern } from './_accordion-chunk.mjs';
6
5
  import { Directionality } from '@angular/cdk/bidi';
6
+ import { AccordionTriggerPattern, AccordionGroupPattern } from './_accordion-chunk.mjs';
7
7
  import './_expansion-chunk.mjs';
8
8
  import './_list-navigation-chunk.mjs';
9
9
  import './_signal-like-chunk.mjs';
@@ -15,33 +15,23 @@ class AccordionPanel {
15
15
  id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true), ...(ngDevMode ? [{
16
16
  debugName: "id"
17
17
  }] : []));
18
- panelId = input.required(...(ngDevMode ? [{
19
- debugName: "panelId"
20
- }] : []));
21
- visible = computed(() => !this._pattern.hidden(), ...(ngDevMode ? [{
18
+ visible = computed(() => this._pattern?.expanded() === true, ...(ngDevMode ? [{
22
19
  debugName: "visible"
23
20
  }] : []));
24
- _accordionTriggerPattern = signal(undefined, ...(ngDevMode ? [{
25
- debugName: "_accordionTriggerPattern"
26
- }] : []));
27
- _pattern = new AccordionPanelPattern({
28
- id: this.id,
29
- panelId: this.panelId,
30
- accordionTrigger: () => this._accordionTriggerPattern()
31
- });
21
+ _pattern;
32
22
  constructor() {
33
23
  afterRenderEffect(() => {
34
24
  this._deferredContentAware.contentVisible.set(this.visible());
35
25
  });
36
26
  }
37
27
  expand() {
38
- this._accordionTriggerPattern()?.open();
28
+ this._pattern?.open();
39
29
  }
40
30
  collapse() {
41
- this._accordionTriggerPattern()?.close();
31
+ this._pattern?.close();
42
32
  }
43
33
  toggle() {
44
- this._accordionTriggerPattern()?.toggle();
34
+ this._pattern?.toggle();
45
35
  }
46
36
  static ɵfac = i0.ɵɵngDeclareFactory({
47
37
  minVersion: "12.0.0",
@@ -64,13 +54,6 @@ class AccordionPanel {
64
54
  isSignal: true,
65
55
  isRequired: false,
66
56
  transformFunction: null
67
- },
68
- panelId: {
69
- classPropertyName: "panelId",
70
- publicName: "panelId",
71
- isSignal: true,
72
- isRequired: true,
73
- transformFunction: null
74
57
  }
75
58
  },
76
59
  host: {
@@ -78,8 +61,8 @@ class AccordionPanel {
78
61
  "role": "region"
79
62
  },
80
63
  properties: {
81
- "attr.id": "_pattern.id()",
82
- "attr.aria-labelledby": "_pattern.accordionTrigger()?.id()",
64
+ "attr.id": "id()",
65
+ "attr.aria-labelledby": "_pattern?.id()",
83
66
  "attr.inert": "!visible() ? true : null"
84
67
  }
85
68
  },
@@ -107,8 +90,8 @@ i0.ɵɵngDeclareClassMetadata({
107
90
  }],
108
91
  host: {
109
92
  'role': 'region',
110
- '[attr.id]': '_pattern.id()',
111
- '[attr.aria-labelledby]': '_pattern.accordionTrigger()?.id()',
93
+ '[attr.id]': 'id()',
94
+ '[attr.aria-labelledby]': '_pattern?.id()',
112
95
  '[attr.inert]': '!visible() ? true : null'
113
96
  }
114
97
  }]
@@ -122,14 +105,6 @@ i0.ɵɵngDeclareClassMetadata({
122
105
  alias: "id",
123
106
  required: false
124
107
  }]
125
- }],
126
- panelId: [{
127
- type: i0.Input,
128
- args: [{
129
- isSignal: true,
130
- alias: "panelId",
131
- required: true
132
- }]
133
108
  }]
134
109
  }
135
110
  });
@@ -140,10 +115,13 @@ class AccordionTrigger {
140
115
  _elementRef = inject(ElementRef);
141
116
  element = this._elementRef.nativeElement;
142
117
  _accordionGroup = inject(ACCORDION_GROUP);
118
+ panel = input.required(...(ngDevMode ? [{
119
+ debugName: "panel"
120
+ }] : []));
143
121
  id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true), ...(ngDevMode ? [{
144
122
  debugName: "id"
145
123
  }] : []));
146
- panelId = input.required(...(ngDevMode ? [{
124
+ panelId = computed(() => this.panel().id(), ...(ngDevMode ? [{
147
125
  debugName: "panelId"
148
126
  }] : []));
149
127
  disabled = input(false, {
@@ -158,15 +136,16 @@ class AccordionTrigger {
158
136
  active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
159
137
  debugName: "active"
160
138
  }] : []));
161
- _accordionPanelPattern = signal(undefined, ...(ngDevMode ? [{
162
- debugName: "_accordionPanelPattern"
163
- }] : []));
164
- _pattern = new AccordionTriggerPattern({
165
- ...this,
166
- accordionGroup: computed(() => this._accordionGroup._pattern),
167
- accordionPanel: this._accordionPanelPattern,
168
- element: () => this.element
169
- });
139
+ _pattern;
140
+ ngOnInit() {
141
+ this._pattern = new AccordionTriggerPattern({
142
+ ...this,
143
+ element: () => this.element,
144
+ accordionGroup: () => this._accordionGroup._pattern,
145
+ accordionPanelId: this.panelId
146
+ });
147
+ this.panel()._pattern = this._pattern;
148
+ }
170
149
  expand() {
171
150
  this._pattern.open();
172
151
  }
@@ -191,6 +170,13 @@ class AccordionTrigger {
191
170
  isStandalone: true,
192
171
  selector: "[ngAccordionTrigger]",
193
172
  inputs: {
173
+ panel: {
174
+ classPropertyName: "panel",
175
+ publicName: "panel",
176
+ isSignal: true,
177
+ isRequired: true,
178
+ transformFunction: null
179
+ },
194
180
  id: {
195
181
  classPropertyName: "id",
196
182
  publicName: "id",
@@ -198,13 +184,6 @@ class AccordionTrigger {
198
184
  isRequired: false,
199
185
  transformFunction: null
200
186
  },
201
- panelId: {
202
- classPropertyName: "panelId",
203
- publicName: "panelId",
204
- isSignal: true,
205
- isRequired: true,
206
- transformFunction: null
207
- },
208
187
  disabled: {
209
188
  classPropertyName: "disabled",
210
189
  publicName: "disabled",
@@ -229,7 +208,7 @@ class AccordionTrigger {
229
208
  },
230
209
  properties: {
231
210
  "attr.data-active": "active()",
232
- "id": "_pattern.id()",
211
+ "id": "id()",
233
212
  "attr.aria-expanded": "expanded()",
234
213
  "attr.aria-controls": "_pattern.controls()",
235
214
  "attr.aria-disabled": "_pattern.disabled()",
@@ -254,7 +233,7 @@ i0.ɵɵngDeclareClassMetadata({
254
233
  host: {
255
234
  '[attr.data-active]': 'active()',
256
235
  'role': 'button',
257
- '[id]': '_pattern.id()',
236
+ '[id]': 'id()',
258
237
  '[attr.aria-expanded]': 'expanded()',
259
238
  '[attr.aria-controls]': '_pattern.controls()',
260
239
  '[attr.aria-disabled]': '_pattern.disabled()',
@@ -264,20 +243,20 @@ i0.ɵɵngDeclareClassMetadata({
264
243
  }]
265
244
  }],
266
245
  propDecorators: {
267
- id: [{
246
+ panel: [{
268
247
  type: i0.Input,
269
248
  args: [{
270
249
  isSignal: true,
271
- alias: "id",
272
- required: false
250
+ alias: "panel",
251
+ required: true
273
252
  }]
274
253
  }],
275
- panelId: [{
254
+ id: [{
276
255
  type: i0.Input,
277
256
  args: [{
278
257
  isSignal: true,
279
- alias: "panelId",
280
- required: true
258
+ alias: "id",
259
+ required: false
281
260
  }]
282
261
  }],
283
262
  disabled: [{
@@ -314,12 +293,6 @@ class AccordionGroup {
314
293
  _triggerPatterns = computed(() => this._triggers().map(t => t._pattern), ...(ngDevMode ? [{
315
294
  debugName: "_triggerPatterns"
316
295
  }] : []));
317
- _panels = contentChildren(AccordionPanel, {
318
- ...(ngDevMode ? {
319
- debugName: "_panels"
320
- } : {}),
321
- descendants: true
322
- });
323
296
  textDirection = inject(Directionality).valueSignal;
324
297
  disabled = input(false, {
325
298
  ...(ngDevMode ? {
@@ -347,41 +320,16 @@ class AccordionGroup {
347
320
  });
348
321
  _pattern = new AccordionGroupPattern({
349
322
  ...this,
323
+ element: () => this.element,
350
324
  activeItem: signal(undefined),
351
325
  items: this._triggerPatterns,
352
- orientation: () => 'vertical',
353
- getItem: e => this._getItem(e),
354
- element: () => this.element
326
+ orientation: () => 'vertical'
355
327
  });
356
- constructor() {
357
- afterRenderEffect(() => {
358
- const triggers = this._triggers();
359
- const panels = this._panels();
360
- for (const trigger of triggers) {
361
- const panel = panels.find(p => p.panelId() === trigger.panelId());
362
- trigger._accordionPanelPattern.set(panel?._pattern);
363
- if (panel) {
364
- panel._accordionTriggerPattern.set(trigger._pattern);
365
- }
366
- }
367
- });
368
- }
369
328
  expandAll() {
370
- this._pattern.expansionBehavior.openAll();
329
+ this._pattern.expandAll();
371
330
  }
372
331
  collapseAll() {
373
- this._pattern.expansionBehavior.closeAll();
374
- }
375
- _getItem(element) {
376
- let target = element;
377
- while (target) {
378
- const pattern = this._triggerPatterns().find(t => t.element() === target);
379
- if (pattern) {
380
- return pattern;
381
- }
382
- target = target.parentElement?.closest('[ngAccordionTrigger]');
383
- }
384
- return undefined;
332
+ this._pattern.collapseAll();
385
333
  }
386
334
  static ɵfac = i0.ɵɵngDeclareFactory({
387
335
  minVersion: "12.0.0",
@@ -443,11 +391,6 @@ class AccordionGroup {
443
391
  predicate: AccordionTrigger,
444
392
  descendants: true,
445
393
  isSignal: true
446
- }, {
447
- propertyName: "_panels",
448
- predicate: AccordionPanel,
449
- descendants: true,
450
- isSignal: true
451
394
  }],
452
395
  exportAs: ["ngAccordionGroup"],
453
396
  ngImport: i0
@@ -474,7 +417,6 @@ i0.ɵɵngDeclareClassMetadata({
474
417
  }]
475
418
  }]
476
419
  }],
477
- ctorParameters: () => [],
478
420
  propDecorators: {
479
421
  _triggers: [{
480
422
  type: i0.ContentChildren,
@@ -485,15 +427,6 @@ i0.ɵɵngDeclareClassMetadata({
485
427
  isSignal: true
486
428
  }]
487
429
  }],
488
- _panels: [{
489
- type: i0.ContentChildren,
490
- args: [i0.forwardRef(() => AccordionPanel), {
491
- ...{
492
- descendants: true
493
- },
494
- isSignal: true
495
- }]
496
- }],
497
430
  disabled: [{
498
431
  type: i0.Input,
499
432
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.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 Directive,\n input,\n inject,\n afterRenderEffect,\n signal,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionPanelPattern, AccordionTriggerPattern} from '../private';\n\n/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It requires\n * a `panelId` that must match the `panelId` of its corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n * <div ngAccordionPanel panelId=\"unique-id-1\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': '_pattern.id()',\n '[attr.aria-labelledby]': '_pattern.accordionTrigger()?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** A local unique identifier for the panel, used to match with its trigger's `panelId`. */\n readonly panelId = input.required<string>();\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The parent accordion trigger pattern that controls this panel. This is set by AccordionGroup. */\n readonly _accordionTriggerPattern: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly _pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: this.id,\n panelId: this.panelId,\n accordionTrigger: () => this._accordionTriggerPattern(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n /** Expands this item. */\n expand() {\n this._accordionTriggerPattern()?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._accordionTriggerPattern()?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._accordionTriggerPattern()?.toggle();\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 {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\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 Directive,\n input,\n ElementRef,\n inject,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionPanelPattern, AccordionTriggerPattern} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires a `panelId` that must match the `panelId` of the `ngAccordionPanel` it\n * controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * <button ngAccordionTrigger panelId=\"unique-id-1\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': '_pattern.id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** A local unique identifier for the trigger, used to match with its panel's `panelId`. */\n readonly panelId = input.required<string>();\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The accordion panel pattern controlled by this trigger. This is set by AccordionGroup. */\n readonly _accordionPanelPattern: WritableSignal<AccordionPanelPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly _pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n ...this,\n accordionGroup: computed(() => this._accordionGroup._pattern),\n accordionPanel: this._accordionPanelPattern,\n element: () => this.element,\n });\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\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 Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n booleanAttribute,\n computed,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern, AccordionTriggerPattern} from '../private';\nimport {AccordionTrigger} from './accordion-trigger';\nimport {AccordionPanel} from './accordion-panel';\nimport {ACCORDION_GROUP} from './accordion-tokens';\n\n/**\n * A container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n *\n * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n * <div ngAccordionGroup [multiExpandable]=\"true\" [(expandedPanels)]=\"expandedItems\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger panelId=\"item-1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel panelId=\"item-1\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger panelId=\"item-2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel panelId=\"item-2\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The AccordionTriggers nested inside this group. */\n private readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The AccordionTrigger patterns nested inside this group. */\n private readonly _triggerPatterns = computed(() => this._triggers().map(t => t._pattern));\n\n /** The AccordionPanels nested inside this group. */\n private readonly _panels = contentChildren(AccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = 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 /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n getItem: e => this._getItem(e),\n element: () => this.element,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.panelId() === trigger.panelId());\n trigger._accordionPanelPattern.set(panel?._pattern);\n if (panel) {\n panel._accordionTriggerPattern.set(trigger._pattern);\n }\n }\n });\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expansionBehavior.openAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.expansionBehavior.closeAll();\n }\n\n /** Gets the trigger pattern for a given element. */\n private _getItem(element: Element | null | undefined): AccordionTriggerPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._triggerPatterns().find(t => t.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngAccordionTrigger]');\n }\n\n return 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} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A structural directive that provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n * <div ngAccordionPanel panelId=\"unique-id-1\">\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_deferredContentAware","inject","DeferredContentAware","id","input","_IdGenerator","getId","panelId","required","visible","computed","_pattern","hidden","_accordionTriggerPattern","signal","undefined","AccordionPanelPattern","accordionTrigger","constructor","afterRenderEffect","contentVisible","set","expand","open","collapse","close","toggle","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","ACCORDION_GROUP","InjectionToken","AccordionTrigger","_elementRef","ElementRef","element","nativeElement","_accordionGroup","disabled","transform","booleanAttribute","expanded","model","active","_accordionPanelPattern","AccordionTriggerPattern","accordionGroup","accordionPanel","outputs","AccordionGroup","_triggers","contentChildren","descendants","_triggerPatterns","map","t","ngDevMode","debugName","_panels","textDirection","Directionality","valueSignal","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","items","orientation","getItem","e","_getItem","triggers","panels","trigger","panel","find","p","expandAll","expansionBehavior","openAll","collapseAll","closeAll","pattern","parentElement","closest","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","listeners","providers","provide","useExisting","queries","propertyName","predicate","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","AccordionContent","DeferredContent"],"mappings":"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"}
1
+ {"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.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 {Directive, afterRenderEffect, computed, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern} from '../private';\n\n/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It should\n * expose a template reference that will be used by the corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\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 {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\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 Directive,\n ElementRef,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the correspondingtrigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\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 Directive,\n ElementRef,\n booleanAttribute,\n computed,\n contentChildren,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern} from '../private';\nimport {AccordionTrigger} from './accordion-trigger';\nimport {ACCORDION_GROUP} from './accordion-tokens';\n\n/**\n * A container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n *\n * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The AccordionTriggers nested inside this group. */\n private readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => this._triggers().map(t => t._pattern));\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = 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 /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n });\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\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 provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n * <div ngAccordionPanel panelId=\"unique-id-1\">\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_deferredContentAware","inject","DeferredContentAware","id","input","_IdGenerator","getId","visible","computed","_pattern","expanded","constructor","afterRenderEffect","contentVisible","set","expand","open","collapse","close","toggle","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","ACCORDION_GROUP","InjectionToken","AccordionTrigger","_elementRef","ElementRef","element","nativeElement","_accordionGroup","panel","required","panelId","disabled","transform","booleanAttribute","model","active","ngOnInit","AccordionTriggerPattern","accordionGroup","accordionPanelId","outputs","AccordionGroup","_triggers","contentChildren","descendants","_triggerPatterns","map","t","ngDevMode","debugName","textDirection","Directionality","valueSignal","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","signal","undefined","items","orientation","expandAll","collapseAll","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","listeners","providers","provide","useExisting","propDecorators","ContentChildren","forwardRef","Input","alias","AccordionContent","DeferredContent"],"mappings":";;;;;;;;;;;;MAiDaA,cAAc,CAAA;AAERC,EAAAA,qBAAqB,GAAGC,MAAM,CAACC,oBAAoB,CAAC;AAG5DC,EAAAA,EAAE,GAAGC,KAAK,CAACH,MAAM,CAACI,YAAY,CAAC,CAACC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC;;WAAC;AAGnEC,EAAAA,OAAO,GAAGC,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,EAAEC,QAAQ,EAAE,KAAK,IAAI;;WAAC;EAOrED,QAAQ;AAERE,EAAAA,WAAAA,GAAA;AAEEC,IAAAA,iBAAiB,CAAC,MAAK;AACrB,MAAA,IAAI,CAACZ,qBAAqB,CAACa,cAAc,CAACC,GAAG,CAAC,IAAI,CAACP,OAAO,EAAE,CAAC;AAC/D,KAAC,CAAC;AACJ;AAGAQ,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAACN,QAAQ,EAAEO,IAAI,EAAE;AACvB;AAGAC,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAACR,QAAQ,EAAES,KAAK,EAAE;AACxB;AAGAC,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAACV,QAAQ,EAAEU,MAAM,EAAE;AACzB;;;;;UArCWpB,cAAc;AAAAqB,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAdzB,cAAc;AAAA0B,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,oBAAA;AAAAC,IAAAA,MAAA,EAAA;AAAAxB,MAAAA,EAAA,EAAA;AAAAyB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,SAAA,EAAA,MAAA;AAAA,QAAA,sBAAA,EAAA,gBAAA;AAAA,QAAA,YAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,kBAAA,CAAA;AAAAC,IAAAA,cAAA,EAAA,CAAA;MAAAC,SAAA,EAAAC,oBAAA;AAAAZ,MAAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA;AAAA,KAAA,CAAA;AAAAa,IAAAA,QAAA,EAAAlB;AAAA,GAAA,CAAA;;;;;;QAAdvB,cAAc;AAAA0C,EAAAA,UAAA,EAAA,CAAA;UAhB1BjB,SAAS;AAACkB,IAAAA,IAAA,EAAA,CAAA;AACThB,MAAAA,QAAQ,EAAE,oBAAoB;AAC9BU,MAAAA,QAAQ,EAAE,kBAAkB;AAC5BC,MAAAA,cAAc,EAAE,CACd;AACEC,QAAAA,SAAS,EAAEpC,oBAAoB;QAC/ByB,MAAM,EAAE,CAAC,iBAAiB;AAC3B,OAAA,CACF;AACDM,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,wBAAwB,EAAE,gBAAgB;AAC1C,QAAA,cAAc,EAAE;AACjB;KACF;;;;;;;;;;;;;;;ACpCM,MAAMU,eAAe,GAAG,IAAIC,cAAc,CAAiB,iBAAiB,CAAC;;MC2CvEC,gBAAgB,CAAA;AAEVC,EAAAA,WAAW,GAAG7C,MAAM,CAAC8C,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACF,WAAW,CAACG,aAA4B;AAG/CC,EAAAA,eAAe,GAAGjD,MAAM,CAAC0C,eAAe,CAAC;EAGjDQ,KAAK,GAAG/C,KAAK,CAACgD,QAAQ;;WAAkB;AAGxCjD,EAAAA,EAAE,GAAGC,KAAK,CAACH,MAAM,CAACI,YAAY,CAAC,CAACC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC;;WAAC;AAGrE+C,EAAAA,OAAO,GAAG7C,QAAQ,CAAC,MAAM,IAAI,CAAC2C,KAAK,EAAE,CAAChD,EAAE,EAAE;;WAAC;AAG3CmD,EAAAA,QAAQ,GAAGlD,KAAK,CAAC,KAAK;;;;AAAGmD,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGtD9C,QAAQ,GAAG+C,KAAK,CAAU,KAAK;;WAAC;AAGhCC,EAAAA,MAAM,GAAGlD,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACiD,MAAM,EAAE;;WAAC;EAGxDjD,QAAQ;AAERkD,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAAClD,QAAQ,GAAG,IAAImD,uBAAuB,CAAC;AAC1C,MAAA,GAAG,IAAI;AACPZ,MAAAA,OAAO,EAAEA,MAAM,IAAI,CAACA,OAAO;AAC3Ba,MAAAA,cAAc,EAAEA,MAAM,IAAI,CAACX,eAAe,CAACzC,QAAQ;MACnDqD,gBAAgB,EAAE,IAAI,CAACT;AACxB,KAAA,CAAC;IAEF,IAAI,CAACF,KAAK,EAAE,CAAC1C,QAAQ,GAAG,IAAI,CAACA,QAAQ;AACvC;AAGAM,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAACN,QAAQ,CAACO,IAAI,EAAE;AACtB;AAGAC,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAACR,QAAQ,CAACS,KAAK,EAAE;AACvB;AAGAC,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAACV,QAAQ,CAACU,MAAM,EAAE;AACxB;;;;;UAvDW0B,gBAAgB;AAAAzB,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAhBqB,gBAAgB;AAAApB,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,sBAAA;AAAAC,IAAAA,MAAA,EAAA;AAAAwB,MAAAA,KAAA,EAAA;AAAAvB,QAAAA,iBAAA,EAAA,OAAA;AAAAC,QAAAA,UAAA,EAAA,OAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA7B,MAAAA,EAAA,EAAA;AAAAyB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAsB,MAAAA,QAAA,EAAA;AAAA1B,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAtB,MAAAA,QAAA,EAAA;AAAAkB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAA+B,IAAAA,OAAA,EAAA;AAAArD,MAAAA,QAAA,EAAA;KAAA;AAAAuB,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,kBAAA,EAAA,UAAA;AAAA,QAAA,IAAA,EAAA,MAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,eAAA,EAAA,uCAAA;AAAA,QAAA,eAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,oBAAA,CAAA;AAAAI,IAAAA,QAAA,EAAAlB;AAAA,GAAA,CAAA;;;;;;QAAhBuB,gBAAgB;AAAAJ,EAAAA,UAAA,EAAA,CAAA;UAd5BjB,SAAS;AAACkB,IAAAA,IAAA,EAAA,CAAA;AACThB,MAAAA,QAAQ,EAAE,sBAAsB;AAChCU,MAAAA,QAAQ,EAAE,oBAAoB;AAC9BH,MAAAA,IAAI,EAAE;AACJ,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,iBAAiB,EAAE,uCAAuC;AAC1D,QAAA,iBAAiB,EAAE;AACpB;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCeY+B,cAAc,CAAA;AAERlB,EAAAA,WAAW,GAAG7C,MAAM,CAAC8C,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACF,WAAW,CAACG,aAA4B;AAG/CgB,EAAAA,SAAS,GAAGC,eAAe,CAACrB,gBAAgB;;;;AAAGsB,IAAAA,WAAW,EAAE;AAAI,GAAA,CAAE;EAGlEC,gBAAgB,GAAG5D,QAAQ,CAAC,MAAM,IAAI,CAACyD,SAAS,EAAE,CAACI,GAAG,CAACC,CAAC,IAAIA,CAAC,CAAC7D,QAAQ,CAAC,EAAA,IAAA8D,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAGhFC,EAAAA,aAAa,GAAGxE,MAAM,CAACyE,cAAc,CAAC,CAACC,WAAW;AAGlDrB,EAAAA,QAAQ,GAAGlD,KAAK,CAAC,KAAK;;;;AAAGmD,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;AAGtDoB,EAAAA,eAAe,GAAGxE,KAAK,CAAC,IAAI;;;;AAAGmD,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;AAM5DqB,EAAAA,YAAY,GAAGzE,KAAK,CAAC,IAAI;;;;AAAGmD,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;AAGzDsB,EAAAA,IAAI,GAAG1E,KAAK,CAAC,KAAK;;;;AAAGmD,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGlD/C,QAAQ,GAA0B,IAAIsE,qBAAqB,CAAC;AACnE,IAAA,GAAG,IAAI;AACP/B,IAAAA,OAAO,EAAEA,MAAM,IAAI,CAACA,OAAO;AAC3BgC,IAAAA,UAAU,EAAEC,MAAM,CAACC,SAAS,CAAC;IAC7BC,KAAK,EAAE,IAAI,CAACf,gBAAgB;IAE5BgB,WAAW,EAAEA,MAAM;AACpB,GAAA,CAAC;AAGFC,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,CAAC5E,QAAQ,CAAC4E,SAAS,EAAE;AAC3B;AAGAC,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAAC7E,QAAQ,CAAC6E,WAAW,EAAE;AAC7B;;;;;UAjDWtB,cAAc;AAAA5C,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAd,EAAA,OAAA+D,IAAA,GAAAjE,EAAA,CAAAkE,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,IAAA,EAAA3B,cAAc;AAFdvC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,oBAAA;AAAAC,IAAAA,MAAA,EAAA;AAAA2B,MAAAA,QAAA,EAAA;AAAA1B,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA4C,MAAAA,eAAA,EAAA;AAAAhD,QAAAA,iBAAA,EAAA,iBAAA;AAAAC,QAAAA,UAAA,EAAA,iBAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA6C,MAAAA,YAAA,EAAA;AAAAjD,QAAAA,iBAAA,EAAA,cAAA;AAAAC,QAAAA,UAAA,EAAA,cAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA8C,MAAAA,IAAA,EAAA;AAAAlD,QAAAA,iBAAA,EAAA,MAAA;AAAAC,QAAAA,UAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,IAAA,EAAA;AAAA2D,MAAAA,SAAA,EAAA;AAAA,QAAA,SAAA,EAAA,4BAAA;AAAA,QAAA,aAAA,EAAA,gCAAA;AAAA,QAAA,SAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,SAAA,EAAA,CAAC;AAACC,MAAAA,OAAO,EAAEnD,eAAe;AAAEoD,MAAAA,WAAW,EAAE/B;AAAe,KAAA,CAAC;;;iBAUvBnB,gBAAgB;AAAAsB,MAAAA,WAAA,EAAA,IAAA;AAAArC,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAAM,QAAA,EAAA,CAAA,kBAAA,CAAA;AAAAI,IAAAA,QAAA,EAAAlB;AAAA,GAAA,CAAA;;;;;;QARlD0C,cAAc;AAAAvB,EAAAA,UAAA,EAAA,CAAA;UAV1BjB,SAAS;AAACkB,IAAAA,IAAA,EAAA,CAAA;AACThB,MAAAA,QAAQ,EAAE,oBAAoB;AAC9BU,MAAAA,QAAQ,EAAE,kBAAkB;AAC5BH,MAAAA,IAAI,EAAE;AACJ,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,eAAe,EAAE,gCAAgC;AACjD,QAAA,WAAW,EAAE;OACd;AACD4D,MAAAA,SAAS,EAAE,CAAC;AAACC,QAAAA,OAAO,EAAEnD,eAAe;AAAEoD,QAAAA,WAAW,EAAgB/B;OAAC;KACpE;AAS8C,GAAA,CAAA;AAAAgC,EAAAA,cAAA,EAAA;AAAA/B,IAAAA,SAAA,EAAA,CAAA;MAAA0B,IAAA,EAAArE,EAAA,CAAA2E,eAAA;MAAAvD,IAAA,EAAA,CAAApB,EAAA,CAAA4E,UAAA,CAAA,MAAArD,gBAAgB,CAAE,EAAA;QAAA,GAAA;AAACsB,UAAAA,WAAW,EAAE;SAAK;AAAArC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAwB,IAAAA,QAAA,EAAA,CAAA;MAAAqC,IAAA,EAAArE,EAAA,CAAA6E,KAAA;AAAAzD,MAAAA,IAAA,EAAA,CAAA;AAAAZ,QAAAA,QAAA,EAAA,IAAA;AAAAsE,QAAAA,KAAA,EAAA,UAAA;AAAAhD,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAwB,IAAAA,eAAA,EAAA,CAAA;MAAAe,IAAA,EAAArE,EAAA,CAAA6E,KAAA;AAAAzD,MAAAA,IAAA,EAAA,CAAA;AAAAZ,QAAAA,QAAA,EAAA,IAAA;AAAAsE,QAAAA,KAAA,EAAA,iBAAA;AAAAhD,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAyB,IAAAA,YAAA,EAAA,CAAA;MAAAc,IAAA,EAAArE,EAAA,CAAA6E,KAAA;AAAAzD,MAAAA,IAAA,EAAA,CAAA;AAAAZ,QAAAA,QAAA,EAAA,IAAA;AAAAsE,QAAAA,KAAA,EAAA,cAAA;AAAAhD,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA0B,IAAAA,IAAA,EAAA,CAAA;MAAAa,IAAA,EAAArE,EAAA,CAAA6E,KAAA;AAAAzD,MAAAA,IAAA,EAAA,CAAA;AAAAZ,QAAAA,QAAA,EAAA,IAAA;AAAAsE,QAAAA,KAAA,EAAA,MAAA;AAAAhD,QAAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;;MC3CvEiD,gBAAgB,CAAA;;;;;UAAhBA,gBAAgB;AAAAjF,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAhB6E,gBAAgB;AAAA5E,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,iCAAA;AAAAW,IAAAA,cAAA,EAAA,CAAA;MAAAC,SAAA,EAAAC;AAAA,KAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAlB;AAAA,GAAA,CAAA;;;;;;QAAhB+E,gBAAgB;AAAA5D,EAAAA,UAAA,EAAA,CAAA;UAJ5BjB,SAAS;AAACkB,IAAAA,IAAA,EAAA,CAAA;AACThB,MAAAA,QAAQ,EAAE,iCAAiC;MAC3CW,cAAc,EAAE,CAACiE,eAAe;KACjC;;;;;;"}
package/fesm2022/aria.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('22.0.0-next.0');
3
+ const VERSION = new Version('22.0.0-next.1');
4
4
 
5
5
  export { VERSION };
6
6
  //# sourceMappingURL=aria.mjs.map
@@ -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.0-next.0');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"aria.mjs","sources":["../../../../../k8-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.0-next.1');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
@@ -1 +1 @@
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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"}
1
+ {"version":3,"file":"combobox.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-dialog.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-input.ts","../../../../../k8-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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"}