@angular/aria 22.0.0-next.5 → 22.0.0-next.7

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 (56) hide show
  1. package/fesm2022/_combobox-chunk.mjs +51 -2
  2. package/fesm2022/_combobox-chunk.mjs.map +1 -1
  3. package/fesm2022/_combobox-listbox-chunk.mjs +3 -0
  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 +16 -14
  7. package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
  8. package/fesm2022/_list-navigation-chunk.mjs +3 -1
  9. package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
  10. package/fesm2022/_signal-like-chunk.mjs +0 -1
  11. package/fesm2022/_signal-like-chunk.mjs.map +1 -1
  12. package/fesm2022/_tabs-chunk.mjs +22 -47
  13. package/fesm2022/_tabs-chunk.mjs.map +1 -1
  14. package/fesm2022/_widget-chunk.mjs +55 -13
  15. package/fesm2022/_widget-chunk.mjs.map +1 -1
  16. package/fesm2022/accordion.mjs +16 -14
  17. package/fesm2022/accordion.mjs.map +1 -1
  18. package/fesm2022/aria.mjs +1 -1
  19. package/fesm2022/aria.mjs.map +1 -1
  20. package/fesm2022/combobox.mjs +59 -34
  21. package/fesm2022/combobox.mjs.map +1 -1
  22. package/fesm2022/grid-testing.mjs +72 -0
  23. package/fesm2022/grid-testing.mjs.map +1 -0
  24. package/fesm2022/grid.mjs +83 -37
  25. package/fesm2022/grid.mjs.map +1 -1
  26. package/fesm2022/listbox.mjs +58 -31
  27. package/fesm2022/listbox.mjs.map +1 -1
  28. package/fesm2022/menu.mjs +41 -35
  29. package/fesm2022/menu.mjs.map +1 -1
  30. package/fesm2022/private.mjs +156 -5
  31. package/fesm2022/private.mjs.map +1 -1
  32. package/fesm2022/simple-combobox.mjs +443 -0
  33. package/fesm2022/simple-combobox.mjs.map +1 -0
  34. package/fesm2022/tabs.mjs +243 -218
  35. package/fesm2022/tabs.mjs.map +1 -1
  36. package/fesm2022/toolbar.mjs +11 -11
  37. package/fesm2022/toolbar.mjs.map +1 -1
  38. package/fesm2022/tree.mjs +65 -33
  39. package/fesm2022/tree.mjs.map +1 -1
  40. package/package.json +10 -2
  41. package/types/_combobox-chunk.d.ts +32 -2
  42. package/types/_grid-chunk.d.ts +16 -8
  43. package/types/_tabs-chunk.d.ts +7 -42
  44. package/types/combobox.d.ts +4 -3
  45. package/types/grid-testing.d.ts +79 -0
  46. package/types/grid.d.ts +14 -6
  47. package/types/listbox.d.ts +8 -6
  48. package/types/menu.d.ts +7 -4
  49. package/types/private.d.ts +106 -10
  50. package/types/simple-combobox.d.ts +124 -0
  51. package/types/tabs.d.ts +79 -74
  52. package/types/tree.d.ts +5 -2
  53. package/fesm2022/_pointer-event-manager-chunk.mjs +0 -54
  54. package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
  55. package/resources/code-examples.db +0 -0
  56. package/types/_pointer-event-manager-chunk.d.ts +0 -34
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, computed, input, booleanAttribute, Directive, contentChildren, model, signal, afterRenderEffect, untracked } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, computed, input, booleanAttribute, Directive, contentChildren, numberAttribute, model, signal, afterRenderEffect, untracked } from '@angular/core';
3
3
  import { Directionality } from '@angular/cdk/bidi';
4
4
  import { _IdGenerator } from '@angular/cdk/a11y';
5
5
  import { OptionPattern, ComboboxListboxPattern, ListboxPattern } from './_combobox-listbox-chunk.mjs';
@@ -13,7 +13,6 @@ import './_list-typeahead-chunk.mjs';
13
13
  import './_click-event-manager-chunk.mjs';
14
14
  import './_deferred-content-chunk.mjs';
15
15
  import './_combobox-chunk.mjs';
16
- import './_pointer-event-manager-chunk.mjs';
17
16
 
18
17
  const LISTBOX = new InjectionToken('LISTBOX');
19
18
 
@@ -26,9 +25,6 @@ class Option {
26
25
  id = input(inject(_IdGenerator).getId('ng-option-', true), ...(ngDevMode ? [{
27
26
  debugName: "id"
28
27
  }] : []));
29
- searchTerm = computed(() => this.label() ?? this.element.textContent, ...(ngDevMode ? [{
30
- debugName: "searchTerm"
31
- }] : []));
32
28
  _listboxPattern = computed(() => this._listbox._pattern, ...(ngDevMode ? [{
33
29
  debugName: "_listboxPattern"
34
30
  }] : []));
@@ -53,11 +49,11 @@ class Option {
53
49
  value: this.value,
54
50
  listbox: this._listboxPattern,
55
51
  element: () => this.element,
56
- searchTerm: () => this.searchTerm() ?? ''
52
+ searchTerm: () => this.label() ?? ''
57
53
  });
58
54
  static ɵfac = i0.ɵɵngDeclareFactory({
59
55
  minVersion: "12.0.0",
60
- version: "22.0.0-next.6",
56
+ version: "22.0.0-next.9",
61
57
  ngImport: i0,
62
58
  type: Option,
63
59
  deps: [],
@@ -65,7 +61,7 @@ class Option {
65
61
  });
66
62
  static ɵdir = i0.ɵɵngDeclareDirective({
67
63
  minVersion: "17.1.0",
68
- version: "22.0.0-next.6",
64
+ version: "22.0.0-next.9",
69
65
  type: Option,
70
66
  isStandalone: true,
71
67
  selector: "[ngOption]",
@@ -117,7 +113,7 @@ class Option {
117
113
  }
118
114
  i0.ɵɵngDeclareClassMetadata({
119
115
  minVersion: "12.0.0",
120
- version: "22.0.0-next.6",
116
+ version: "22.0.0-next.9",
121
117
  ngImport: i0,
122
118
  type: Option,
123
119
  decorators: [{
@@ -232,10 +228,17 @@ class Listbox {
232
228
  } : {}),
233
229
  transform: booleanAttribute
234
230
  });
231
+ tabIndex = input(undefined, {
232
+ ...(ngDevMode ? {
233
+ debugName: "tabIndex"
234
+ } : {}),
235
+ transform: v => v === undefined ? undefined : numberAttribute(v)
236
+ });
235
237
  value = model([], ...(ngDevMode ? [{
236
238
  debugName: "value"
237
239
  }] : []));
238
240
  _pattern;
241
+ activeDescendant;
239
242
  constructor() {
240
243
  const inputs = {
241
244
  ...this,
@@ -247,32 +250,41 @@ class Listbox {
247
250
  combobox: () => this._popup?.combobox?._pattern
248
251
  };
249
252
  this._pattern = this._popup?.combobox ? new ComboboxListboxPattern(inputs) : new ListboxPattern(inputs);
253
+ this.activeDescendant = computed(() => this._pattern.activeDescendant(), ...(ngDevMode ? [{
254
+ debugName: "activeDescendant"
255
+ }] : []));
250
256
  if (this._popup) {
251
257
  this._popup._controls.set(this._pattern);
252
258
  }
253
- afterRenderEffect(() => {
254
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
255
- const violations = this._pattern.validate();
256
- for (const violation of violations) {
257
- console.error(violation);
259
+ afterRenderEffect({
260
+ read: () => {
261
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
262
+ const violations = this._pattern.validate();
263
+ for (const violation of violations) {
264
+ console.error(violation);
265
+ }
258
266
  }
259
267
  }
260
268
  });
261
- afterRenderEffect(() => {
262
- this._pattern.setDefaultStateEffect();
269
+ afterRenderEffect({
270
+ write: () => this._pattern.setDefaultStateEffect()
263
271
  });
264
- afterRenderEffect(() => {
265
- const items = inputs.items();
266
- const activeItem = untracked(() => inputs.activeItem());
267
- if (!items.some(i => i === activeItem) && activeItem) {
268
- this._pattern.listBehavior.unfocus();
272
+ afterRenderEffect({
273
+ write: () => {
274
+ const items = inputs.items();
275
+ const activeItem = untracked(() => inputs.activeItem());
276
+ if (!items.some(i => i === activeItem) && activeItem) {
277
+ this._pattern.listBehavior.unfocus();
278
+ }
269
279
  }
270
280
  });
271
- afterRenderEffect(() => {
272
- const items = inputs.items();
273
- const value = untracked(() => this.value());
274
- if (items && value.some(v => !items.some(i => i.value() === v))) {
275
- this.value.set(value.filter(v => items.some(i => i.value() === v)));
281
+ afterRenderEffect({
282
+ write: () => {
283
+ const items = inputs.items();
284
+ const value = untracked(() => this.value());
285
+ if (items && value.some(v => !items.some(i => i.value() === v))) {
286
+ this.value.set(value.filter(v => items.some(i => i.value() === v)));
287
+ }
276
288
  }
277
289
  });
278
290
  }
@@ -286,7 +298,7 @@ class Listbox {
286
298
  }
287
299
  static ɵfac = i0.ɵɵngDeclareFactory({
288
300
  minVersion: "12.0.0",
289
- version: "22.0.0-next.6",
301
+ version: "22.0.0-next.9",
290
302
  ngImport: i0,
291
303
  type: Listbox,
292
304
  deps: [],
@@ -294,7 +306,7 @@ class Listbox {
294
306
  });
295
307
  static ɵdir = i0.ɵɵngDeclareDirective({
296
308
  minVersion: "17.2.0",
297
- version: "22.0.0-next.6",
309
+ version: "22.0.0-next.9",
298
310
  type: Listbox,
299
311
  isStandalone: true,
300
312
  selector: "[ngListbox]",
@@ -369,6 +381,13 @@ class Listbox {
369
381
  isRequired: false,
370
382
  transformFunction: null
371
383
  },
384
+ tabIndex: {
385
+ classPropertyName: "tabIndex",
386
+ publicName: "tabIndex",
387
+ isSignal: true,
388
+ isRequired: false,
389
+ transformFunction: null
390
+ },
372
391
  value: {
373
392
  classPropertyName: "value",
374
393
  publicName: "value",
@@ -391,7 +410,7 @@ class Listbox {
391
410
  },
392
411
  properties: {
393
412
  "attr.id": "id()",
394
- "attr.tabindex": "_pattern.tabIndex()",
413
+ "attr.tabindex": "tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()",
395
414
  "attr.aria-readonly": "_pattern.readonly()",
396
415
  "attr.aria-disabled": "_pattern.disabled()",
397
416
  "attr.aria-orientation": "_pattern.orientation()",
@@ -418,7 +437,7 @@ class Listbox {
418
437
  }
419
438
  i0.ɵɵngDeclareClassMetadata({
420
439
  minVersion: "12.0.0",
421
- version: "22.0.0-next.6",
440
+ version: "22.0.0-next.9",
422
441
  ngImport: i0,
423
442
  type: Listbox,
424
443
  decorators: [{
@@ -429,7 +448,7 @@ i0.ɵɵngDeclareClassMetadata({
429
448
  host: {
430
449
  'role': 'listbox',
431
450
  '[attr.id]': 'id()',
432
- '[attr.tabindex]': '_pattern.tabIndex()',
451
+ '[attr.tabindex]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',
433
452
  '[attr.aria-readonly]': '_pattern.readonly()',
434
453
  '[attr.aria-disabled]': '_pattern.disabled()',
435
454
  '[attr.aria-orientation]': '_pattern.orientation()',
@@ -537,6 +556,14 @@ i0.ɵɵngDeclareClassMetadata({
537
556
  required: false
538
557
  }]
539
558
  }],
559
+ tabIndex: [{
560
+ type: i0.Input,
561
+ args: [{
562
+ isSignal: true,
563
+ alias: "tabIndex",
564
+ required: false
565
+ }]
566
+ }],
540
567
  value: [{
541
568
  type: i0.Input,
542
569
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"listbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/option.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/listbox.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {Listbox} from './listbox';\n\nexport const LISTBOX = new InjectionToken<Listbox<any>>('LISTBOX');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {booleanAttribute, computed, Directive, ElementRef, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {OptionPattern} from '../private';\nimport {LISTBOX} from './tokens';\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> {\n /** A reference to the host element. */\n readonly element = inject(ElementRef).nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(LISTBOX);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n // TODO(wagnermaciel): See if we want to change how we handle this since textContent is not\n // reactive. See https://github.com/angular/components/pull/30495#discussion_r1961260216.\n /** The text used by the typeahead search. */\n protected readonly searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n readonly value = input.required<V>();\n\n /** Whether an item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n readonly label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\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 booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxListboxPattern, ListboxPattern, OptionPattern} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport {Option} from './option';\nimport {LISTBOX} from './tokens';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n hostDirectives: [ComboboxPopup],\n providers: [{provide: LISTBOX, useExisting: Listbox}],\n})\nexport class Listbox<V> {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The Options nested inside of the Listbox. */\n private readonly _options = contentChildren(Option, {descendants: true});\n\n /** A signal wrapper for directionality. */\n protected readonly textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** The Option UIPatterns of the child Options. */\n protected readonly items = computed<OptionPattern<V>[]>(() =>\n this._options().map(option => option._pattern),\n );\n\n /** Whether the list is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The values of the currently selected items. */\n readonly value = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this.items,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxListboxPattern<V>(inputs)\n : new ListboxPattern<V>(inputs);\n\n if (this._popup) {\n this._popup._controls.set(this._pattern as ComboboxListboxPattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n this._pattern.setDefaultStateEffect();\n });\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n // Ensure that the value is always in sync with the available options.\n afterRenderEffect(() => {\n const items = inputs.items();\n const value = untracked(() => this.value());\n\n if (items && value.some(v => !items.some(i => i.value() === v))) {\n this.value.set(value.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n"],"names":["LISTBOX","InjectionToken","Option","element","inject","ElementRef","nativeElement","active","computed","_pattern","_listbox","id","input","_IdGenerator","getId","searchTerm","label","textContent","_listboxPattern","value","required","disabled","transform","booleanAttribute","selected","OptionPattern","listbox","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","ngImport","decorators","args","Listbox","_popup","ComboboxPopup","optional","_elementRef","_options","contentChildren","descendants","textDirection","Directionality","valueSignal","asReadonly","items","map","option","orientation","multi","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","ngDevMode","debugName","readonly","model","constructor","activeItem","signal","undefined","combobox","ComboboxListboxPattern","ListboxPattern","_controls","set","afterRenderEffect","violations","validate","violation","console","error","setDefaultStateEffect","untracked","some","i","listBehavior","unfocus","v","filter","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","outputs","listeners","providers","provide","useExisting","hostDirectives","directive","i1","ctorParameters","propDecorators","Input","alias","ContentChildren","forwardRef","Output"],"mappings":"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"}
1
+ {"version":3,"file":"listbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/option.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/listbox.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {Listbox} from './listbox';\n\nexport const LISTBOX = new InjectionToken<Listbox<any>>('LISTBOX');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {booleanAttribute, computed, Directive, ElementRef, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {OptionPattern} from '../private';\nimport {LISTBOX} from './tokens';\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> {\n /** A reference to the host element. */\n readonly element = inject(ElementRef).nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(LISTBOX);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n readonly value = input.required<V>();\n\n /** Whether an item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n readonly label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.label() ?? '',\n });\n}\n","/**\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 contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n numberAttribute,\n signal,\n Signal,\n untracked,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxListboxPattern, ListboxPattern, OptionPattern} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport {Option} from './option';\nimport {LISTBOX} from './tokens';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n hostDirectives: [ComboboxPopup],\n providers: [{provide: LISTBOX, useExisting: Listbox}],\n})\nexport class Listbox<V> {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The Options nested inside of the Listbox. */\n private readonly _options = contentChildren(Option, {descendants: true});\n\n /** A signal wrapper for directionality. */\n protected readonly textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** The Option UIPatterns of the child Options. */\n protected readonly items = computed<OptionPattern<V>[]>(() =>\n this._options().map((option: Option<V>) => option._pattern),\n );\n\n /** Whether the list is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the listbox. */\n readonly tabIndex = input(undefined, {\n transform: (v: string | number | undefined) =>\n v === undefined ? undefined : numberAttribute(v),\n });\n\n /** The values of the currently selected items. */\n readonly value = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** The ID of the active descendant in the listbox. */\n readonly activeDescendant: Signal<string | undefined>;\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this.items,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxListboxPattern<V>(inputs)\n : new ListboxPattern<V>(inputs);\n\n this.activeDescendant = computed(() => this._pattern.activeDescendant());\n\n if (this._popup) {\n this._popup._controls.set(this._pattern as ComboboxListboxPattern<V>);\n }\n\n // Check for any violationns after the DOM has been updated.\n afterRenderEffect({\n read: () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n },\n });\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n },\n });\n\n // Ensure that the value is always in sync with the available options.\n // This needs to be after the render for the value to always be available.\n afterRenderEffect({\n write: () => {\n const items = inputs.items();\n const value = untracked(() => this.value());\n\n if (items && value.some(v => !items.some(i => i.value() === v))) {\n this.value.set(value.filter(v => items.some(i => i.value() === v)));\n }\n },\n });\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n"],"names":["LISTBOX","InjectionToken","Option","element","inject","ElementRef","nativeElement","active","computed","_pattern","_listbox","id","input","_IdGenerator","getId","_listboxPattern","value","required","disabled","transform","booleanAttribute","label","selected","OptionPattern","listbox","searchTerm","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","ngImport","decorators","args","Listbox","_popup","ComboboxPopup","optional","_elementRef","_options","contentChildren","descendants","textDirection","Directionality","valueSignal","asReadonly","items","map","option","orientation","multi","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","ngDevMode","debugName","readonly","tabIndex","undefined","v","numberAttribute","model","activeDescendant","constructor","activeItem","signal","combobox","ComboboxListboxPattern","ListboxPattern","_controls","set","afterRenderEffect","read","violations","validate","violation","console","error","write","setDefaultStateEffect","untracked","some","i","listBehavior","unfocus","filter","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","outputs","listeners","providers","provide","useExisting","hostDirectives","directive","i1","ctorParameters","propDecorators","Input","alias","ContentChildren","forwardRef","Output"],"mappings":"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"}
package/fesm2022/menu.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, input, computed, booleanAttribute, effect, Directive, InjectionToken, model, contentChildren, signal, output, afterRenderEffect, untracked } from '@angular/core';
2
+ import { inject, ElementRef, input, computed, booleanAttribute, effect, Directive, InjectionToken, model, contentChildren, output, signal, afterRenderEffect, untracked } from '@angular/core';
3
3
  import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
5
  import { MenuTriggerPattern, MenuItemPattern, MenuBarPattern, MenuPattern } from './_menu-chunk.mjs';
@@ -54,7 +54,7 @@ class MenuTrigger {
54
54
  }
55
55
  static ɵfac = i0.ɵɵngDeclareFactory({
56
56
  minVersion: "12.0.0",
57
- version: "22.0.0-next.6",
57
+ version: "22.0.0-next.9",
58
58
  ngImport: i0,
59
59
  type: MenuTrigger,
60
60
  deps: [],
@@ -62,7 +62,7 @@ class MenuTrigger {
62
62
  });
63
63
  static ɵdir = i0.ɵɵngDeclareDirective({
64
64
  minVersion: "17.1.0",
65
- version: "22.0.0-next.6",
65
+ version: "22.0.0-next.9",
66
66
  type: MenuTrigger,
67
67
  isStandalone: true,
68
68
  selector: "[ngMenuTrigger]",
@@ -111,7 +111,7 @@ class MenuTrigger {
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({
113
113
  minVersion: "12.0.0",
114
- version: "22.0.0-next.6",
114
+ version: "22.0.0-next.9",
115
115
  ngImport: i0,
116
116
  type: MenuTrigger,
117
117
  decorators: [{
@@ -216,7 +216,7 @@ class MenuItem {
216
216
  }
217
217
  static ɵfac = i0.ɵɵngDeclareFactory({
218
218
  minVersion: "12.0.0",
219
- version: "22.0.0-next.6",
219
+ version: "22.0.0-next.9",
220
220
  ngImport: i0,
221
221
  type: MenuItem,
222
222
  deps: [],
@@ -224,7 +224,7 @@ class MenuItem {
224
224
  });
225
225
  static ɵdir = i0.ɵɵngDeclareDirective({
226
226
  minVersion: "17.1.0",
227
- version: "22.0.0-next.6",
227
+ version: "22.0.0-next.9",
228
228
  type: MenuItem,
229
229
  isStandalone: true,
230
230
  selector: "[ngMenuItem]",
@@ -291,7 +291,7 @@ class MenuItem {
291
291
  }
292
292
  i0.ɵɵngDeclareClassMetadata({
293
293
  minVersion: "12.0.0",
294
- version: "22.0.0-next.6",
294
+ version: "22.0.0-next.9",
295
295
  ngImport: i0,
296
296
  type: MenuItem,
297
297
  decorators: [{
@@ -396,7 +396,7 @@ class MenuBar {
396
396
  debugName: "typeaheadDelay"
397
397
  }] : []));
398
398
  _pattern;
399
- _itemPatterns = signal([], ...(ngDevMode ? [{
399
+ _itemPatterns = computed(() => this._items().map(i => i._pattern), ...(ngDevMode ? [{
400
400
  debugName: "_itemPatterns"
401
401
  }] : []));
402
402
  itemSelected = output();
@@ -413,11 +413,8 @@ class MenuBar {
413
413
  activeItem: signal(undefined),
414
414
  element: computed(() => this._elementRef.nativeElement)
415
415
  });
416
- afterRenderEffect(() => {
417
- this._itemPatterns.set(this._items().map(i => i._pattern));
418
- });
419
- afterRenderEffect(() => {
420
- this._pattern.setDefaultStateEffect();
416
+ afterRenderEffect({
417
+ write: () => this._pattern.setDefaultStateEffect()
421
418
  });
422
419
  }
423
420
  close() {
@@ -425,7 +422,7 @@ class MenuBar {
425
422
  }
426
423
  static ɵfac = i0.ɵɵngDeclareFactory({
427
424
  minVersion: "12.0.0",
428
- version: "22.0.0-next.6",
425
+ version: "22.0.0-next.9",
429
426
  ngImport: i0,
430
427
  type: MenuBar,
431
428
  deps: [],
@@ -433,7 +430,7 @@ class MenuBar {
433
430
  });
434
431
  static ɵdir = i0.ɵɵngDeclareDirective({
435
432
  minVersion: "17.2.0",
436
- version: "22.0.0-next.6",
433
+ version: "22.0.0-next.9",
437
434
  type: MenuBar,
438
435
  isStandalone: true,
439
436
  selector: "[ngMenuBar]",
@@ -511,7 +508,7 @@ class MenuBar {
511
508
  }
512
509
  i0.ɵɵngDeclareClassMetadata({
513
510
  minVersion: "12.0.0",
514
- version: "22.0.0-next.6",
511
+ version: "22.0.0-next.9",
515
512
  ngImport: i0,
516
513
  type: MenuBar,
517
514
  decorators: [{
@@ -635,7 +632,12 @@ class Menu {
635
632
  debugName: "parent"
636
633
  }] : []));
637
634
  _pattern;
638
- _itemPatterns = () => this._items().map(i => i._pattern);
635
+ _itemPatterns = computed(() => {
636
+ this._pattern.visible();
637
+ return this._items().map(i => i._pattern);
638
+ }, ...(ngDevMode ? [{
639
+ debugName: "_itemPatterns"
640
+ }] : []));
639
641
  visible = computed(() => this._pattern.visible(), ...(ngDevMode ? [{
640
642
  debugName: "visible"
641
643
  }] : []));
@@ -660,22 +662,26 @@ class Menu {
660
662
  element: computed(() => this._elementRef.nativeElement),
661
663
  itemSelected: value => this.itemSelected.emit(value)
662
664
  });
663
- afterRenderEffect(() => {
664
- const parent = this.parent();
665
- if (parent instanceof MenuItem && parent.parent instanceof MenuBar) {
666
- this._deferredContentAware?.contentVisible.set(true);
667
- } else {
668
- this._deferredContentAware?.contentVisible.set(this._pattern.visible() || !!this.parent()?._pattern.hasBeenInteracted());
665
+ afterRenderEffect({
666
+ write: () => {
667
+ const parent = this.parent();
668
+ if (parent instanceof MenuItem && parent.parent instanceof MenuBar) {
669
+ this._deferredContentAware?.contentVisible.set(true);
670
+ } else {
671
+ this._deferredContentAware?.contentVisible.set(this._pattern.visible() || !!this.parent()?._pattern.hasBeenInteracted());
672
+ }
669
673
  }
670
674
  });
671
- afterRenderEffect(() => {
672
- if (this._pattern.visible()) {
673
- const activeItem = untracked(() => this._pattern.inputs.activeItem());
674
- this._pattern.listBehavior.goto(activeItem);
675
+ afterRenderEffect({
676
+ write: () => {
677
+ if (this.visible()) {
678
+ const activeItem = untracked(() => this._pattern.inputs.activeItem());
679
+ this._pattern.listBehavior.goto(activeItem);
680
+ }
675
681
  }
676
682
  });
677
- afterRenderEffect(() => {
678
- this._pattern.setDefaultStateEffect();
683
+ afterRenderEffect({
684
+ write: () => this._pattern.setDefaultStateEffect()
679
685
  });
680
686
  }
681
687
  close() {
@@ -683,7 +689,7 @@ class Menu {
683
689
  }
684
690
  static ɵfac = i0.ɵɵngDeclareFactory({
685
691
  minVersion: "12.0.0",
686
- version: "22.0.0-next.6",
692
+ version: "22.0.0-next.9",
687
693
  ngImport: i0,
688
694
  type: Menu,
689
695
  deps: [],
@@ -691,7 +697,7 @@ class Menu {
691
697
  });
692
698
  static ɵdir = i0.ɵɵngDeclareDirective({
693
699
  minVersion: "17.2.0",
694
- version: "22.0.0-next.6",
700
+ version: "22.0.0-next.9",
695
701
  type: Menu,
696
702
  isStandalone: true,
697
703
  selector: "[ngMenu]",
@@ -774,7 +780,7 @@ class Menu {
774
780
  }
775
781
  i0.ɵɵngDeclareClassMetadata({
776
782
  minVersion: "12.0.0",
777
- version: "22.0.0-next.6",
783
+ version: "22.0.0-next.9",
778
784
  ngImport: i0,
779
785
  type: Menu,
780
786
  decorators: [{
@@ -866,7 +872,7 @@ i0.ɵɵngDeclareClassMetadata({
866
872
  class MenuContent {
867
873
  static ɵfac = i0.ɵɵngDeclareFactory({
868
874
  minVersion: "12.0.0",
869
- version: "22.0.0-next.6",
875
+ version: "22.0.0-next.9",
870
876
  ngImport: i0,
871
877
  type: MenuContent,
872
878
  deps: [],
@@ -874,7 +880,7 @@ class MenuContent {
874
880
  });
875
881
  static ɵdir = i0.ɵɵngDeclareDirective({
876
882
  minVersion: "14.0.0",
877
- version: "22.0.0-next.6",
883
+ version: "22.0.0-next.9",
878
884
  type: MenuContent,
879
885
  isStandalone: true,
880
886
  selector: "ng-template[ngMenuContent]",
@@ -887,7 +893,7 @@ class MenuContent {
887
893
  }
888
894
  i0.ɵɵngDeclareClassMetadata({
889
895
  minVersion: "12.0.0",
890
- version: "22.0.0-next.6",
896
+ version: "22.0.0-next.9",
891
897
  ngImport: i0,
892
898
  type: MenuContent,
893
899
  decorators: [{